# HG changeset patch # User Simon Cross # Date 1316031589 -7200 # Node ID 321f2eef40e3b7c4e91126aa0aa7c44969109032 # Parent 3a652f048f57a971c8712848d6a173ba783bba0d Save game when level completed. diff -r 3a652f048f57 -r 321f2eef40e3 mamba/gamestate.py --- a/mamba/gamestate.py Wed Sep 14 22:14:08 2011 +0200 +++ b/mamba/gamestate.py Wed Sep 14 22:19:49 2011 +0200 @@ -14,6 +14,12 @@ done_levels = set() +def level_done(level_name): + assert level_name in levels + done_levels.add(level_name) + save_state() + + def load_state(): global unlocked_levels, done_levels fn = os.path.join(options.save_location, 'gamestate.json') @@ -30,7 +36,7 @@ def save_state(): fn = os.path.join(options.save_location, 'gamestate.json') if not os.path.isdir(options.save_location): - os.mkedirs(options.save_location) + os.makedirs(options.save_location) f = open(fn, 'w') json.dump({ 'unlocked_levels': list(unlocked_levels), diff -r 3a652f048f57 -r 321f2eef40e3 mamba/widgets/game.py --- a/mamba/widgets/game.py Wed Sep 14 22:14:08 2011 +0200 +++ b/mamba/widgets/game.py Wed Sep 14 22:19:49 2011 +0200 @@ -8,6 +8,7 @@ from mamba.widgets.messagebox import MessageBox from mamba.engine import SnakeDiedEvent, LevelCompletedEvent, NewHabitatEvent from mamba.habitats.mainmenu import MainMenu +from mamba.gamestate import level_done class GameWidget(Widget): @@ -57,6 +58,7 @@ self.go_mainmenu) self.parent.add(messagebox) messagebox.grab_focus() + level_done(self.world.level.level_name) return True def go_mainmenu(self):