From cf0e1b5f3422dc1adc60b1684591ab0962c441bb Mon Sep 17 00:00:00 2001 From: Ian C Date: Mon, 5 Dec 2005 00:59:34 +0000 Subject: Updates and added help page --- help.bmx | 209 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 209 insertions(+) create mode 100644 help.bmx (limited to 'help.bmx') diff --git a/help.bmx b/help.bmx new file mode 100644 index 0000000..df2e80b --- /dev/null +++ b/help.bmx @@ -0,0 +1,209 @@ +' Hardwire +' +' Copyright 2005 Ian Cowburn +' +' $Id$ +' +Strict +Import "types.bmx" + +Import noddybox.bitmapfont +Import noddybox.gfxmenu + + +' Included binaries +' +Incbin "HELP/help.txt" +Incbin "HELP/pit.png" +Incbin "HELP/piece.png" +Incbin "HELP/wire1.png" +Incbin "HELP/wire2.png" +Incbin "HELP/wire3.png" +Incbin "HELP/loop1.png" +Incbin "HELP/bomb.png" +Incbin "HELP/twister.png" + +Type THelp + Const TOP:Int=50 + Const BOTTOM:Int=550 + Field list:TList + Field pos:Int + Field item:TLink + Field del:Int + + Method New() + Local str:TStream=ReadStream("incbin::HELP/help.txt") + + Assert str,"Unable to open help file" + + list=CreateList() + + While Not str.Eof() + Local line:String=str.ReadLine() + + If line.length And line[0]=Asc("#") + list.AddLast(THelpImage.Create(line[1..])) + Else + list.AddLast(THelpText.Create(line)) + EndIf + Wend + + item=list.LastLink() + pos=TOP-Current().Height() + End Method + + Method Draw() + Local y:Int=pos + Local i:TLink=item + + While yTOP + item=item.PrevLink() + If Not item + item=list.LastLink() + EndIf + pos:-Current().Height() + Wend + ElseIf KeyHit(KEY_ESCAPE) + FlushKeys() + done=True + Else + del=0 + EndIf + + Flip + Wend + + SetColor(255,255,255) + End Method +End Type + +Type THelpItem Abstract + Method Height:Int() Abstract + Method Draw(y:Int) Abstract +End Type + +Type THelpText Extends THelpItem + Field txt:String + Field r:Int + Field g:Int + Field b:Int + Field sc:Int + + Function Create:THelpItem(txt:String) + Local o:THelpText=New THelpText + + Select txt[0] + Case Asc("@") + o.sc=2 + o.r=255 + o.g=255 + o.b=0 + o.txt=txt[1..] + Case Asc("!") + o.sc=1 + o.r=255 + o.g=255 + o.b=0 + o.txt=txt[1..] + Default + o.sc=1 + o.r=255 + o.g=255 + o.b=255 + o.txt=txt + End Select + + Return THelpItem(o) + End Function + + Method Height:Int() + Return GameGFX.large.MaxHeight()*sc + End Method + + Method Draw(y:Int) + SetScale(sc,sc) + GameGFX.large.Centre(txt,y,r,g,b) + SetScale(1,1) + End Method +End Type + + +Type THelpImage Extends THelpItem + Field img:TImage + Field x:Int + + Function Create:THelpItem(url:String) + Local o:THelpImage=New THelpImage + o.img=LoadImage(url) + Assert o,"Failed to load help image " + url + o.x=(GraphicsWidth()-ImageWidth(o.img))/2 + Return THelpItem(o) + End Function + + Method Height:Int() + Return ImageHeight(img) + End Method + + Method Draw(y:Int) + SetColor(255,255,255) + DrawImage(img,x,y) + End Method +End Type \ No newline at end of file -- cgit v1.2.3