Compare commits

..

No commits in common. "f8130fdb4dfb8614b9443c864803c1ca29311773" and "bde6a30acc603879c43fc182191fb3cd4db3a818" have entirely different histories.

3 changed files with 24 additions and 13 deletions

View File

@ -1,6 +1,7 @@
# Quidditch stands
define __quidditch_stands = {
default quidditch_stands = {
"weather": "sun_high",
"rain": False,
"puddles": False,
@ -10,7 +11,6 @@ define __quidditch_stands = {
"hole": False,
"tree_fire": False
}
default quidditch_stands = __quidditch_stands.copy()
# Crowd density presets
define crowd_few = ("low_1")
@ -55,9 +55,8 @@ label quidditch_stands(hidden=False, reset=False, **kwargs):
# Update and show the area.
# Pass `hidden=True` to update only, `reset=True` to reset the area before applying arguments.
if reset:
$ quidditch_stands = __quidditch_stands | kwargs
else:
$ quidditch_stands.update(kwargs)
$ reset_variables("quidditch_stands")
$ quidditch_stands.update(kwargs)
if not hidden:
show screen quidditch_stands_back(**quidditch_stands)
show screen quidditch_stands_mid(**quidditch_stands)
@ -159,7 +158,6 @@ label test_stands:
pause 1.5
call quidditch_stands(hole=True)
pause 1
call quidditch_stands(weather="overcast", crowd_bj=True)
call quidditch_stands(weather="overcast", crowd=["bj"])
pause 1
call quidditch_stands(reset=True, hidden=True)
jump test_stands

View File

@ -1,17 +1,16 @@
# Quidditch stands
define __quidditch_stands2 = {
default quidditch_stands2 = {
"weather": "sun_high",
"crowd": (),
"crowd_react": (None, None, None),
}
default quidditch_stands2 = __quidditch_stands2.copy()
label quidditch_stands2(hidden=False, reset=False, **kwargs):
if reset:
$ quidditch_stands2 = __quidditch_stands2 | kwargs
else:
$ quidditch_stands2.update(kwargs)
$ reset_variables("quidditch_stands2")
$ quidditch_stands2.update(kwargs)
if not hidden:
show screen quidditch_stands_back2(**quidditch_stands2)
show screen quidditch_stands_front2(**quidditch_stands2)

View File

@ -101,6 +101,20 @@ init python early:
print("Error evaluating data:")
print(e)
def reset_variables(*args):
"""Resets the given variables to their default values."""
# Refer to renpy.ast.Default.set_default for implementation details
defaults_set = renpy.store._defaults_set
changed_set = renpy.store.__dict__.ever_been_changed
for arg in args:
if arg in defaults_set:
if arg in changed_set:
defaults_set.remove(arg)
changed_set.remove(arg)
elif config.developer:
raise Exception("The variable `{}` was not previously set with a default value.".format(arg))
renpy.execute_default_statement(False)
def disable_game_menu():
setattr(renpy.store, "_game_menu_screen", None)
@ -210,4 +224,4 @@ init python early:
return len(self._callable())
def execute_callbacks(callbacks):
for callback in callbacks: callback()
for callback in callbacks: callback()