From 2221d3db9408f3d7c6ee0ab0cc024e253cac80e0 Mon Sep 17 00:00:00 2001
From: jaybinks <jaybinks@b956fd51-792f-4845-bead-9b4dfca2ff2c>
Date: Thu, 27 Sep 2007 11:58:51 +0000
Subject: fixed compile error from whiteshark..

now it compiles :)

git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@435 b956fd51-792f-4845-bead-9b4dfca2ff2c
---
 Game/Code/Classes/UMain.pas       |  20 ++
 Game/Code/Screens/UScreenMain.pas | 560 +++++++++++++++++++-------------------
 2 files changed, 302 insertions(+), 278 deletions(-)

diff --git a/Game/Code/Classes/UMain.pas b/Game/Code/Classes/UMain.pas
index 878ff35c..8dd8c0a3 100644
--- a/Game/Code/Classes/UMain.pas
+++ b/Game/Code/Classes/UMain.pas
@@ -45,6 +45,26 @@ type
 
     //LineBonus Mod
     ScoreLast:    Real;//Last Line Score
+    ScorePercent:    integer;//Aktual Fillstate of the SingBar
+    ScorePercentTarget:  integer;//Target Fillstate of the SingBar
+    //end Singbar Mod
+
+    //PhrasenBonus - Line Bonus Mod
+    LineBonus_PosX:     Single;
+    LineBonus_PosY:     Single;
+    LineBonus_Alpha:    Single;
+    LineBonus_Visible:  boolean;
+    LineBonus_Text:     string;
+    LineBonus_Color:    TRGB;
+    LineBonus_Age:      Integer;
+    LineBonus_Rating: Integer;
+    //Variable vor Positioning -> Set on ScreenShow, different when Playercount Changes
+    LineBonus_TargetX:  integer;
+    LineBonus_TargetY:  integer;
+    LineBonus_StartX:  integer;
+    LineBonus_StartY:  integer;
+    //PhrasenBonus - Line Bonus Mod End
+
 
     //PerfectLineTwinkle Mod (effect)
     LastSentencePerfect: Boolean;
