init
do
- load_levels
init_buttons
entities.clear
title
# 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)
# 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
end
end
end
+
+ fun save
+ do
+ var l = level
+ if l != null then
+ l.save
+ end
+ end
end
# The spash title image
# img loading?
end
- # Maximum wanted frame per second
- var max_fps = 30
-
- # clock used to track FPS
- private var clock = new Clock
+ redef fun on_pause
+ do
+ super
+ game.save
+ end
redef fun frame_core(display)
do
game.step
game.draw(display)
- var dt = clock.lapse
- var target_dt = 1000000000 / max_fps
- if dt.sec == 0 and dt.nanosec < target_dt then
- var sleep_t = target_dt - dt.nanosec
- sys.nanosleep(0, sleep_t)
- end
end
redef fun input(input_event)
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