From 94e4421ad3a7615c7ce91beff95634c98b4edd49 Mon Sep 17 00:00:00 2001 From: whiteshark0 Date: Sat, 2 May 2009 15:29:37 +0000 Subject: Display.AbortScreenChange added (used in ScreenSing and ScreenPartyOptions) some minor fixes in UParty, ULuaParty and ULuaUsdx adapting of UScreenPartyNewRound, UScreenPartyPlayer and UScreenPartyOption nearly finished git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/branches/experimental@1705 b956fd51-792f-4845-bead-9b4dfca2ff2c --- Lua/src/screens/UScreenPartyPlayer.pas | 98 +++++++++++++++++++++++++--------- 1 file changed, 74 insertions(+), 24 deletions(-) (limited to 'Lua/src/screens/UScreenPartyPlayer.pas') diff --git a/Lua/src/screens/UScreenPartyPlayer.pas b/Lua/src/screens/UScreenPartyPlayer.pas index d38a6435..9a5edca2 100644 --- a/Lua/src/screens/UScreenPartyPlayer.pas +++ b/Lua/src/screens/UScreenPartyPlayer.pas @@ -71,11 +71,14 @@ type implementation -uses UGraphic, UMain, UIni, UTexture, UParty; +uses UGraphic, UMain, UIni, UTexture, UParty, UScreenPartyOptions, ULanguage; function TScreenPartyPlayer.ParseInput(PressedKey: Cardinal; CharCode: WideChar; PressedDown: Boolean): Boolean; var SDL_ModState: Word; + I, J: Integer; + HighPlayer: Integer; + Rounds: ARounds; procedure IntNext; begin repeat @@ -243,10 +246,57 @@ 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; + end; } + + // add teams to party + + for I := 0 to ScreenPartyOptions.NumTeams + 1 do + begin + Party.AddTeam(Button[I * 5].Text[0].Text); + + case I of + 0: HighPlayer := ScreenPartyOptions.NumPlayer1; + 1: HighPlayer := ScreenPartyOptions.NumPlayer2; + 2: HighPlayer := ScreenPartyOptions.NumPlayer3; + end; + + for J := 0 to HighPlayer do + Party.AddPlayer(I, Button[I * 5 + 1 + J].Text[0].Text); + end; + + if (Party.ModesAvailable) then + begin //mode for current playersetup available + // to - do : add round select screen + // atm just add random rounds to the rounds array + SetLength(Rounds, ScreenPartyOptions.Rounds + 2); + + for I := 0 to High(Rounds) do + Rounds[I] := Party_Round_Random; + + // start party game + if (Party.StartGame(Rounds)) then + begin + FadeTo(@ScreenPartyNewRound, SoundLib.Start); + end + else + begin + //error starting party game + ScreenPopupError.ShowPopup(Language.Translate('ERROR_CAN_NOT_START_PARTY')); + + Party.Clear; + end; + + end + else + begin + // no mode available for current player setup + ScreenPopupError.ShowPopup(Language.Translate('ERROR_NO_MODES_FOR_CURRENT_SETUP')); + + Party.Clear; end; - AudioPlayback.PlayStart; - FadeTo(@ScreenPartyNewRound);} + + end; // Up and Down could be done at the same time, @@ -310,13 +360,13 @@ begin Button[10].Text[0].Text := Ini.NameTeam[2]; // Templates for Names Mod end - {If (PartySession.Teams.NumTeams>=1) then + If (ScreenPartyOptions.NumTeams + 2 >= 1) then begin - Button[0].Visible := True; - Button[1].Visible := (PartySession.Teams.Teaminfo[0].NumPlayers >=1); - Button[2].Visible := (PartySession.Teams.Teaminfo[0].NumPlayers >=2); - Button[3].Visible := (PartySession.Teams.Teaminfo[0].NumPlayers >=3); - Button[4].Visible := (PartySession.Teams.Teaminfo[0].NumPlayers >=4); + Button[0].Visible := true; + Button[1].Visible := (ScreenPartyOptions.NumPlayer1 + 1 >= 1); + Button[2].Visible := (ScreenPartyOptions.NumPlayer1 + 1 >= 2); + Button[3].Visible := (ScreenPartyOptions.NumPlayer1 + 1 >= 3); + Button[4].Visible := (ScreenPartyOptions.NumPlayer1 + 1 >= 4); end else begin @@ -327,13 +377,13 @@ begin Button[4].Visible := False; end; - If (PartySession.Teams.NumTeams>=2) then + If (ScreenPartyOptions.NumTeams + 2 >= 2) then begin - Button[5].Visible := True; - Button[6].Visible := (PartySession.Teams.Teaminfo[1].NumPlayers >=1); - Button[7].Visible := (PartySession.Teams.Teaminfo[1].NumPlayers >=2); - Button[8].Visible := (PartySession.Teams.Teaminfo[1].NumPlayers >=3); - Button[9].Visible := (PartySession.Teams.Teaminfo[1].NumPlayers >=4); + Button[5].Visible := true; + Button[6].Visible := (ScreenPartyOptions.NumPlayer2 + 1 >= 1); + Button[7].Visible := (ScreenPartyOptions.NumPlayer2 + 1 >= 2); + Button[8].Visible := (ScreenPartyOptions.NumPlayer2 + 1 >= 3); + Button[9].Visible := (ScreenPartyOptions.NumPlayer2 + 1 >= 4); end else begin @@ -344,13 +394,13 @@ begin Button[9].Visible := False; end; - If (PartySession.Teams.NumTeams>=3) then + If (ScreenPartyOptions.NumTeams + 2 >= 3) then begin - Button[10].Visible := True; - Button[11].Visible := (PartySession.Teams.Teaminfo[2].NumPlayers >=1); - Button[12].Visible := (PartySession.Teams.Teaminfo[2].NumPlayers >=2); - Button[13].Visible := (PartySession.Teams.Teaminfo[2].NumPlayers >=3); - Button[14].Visible := (PartySession.Teams.Teaminfo[2].NumPlayers >=4); + Button[10].Visible := true; + Button[11].Visible := (ScreenPartyOptions.NumPlayer3 + 1 >= 1); + Button[12].Visible := (ScreenPartyOptions.NumPlayer3 + 1 >= 2); + Button[13].Visible := (ScreenPartyOptions.NumPlayer3 + 1 >= 3); + Button[14].Visible := (ScreenPartyOptions.NumPlayer3 + 1 >= 4); end else begin @@ -359,7 +409,7 @@ begin Button[12].Visible := False; Button[13].Visible := False; Button[14].Visible := False; - end; } + end; end; @@ -367,8 +417,8 @@ procedure TScreenPartyPlayer.SetAnimationProgress(Progress: real); var I: integer; begin - for I := 0 to high(Button) do - Button[I].Texture.ScaleW := Progress; + {for I := 0 to high(Button) do + Button[I].Texture.ScaleW := Progress; } end; end. -- cgit v1.2.3