mirror of
https://github.com/pret/pokemon-reverse-engineering-tools.git
synced 2026-09-27 12:01:08 -05:00
make skippable decorator not always save state
There are some runs where the "skippable" decorator should not save the state of the game before and after, like if the function is given different parameters and the after state should not be the canonical after state.
This commit is contained in:
@@ -19,11 +19,16 @@ def skippable(func):
|
||||
def wrapped_function(*args, **kwargs):
|
||||
self = args[0]
|
||||
skip = True
|
||||
override = True
|
||||
|
||||
if "skip" in kwargs.keys():
|
||||
skip = kwargs["skip"]
|
||||
del kwargs["skip"]
|
||||
|
||||
if "override" in kwargs.keys():
|
||||
override = kwargs["override"]
|
||||
del kwargs["override"]
|
||||
|
||||
# override skip if there's no save
|
||||
if skip:
|
||||
full_name = func.__name__ + "-end.sav"
|
||||
@@ -33,9 +38,13 @@ def skippable(func):
|
||||
return_value = None
|
||||
|
||||
if not skip:
|
||||
self.cry.save_state(func.__name__ + "-start", override=True)
|
||||
if override:
|
||||
self.cry.save_state(func.__name__ + "-start", override=override)
|
||||
|
||||
return_value = func(*args, **kwargs)
|
||||
self.cry.save_state(func.__name__ + "-end", override=True)
|
||||
|
||||
if override:
|
||||
self.cry.save_state(func.__name__ + "-end", override=override)
|
||||
elif skip:
|
||||
self.cry.vba.state = self.cry.load_state(func.__name__ + "-end")
|
||||
|
||||
@@ -81,7 +90,7 @@ class SpeedRunner(Runner):
|
||||
self.new_bark_level_grind(10, skip=False)
|
||||
|
||||
@skippable
|
||||
def skip_intro(self):
|
||||
def skip_intro(self, stop_at_name_selection=False):
|
||||
"""
|
||||
Skip the game boot intro sequence.
|
||||
"""
|
||||
@@ -124,6 +133,9 @@ class SpeedRunner(Runner):
|
||||
# read text until name selection
|
||||
self.cry.text_wait()
|
||||
|
||||
if stop_at_name_selection:
|
||||
return
|
||||
|
||||
# select "Chris"
|
||||
self.cry.vba.press("d", hold=10, after=1)
|
||||
self.cry.vba.press("a", hold=50, after=1)
|
||||
|
||||
Reference in New Issue
Block a user