summaryrefslogtreecommitdiff
path: root/pokemontools/vba/autoplayer.py
diff options
context:
space:
mode:
Diffstat (limited to 'pokemontools/vba/autoplayer.py')
-rw-r--r--pokemontools/vba/autoplayer.py18
1 files changed, 15 insertions, 3 deletions
diff --git a/pokemontools/vba/autoplayer.py b/pokemontools/vba/autoplayer.py
index b47634e..c1e36bc 100644
--- a/pokemontools/vba/autoplayer.py
+++ b/pokemontools/vba/autoplayer.py
@@ -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)