hints through room 3; two line hints (#19)
most hints need to be 2 lines due to limited space. Reviewed-on: #19 Co-authored-by: Kistaro Windrider <kistaro@gmail.com> Co-committed-by: Kistaro Windrider <kistaro@gmail.com>
This commit was merged in pull request #19.
	This commit is contained in:
		@@ -1743,20 +1743,41 @@ function rot13(s)
 | 
			
		||||
 end
 | 
			
		||||
 return chr(unpack(sord))
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
--hint file format:
 | 
			
		||||
-- each row is one hint. 4 columns per row
 | 
			
		||||
-- separated with a grave (`) character
 | 
			
		||||
-- room# ` X (screen px) ` Y (screen px) ` message
 | 
			
		||||
-- message is ROT13d; works for a-zA-Z
 | 
			
		||||
-- each row is one hint.
 | 
			
		||||
-- 4 or 5 columns
 | 
			
		||||
-- separated with a
 | 
			
		||||
-- 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 = {}
 | 
			
		||||
add(real_modules,hints)
 | 
			
		||||
 | 
			
		||||
function hints:init()
 | 
			
		||||
 local h = gsv[[0`64`64`zYRZ
 | 
			
		||||
0`32`32`fCYHOC]]
 | 
			
		||||
 local h = gsv[[0`42`57`🅾️ yVPX`  ■
 | 
			
		||||
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
 | 
			
		||||
  rec[4]=rot13(rec[4])
 | 
			
		||||
  if(rec[5]) rec[5]=rot13(rec[5])
 | 
			
		||||
  local lh = self[rec[1]]
 | 
			
		||||
  if lh then
 | 
			
		||||
   add(lh,rec)
 | 
			
		||||
@@ -1770,6 +1791,11 @@ function hints:init()
 | 
			
		||||
 poke(0x5f2d,1)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function shdprint(txt,x,y,c)
 | 
			
		||||
 print(txt,x-1,y+1,1)
 | 
			
		||||
 print(txt,x,y,c)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
hintflicker={7,10,9,8,8,9,10,7}
 | 
			
		||||
function hints:draw2()
 | 
			
		||||
 pal()
 | 
			
		||||
@@ -1783,9 +1809,9 @@ function hints:draw2()
 | 
			
		||||
 | 
			
		||||
 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,y,c)
 | 
			
		||||
  local _,x,y,txt,txt2=unpack(h)
 | 
			
		||||
  shdprint(txt,x,y,c)
 | 
			
		||||
  if (txt2) shdprint(txt2,x,y+8,c)
 | 
			
		||||
 end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user