diff options
author | whiteshark0 <whiteshark0@b956fd51-792f-4845-bead-9b4dfca2ff2c> | 2007-05-12 09:17:15 +0000 |
---|---|---|
committer | whiteshark0 <whiteshark0@b956fd51-792f-4845-bead-9b4dfca2ff2c> | 2007-05-12 09:17:15 +0000 |
commit | 4036ca0937c05444b23018a19d69d1aef90495db (patch) | |
tree | 418f32b441997504a19533ac50f1e767f4803bd4 /Game/Code/Classes | |
parent | 8c0e834e1e8715d4b9357b42fb11e9b5a2da5c7a (diff) | |
download | usdx-4036ca0937c05444b23018a19d69d1aef90495db.tar.gz usdx-4036ca0937c05444b23018a19d69d1aef90495db.tar.xz usdx-4036ca0937c05444b23018a19d69d1aef90495db.zip |
Party Win Screen now works the way it should.
The Statics are sorted by Score
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@190 b956fd51-792f-4845-bead-9b4dfca2ff2c
Diffstat (limited to '')
-rw-r--r-- | Game/Code/Classes/UParty.pas | 36 |
1 files changed, 33 insertions, 3 deletions
diff --git a/Game/Code/Classes/UParty.pas b/Game/Code/Classes/UParty.pas index b07ad5ad..7bf3dd1b 100644 --- a/Game/Code/Classes/UParty.pas +++ b/Game/Code/Classes/UParty.pas @@ -10,6 +10,13 @@ type Winner: Byte;
end;
+ TeamOrderEntry = record
+ Teamnum: Byte;
+ Score: Byte;
+ end;
+
+ TeamOrderArray = Array[0..5] of Byte;
+
TParty_Session = class
private
function GetRandomPlayer(Team: Byte): Byte;
@@ -25,7 +32,7 @@ type procedure StartNewParty(NumRounds: Byte);
procedure StartRound;
procedure EndRound;
- function GetWinner: Byte;
+ function GetTeamOrder: TeamOrderArray;
function GetWinnerString(Round: Byte): String;
end;
@@ -334,11 +341,34 @@ begin end;
//----------
-//Get Winner - Gives back the Number of the total Winner
+//GetTeamOrder - Gives back the Placing of eacb Team [First Position of Array is Teamnum of first placed Team, ...]
//----------
-function TParty_Session.GetWinner: Byte;
+function TParty_Session.GetTeamOrder: TeamOrderArray;
+var
+ I, J: Integer;
+ ATeams: array [0..5] of TeamOrderEntry;
+ TempTeam: TeamOrderEntry;
begin
+ //Fill Team Array
+ For I := 0 to Teams.NumTeams-1 do
+ begin
+ ATeams[I].Teamnum := I;
+ ATeams[I].Score := Teams.Teaminfo[I].Score;
+ end;
+ //Sort Teams
+ for J := 0 to Teams.NumTeams-1 do
+ for I := 1 to Teams.NumTeams-1 do
+ if ATeams[I].Score > ATeams[I-1].Score then
+ begin
+ TempTeam := ATeams[I-1];
+ ATeams[I-1] := ATeams[I];
+ ATeams[I] := TempTeam;
+ end;
+
+ //Copy to Result
+ For I := 0 to Teams.NumTeams-1 do
+ Result[I] := ATeams[I].TeamNum;
end;
end.
|