Mercurial > nagslang
diff nagslang/screens/area.py @ 505:80c452f348dc
Rearrange progress saving, to happen on room entrance
author | Stefano Rivera <stefano@rivera.za.net> |
---|---|
date | Sat, 07 Sep 2013 18:38:40 +0200 |
parents | 5680d7383717 |
children | a98ae2bc4957 |
line wrap: on
line diff
--- a/nagslang/screens/area.py Sat Sep 07 18:29:14 2013 +0200 +++ b/nagslang/screens/area.py Sat Sep 07 18:38:40 2013 +0200 @@ -85,12 +85,12 @@ self.keys = ControlKeys() self._level = Level(self.name, self.world) self._level.load(self.space) - self.game_starting_point = Level.game_starting_point() self._drawables = Drawables() self.add_walls() self._add_collision_handlers() self.add_protagonist() self.add_game_objects() + self.save_progress() sound.play_music("POL-cyber-factory-short.ogg") def teardown(self): @@ -158,8 +158,16 @@ def add_protagonist(self): self.protagonist = self.world.protagonist self.protagonist.change_space(self.space) + self.world.rooms += 1 self._drawables.add(self.protagonist) + def save_progress(self): + if self.name == Level.game_starting_point()[0]: + return + self.world.level = (self.name, (self.protagonist.physicser.position.x, + self.protagonist.physicser.position.y)) + self.world.save() + def handle_event(self, ev): if ev.type == pygame.locals.KEYDOWN: if ev.key == pygame.locals.K_ESCAPE: @@ -180,9 +188,6 @@ if ev.destination is not None and ev.destination != self.name: # Go to anther screen self._disable_render = True - self.world.rooms += 1 - self.world.level = (ev.destination, ev.dest_pos) - self.world.save() ScreenChange.post(ev.destination) return # else we're teleporting within the screen, and just the