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

View File

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

View File

@ -101,6 +101,20 @@ init python early:
print("Error evaluating data:") print("Error evaluating data:")
print(e) 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(): def disable_game_menu():
setattr(renpy.store, "_game_menu_screen", None) setattr(renpy.store, "_game_menu_screen", None)