Basic save/load system #23
@ -8,8 +8,9 @@ real_modules={}
|
|||||||
frame=0
|
frame=0
|
||||||
function _init()
|
function _init()
|
||||||
-- printh("restarting")
|
-- printh("restarting")
|
||||||
music_on()
|
_doall("init")
|
||||||
_doall("init") end
|
end
|
||||||
|
|
||||||
function _update()
|
function _update()
|
||||||
frame+=1
|
frame+=1
|
||||||
if (frame%1==0) _doall("update") end
|
if (frame%1==0) _doall("update") end
|
||||||
@ -17,12 +18,16 @@ function _draw()
|
|||||||
_doall("draw") end
|
_doall("draw") end
|
||||||
|
|
||||||
function music_on()
|
function music_on()
|
||||||
music(0)
|
if (stat(54) ~= 0) music(0)
|
||||||
|
persist.music=true
|
||||||
|
persist:write()
|
||||||
menuitem(3, "music: on", music_off)
|
menuitem(3, "music: on", music_off)
|
||||||
end
|
end
|
||||||
|
|
||||||
function music_off()
|
function music_off()
|
||||||
music(-1)
|
music(-1)
|
||||||
|
persist.music=false
|
||||||
|
persist:write()
|
||||||
menuitem(3, "music: off", music_on)
|
menuitem(3, "music: off", music_on)
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -261,7 +266,7 @@ end
|
|||||||
title={}
|
title={}
|
||||||
add(modules,title)
|
add(modules,title)
|
||||||
|
|
||||||
blinkcol=10
|
lvlshimmer = {4,9,10,10,9}
|
||||||
function title:draw()
|
function title:draw()
|
||||||
cls(0)
|
cls(0)
|
||||||
-- this is right for 72x32
|
-- this is right for 72x32
|
||||||
@ -270,22 +275,33 @@ function title:draw()
|
|||||||
print("[nyeogmi]",62,73,7)
|
print("[nyeogmi]",62,73,7)
|
||||||
print("kistaro",32,79,7)
|
print("kistaro",32,79,7)
|
||||||
local lvlstr = "⬅️ "..start_level.." ➡️"
|
local lvlstr = "⬅️ "..start_level.." ➡️"
|
||||||
print(lvlstr,50,91,1)
|
local lx, ly = 51+wrongbleep:vibrate(), 90+wrongbleep:vibrate()
|
||||||
print(lvlstr,51,90,blinkcol)
|
print(lvlstr,lx-1,ly+1,1)
|
||||||
|
print(lvlstr,lx,ly,cycle(lvlshimmer))
|
||||||
end
|
end
|
||||||
|
|
||||||
start_level=0
|
function title:init()
|
||||||
max_level=31
|
start_level=persist.recent_level
|
||||||
|
-- max_level=persist.max_level
|
||||||
|
max_level = 31 --debugging/coding
|
||||||
|
wiped = false
|
||||||
|
end
|
||||||
|
|
||||||
function title:update()
|
function title:update()
|
||||||
blinkcol=9
|
|
||||||
if (time()*4\1%2==0) blinkcol=10
|
|
||||||
|
|
||||||
if (btnp"0") start_level-=1
|
if (btnp"0") start_level-=1
|
||||||
if (btnp"1") start_level+=1
|
if (btnp"1") start_level+=1
|
||||||
start_level%=max_level
|
start_level%=(max_level+1)
|
||||||
|
if btn"3" and not wiped then
|
||||||
if (btnp"4" or btnp"5") modules=real_modules _init() music(0)
|
wrongbleep:bleep()
|
||||||
|
if (wrongbleep:adequately_warned()) then
|
||||||
|
persist:wipe()
|
||||||
|
max_level = 0
|
||||||
|
start_level = 0
|
||||||
|
wiped=true
|
||||||
|
-- todo: sfx(kaboom!)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if (btnp"4" or btnp"5") modules=real_modules _init()
|
||||||
end
|
end
|
||||||
|
|
||||||
-->8
|
-->8
|
||||||
@ -308,6 +324,8 @@ function level:reinit(n)
|
|||||||
self:load_dynobjs()
|
self:load_dynobjs()
|
||||||
self:recollide_reanchor()
|
self:recollide_reanchor()
|
||||||
self:spawn_exit()
|
self:spawn_exit()
|
||||||
|
|
||||||
|
persist:lvlstart()
|
||||||
end
|
end
|
||||||
|
|
||||||
function level:restart()
|
function level:restart()
|
||||||
@ -1715,6 +1733,7 @@ end
|
|||||||
-->8
|
-->8
|
||||||
--wrongbleeps
|
--wrongbleeps
|
||||||
wrongbleep={}
|
wrongbleep={}
|
||||||
|
add(modules,wrongbleep)
|
||||||
add(real_modules,wrongbleep)
|
add(real_modules,wrongbleep)
|
||||||
function wrongbleep:init()
|
function wrongbleep:init()
|
||||||
self.duration=0
|
self.duration=0
|
||||||
@ -1722,8 +1741,12 @@ function wrongbleep:init()
|
|||||||
end
|
end
|
||||||
function wrongbleep:update()
|
function wrongbleep:update()
|
||||||
if (self.duration>5) self.duration=5
|
if (self.duration>5) self.duration=5
|
||||||
if self.duration>0 then sfx(63,3) self.continuous+=1
|
if self.duration>0 then
|
||||||
else self.continuous=0 end
|
sfx(63,3)
|
||||||
|
self.continuous+=1
|
||||||
|
else
|
||||||
|
self.continuous=0
|
||||||
|
end
|
||||||
self.duration=max(self.duration-1,-4)
|
self.duration=max(self.duration-1,-4)
|
||||||
end
|
end
|
||||||
function wrongbleep:bleep(duration)
|
function wrongbleep:bleep(duration)
|
||||||
@ -1881,6 +1904,48 @@ function debugmouse:draw3()
|
|||||||
pal()
|
pal()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-->8
|
||||||
|
-- save/load
|
||||||
|
|
||||||
|
persist={}
|
||||||
|
add(modules, persist)
|
||||||
|
add(real_modules, persist)
|
||||||
|
|
||||||
|
function persist:init0()
|
||||||
|
cartdata("ulimate_lizard_total_destruction_0_1")
|
||||||
|
self.init0 = self.read
|
||||||
|
self:read()
|
||||||
|
end
|
||||||
|
|
||||||
|
function persist:read()
|
||||||
|
self.ready=false
|
||||||
|
local m = dget(0) == 0
|
||||||
|
self.music = m
|
||||||
|
if m then music_on() else music_off() end
|
||||||
|
self.max_level = dget(1)
|
||||||
|
self.recent_level = dget(2)
|
||||||
|
self.ready=true
|
||||||
|
end
|
||||||
|
|
||||||
|
function persist:wipe()
|
||||||
|
for i=0,64 do
|
||||||
|
dset(i,0)
|
||||||
|
end
|
||||||
|
self:read()
|
||||||
|
end
|
||||||
|
|
||||||
|
function persist:lvlstart()
|
||||||
|
self.recent_level = level.ix
|
||||||
|
self.max_level = max(self.max_level, level.ix)
|
||||||
|
self:write()
|
||||||
|
end
|
||||||
|
|
||||||
|
function persist:write()
|
||||||
|
if (not self.ready) return
|
||||||
|
dset(0, self.music and 0 or -1)
|
||||||
|
dset(1, self.max_level)
|
||||||
|
dset(2, self.recent_level)
|
||||||
|
end
|
||||||
__gfx__
|
__gfx__
|
||||||
000030000000002200003000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeff1ff1ff1fffffff1ffffff1fffffff1dddddddd111111110000000033300333
|
000030000000002200003000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeff1ff1ff1fffffff1ffffff1fffffff1dddddddd111111110000000033300333
|
||||||
003333300000332200333330eeffffffffffffffffffffeee5e555e55e555e5eff1ff1ffffffffffffffffffffffffffdddddddd111111110cc00cc033300333
|
003333300000332200333330eeffffffffffffffffffffeee5e555e55e555e5eff1ff1ffffffffffffffffffffffffffdddddddd111111110cc00cc033300333
|
||||||
|
Loading…
Reference in New Issue
Block a user