diff --git a/zwalker/zmachine.py b/zwalker/zmachine.py index 4948f0e..93b7d60 100644 --- a/zwalker/zmachine.py +++ b/zwalker/zmachine.py @@ -2011,11 +2011,17 @@ def handle_char(input_text: str): # Extended elif name == "save": # For automated walking, always succeed - self.set_variable(store_var, 1) + if store_var is not None: + self.set_variable(store_var, 1) # V4+ + elif branch is not None: + self._do_branch(True, branch) # V1-3: branch on success elif name == "restore": # For automated walking, always fail (no saved game to restore) - self.set_variable(store_var, 0) + if store_var is not None: + self.set_variable(store_var, 0) # V4+ + elif branch is not None: + self._do_branch(False, branch) # V1-3: don't branch (failure) elif name == "save_undo": self.set_variable(store_var, 1) # Success (but we don't actually save)