contrib/friendz: use `app:data_store` to keep best scores
authorAlexis Laferrière <alexis.laf@xymus.net>
Mon, 5 Jan 2015 17:42:23 +0000 (12:42 -0500)
committerAlexis Laferrière <alexis.laf@xymus.net>
Mon, 5 Jan 2015 18:31:14 +0000 (13:31 -0500)
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>

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

index 13915e6..949a2cf 100644 (file)
@@ -17,6 +17,8 @@ import mnit
 import realtime
 import solver
 import mnit::tileset
+import app::data_store
+import md5
 
 intrude import grid
 intrude import level
@@ -1267,6 +1269,18 @@ redef class Game
                        end
                end
        end
+
+       redef fun load_levels
+       do
+               super
+
+               for level in levels do
+                       var score = app.data_store["s{level.str.md5}"]
+                       if score isa Int then
+                               level.score = score
+                       end
+               end
+       end
 end
 
 # The spash title image
@@ -1634,3 +1648,10 @@ redef class KeyEvent
                return "unknown"
        end
 end
+
+redef class Level
+       redef fun save
+       do
+               app.data_store["s{str.md5}"] = if score > 0 then score else null
+       end
+end
index d459875..9d8029e 100644 (file)
@@ -96,10 +96,8 @@ class Level
                return true
        end
 
-       fun save
-       do
-               #save_cookie("s"+self.hash, self.score>0?self.score:"")
-       end
+       # Save the score of the level
+       fun save do end
 end
 
 # main game object
@@ -174,8 +172,6 @@ class Game
                for i in [0..levels_code.length[ do
                        var l = new Level(self,i, levels_code[i])
                        levels[i] = l
-                       #var v = read_cookie("s"+l.hash)
-                       #l = v
                end
        end