Compare commits
2 Commits
09ef3617f7
...
dee31bf52f
Author | SHA1 | Date | |
---|---|---|---|
dee31bf52f | |||
e5afd605c8 |
@ -107,8 +107,6 @@ function print3(s,y,w)
|
|||||||
end
|
end
|
||||||
|
|
||||||
function cyclenum(n,low,up)
|
function cyclenum(n,low,up)
|
||||||
low=low or 1
|
|
||||||
up=up or low+1
|
|
||||||
return(n-low)%(up-low+1)+low
|
return(n-low)%(up-low+1)+low
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -1263,7 +1261,8 @@ function init_menu()
|
|||||||
|
|
||||||
bg.set("falling")
|
bg.set("falling")
|
||||||
gstate=1
|
gstate=1
|
||||||
gamev,mode,slc={sprite={}},mode or 1,1
|
gamev,mode,slc={sprite={}},mode or dget(63),1
|
||||||
|
if (mode<1) mode=1
|
||||||
|
|
||||||
options=options or {
|
options=options or {
|
||||||
gamev={},
|
gamev={},
|
||||||
@ -1365,13 +1364,13 @@ function update_menu()
|
|||||||
sfx"12"
|
sfx"12"
|
||||||
end
|
end
|
||||||
--start game
|
--start game
|
||||||
if 1==slc then
|
if slc <= 2 then
|
||||||
if confirm()then
|
if confirm()then
|
||||||
|
dset(63,mode)
|
||||||
cpt(modes[modes.list[mode]],gamev)
|
cpt(modes[modes.list[mode]],gamev)
|
||||||
init_game(gamev)
|
init_game(gamev)
|
||||||
end
|
end
|
||||||
--mode selection
|
if slc == 2 then
|
||||||
elseif 2==slc then
|
|
||||||
if btnp"0"then
|
if btnp"0"then
|
||||||
sfx"13"
|
sfx"13"
|
||||||
mode-=1
|
mode-=1
|
||||||
@ -1381,6 +1380,7 @@ function update_menu()
|
|||||||
mode%=#modes.list
|
mode%=#modes.list
|
||||||
mode+=1
|
mode+=1
|
||||||
end
|
end
|
||||||
|
end
|
||||||
--option menu
|
--option menu
|
||||||
elseif 3==slc and confirm()then
|
elseif 3==slc and confirm()then
|
||||||
init_options()
|
init_options()
|
||||||
@ -2002,6 +2002,7 @@ anim={
|
|||||||
swooshes={},
|
swooshes={},
|
||||||
|
|
||||||
new=function(t,a)
|
new=function(t,a)
|
||||||
|
if (debris==3 and t=="crush") return
|
||||||
local listname = t.."es"
|
local listname = t.."es"
|
||||||
a.type,a.new,a.next=t,true,anim[listname].next
|
a.type,a.new,a.next=t,true,anim[listname].next
|
||||||
anim[listname].next=a
|
anim[listname].next=a
|
||||||
@ -2011,12 +2012,14 @@ anim={
|
|||||||
draw=function()
|
draw=function()
|
||||||
--drawing in correct order
|
--drawing in correct order
|
||||||
for t in all({"swoosh","crush"})do
|
for t in all({"swoosh","crush"})do
|
||||||
local lnm = t.."es"
|
local afxn,prev=anim[t],anim[t.."es"]
|
||||||
local prev=anim[lnm]
|
|
||||||
local curr=prev.next
|
local curr=prev.next
|
||||||
while curr do
|
while curr do
|
||||||
if (not curr.wait and not anim[t](curr)) prev.next=curr.next
|
if not curr.wait and not afxn(curr) then
|
||||||
|
prev.next=curr.next
|
||||||
|
else
|
||||||
prev=curr
|
prev=curr
|
||||||
|
end
|
||||||
curr=curr.next
|
curr=curr.next
|
||||||
end
|
end
|
||||||
poke2(0x5f06,0x706)
|
poke2(0x5f06,0x706)
|
||||||
@ -2039,8 +2042,7 @@ anim={
|
|||||||
|
|
||||||
swoosh=function(a)
|
swoosh=function(a)
|
||||||
local baseframes = 10/clrspd --10 wide
|
local baseframes = 10/clrspd --10 wide
|
||||||
local totalframes = baseframes+5 --5 swooshclrs
|
if a.age > baseframes+5 then
|
||||||
if a.age > totalframes then
|
|
||||||
dirty=true
|
dirty=true
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
@ -2058,11 +2060,9 @@ anim={
|
|||||||
end,
|
end,
|
||||||
|
|
||||||
crush=function(a)
|
crush=function(a)
|
||||||
if (debris==3) return false
|
|
||||||
if (a.lag>0) return true
|
if (a.lag>0) return true
|
||||||
poke2(0x5f06,a.c)
|
poke2(0x5f06,a.c)
|
||||||
local spr_base = 8*sprite.normal
|
local spr_base,ret = 8*sprite.normal,false
|
||||||
local ret = false
|
|
||||||
for p in all(a.list) do
|
for p in all(a.list) do
|
||||||
ret = ret or p.y<128
|
ret = ret or p.y<128
|
||||||
sspr(spr_base+p.i%2*3,p.i\2*3,3,3,p.x,p.y)
|
sspr(spr_base+p.i%2*3,p.i\2*3,3,3,p.x,p.y)
|
||||||
@ -2081,12 +2081,14 @@ end
|
|||||||
|
|
||||||
function upd_crush(a)
|
function upd_crush(a)
|
||||||
if a.list==nil then
|
if a.list==nil then
|
||||||
|
local c2=clrspd/2
|
||||||
a.list = {
|
a.list = {
|
||||||
{i=0,x=a.x,y=a.y,dx=-rnd(0.5),dy=rnd(1)-1.5},
|
{i=0,x=a.x,y=a.y,dx=-rnd(c2),dy=(rnd(1)-1.5)},
|
||||||
{i=1,x=a.x+3,y=a.y,dx=rnd(0.5),dy=rnd(1)-1.5},
|
{i=1,x=a.x+3,y=a.y,dx=rnd(c2),dy=(rnd(1)-1.5)},
|
||||||
{i=3,x=a.x+3,y=a.y+3,dx=rnd(0.5),dy=rnd(1)-0.5},
|
{i=3,x=a.x+3,y=a.y+3,dx=rnd(c2),dy=(rnd(1)-0.5)},
|
||||||
{i=2,x=a.x,y=a.y+3,dx=-rnd(0.5),dy=rnd(1)-0.5}
|
{i=2,x=a.x,y=a.y+3,dx=-rnd(c2),dy=(rnd(1)-0.5)}
|
||||||
}
|
}
|
||||||
|
a.g=0.075*clrspd
|
||||||
if debris==2 then
|
if debris==2 then
|
||||||
deli(a.list,irnd1(4))
|
deli(a.list,irnd1(4))
|
||||||
deli(a.list,irnd1(3))
|
deli(a.list,irnd1(3))
|
||||||
@ -2099,7 +2101,7 @@ function upd_crush(a)
|
|||||||
for p in all(a.list) do
|
for p in all(a.list) do
|
||||||
p.x+=p.dx
|
p.x+=p.dx
|
||||||
p.y+=p.dy
|
p.y+=p.dy
|
||||||
p.dy+=0.075
|
p.dy+=a.g
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user