friendz: save level on level change and game quit
authorJean Privat <jean@pryen.org>
Tue, 15 Sep 2015 08:41:59 +0000 (04:41 -0400)
committerJean Privat <jean@pryen.org>
Tue, 15 Sep 2015 08:56:50 +0000 (04:56 -0400)
Signed-off-by: Jean Privat <jean@pryen.org>

contrib/friendz/src/friendz.nit
contrib/friendz/src/level.nit

index f780d74..f79205d 100644 (file)
@@ -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
index 353302a..b09f1f2 100644 (file)
@@ -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