diff --git a/Game/Code/Screens/UScreenMain.pas b/Game/Code/Screens/UScreenMain.pas
index 7bcc9e65..aecc40bb 100644
--- a/Game/Code/Screens/UScreenMain.pas
+++ b/Game/Code/Screens/UScreenMain.pas
@@ -1,278 +1,282 @@
-unit UScreenMain;
-
-interface
-
-uses
-  UMenu,
-  SDL,
-  UDisplay,
-  UMusic,
-  UFiles,
-  SysUtils,
-  UThemes,
-  ULCD,
-  ULight;
-
-type
-  TScreenMain = class(TMenu)
-    public
-      TextDescription:        integer;
-      TextDescriptionLong:    integer;
-
-      constructor Create; override;
-      function ParseInput(PressedKey: Cardinal; ScanCode: byte; PressedDown: Boolean): Boolean; override;
-      procedure onShow; override;
-      procedure InteractNext; override;
-      procedure InteractPrev; override;
-      procedure InteractInc; override;
-      procedure InteractDec; override;
-      procedure UpdateLCD;
-      procedure SetAnimationProgress(Progress: real); override;
-      //function Draw: boolean; override;
-  end;
-
-implementation
-
-uses {$IFDEF win32}
-     windows,
-     {$ENDIF}
-     UGraphic,
-     UMain,
-     UIni,
-     UTexture,
-     USongs,
-     Textgl,
-//     opengl,
-     ULanguage,
-     UParty,
-     UDLLManager,
-     UScreenCredits,
-     USkins;
-
-
-function TScreenMain.ParseInput(PressedKey: Cardinal; ScanCode: byte; PressedDown: Boolean): Boolean;
-var
-I: Integer;
-SDL_ModState:  Word;
-begin
-  Result := true;
-
-  SDL_ModState := SDL_GetModState and (KMOD_LSHIFT + KMOD_RSHIFT
-    + KMOD_LCTRL + KMOD_RCTRL + KMOD_LALT  + KMOD_RALT);
-
-  //Deactivate Credits when Key is pressed
-//  if Credits_Visible then
-//  begin
-//    Credits_Visible := False;
-//    exit;
-//  end;
-
-  If (PressedDown) Then
-  begin // Key Down
-    case PressedKey of
-      SDLK_Q:
-        begin
-          Result := false;
-        end;
-
-      SDLK_ESCAPE,
-      SDLK_BACKSPACE :
-        begin
-          Result := False;
-        end;
-
-      SDLK_C:
-        begin
-          if (SDL_ModState = KMOD_LALT) then
-          begin
-            //Credits_Y := 600;
-            //Credits_Alpha := 0;
-            //Credits_Visible := True;
-            Music.PlayStart;
-            FadeTo(@ScreenCredits);
-          end;
-        end;
-      SDLK_M:
-        begin
-          if (Ini.Players >= 1) AND (Length(DLLMan.Plugins)>=1) then
-          begin
-            Music.PlayStart;
-            FadeTo(@ScreenPartyOptions);
-          end;
-        end;
-
-      SDLK_S:
-        begin
-          Music.PlayStart;
-          FadeTo(@ScreenStatMain);
-        end;
-
-      SDLK_E:
-        begin
-          Music.PlayStart;
-          FadeTo(@ScreenEdit);
-        end;
-
-      SDLK_RETURN:
-        begin
-          //Solo
-          if (Interaction = 0) then
-          begin
-            if (Length(Songs.Song) >= 1) then
-            begin
-              Music.PlayStart;
-              if (Ini.Players >= 0) and (Ini.Players <= 3) then PlayersPlay := Ini.Players + 1;
-              if (Ini.Players = 4) then PlayersPlay := 6;
-
-              ScreenName.Goto_SingScreen := False;
-              FadeTo(@ScreenName);
-            end
-            else //show error message
-              ScreenPopupError.ShowPopup(Language.Translate('ERROR_NO_SONGS'));
-          end;
-
-          //Multi
-          if Interaction = 1 then begin
-            if (Length(Songs.Song) >= 1) then
-            begin
-              if (Length(DLLMan.Plugins)>=1) then
-              begin
-                Music.PlayStart;
-                FadeTo(@ScreenPartyOptions);
-              end
-              else //show error message, No Plugins Loaded
-              ScreenPopupError.ShowPopup(Language.Translate('ERROR_NO_PLUGINS'));
-            end
-            else //show error message, No Songs Loaded
-              ScreenPopupError.ShowPopup(Language.Translate('ERROR_NO_SONGS'));
-          end;
-
-          //Stats
-          if Interaction = 2 then begin
-            Music.PlayStart;
-            FadeTo(@ScreenStatMain);
-          end;
-
-          //Editor
-          if Interaction = 3 then begin
-            Music.PlayStart;
-            FadeTo(@ScreenEdit);
-          end;
-
-          //Options
-          if Interaction = 4 then begin
-            Music.PlayStart;
-            FadeTo(@ScreenOptions);
-          end;
-
-          //Exit
-          if Interaction = 5 then begin
-            Result := false;
-          end;
-        end;
-      // Up and Down could be done at the same time,
-      // but I don't want to declare variables inside
-      // functions like this one, called so many times
-      SDLK_DOWN:    InteractInc;
-      SDLK_UP:      InteractDec;
-      SDLK_RIGHT:   InteractNext;
-      SDLK_LEFT:    InteractPrev;
-    end;
-  end
-  else // Key Up
-    case PressedKey of
-      SDLK_RETURN :
-        begin
-        end;
-    end;
-end;
-
-constructor TScreenMain.Create;
-var
-  I:    integer;
-begin
-  inherited Create;
-
-  //----------------
-  //Attention ^^:
-  //New Creation Order needed because of LoadFromTheme
-  //and Button Collections.
-  //At First Custom Texts and Statics
-  //Then LoadFromTheme
-  //after LoadFromTheme the Buttons and Selects
-  //----------------
-
-
-  TextDescription := AddText(Theme.Main.TextDescription);
-  TextDescriptionLong := AddText(Theme.Main.TextDescriptionLong);
-
-  LoadFromTheme(Theme.Main);
-
-  AddButton(Theme.Main.ButtonSolo);
-  AddButton(Theme.Main.ButtonMulti);
-  AddButton(Theme.Main.ButtonStat);
-  AddButton(Theme.Main.ButtonEditor);
-  AddButton(Theme.Main.ButtonOptions);
-  AddButton(Theme.Main.ButtonExit);
-
-  Interaction := 0;
-end;
-
-procedure TScreenMain.onShow;
-begin
-  LCD.WriteText(1, '  Choose mode:  ');
-  UpdateLCD;
-end;
-
-procedure TScreenMain.InteractNext;
-begin
-  inherited InteractNext;
-  Text[TextDescription].Text := Theme.Main.Description[Interaction];
-  Text[TextDescriptionLong].Text := Theme.Main.DescriptionLong[Interaction];
-  UpdateLCD;
-  Light.LightOne(1, 200);
-end;
-
-procedure TScreenMain.InteractPrev;
-begin
-  inherited InteractPrev;
-  Text[TextDescription].Text := Theme.Main.Description[Interaction];
-  Text[TextDescriptionLong].Text := Theme.Main.DescriptionLong[Interaction];
-  UpdateLCD;
-  Light.LightOne(0, 200);
-end;
-
-procedure TScreenMain.InteractDec;
-begin
-  inherited InteractDec;
-  Text[TextDescription].Text := Theme.Main.Description[Interaction];
-  Text[TextDescriptionLong].Text := Theme.Main.DescriptionLong[Interaction];
-  UpdateLCD;
-  Light.LightOne(0, 200);
-end;
-
-procedure TScreenMain.InteractInc;
-begin
-  inherited InteractInc;
-  Text[TextDescription].Text := Theme.Main.Description[Interaction];
-  Text[TextDescriptionLong].Text := Theme.Main.DescriptionLong[Interaction];
-  UpdateLCD;
-  Light.LightOne(1, 200);
-end;
-
-procedure TScreenMain.UpdateLCD;
-begin
-  case Interaction of
-    0:  LCD.WriteText(2, '      sing      ');
-    1:  LCD.WriteText(2, '     editor     ');
-    2:  LCD.WriteText(2, '    options     ');
-    3:  LCD.WriteText(2, '      exit      ');
-  end
-end;
-
-procedure TScreenMain.SetAnimationProgress(Progress: real);
-begin
-  Static[0].Texture.ScaleW := Progress;
-  Static[0].Texture.ScaleH := Progress;
-end;
-end.
+unit UScreenMain;
+
+interface
+
+{$IFDEF FPC}
+  {$MODE Delphi}
+{$ENDIF}
+
+uses
+  UMenu,
+  SDL,
+  UDisplay,
+  UMusic,
+  UFiles,
+  SysUtils,
+  UThemes,
+  ULCD,
+  ULight;
+
+type
+  TScreenMain = class(TMenu)
+    public
+      TextDescription:        integer;
+      TextDescriptionLong:    integer;
+
+      constructor Create; override;
+      function ParseInput(PressedKey: Cardinal; ScanCode: byte; PressedDown: Boolean): Boolean; override;
+      procedure onShow; override;
+      procedure InteractNext; override;
+      procedure InteractPrev; override;
+      procedure InteractInc; override;
+      procedure InteractDec; override;
+      procedure UpdateLCD;
+      procedure SetAnimationProgress(Progress: real); override;
+      //function Draw: boolean; override;
+  end;
+
+implementation
+
+uses {$IFDEF win32}
+     windows,
+     {$ENDIF}
+     UGraphic,
+     UMain,
+     UIni,
+     UTexture,
+     USongs,
+     Textgl,
+//     opengl,
+     ULanguage,
+     UParty,
+     UDLLManager,
+     UScreenCredits,
+     USkins;
+
+
+function TScreenMain.ParseInput(PressedKey: Cardinal; ScanCode: byte; PressedDown: Boolean): Boolean;
+var
+I: Integer;
+SDL_ModState:  Word;
+begin
+  Result := true;
+
+  SDL_ModState := SDL_GetModState and (KMOD_LSHIFT + KMOD_RSHIFT
+    + KMOD_LCTRL + KMOD_RCTRL + KMOD_LALT  + KMOD_RALT);
+
+  //Deactivate Credits when Key is pressed
+//  if Credits_Visible then
+//  begin
+//    Credits_Visible := False;
+//    exit;
+//  end;
+
+  If (PressedDown) Then
+  begin // Key Down
+    case PressedKey of
+      SDLK_Q:
+        begin
+          Result := false;
+        end;
+
+      SDLK_ESCAPE,
+      SDLK_BACKSPACE :
+        begin
+          Result := False;
+        end;
+
+      SDLK_C:
+        begin
+          if (SDL_ModState = KMOD_LALT) then
+          begin
+            //Credits_Y := 600;
+            //Credits_Alpha := 0;
+            //Credits_Visible := True;
+            Music.PlayStart;
+            FadeTo(@ScreenCredits);
+          end;
+        end;
+      SDLK_M:
+        begin
+          if (Ini.Players >= 1) AND (Length(DLLMan.Plugins)>=1) then
+          begin
+            Music.PlayStart;
+            FadeTo(@ScreenPartyOptions);
+          end;
+        end;
+
+      SDLK_S:
+        begin
+          Music.PlayStart;
+          FadeTo(@ScreenStatMain);
+        end;
+
+      SDLK_E:
+        begin
+          Music.PlayStart;
+          FadeTo(@ScreenEdit);
+        end;
+
+      SDLK_RETURN:
+        begin
+          //Solo
+          if (Interaction = 0) then
+          begin
+            if (Length(Songs.Song) >= 1) then
+            begin
+              Music.PlayStart;
+              if (Ini.Players >= 0) and (Ini.Players <= 3) then PlayersPlay := Ini.Players + 1;
+              if (Ini.Players = 4) then PlayersPlay := 6;
+
+              ScreenName.Goto_SingScreen := False;
+              FadeTo(@ScreenName);
+            end
+            else //show error message
+              ScreenPopupError.ShowPopup(Language.Translate('ERROR_NO_SONGS'));
+          end;
+
+          //Multi
+          if Interaction = 1 then begin
+            if (Length(Songs.Song) >= 1) then
+            begin
+              if (Length(DLLMan.Plugins)>=1) then
+              begin
+                Music.PlayStart;
+                FadeTo(@ScreenPartyOptions);
+              end
+              else //show error message, No Plugins Loaded
+              ScreenPopupError.ShowPopup(Language.Translate('ERROR_NO_PLUGINS'));
+            end
+            else //show error message, No Songs Loaded
+              ScreenPopupError.ShowPopup(Language.Translate('ERROR_NO_SONGS'));
+          end;
+
+          //Stats
+          if Interaction = 2 then begin
+            Music.PlayStart;
+            FadeTo(@ScreenStatMain);
+          end;
+
+          //Editor
+          if Interaction = 3 then begin
+            Music.PlayStart;
+            FadeTo(@ScreenEdit);
+          end;
+
+          //Options
+          if Interaction = 4 then begin
+            Music.PlayStart;
+            FadeTo(@ScreenOptions);
+          end;
+
+          //Exit
+          if Interaction = 5 then begin
+            Result := false;
+          end;
+        end;
+      // Up and Down could be done at the same time,
+      // but I don't want to declare variables inside
+      // functions like this one, called so many times
+      SDLK_DOWN:    InteractInc;
+      SDLK_UP:      InteractDec;
+      SDLK_RIGHT:   InteractNext;
+      SDLK_LEFT:    InteractPrev;
+    end;
+  end
+  else // Key Up
+    case PressedKey of
+      SDLK_RETURN :
+        begin
+        end;
+    end;
+end;
+
+constructor TScreenMain.Create;
+var
+  I:    integer;
+begin
+  inherited Create;
+
+  //----------------
+  //Attention ^^:
+  //New Creation Order needed because of LoadFromTheme
+  //and Button Collections.
+  //At First Custom Texts and Statics
+  //Then LoadFromTheme
+  //after LoadFromTheme the Buttons and Selects
+  //----------------
+
+
+  TextDescription := AddText(Theme.Main.TextDescription);
+  TextDescriptionLong := AddText(Theme.Main.TextDescriptionLong);
+
+  LoadFromTheme(Theme.Main);
+
+  AddButton(Theme.Main.ButtonSolo);
+  AddButton(Theme.Main.ButtonMulti);
+  AddButton(Theme.Main.ButtonStat);
+  AddButton(Theme.Main.ButtonEditor);
+  AddButton(Theme.Main.ButtonOptions);
+  AddButton(Theme.Main.ButtonExit);
+
+  Interaction := 0;
+end;
+
+procedure TScreenMain.onShow;
+begin
+  LCD.WriteText(1, '  Choose mode:  ');
+  UpdateLCD;
+end;
+
+procedure TScreenMain.InteractNext;
+begin
+  inherited InteractNext;
+  Text[TextDescription].Text := Theme.Main.Description[Interaction];
+  Text[TextDescriptionLong].Text := Theme.Main.DescriptionLong[Interaction];
+  UpdateLCD;
+  Light.LightOne(1, 200);
+end;
+
+procedure TScreenMain.InteractPrev;
+begin
+  inherited InteractPrev;
+  Text[TextDescription].Text := Theme.Main.Description[Interaction];
+  Text[TextDescriptionLong].Text := Theme.Main.DescriptionLong[Interaction];
+  UpdateLCD;
+  Light.LightOne(0, 200);
+end;
+
+procedure TScreenMain.InteractDec;
+begin
+  inherited InteractDec;
+  Text[TextDescription].Text := Theme.Main.Description[Interaction];
+  Text[TextDescriptionLong].Text := Theme.Main.DescriptionLong[Interaction];
+  UpdateLCD;
+  Light.LightOne(0, 200);
+end;
+
+procedure TScreenMain.InteractInc;
+begin
+  inherited InteractInc;
+  Text[TextDescription].Text := Theme.Main.Description[Interaction];
+  Text[TextDescriptionLong].Text := Theme.Main.DescriptionLong[Interaction];
+  UpdateLCD;
+  Light.LightOne(1, 200);
+end;
+
+procedure TScreenMain.UpdateLCD;
+begin
+  case Interaction of
+    0:  LCD.WriteText(2, '      sing      ');
+    1:  LCD.WriteText(2, '     editor     ');
+    2:  LCD.WriteText(2, '    options     ');
+    3:  LCD.WriteText(2, '      exit      ');
+  end
+end;
+
+procedure TScreenMain.SetAnimationProgress(Progress: real);
+begin
+  Static[0].Texture.ScaleW := Progress;
+  Static[0].Texture.ScaleH := Progress;
+end;
+end.
-- 
cgit v1.2.3