From f11d9806f4623dc4dbf14e521624109b7a69b86b Mon Sep 17 00:00:00 2001
From: whiteshark0 <whiteshark0@b956fd51-792f-4845-bead-9b4dfca2ff2c>
Date: Thu, 17 May 2007 10:33:27 +0000
Subject: Deleted Motas Methods to display variable Statics and Texts in Party
 Mode. Added a new, more extendable and easier in Code Method for displaying
 Statics in Party Mode or in Normal Mode only Enter in Songscreen in Party
 Mode Opens now SongMenu again when PartyPopup=1 Changed Theme to Fit these
 changes

git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@206 b956fd51-792f-4845-bead-9b4dfca2ff2c
---
 Game/Code/Classes/UThemes.pas     |  89 +++------------
 Game/Code/Screens/UScreenSong.pas | 222 +++++++++-----------------------------
 2 files changed, 62 insertions(+), 249 deletions(-)

(limited to 'Game')

diff --git a/Game/Code/Classes/UThemes.pas b/Game/Code/Classes/UThemes.pas
index 24ac0eaa..0fe207e9 100644
--- a/Game/Code/Classes/UThemes.pas
+++ b/Game/Code/Classes/UThemes.pas
@@ -280,6 +280,13 @@ type
       ColR, ColG, ColB: Real;
       end;
 
+    //Party and Non Party specific Statics and Texts
+    StaticParty:    AThemeStatic;
+    TextParty:      AThemeText;
+
+    StaticNonParty: AThemeStatic;
+    TextNonParty:   AThemeText;
+
     //Party Mode
     StaticTeam1Joker1: TThemeStatic;
     StaticTeam1Joker2: TThemeStatic;
@@ -296,41 +303,6 @@ type
     StaticTeam3Joker3: TThemeStatic;
     StaticTeam3Joker4: TThemeStatic;
     StaticTeam3Joker5: TThemeStatic;
-
-    StaticKeys1      : TThemeStatic;
-    TextKeys1        : TThemeText;
-    StaticKeys1Party : TThemeStatic;
-    TextKeys1Party   : TThemeText;
-    StaticKeys2      : TThemeStatic;
-    TextKeys2        : TThemeText;
-    StaticKeys2Party : TThemeStatic;
-    TextKeys2Party   : TThemeText;
-    StaticKeys3      : TThemeStatic;
-    TextKeys3        : TThemeText;
-    StaticKeys3Party : TThemeStatic;
-    TextKeys3Party   : TThemeText;
-    StaticKeys4      : TThemeStatic;
-    TextKeys4        : TThemeText;
-    StaticKeys4Party : TThemeStatic;
-    TextKeys4Party   : TThemeText;
-    StaticKeys5      : TThemeStatic;
-    TextKeys5        : TThemeText;
-    StaticKeys5Party : TThemeStatic;
-    TextKeys5Party   : TThemeText;
-    StaticKeys6      : TThemeStatic;
-    TextKeys6        : TThemeText;
-    StaticKeys6Party : TThemeStatic;
-    TextKeys6Party   : TThemeText;
-    StaticKeys7      : TThemeStatic;
-    TextKeys7        : TThemeText;
-    StaticKeys7Party : TThemeStatic;
-    TextKeys7Party   : TThemeText;
-    StaticKeys8      : TThemeStatic;
-    TextKeys8        : TThemeText;
-    StaticKeys8Party : TThemeStatic;
-    TextKeys8Party   : TThemeText;
-
-
   end;
 
    TThemeSing = class(TThemeBasic)
@@ -1022,6 +994,13 @@ begin
       end;
       //Load Equalizer Pos and Size from Theme Mod End
 
