aboutsummaryrefslogtreecommitdiffstats
path: root/Game/Code/Screens/UScreenSong.pas
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--Game/Code/Screens/UScreenSong.pas222
1 files changed, 48 insertions, 174 deletions
diff --git a/Game/Code/Screens/UScreenSong.pas b/Game/Code/Screens/UScreenSong.pas
index 26fcba2e..95550a32 100644
--- a/Game/Code/Screens/UScreenSong.pas
+++ b/Game/Code/Screens/UScreenSong.pas
@@ -53,45 +53,10 @@ type
StaticTeam3Joker4: Cardinal;
StaticTeam3Joker5: Cardinal;
- StaticKeys1: Cardinal;
- TextKeys1: integer;
- StaticKeys1Party: Cardinal;
- TextKeys1Party: integer;
-
- StaticKeys2: Cardinal;
- TextKeys2: integer;
- StaticKeys2Party: Cardinal;
- TextKeys2Party: integer;
-
- StaticKeys3: Cardinal;
- TextKeys3: integer;
- StaticKeys3Party: Cardinal;
- TextKeys3Party: integer;
-
- StaticKeys4: Cardinal;
- TextKeys4: integer;
- StaticKeys4Party: Cardinal;
- TextKeys4Party: integer;
-
- StaticKeys5: Cardinal;
- TextKeys5: integer;
- StaticKeys5Party: Cardinal;
- TextKeys5Party: integer;
-
- StaticKeys6: Cardinal;
- TextKeys6: integer;
- StaticKeys6Party: Cardinal;
- TextKeys6Party: integer;
-
- StaticKeys7: Cardinal;
- TextKeys7: integer;
- StaticKeys7Party: Cardinal;
- TextKeys7Party: integer;
-
- StaticKeys8: Cardinal;
- TextKeys8: integer;
- StaticKeys8Party: Cardinal;
- TextKeys8Party: integer;
+ StaticParty: Array of Cardinal;
+ TextParty: Array of Cardinal;
+ StaticNonParty: Array of Cardinal;
+ TextNonParty: Array of Cardinal;
constructor Create; override;
procedure SetScroll;
@@ -407,9 +372,11 @@ begin
end
else if (Mode = 1) then //PartyMode -> Show Menu
begin
- //Is this Right?
- ScreenSong.StartSong;
- //ScreenSongMenu.MenuShow(SM_Party_Main);
+ //Is this Right?
+ if (Ini.PartyPopup = 1) then
+ ScreenSongMenu.MenuShow(SM_Party_Main)
+ else
+ ScreenSong.StartSong;
end;
end;
end;
@@ -722,45 +689,22 @@ begin
StaticTeam3Joker4 := AddStatic(Theme.Song.StaticTeam3Joker4);
StaticTeam3Joker5 := AddStatic(Theme.Song.StaticTeam3Joker5);
- StaticKeys1 := AddStatic(Theme.Song.StaticKeys1);
- TextKeys1 := AddText(Theme.Song.TextKeys1);
- StaticKeys1Party := AddStatic(Theme.Song.StaticKeys1Party);
- TextKeys1Party := AddText(Theme.Song.TextKeys1Party);
-
- StaticKeys2 := AddStatic(Theme.Song.StaticKeys2);
- TextKeys2 := AddText(Theme.Song.TextKeys2);
- StaticKeys2Party := AddStatic(Theme.Song.StaticKeys2Party);
- TextKeys2Party := AddText(Theme.Song.TextKeys2Party);
-
- StaticKeys3 := AddStatic(Theme.Song.StaticKeys3);
- TextKeys3 := AddText(Theme.Song.TextKeys3);
- StaticKeys3Party := AddStatic(Theme.Song.StaticKeys3Party);
- TextKeys3Party := AddText(Theme.Song.TextKeys3Party);
-
- StaticKeys4 := AddStatic(Theme.Song.StaticKeys4);
- TextKeys4 := AddText(Theme.Song.TextKeys4);
- StaticKeys4Party := AddStatic(Theme.Song.StaticKeys4Party);
- TextKeys4Party := AddText(Theme.Song.TextKeys4Party);
-
- StaticKeys5 := AddStatic(Theme.Song.StaticKeys5);
- TextKeys5 := AddText(Theme.Song.TextKeys5);
- StaticKeys5Party := AddStatic(Theme.Song.StaticKeys5Party);
- TextKeys5Party := AddText(Theme.Song.TextKeys5Party);
-
- StaticKeys6 := AddStatic(Theme.Song.StaticKeys6);
- TextKeys6 := AddText(Theme.Song.TextKeys6);
- StaticKeys6Party := AddStatic(Theme.Song.StaticKeys6Party);
- TextKeys6Party := AddText(Theme.Song.TextKeys6Party);
-
- StaticKeys7 := AddStatic(Theme.Song.StaticKeys7);
- TextKeys7 := AddText(Theme.Song.TextKeys7);
- StaticKeys7Party := AddStatic(Theme.Song.StaticKeys7Party);
- TextKeys7Party := AddText(Theme.Song.TextKeys7Party);
-
- StaticKeys8 := AddStatic(Theme.Song.StaticKeys8);
- TextKeys8 := AddText(Theme.Song.TextKeys8);
- StaticKeys8Party := AddStatic(Theme.Song.StaticKeys8Party);
- TextKeys8Party := AddText(Theme.Song.TextKeys8Party);
+ //Load Party or NonParty specific Statics and Texts
+ SetLength(StaticParty, Length(Theme.Song.StaticParty));
+ for I := 0 to High(Theme.Song.StaticParty) do
+ StaticParty[I] := AddStatic(Theme.Song.StaticParty[I]);
+
+ SetLength(TextParty, Length(Theme.Song.TextParty));
+ for I := 0 to High(Theme.Song.TextParty) do
+ TextParty[I] := AddText(Theme.Song.TextParty[I]);
+
+ SetLength(StaticNonParty, Length(Theme.Song.StaticNonParty));
+ for I := 0 to High(Theme.Song.StaticNonParty) do
+ StaticNonParty[I] := AddStatic(Theme.Song.StaticNonParty[I]);
+
+ SetLength(TextNonParty, Length(Theme.Song.TextNonParty));
+ for I := 0 to High(Theme.Song.TextNonParty) do
+ TextNonParty[I] := AddText(Theme.Song.TextNonParty[I]);
// Song List
// Songs.LoadSongList; // moved to the UltraStar unit
@@ -1310,12 +1254,12 @@ begin
begin
SelectRandomSong;
- //Show Mennu direct in PartyMode
+ //Show Menu directly in PartyMode
//But only if selected in Options
if (Ini.PartyPopup = 1) then
- begin
+ begin
ScreenSongMenu.MenuShow(SM_Party_Main);
- end;
+ end;
end;
@@ -1754,97 +1698,27 @@ begin
end;
procedure TScreenSong.SetStatics;
+var
+ I: Integer;
+ Visible: Boolean;
begin
- //If Party Mode
- if Mode = 1 then //Use Statics for Party-Song-Selection
- begin
- Static[StaticKeys1].Visible := False;
- Text[TextKeys1].Visible := False;
- Static[StaticKeys1Party].Visible := True;
- Text[TextKeys1Party].Visible := True;
-
- Static[StaticKeys2].Visible := False;
- Text[TextKeys2].Visible := False;
- Static[StaticKeys2Party].Visible := True;
- Text[TextKeys2Party].Visible := True;
-
- Static[StaticKeys3].Visible := False;
- Text[TextKeys3].Visible := False;
- Static[StaticKeys3Party].Visible := True;
- Text[TextKeys3Party].Visible := True;
-
- Static[StaticKeys4].Visible := False;
- Text[TextKeys4].Visible := False;
- Static[StaticKeys4Party].Visible := True;
- Text[TextKeys4Party].Visible := True;
-
- Static[StaticKeys5].Visible := False;
- Text[TextKeys5].Visible := False;
- Static[StaticKeys5Party].Visible := True;
- Text[TextKeys5Party].Visible := True;
-
- Static[StaticKeys6].Visible := False;
- Text[TextKeys6].Visible := False;
- Static[StaticKeys6Party].Visible := True;
- Text[TextKeys6Party].Visible := True;
-
- Static[StaticKeys7].Visible := False;
- Text[TextKeys7].Visible := False;
- Static[StaticKeys7Party].Visible := True;
- Text[TextKeys7Party].Visible := True;
-
- Static[StaticKeys8].Visible := False;
- Text[TextKeys8].Visible := False;
- Static[StaticKeys8Party].Visible := True;
- Text[TextKeys8Party].Visible := True;
- end
- else //Use regular Statics for Song-Selection
- begin
- Static[StaticKeys1].Visible := True;
- Text[TextKeys1].Visible := True;
- Static[StaticKeys1Party].Visible := False;
- Text[TextKeys1Party].Visible := False;
-
- Static[StaticKeys2].Visible := True;
- Text[TextKeys2].Visible := True;
- Static[StaticKeys2Party].Visible := False;
- Text[TextKeys2Party].Visible := False;
-
- Static[StaticKeys2].Visible := True;
- Text[TextKeys2].Visible := True;
- Static[StaticKeys2Party].Visible := False;
- Text[TextKeys2Party].Visible := False;
-
- Static[StaticKeys3].Visible := True;
- Text[TextKeys3].Visible := True;
- Static[StaticKeys3Party].Visible := False;
- Text[TextKeys3Party].Visible := False;
-
- Static[StaticKeys4].Visible := True;
- Text[TextKeys4].Visible := True;
- Static[StaticKeys4Party].Visible := False;
- Text[TextKeys4Party].Visible := False;
-
- Static[StaticKeys5].Visible := True;
- Text[TextKeys5].Visible := True;
- Static[StaticKeys5Party].Visible := False;
- Text[TextKeys5Party].Visible := False;
-
- Static[StaticKeys6].Visible := True;
- Text[TextKeys6].Visible := True;
- Static[StaticKeys6Party].Visible := False;
- Text[TextKeys6Party].Visible := False;
-
- Static[StaticKeys7].Visible := True;
- Text[TextKeys7].Visible := True;
- Static[StaticKeys7Party].Visible := False;
- Text[TextKeys7Party].Visible := False;
-
- Static[StaticKeys8].Visible := True;
- Text[TextKeys8].Visible := True;
- Static[StaticKeys8Party].Visible := False;
- Text[TextKeys8Party].Visible := False;
- end;
+ //Set Visibility of Party Statics and Text
+ Visible := (Mode = 1);
+
+ For I := 0 to high(StaticParty) do
+ Static[StaticParty[I]].Visible := Visible;
+
+ For I := 0 to high(TextParty) do
+ Text[TextParty[I]].Visible := Visible;
+
+ //Set Visibility of Non Party Statics and Text
+ Visible := not Visible;
+
+ For I := 0 to high(StaticNonParty) do
+ Static[StaticNonParty[I]].Visible := Visible;
+
+ For I := 0 to high(TextNonParty) do
+ Text[TextNonParty[I]].Visible := Visible;
end;
//Procedures for Menu