Merge: GitHub api: Issue events, contributor stats, files
[nit.git] / contrib / friendz / src / friendz.nit
index 3877fe2..2dd8d80 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
@@ -140,7 +142,6 @@ class TextButton
        var textx: Int
 
        redef fun draw(ctx) do
-               var x = self.x
                if self.toggleable then
                        var w
                        if self.toggled or not self.enabled then w = 6 else w = 7
@@ -1081,8 +1082,8 @@ redef class Game
                level = null
                var i = levels.first
                for l in levels do
-                       if l.get_state == l.l_open then break
                        i = l
+                       if l.get_state == l.l_open then break
                end
                entities.push(new StartButton(self, i))
        end
@@ -1143,7 +1144,8 @@ redef class Game
                end
                var ev = lastev
                if ev isa Event then
-                       display.blit(img[4,0],ev.offset_x-42,ev.offset_y-6)
+                       # Cursor, kept for debugging
+                       #display.blit(img[4,0],ev.offset_x-42,ev.offset_y-6)
                end
                dirty_all = false
        end
@@ -1268,6 +1270,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
@@ -1635,3 +1649,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