Mercurial > skaapsteker
diff skaapsteker/engine.py @ 454:95527fd29872
More complete game load/save/restart.
author | Jeremy Thurgood <firxen@gmail.com> |
---|---|
date | Sat, 09 Apr 2011 20:47:35 +0200 |
parents | 4bec05fed6c7 |
children | fb9258d66137 |
line wrap: on
line diff
--- a/skaapsteker/engine.py Sat Apr 09 20:42:48 2011 +0200 +++ b/skaapsteker/engine.py Sat Apr 09 20:47:35 2011 +0200 @@ -22,8 +22,6 @@ self.game_state = GameState(os.path.join(options['save_location'], 'savegame.json')) if self.game_state.can_resume(): self.game_state.load_game() - else: - self.game_state.new_game() self.soundsystem = soundsystem def change_scene(self, next_scene): @@ -44,6 +42,10 @@ for ev in events: if ev.type is QUIT: return + if NewGameEvent.matches(ev): + self.game_state.new_game() + fox = self.game_state.world.fox + ChangeScene.post((ev.scene_type, '.'.join([fox.level, fox.doorway]))) if ChangeScene.matches(ev): next_scene = ev.next_scene if not isinstance(next_scene, Scene): @@ -103,6 +105,14 @@ def matches(cls, ev): return ev.type is USEREVENT and ev.utype == cls.utype +class NewGameEvent(UserEvent): + + utype = "NEW_GAME_EVENT" + + @classmethod + def post(cls, scene_type): + super(NewGameEvent, cls).post(scene_type=scene_type) + class ChangeScene(UserEvent): utype = "CHANGE_SCENE"