From d23bfbafcae77cfe0dacea61db578c91a70b8c32 Mon Sep 17 00:00:00 2001 From: Ian C Date: Fri, 12 Oct 2007 23:41:49 +0000 Subject: Updates for update blitz --- hiscore.bmx | 390 ++++++++++++++++++++++++++++++------------------------------ 1 file changed, 195 insertions(+), 195 deletions(-) (limited to 'hiscore.bmx') diff --git a/hiscore.bmx b/hiscore.bmx index ce18e01..99f436e 100644 --- a/hiscore.bmx +++ b/hiscore.bmx @@ -1,195 +1,195 @@ -' Vectoroids -' -' Copyright 2005 Ian Cowburn -' -' $Id$ -' -Strict -Import "types.bmx" - -Type THiscore - - Const NUM:Int=5 - Field score:THiscoreEnt[] - Field col:Int[] - Field coli:Int[] - - Function Load:THiscore() - Local o:THiscore=New THiscore - - o.score=New THiscoreEnt[NUM] - o.col=New Int[NUM] - o.coli=New Int[NUM] - - For Local f:Int=0 Until NUM - o.col[f]=254-f*20 - o.coli[f]=1 - Next - - Local s:TStream=ReadStream("vectoroids.hiscore") - - If s=Null - For Local f:Int=0 Until NUM - o.score[f]=THiscoreEnt.Create("SV",10000-f*2000) - Next - Else - s=LittleEndianStream(s) - - For Local f:Int=0 Until NUM - Local sc:Int=s.ReadInt() - Local n:String=s.ReadLine() - o.score[f]=THiscoreEnt.Create(n,sc) - Next - - s.Close() - EndIf - - Return o - End Function - - Method Save() - Local s:TStream=WriteStream("vectoroids.hiscore") - - If s=Null - Return - EndIf - - s=LittleEndianStream(s) - - For Local sc:THiscoreEnt=EachIn score - s.WriteInt(sc.score) - s.WriteLine(sc.name) - Next - - s.Close() - End Method - - Method Display(y:Int) - GameGFX.font.Centre("ALL TIME HIGH SCORES",y) - y:+20 - - For Local f:Int=0 Until NUM - GameGFX.font.DrawColoured(score[f].name,300,y,col[f],col[f],col[f]) - Local l:Int=GameGFX.font.TextWidth(score[f].score) - GameGFX.font.DrawColoured(score[f].score,500-l,y,col[f],col[f],col[f]) - y:+10 - col[f]:+coli[f] - - If col[f]=255 Or col[f]=150 - coli[f]=-coli[f] - EndIf - Next - End Method - - Method Check(sc:Int) - If scGameConfig.kleft Or del=0 - If last=GameConfig.kleft - del=5 - Else - del=20 - EndIf - last=GameConfig.kleft - cur:-1 - If cur<0 - cur:+a.length - EndIf - EndIf - press=True - ElseIf KeyDown(GameConfig.kright) - If last<>GameConfig.kright Or del=0 - If last=GameConfig.kright - del=5 - Else - del=20 - EndIf - last=GameConfig.kright - cur:+1 - If cur=a.length - cur=0 - EndIf - EndIf - press=True - Else - press=False - last=0 - del=0 - EndIf - - If KeyHit(GameConfig.khyper) - Local c:String=a[cur..cur+1] - - If c="{" - If nm.length>1 - nm=nm[0..nm.length-1] - ElseIf nm.length=1 - nm="" - EndIf - Else If c="}" - done=True - Else - nm:+c - If nm.length=3 - done=True - EndIf - EndIf - EndIf - - Flip - Wend - - score[NUM-1]=THiscoreEnt.Create(nm.ToUpper(),sc) - score.Sort() - Save() - End Method -End Type - -Type THiscoreEnt - Field score:Int - Field name:String - - Function Create:THiscoreEnt(name:String, score:Int) - Local o:THiscoreEnt=New THiscoreEnt - o.score=score - o.name=name - Return o - End Function - - Method Compare(o:Object) - Local os:THiscoreEnt=THiscoreEnt(o) - - If os - Return os.score-score - Else - Return 0 - EndIf - End Method -End Type +' Vectoroids +' +' Copyright 2005 Ian Cowburn +' +' $Id$ +' +Strict +Import "types.bmx" + +Type THiscore + + Const NUM:Int=5 + Field score:THiscoreEnt[] + Field col:Int[] + Field coli:Int[] + + Function Load:THiscore() + Local o:THiscore=New THiscore + + o.score=New THiscoreEnt[NUM] + o.col=New Int[NUM] + o.coli=New Int[NUM] + + For Local f:Int=0 Until NUM + o.col[f]=254-f*20 + o.coli[f]=1 + Next + + Local s:TStream=ReadStream("vectoroids.hiscore") + + If s=Null + For Local f:Int=0 Until NUM + o.score[f]=THiscoreEnt.Create("SV",10000-f*2000) + Next + Else + s=LittleEndianStream(s) + + For Local f:Int=0 Until NUM + Local sc:Int=s.ReadInt() + Local n:String=s.ReadLine() + o.score[f]=THiscoreEnt.Create(n,sc) + Next + + s.Close() + EndIf + + Return o + End Function + + Method Save() + Local s:TStream=WriteStream("vectoroids.hiscore") + + If s=Null + Return + EndIf + + s=LittleEndianStream(s) + + For Local sc:THiscoreEnt=EachIn score + s.WriteInt(sc.score) + s.WriteLine(sc.name) + Next + + s.Close() + End Method + + Method Display(y:Int) + GameGFX.font.Centre("ALL TIME HIGH SCORES",y) + y:+20 + + For Local f:Int=0 Until NUM + GameGFX.font.Draw(score[f].name,300,y,col[f],col[f],col[f]) + Local l:Int=GameGFX.font.TextWidth(score[f].score) + GameGFX.font.Draw(score[f].score,500-l,y,col[f],col[f],col[f]) + y:+10 + col[f]:+coli[f] + + If col[f]=255 Or col[f]=150 + coli[f]=-coli[f] + EndIf + Next + End Method + + Method Check(sc:Int) + If scGameConfig.kleft Or del=0 + If last=GameConfig.kleft + del=5 + Else + del=20 + EndIf + last=GameConfig.kleft + cur:-1 + If cur<0 + cur:+a.length + EndIf + EndIf + press=True + ElseIf KeyDown(GameConfig.kright) + If last<>GameConfig.kright Or del=0 + If last=GameConfig.kright + del=5 + Else + del=20 + EndIf + last=GameConfig.kright + cur:+1 + If cur=a.length + cur=0 + EndIf + EndIf + press=True + Else + press=False + last=0 + del=0 + EndIf + + If KeyHit(GameConfig.khyper) + Local c:String=a[cur..cur+1] + + If c="{" + If nm.length>1 + nm=nm[0..nm.length-1] + ElseIf nm.length=1 + nm="" + EndIf + Else If c="}" + done=True + Else + nm:+c + If nm.length=3 + done=True + EndIf + EndIf + EndIf + + Flip + Wend + + score[NUM-1]=THiscoreEnt.Create(nm.ToUpper(),sc) + score.Sort() + Save() + End Method +End Type + +Type THiscoreEnt + Field score:Int + Field name:String + + Function Create:THiscoreEnt(name:String, score:Int) + Local o:THiscoreEnt=New THiscoreEnt + o.score=score + o.name=name + Return o + End Function + + Method Compare(o:Object) + Local os:THiscoreEnt=THiscoreEnt(o) + + If os + Return os.score-score + Else + Return 0 + EndIf + End Method +End Type -- cgit v1.2.3