forked from pyrex/chameleonic
Compare commits
2 Commits
aefdfeb99c
...
e878717c31
Author | SHA1 | Date | |
---|---|---|---|
e878717c31 | |||
a6debc3974 |
101
chameleonic.p8
101
chameleonic.p8
@ -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]
|
||||||
@ -1743,20 +1748,41 @@ function rot13(s)
|
|||||||
end
|
end
|
||||||
return chr(unpack(sord))
|
return chr(unpack(sord))
|
||||||
end
|
end
|
||||||
|
|
||||||
--hint file format:
|
--hint file format:
|
||||||
-- each row is one hint. 4 columns per row
|
-- each row is one hint.
|
||||||
-- separated with a grave (`) character
|
-- 4 or 5 columns
|
||||||
-- room# ` X (screen px) ` Y (screen px) ` message
|
-- separated with a
|
||||||
-- message is ROT13d; works for a-zA-Z
|
-- grave (`) character
|
||||||
|
-- [1] room#
|
||||||
|
-- [2] x coord
|
||||||
|
-- [3] y coord
|
||||||
|
-- [4] message line 1 (rot13)
|
||||||
|
-- [5] message llne 2 (rot13)
|
||||||
|
-- row 5 can be omitted
|
||||||
|
-- for a 1-line hint
|
||||||
|
--
|
||||||
|
-- multiple hints for the same
|
||||||
|
-- room are revealed in order
|
||||||
|
|
||||||
hints = {}
|
hints = {}
|
||||||
add(real_modules,hints)
|
add(real_modules,hints)
|
||||||
|
|
||||||
function hints:init()
|
function hints:init()
|
||||||
local h = gsv[[0`64`64`zYRZ
|
local h = gsv[[0`42`57`🅾️ yVPX` ■
|
||||||
0`32`32`fCYHOC]]
|
0`42`73`❎, ❎ cHYY
|
||||||
|
1`35`34`⁘ sVYY
|
||||||
|
1`99`82`■ cHYY
|
||||||
|
1`42`98`⁘`VTABER
|
||||||
|
2`75`65`i <`⁘
|
||||||
|
2`104`73` ■`cHYY
|
||||||
|
2`27`42`⁘
|
||||||
|
3`51`106`■ cHYY
|
||||||
|
3`27`81`⁘ HAOYBPX ZR
|
||||||
|
3`91`33`■ FGNAQ` URER]]
|
||||||
for rec in all(h) do
|
for rec in all(h) do
|
||||||
rec[4]=rot13(rec[4])
|
rec[4]=rot13(rec[4])
|
||||||
|
if(rec[5]) rec[5]=rot13(rec[5])
|
||||||
local lh = self[rec[1]]
|
local lh = self[rec[1]]
|
||||||
if lh then
|
if lh then
|
||||||
add(lh,rec)
|
add(lh,rec)
|
||||||
@ -1766,27 +1792,50 @@ 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
|
||||||
|
|
||||||
hintflicker={7,10,9,8,8,9,10,7}
|
function shdprint(txt,x,y,c)
|
||||||
function hints:draw2()
|
|
||||||
pal()
|
|
||||||
local c=hintflicker[t()%1*#hintflicker\1+1]
|
|
||||||
-- 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
|
|
||||||
if (i > level.hintlevel) return
|
|
||||||
local _,x,y,txt=unpack(h)
|
|
||||||
print(txt,x-1,y+1,1)
|
print(txt,x-1,y+1,1)
|
||||||
print(txt,x,y,c)
|
print(txt,x,y,c)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
hintflicker=split"7,10,9,8,8,9,10,7"
|
||||||
|
function hints:draw2()
|
||||||
|
pal()
|
||||||
|
local c=cycle(hintflicker)
|
||||||
|
|
||||||
|
for i,h in ipairs(self[level.ix]) do
|
||||||
|
if (i > level.hintlevel) return
|
||||||
|
local _,x,y,txt,txt2=unpack(h)
|
||||||
|
shdprint(txt,x,y,c)
|
||||||
|
if (txt2) shdprint(txt2,x,y+8,c)
|
||||||
|
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
|
end
|
||||||
|
|
||||||
__gfx__
|
__gfx__
|
||||||
@ -1814,10 +1863,10 @@ eeee0000cc04405500444400efeeee5e11111111e5eeeefeeeeeeeeeeeeeeeeeffffffffffffffff
|
|||||||
0a000aa4441a91a1bbabbbbbeffeeeeeeeeeeeeeeeeeeffeff1ff1ff11111111ff1111ff00000000000000000000000000000000000000000000000000000000
|
0a000aa4441a91a1bbabbbbbeffeeeeeeeeeeeeeeeeeeffeff1ff1ff11111111ff1111ff00000000000000000000000000000000000000000000000000000000
|
||||||
00a0044449a110a1bbbbbbbbeeffffffffffffffffffffeeff1ff1ffffffffffffffffff00000000000000000000000000000000000000000000000000000000
|
00a0044449a110a1bbbbbbbbeeffffffffffffffffffffeeff1ff1ffffffffffffffffff00000000000000000000000000000000000000000000000000000000
|
||||||
000aa111991111103bbbbbb3eeeeeeeeeeeeeeeeeeeeeeeeff1ff1ffffffffffffffffff00000000000000000000000000000000000000000000000000000000
|
000aa111991111103bbbbbb3eeeeeeeeeeeeeeeeeeeeeeeeff1ff1ffffffffffffffffff00000000000000000000000000000000000000000000000000000000
|
||||||
00000000991000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111999999111111111
|
0000000099100000f765000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111999999111111111
|
||||||
00000000990000000000000000000000000000000000000000000000000000000000000000000000000000000000000019911991999999911999999119999999
|
00000000990000007700000000000000000000000000000000000000000000000000000000000000000000000000000019911991999999911999999119999999
|
||||||
00000000990000000000000000000000000000000000000000000000000000000000000000000000000000000000000019977991999999911999999119999999
|
00000000990000006060000000000000000000000000000000000000000000000000000000000000000000000000000019977991999999911999999119999999
|
||||||
00000000090000000000000000000000000000000000000000000000000000000000000000000000000000000000000019911991999117111991199111711999
|
00000000090000005005000000000000000000000000000000000000000000000000000000000000000000000000000019911991999117111991199111711999
|
||||||
00000000aa0000000000000000000000000000000000000000000000000000000000000000000000000000000000000019911991999117111991199111711999
|
00000000aa0000000000000000000000000000000000000000000000000000000000000000000000000000000000000019911991999117111991199111711999
|
||||||
0000000077a000000000000000000000000000000000000000000000000000000000000000000000000000000000000019999991999999911997799119999999
|
0000000077a000000000000000000000000000000000000000000000000000000000000000000000000000000000000019999991999999911997799119999999
|
||||||
00000007777a00000000000000000000000000000000000000000000000000000000000000000000000000000000000019999991999999911991199119999999
|
00000007777a00000000000000000000000000000000000000000000000000000000000000000000000000000000000019999991999999911991199119999999
|
||||||
|
Loading…
Reference in New Issue
Block a user