From fae5839e8025f020638b4cd0583a9a992c5a7a1e Mon Sep 17 00:00:00 2001 From: whiteshark0 Date: Sun, 15 Apr 2007 11:05:10 +0000 Subject: Fixed some Bugs in Party Mode Fixed Support CategoryOnly Playlist Support git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@93 b956fd51-792f-4845-bead-9b4dfca2ff2c --- Game/Code/Classes/UParty.pas | 13 ++++++++++--- Game/Code/Screens/UScreenMain.pas | 2 +- Game/Code/Screens/UScreenPartyNewRound.pas | 4 ---- Game/Code/Screens/UScreenPartyPlayer.pas | 2 +- Game/Code/Screens/UScreenPartyScore.pas | 8 ++++---- Game/Code/Screens/UScreenSong.pas | 4 ++-- 6 files changed, 18 insertions(+), 15 deletions(-) (limited to 'Game/Code') diff --git a/Game/Code/Classes/UParty.pas b/Game/Code/Classes/UParty.pas index f5834dd8..e5252f82 100644 --- a/Game/Code/Classes/UParty.pas +++ b/Game/Code/Classes/UParty.pas @@ -107,13 +107,16 @@ begin PlayersPlay := Teams.NumTeams; + //Get Teammode and Set Joker TeamMode := True; For I := 0 to Teams.NumTeams-1 do + begin if Teams.Teaminfo[I].NumPlayers < 2 then begin TeamMode := False; - Break; end; + Teams.Teaminfo[I].Joker := Round(NumRounds*0.7); + end; //Fill Plugin Array SetLength(Plugins, 0); @@ -186,7 +189,7 @@ begin //Increase Current Round Inc (CurRound); - Rounds[CurRound].Winner := 0; + Rounds[CurRound].Winner := 255; DllMan.LoadPlugin(Rounds[CurRound].Plugin); //Select Players @@ -241,9 +244,13 @@ var Winners: Array of String; I: Integer; begin + Result := Language.Translate('PARTY_NOBODY'); + + if (Round > High(Rounds)) then + exit; + if (Rounds[Round].Winner = 0) then begin - Result := Language.Translate('PARTY_NOBODY'); exit; end; diff --git a/Game/Code/Screens/UScreenMain.pas b/Game/Code/Screens/UScreenMain.pas index 90a6310d..dd7f21c5 100644 --- a/Game/Code/Screens/UScreenMain.pas +++ b/Game/Code/Screens/UScreenMain.pas @@ -128,7 +128,7 @@ begin end; SDLK_M: begin - if (Ini.Players >= 2) AND (Length(DLLMan.Plugins)>=1) then + if (Ini.Players >= 1) AND (Length(DLLMan.Plugins)>=1) then begin Music.PlayStart; FadeTo(@ScreenPartyOptions); diff --git a/Game/Code/Screens/UScreenPartyNewRound.pas b/Game/Code/Screens/UScreenPartyNewRound.pas index 1e9be1f5..c8c0febc 100644 --- a/Game/Code/Screens/UScreenPartyNewRound.pas +++ b/Game/Code/Screens/UScreenPartyNewRound.pas @@ -176,10 +176,6 @@ procedure TScreenPartyNewRound.onShow; var I: Integer; begin - //If not First Round, End Last Round - if (PartySession.CurRound <> 255) then - PartySession.EndRound; - PartySession.StartRound; Log.LogError(InttoStr(Length(DllMan.Plugins))); diff --git a/Game/Code/Screens/UScreenPartyPlayer.pas b/Game/Code/Screens/UScreenPartyPlayer.pas index 498514fb..02f87710 100644 --- a/Game/Code/Screens/UScreenPartyPlayer.pas +++ b/Game/Code/Screens/UScreenPartyPlayer.pas @@ -76,6 +76,7 @@ begin SDLK_RETURN: begin + //Save PlayerNames for I := 0 to PartySession.Teams.NumTeams-1 do begin PartySession.Teams.Teaminfo[I].Name := PChar(Button[I*5].Text[0].Text); @@ -84,7 +85,6 @@ begin PartySession.Teams.Teaminfo[I].Playerinfo[J].Name := PChar(Button[I*5 + J+1].Text[0].Text); PartySession.Teams.Teaminfo[I].Playerinfo[J].TimesPlayed := 0; end; - PartySession.Teams.Teaminfo[I].Joker := Round (Length(PartySession.Rounds) * 0.85); end; Music.PlayStart; diff --git a/Game/Code/Screens/UScreenPartyScore.pas b/Game/Code/Screens/UScreenPartyScore.pas index 9cbeb5d5..142ec947 100644 --- a/Game/Code/Screens/UScreenPartyScore.pas +++ b/Game/Code/Screens/UScreenPartyScore.pas @@ -57,13 +57,10 @@ begin SDLK_RETURN: begin Music.PlayStart; - if (PartySession.CurRound <= High(PartySession.Rounds)) then + if (PartySession.CurRound < High(PartySession.Rounds)) then FadeTo(@ScreenPartyNewRound) else - begin - PartySession.EndRound; FadeTo(@ScreenPartyWin); - end; end; end; end; @@ -114,6 +111,9 @@ begin Static[StaticTeam2].Texture.ScaleW := ScreenSingModi.PlayerInfo.Playerinfo[1].Percentage / 100; Static[StaticTeam3].Texture.ScaleW := ScreenSingModi.PlayerInfo.Playerinfo[2].Percentage / 100; + //End Last Round + PartySession.EndRound; + //Set Winnertext Text[TextWinner].Text := Format(Language.Translate('PARTY_SCORE_WINS'), [PartySession.GetWinnerString(PartySession.CurRound)]); diff --git a/Game/Code/Screens/UScreenSong.pas b/Game/Code/Screens/UScreenSong.pas index 7ea5d268..7c8447ee 100644 --- a/Game/Code/Screens/UScreenSong.pas +++ b/Game/Code/Screens/UScreenSong.pas @@ -1488,8 +1488,8 @@ begin end; 1: //One Category Select Category and Select Random Song begin - CatSongs.HideCategory(-1); - CatSongs.ShowCategory(PlaylistMan.CurPlayList); + CatSongs.ShowCategoryList; + CatSongs.ClickCategoryButton(PlaylistMan.CurPlayList); ShowCatTL(PlaylistMan.CurPlayList); SelectNext; -- cgit v1.2.3