WIP: sprintf #21

Draft
kistaro wants to merge 11 commits from kistaro/chameleonic:sprintf into main
Showing only changes of commit e878717c31 - Show all commits

View File

@ -33,6 +33,11 @@ function gsv(s)
return ret return ret
end end
function cycle(tbl,period)
period = period or 1
return tbl[t()%period*#tbl\period+1]
end
mnames={} mnames={}
function names(root) function names(root)
local n=mnames[root] local n=mnames[root]
@ -1787,8 +1792,6 @@ function hints:init()
end end
menuitem(1,"get hint",function() level.hintlevel+=1 end) menuitem(1,"get hint",function() level.hintlevel+=1 end)
menuitem(2,"hide hints",function() level.hintlevel=0 end) menuitem(2,"hide hints",function() level.hintlevel=0 end)
-- debug mode: enable mouse
poke(0x5f2d,1)
end end
function shdprint(txt,x,y,c) function shdprint(txt,x,y,c)
@ -1796,16 +1799,10 @@ function shdprint(txt,x,y,c)
print(txt,x,y,c) print(txt,x,y,c)
end end
hintflicker={7,10,9,8,8,9,10,7} hintflicker=split"7,10,9,8,8,9,10,7"
function hints:draw2() function hints:draw2()
pal() pal()
local c=hintflicker[t()%1*#hintflicker\1+1] local c=cycle(hintflicker)
-- debug mode: mouse coord display
if stat(34) != 0 then
local mousex, mousey = stat(32), stat(33)
print("x ("..mousex..", "..mousey..")",mousex,mousey,c)
end
for i,h in ipairs(self[level.ix]) do for i,h in ipairs(self[level.ix]) do
if (i > level.hintlevel) return if (i > level.hintlevel) return
@ -1815,6 +1812,32 @@ function hints:draw2()
end end
end end
-->8
-- debug mouse support
debugmouse = {}
-- comment this out to disable debug mode
add(real_modules, debugmouse)
function debugmouse:init()
poke(0x5f2d,1)
end
debugflicker=split"5,6,7,15,14,8,2,4,9,10,11,3,12,13"
debugchs = split" ,x, ,□"
function debugmouse:draw3()
if (stat(34) == 0) return
pal(15,cycle(debugflicker,1.5))
local x, y, c = stat(32), stat(33), cycle(debugchs,2)
if (c == " ") spr(50,x,y)
print(c,x,y,15)
local px, py = mid(0,x,89), mid(0, y > 111 and y - 12 or y + 6, 117)
print("("..x..", "..y..")\n["..(x\8)..", "..(y\8).."]",px,py,15)
pal()
end
__gfx__ __gfx__
000030000000002200003000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeff1ff1ff1fffffff1ffffff1fffffff1dddddddd111111110005000000000000 000030000000002200003000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeff1ff1ff1fffffff1ffffff1fffffff1dddddddd111111110005000000000000
003333300000332200333330eeffffffffffffffffffffeee5e555e55e555e5eff1ff1ffffffffffffffffffffffffffdddddddd111111110000500000000000 003333300000332200333330eeffffffffffffffffffffeee5e555e55e555e5eff1ff1ffffffffffffffffffffffffffdddddddd111111110000500000000000
@ -1840,10 +1863,10 @@ eeee0000cc04405500444400efeeee5e11111111e5eeeefeeeeeeeeeeeeeeeeeffffffffffffffff
0a000aa4441a91a1bbabbbbbeffeeeeeeeeeeeeeeeeeeffeff1ff1ff11111111ff1111ff00000000000000000000000000000000000000000000000000000000 0a000aa4441a91a1bbabbbbbeffeeeeeeeeeeeeeeeeeeffeff1ff1ff11111111ff1111ff00000000000000000000000000000000000000000000000000000000
00a0044449a110a1bbbbbbbbeeffffffffffffffffffffeeff1ff1ffffffffffffffffff00000000000000000000000000000000000000000000000000000000 00a0044449a110a1bbbbbbbbeeffffffffffffffffffffeeff1ff1ffffffffffffffffff00000000000000000000000000000000000000000000000000000000
000aa111991111103bbbbbb3eeeeeeeeeeeeeeeeeeeeeeeeff1ff1ffffffffffffffffff00000000000000000000000000000000000000000000000000000000 000aa111991111103bbbbbb3eeeeeeeeeeeeeeeeeeeeeeeeff1ff1ffffffffffffffffff00000000000000000000000000000000000000000000000000000000
00000000991000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111999999111111111 0000000099100000f765000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111999999111111111
00000000990000000000000000000000000000000000000000000000000000000000000000000000000000000000000019911991999999911999999119999999 00000000990000007700000000000000000000000000000000000000000000000000000000000000000000000000000019911991999999911999999119999999
00000000990000000000000000000000000000000000000000000000000000000000000000000000000000000000000019977991999999911999999119999999 00000000990000006060000000000000000000000000000000000000000000000000000000000000000000000000000019977991999999911999999119999999
00000000090000000000000000000000000000000000000000000000000000000000000000000000000000000000000019911991999117111991199111711999 00000000090000005005000000000000000000000000000000000000000000000000000000000000000000000000000019911991999117111991199111711999
00000000aa0000000000000000000000000000000000000000000000000000000000000000000000000000000000000019911991999117111991199111711999 00000000aa0000000000000000000000000000000000000000000000000000000000000000000000000000000000000019911991999117111991199111711999
0000000077a000000000000000000000000000000000000000000000000000000000000000000000000000000000000019999991999999911997799119999999 0000000077a000000000000000000000000000000000000000000000000000000000000000000000000000000000000019999991999999911997799119999999
00000007777a00000000000000000000000000000000000000000000000000000000000000000000000000000000000019999991999999911991199119999999 00000007777a00000000000000000000000000000000000000000000000000000000000000000000000000000000000019999991999999911991199119999999