From de887d18ea9a60b327951a23f078f898b36fada5 Mon Sep 17 00:00:00 2001 From: Melissa LeBlanc-Williams Date: Tue, 8 Apr 2025 16:06:27 -0700 Subject: [PATCH] Last minute bug fixes --- Metro/Metro_RP2350_Chips_Challenge/game.py | 7 ++++--- Metro/Metro_RP2350_Chips_Challenge/savestate.py | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Metro/Metro_RP2350_Chips_Challenge/game.py b/Metro/Metro_RP2350_Chips_Challenge/game.py index f7f72a4c1..cfb23a349 100755 --- a/Metro/Metro_RP2350_Chips_Challenge/game.py +++ b/Metro/Metro_RP2350_Chips_Challenge/game.py @@ -268,7 +268,8 @@ class Game: self.request_password() elif command == PREVIOUS_LEVEL: if self._gamelogic.current_level_number > 1: - if self._savestate.is_level_unlocked(self._gamelogic.current_level_number - 1): + if (self._gamelogic.current_level_number - 1 == 1 or + self._savestate.is_level_unlocked(self._gamelogic.current_level_number - 1)): self.reset_level() self._gamelogic.dec_level() self.save_level() @@ -412,10 +413,10 @@ Total Score: {score[3]}""" level = self._savestate.find_unlocked_level(password) if not 0 < level <= self._gamelogic.last_level: self.show_message("That is not a valid level number.") - elif (level and password and + elif (level > 1 and password and self._gamelogic.current_level.passwords[level] != password): self.show_message("You must enter a valid password.") - elif (self._savestate.is_level_unlocked(level) and + elif (level != 1 and self._savestate.is_level_unlocked(level) and self._savestate.find_unlocked_level(level) is None and self._savestate.find_unlocked_level(password) is None): self.show_message("You must enter a valid password.") diff --git a/Metro/Metro_RP2350_Chips_Challenge/savestate.py b/Metro/Metro_RP2350_Chips_Challenge/savestate.py index 7235dc08e..c45c37bff 100755 --- a/Metro/Metro_RP2350_Chips_Challenge/savestate.py +++ b/Metro/Metro_RP2350_Chips_Challenge/savestate.py @@ -60,7 +60,7 @@ class SaveState: with open("/sd/" + SAVESTATE_FILE, "r") as f: data = json.load(f) self._levels = data["levels"] - except OSError: + except (OSError, ValueError): pass def set_level_score(self, level, score, time_left):