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
 | 
					 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)
 | 
				
			||||||
@@ -1770,6 +1791,11 @@ function hints:init()
 | 
				
			|||||||
 poke(0x5f2d,1)
 | 
					 poke(0x5f2d,1)
 | 
				
			||||||
end
 | 
					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}
 | 
					hintflicker={7,10,9,8,8,9,10,7}
 | 
				
			||||||
function hints:draw2()
 | 
					function hints:draw2()
 | 
				
			||||||
 pal()
 | 
					 pal()
 | 
				
			||||||
@@ -1783,9 +1809,9 @@ function hints:draw2()
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 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
 | 
				
			||||||
  local _,x,y,txt=unpack(h)
 | 
					  local _,x,y,txt,txt2=unpack(h)
 | 
				
			||||||
  print(txt,x-1,y+1,1)
 | 
					  shdprint(txt,x,y,c)
 | 
				
			||||||
  print(txt,x,y,c)
 | 
					  if (txt2) shdprint(txt2,x,y+8,c)
 | 
				
			||||||
 end
 | 
					 end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user