+      //Party and Non Party specific Statics and Texts
+      ThemeLoadStatics (Song.StaticParty, 'SongStaticParty');
+      ThemeLoadTexts (Song.TextParty, 'SongTextParty');
+
+      ThemeLoadStatics (Song.StaticNonParty, 'SongStaticNonParty');
+      ThemeLoadTexts (Song.TextNonParty, 'SongTextNonParty');
+
       //Party Mode
       ThemeLoadStatic(Song.StaticTeam1Joker1, 'SongStaticTeam1Joker1');
       ThemeLoadStatic(Song.StaticTeam1Joker2, 'SongStaticTeam1Joker2');
@@ -1041,46 +1020,6 @@ begin
       ThemeLoadStatic(Song.StaticTeam3Joker4, 'SongStaticTeam3Joker4');
       ThemeLoadStatic(Song.StaticTeam3Joker5, 'SongStaticTeam3Joker5');
 
-      ThemeLoadStatic(Song.StaticKeys1, 'SongStaticKeys1');
-      ThemeLoadText(Song.TextKeys1, 'SongStaticKeys1Text');
-      ThemeLoadStatic(Song.StaticKeys1Party, 'SongStaticKeys1Party');
-      ThemeLoadText(Song.TextKeys1Party, 'SongStaticKeys1TextParty');
-
-      ThemeLoadStatic(Song.StaticKeys2, 'SongStaticKeys2');
-      ThemeLoadText(Song.TextKeys2, 'SongStaticKeys2Text');
-      ThemeLoadStatic(Song.StaticKeys2Party, 'SongStaticKeys2Party');
-      ThemeLoadText(Song.TextKeys2Party, 'SongStaticKeys2TextParty');
-
-      ThemeLoadStatic(Song.StaticKeys3, 'SongStaticKeys3');
-      ThemeLoadText(Song.TextKeys3, 'SongStaticKeys3Text');
-      ThemeLoadStatic(Song.StaticKeys3Party, 'SongStaticKeys3Party');
-      ThemeLoadText(Song.TextKeys3Party, 'SongStaticKeys3TextParty');
-
-      ThemeLoadStatic(Song.StaticKeys4, 'SongStaticKeys4');
-      ThemeLoadText(Song.TextKeys4, 'SongStaticKeys4Text');
-      ThemeLoadStatic(Song.StaticKeys4Party, 'SongStaticKeys4Party');
-      ThemeLoadText(Song.TextKeys4Party, 'SongStaticKeys4TextParty');
-
-      ThemeLoadStatic(Song.StaticKeys5, 'SongStaticKeys5');
-      ThemeLoadText(Song.TextKeys5, 'SongStaticKeys5Text');
-      ThemeLoadStatic(Song.StaticKeys5Party, 'SongStaticKeys5Party');
-      ThemeLoadText(Song.TextKeys5Party, 'SongStaticKeys5TextParty');
-
-      ThemeLoadStatic(Song.StaticKeys6, 'SongStaticKeys6');
-      ThemeLoadText(Song.TextKeys6, 'SongStaticKeys6Text');
-      ThemeLoadStatic(Song.StaticKeys6Party, 'SongStaticKeys6Party');
-      ThemeLoadText(Song.TextKeys6Party, 'SongStaticKeys6TextParty');
-
-      ThemeLoadStatic(Song.StaticKeys7, 'SongStaticKeys7');
-      ThemeLoadText(Song.TextKeys7, 'SongStaticKeys7Text');
-      ThemeLoadStatic(Song.StaticKeys7Party, 'SongStaticKeys7Party');
-      ThemeLoadText(Song.TextKeys7Party, 'SongStaticKeys7TextParty');
-
-      ThemeLoadStatic(Song.StaticKeys8, 'SongStaticKeys8');
-      ThemeLoadText(Song.TextKeys8, 'SongStaticKeys8Text');
-      ThemeLoadStatic(Song.StaticKeys8Party, 'SongStaticKeys8Party');
-      ThemeLoadText(Song.TextKeys8Party, 'SongStaticKeys8TextParty');
-
       // Sing
       ThemeLoadBasic(Sing, 'Sing');
 
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
-- 
cgit v1.2.3