From e9205edfba9ebb5066cf6a1c6a2d6f57ec3291df Mon Sep 17 00:00:00 2001 From: Jean Privat Date: Tue, 15 Sep 2015 04:41:59 -0400 Subject: [PATCH] friendz: save level on level change and game quit Signed-off-by: Jean Privat --- contrib/friendz/src/friendz.nit | 19 ++++++++++++++++++- contrib/friendz/src/level.nit | 4 ---- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/contrib/friendz/src/friendz.nit b/contrib/friendz/src/friendz.nit index f780d74..f79205d 100644 --- a/contrib/friendz/src/friendz.nit +++ b/contrib/friendz/src/friendz.nit @@ -960,6 +960,7 @@ redef class Game # Play a level in player mode. fun play(l: Level) do + save # save the previous level grid level = l grid.load(level.saved_str or else level.str) init_play_menu(false) @@ -1055,6 +1056,7 @@ redef class Game # Helper function to initialize the menu (and tile) screen fun init_menu do + save # save the previous level grid init_game level = null var i = levels.first @@ -1280,6 +1282,14 @@ redef class Game end end end + + fun save + do + var l = level + if l != null then + l.save + end + end end # The spash title image @@ -1594,6 +1604,12 @@ redef class App # img loading? end + redef fun on_pause + do + super + game.save + end + # Maximum wanted frame per second var max_fps = 30 @@ -1651,7 +1667,8 @@ redef class KeyEvent end redef class Level - redef fun save + # Save the score and grid of the level + fun save do app.data_store["s{str}"] = if score > 0 then score else null var saved = game.grid.save diff --git a/contrib/friendz/src/level.nit b/contrib/friendz/src/level.nit index 353302a..b09f1f2 100644 --- a/contrib/friendz/src/level.nit +++ b/contrib/friendz/src/level.nit @@ -91,13 +91,9 @@ class Level if not w then return false if g.number > self.score then self.score = g.number - self.save end return true end - - # Save the score of the level - fun save do end end # main game object -- 1.7.9.5