From 2a708a74d0a2e9a26caeb6bacf9f252102c89326 Mon Sep 17 00:00:00 2001
From: tobigun <tobigun@b956fd51-792f-4845-bead-9b4dfca2ff2c>
Date: Thu, 8 May 2008 18:31:08 +0000
Subject: added "inherited ..." to all constructors to assure that the
 base-class constructor is called. Different to C or Java, the constructor or
 destructor of the base class (except that of TObject) is not called by
 default if "inherited ..." is not given (very strange). This is no problem
 with classes inherited directly from TObject, because the TObject constructor
 is always called (and sets the values of the fields to 0-values) but i added
 inherited to these constructors too because the base class may change from
 TObject to something different and the "inherited" will probably not added in
 this case and causing problems.

git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1070 b956fd51-792f-4845-bead-9b4dfca2ff2c
---
 Game/Code/Classes/UCatCovers.pas        | 153 ++++++++++++++++----------------
 Game/Code/Classes/UCommandLine.pas      |   3 +-
 Game/Code/Classes/UCommon.pas           |   4 +-
 Game/Code/Classes/UCore.pas             |   2 +
 Game/Code/Classes/UCoreModule.pas       |   2 +
 Game/Code/Classes/UCovers.pas           |   1 +
 Game/Code/Classes/UDLLManager.pas       |   1 +
 Game/Code/Classes/UDataBase.pas         |   4 +-
 Game/Code/Classes/UHooks.pas            |   2 +
 Game/Code/Classes/UJoystick.pas         |   2 +
 Game/Code/Classes/ULCD.pas              |   2 +-
 Game/Code/Classes/ULanguage.pas         |   2 +
 Game/Code/Classes/ULight.pas            |   1 +
 Game/Code/Classes/ULog.pas              |   2 +
 Game/Code/Classes/ULyrics.pas           |   4 +-
 Game/Code/Classes/ULyrics_bak.pas       |   1 +
 Game/Code/Classes/UMedia_dummy.pas      |   1 +
 Game/Code/Classes/UMusic.pas            |   3 +
 Game/Code/Classes/UParty.pas            |   2 +
 Game/Code/Classes/UPlaylist.pas         |   1 +
 Game/Code/Classes/URecord.pas           |   1 +
 Game/Code/Classes/UServices.pas         |   4 +-
 Game/Code/Classes/USingScores.pas       |   2 +
 Game/Code/Classes/USkins.pas            |   1 +
 Game/Code/Classes/USong.pas             |   3 +
 Game/Code/Classes/USongs.pas            |   1 +
 Game/Code/Classes/UThemes.pas           |   6 +-
 Game/Code/Classes/UTime.pas             |   1 +
 Game/Code/Classes/UVideo.pas            |   2 +
 Game/Code/Classes/UVisualizer.pas       |   9 --
 Game/Code/Classes/uPluginLoader.pas     |   4 +
 Game/Code/Menu/UMenu.pas                |   2 +
 Game/Code/lib/projectM/projectM-0_9.inc |   3 +
 Game/Code/lib/projectM/projectM-1_0.inc |   3 +
 34 files changed, 138 insertions(+), 97 deletions(-)

(limited to 'Game')

diff --git a/Game/Code/Classes/UCatCovers.pas b/Game/Code/Classes/UCatCovers.pas
index 516544be..d8cebffa 100644
--- a/Game/Code/Classes/UCatCovers.pas
+++ b/Game/Code/Classes/UCatCovers.pas
@@ -24,18 +24,21 @@ type
   end;
 
 var
-CatCovers: TCatCovers;
+  CatCovers: TCatCovers;
 
 implementation
-uses IniFiles,
-     SysUtils,
-     Classes,
-     // UFiles,
-     UMain,
-     ULog;
+
+uses
+  IniFiles,
+  SysUtils,
+  Classes,
+  // UFiles,
+  UMain,
+  ULog;
 
 constructor TCatCovers.Create;
 begin
+  inherited;
   Load;
 end;
 
@@ -48,81 +51,78 @@ var
   I, J: Integer;
   Name, Filename, Temp: string;
 begin
-try
-  Ini  := TMemIniFile.Create(CoversPath + 'covers.ini');
-  List := TStringlist.Create;
-
-  //Add every Cover in Covers Ini for Every Sorting option
-  for I := low(ISorting) to high(ISorting) do
-  begin
-    Ini.ReadSection(ISorting[I], List);
-
-    for J := 0 to List.Count - 1 do
-      Add(I, List.Strings[J], CoversPath + Ini.ReadString(ISorting[I], List.Strings[J], 'NoCover.jpg'));
+  try
+    Ini  := TMemIniFile.Create(CoversPath + 'covers.ini');
+    List := TStringlist.Create;
+
+    //Add every Cover in Covers Ini for Every Sorting option
+    for I := low(ISorting) to high(ISorting) do
+    begin
+      Ini.ReadSection(ISorting[I], List);
+
+      for J := 0 to List.Count - 1 do
+        Add(I, List.Strings[J], CoversPath + Ini.ReadString(ISorting[I], List.Strings[J], 'NoCover.jpg'));
+    end;
+  finally
+    Ini.Free;
+    List.Free;
   end;
 
-finally
-  Ini.Free;
-  List.Free;
-end;
-
-try
-  //Add Covers from Folder
-  if (FindFirst (CoversPath + '*.jpg', faAnyFile, SR) = 0) then
-    repeat
-      //Add Cover if it doesn't exist for every Section
-      Name := SR.Name;
-      Filename := CoversPath + Name;
-      Delete (Name, length(Name) - 3, 4);
-
-      for I := low(ISorting) to high(ISorting) do
-      begin
-        Temp := Name;
-        if ((I = sTitle) or (I = sTitle2)) and (Pos ('Title', Temp) <> 0) then
-          Delete (Temp, Pos ('Title', Temp), 5)
-        else if (I = sArtist) or (I = sArtist2) and (Pos ('Artist', Temp) <> 0) then
-          Delete (Temp, Pos ('Artist', Temp), 6);
-
-        if not CoverExists(I, Temp) then
-          Add (I, Temp, Filename);
-      end;
-    until FindNext (SR) <> 0;
-
-finally
-  FindClose (SR);
-end;
-
+  try
+    //Add Covers from Folder
+    if (FindFirst (CoversPath + '*.jpg', faAnyFile, SR) = 0) then
+      repeat
+        //Add Cover if it doesn't exist for every Section
+        Name := SR.Name;
+        Filename := CoversPath + Name;
+        Delete (Name, length(Name) - 3, 4);
+
+        for I := low(ISorting) to high(ISorting) do
+        begin
+          Temp := Name;
+          if ((I = sTitle) or (I = sTitle2)) and (Pos ('Title', Temp) <> 0) then
+            Delete (Temp, Pos ('Title', Temp), 5)
+          else if (I = sArtist) or (I = sArtist2) and (Pos ('Artist', Temp) <> 0) then
+            Delete (Temp, Pos ('Artist', Temp), 6);
+
+          if not CoverExists(I, Temp) then
+            Add (I, Temp, Filename);
+        end;
+      until FindNext (SR) <> 0;
+  finally
+    FindClose (SR);
+  end;
 end;
 
   //Add a Cover
 procedure TCatCovers.Add(Sorting: integer; Name, Filename: string);
 begin
-if FileExists (Filename) then //If Exists -> Add
-begin
-SetLength (CNames[Sorting], Length(CNames[Sorting]) + 1);
-SetLength (CFiles[Sorting], Length(CNames[Sorting]) + 1);
+  if FileExists (Filename) then //If Exists -> Add
+  begin
+    SetLength (CNames[Sorting], Length(CNames[Sorting]) + 1);
+    SetLength (CFiles[Sorting], Length(CNames[Sorting]) + 1);
 
-CNames[Sorting][high(cNames[Sorting])] := Uppercase(Name);
-CFiles[Sorting][high(cNames[Sorting])] := FileName;
-end;
+    CNames[Sorting][high(cNames[Sorting])] := Uppercase(Name);
+    CFiles[Sorting][high(cNames[Sorting])] := FileName;
+  end;
 end;
 
   //Returns True when a cover with the given Name exists
 function TCatCovers.CoverExists(Sorting: integer; Name: string): boolean;
 var
-I: Integer;
+  I: Integer;
 begin
-Result := False;
-Name := Uppercase(Name); //Case Insensitiv
+  Result := False;
+  Name := Uppercase(Name); //Case Insensitiv
 
-for I := low(cNames[Sorting]) to high(cNames[Sorting]) do
-begin
-  if (cNames[Sorting][I] = Name) then //Found Name
+  for I := low(cNames[Sorting]) to high(cNames[Sorting]) do
   begin
-    Result := true;
-    break; //Break For Loop
+    if (cNames[Sorting][I] = Name) then //Found Name
+    begin
+      Result := true;
+      break; //Break For Loop
+    end;
   end;
-end;
 end;
 
   //Returns the Filename of a Cover
@@ -130,22 +130,21 @@ function TCatCovers.GetCover(Sorting: integer; Name: string): string;
 var
 I: Integer;
 begin
-Result := '';
-Name := Uppercase(Name);
+  Result := '';
+  Name := Uppercase(Name);
 
-for I := low(cNames[Sorting]) to high(cNames[Sorting]) do
-begin
-  if cNames[Sorting][I] = Name then
+  for I := low(cNames[Sorting]) to high(cNames[Sorting]) do
   begin
-    Result := cFiles[Sorting][I];
-    Break;
+    if cNames[Sorting][I] = Name then
+    begin
+      Result := cFiles[Sorting][I];
+      Break;
+    end;
   end;
-end;
-
-//No Cover
-if (Result = '') AND (FileExists(CoversPath + 'NoCover.jpg')) then
-  Result := CoversPath + 'NoCover.jpg';
 
+  //No Cover
+  if (Result = '') AND (FileExists(CoversPath + 'NoCover.jpg')) then
+    Result := CoversPath + 'NoCover.jpg';
 end;
 
 end.
diff --git a/Game/Code/Classes/UCommandLine.pas b/Game/Code/Classes/UCommandLine.pas
index e7398b50..03e5c9d3 100644
--- a/Game/Code/Classes/UCommandLine.pas
+++ b/Game/Code/Classes/UCommandLine.pas
@@ -72,7 +72,8 @@ uses SysUtils,
 //-------------
 Constructor TCMDParams.Create;
 begin
-
+  inherited;
+  
   if FindCmdLineSwitch( cHelp ) or FindCmdLineSwitch( 'h' ) then
     showhelp();
 
diff --git a/Game/Code/Classes/UCommon.pas b/Game/Code/Classes/UCommon.pas
index 2c73db25..026c2850 100644
--- a/Game/Code/Classes/UCommon.pas
+++ b/Game/Code/Classes/UCommon.pas
@@ -692,8 +692,8 @@ end;
  * output-list. If we only had In- and OutList parameters we had to merge into
  * InList after the recursive calls and copy the data to the OutList afterwards.
  *)
-function _MergeSort(InList, TempList, OutList: TList; StartPos, BlockSize: integer;
-                    CompareFunc: TListSortCompare): TList;
+procedure _MergeSort(InList, TempList, OutList: TList; StartPos, BlockSize: integer;
+                    CompareFunc: TListSortCompare);
 var
   LeftSize, RightSize: integer; // number of elements in left/right block
   LeftEnd, RightEnd: integer;   // Index after last element in left/right block
diff --git a/Game/Code/Classes/UCore.pas b/Game/Code/Classes/UCore.pas
index f28b54f2..ac29e727 100644
--- a/Game/Code/Classes/UCore.pas
+++ b/Game/Code/Classes/UCore.pas
@@ -128,6 +128,8 @@ uses {$IFDEF win32}
 //-------------
 Constructor TCore.Create(const cName: String; const cVersion: LongWord);
 begin
+  inherited Create;
+
   Name := cName;
   Version := cVersion;
   iLastExecuted := 0;
diff --git a/Game/Code/Classes/UCoreModule.pas b/Game/Code/Classes/UCoreModule.pas
index a7ad3b4e..031fb04e 100644
--- a/Game/Code/Classes/UCoreModule.pas
+++ b/Game/Code/Classes/UCoreModule.pas
@@ -59,6 +59,7 @@ implementation
 Constructor TCoreModule.Create;
 begin
   //Dummy maaaan ;)
+  inherited;
 end;
 
 //-------------
@@ -121,6 +122,7 @@ end;
 Destructor TCoreModule.Destroy;
 begin
   //Dummy ftw!!
+  inherited;
 end;
 
 end.
diff --git a/Game/Code/Classes/UCovers.pas b/Game/Code/Classes/UCovers.pas
index 9cd7af10..3a5b4f50 100644
--- a/Game/Code/Classes/UCovers.pas
+++ b/Game/Code/Classes/UCovers.pas
@@ -57,6 +57,7 @@ uses UMain,
 
 constructor TCovers.Create;
 begin
+  inherited;
   W := 128;
   H := 128;
   Size := W*H*3;
diff --git a/Game/Code/Classes/UDLLManager.pas b/Game/Code/Classes/UDLLManager.pas
index cbe79c3c..3d32a72a 100644
--- a/Game/Code/Classes/UDLLManager.pas
+++ b/Game/Code/Classes/UDLLManager.pas
@@ -68,6 +68,7 @@ uses {$IFDEF MSWINDOWS}
 
 constructor TDLLMan.Create;
 begin
+  inherited;
   SetLength(Plugins, 0);
   SetLength(PluginPaths, Length(Plugins));
   GetPluginList;
diff --git a/Game/Code/Classes/UDataBase.pas b/Game/Code/Classes/UDataBase.pas
index f7f39634..8f5ebf50 100644
--- a/Game/Code/Classes/UDataBase.pas
+++ b/Game/Code/Classes/UDataBase.pas
@@ -118,9 +118,9 @@ end;
 //--------------------
 Destructor TDataBaseSystem.Destroy;
 begin
-  debugWriteln( 'TDataBaseSystem.Free' );
-
+  Log.LogInfo('TDataBaseSystem.Free', 'TDataBaseSystem.Destroy');
   freeandnil( ScoreDB );
+  inherited;
 end;
 
 //--------------------
diff --git a/Game/Code/Classes/UHooks.pas b/Game/Code/Classes/UHooks.pas
index 9c9e7dca..f0ba3276 100644
--- a/Game/Code/Classes/UHooks.pas
+++ b/Game/Code/Classes/UHooks.pas
@@ -76,6 +76,8 @@ uses
 constructor THookManager.Create(const SpacetoAllocate: Word);
 var I: Integer;
 begin
+  inherited Create();
+
   //Get the Space and "Zero" it
   SetLength (Events, SpacetoAllocate);
   For I := 0 to SpacetoAllocate-1 do
diff --git a/Game/Code/Classes/UJoystick.pas b/Game/Code/Classes/UJoystick.pas
index cd7171d6..59a1221b 100644
--- a/Game/Code/Classes/UJoystick.pas
+++ b/Game/Code/Classes/UJoystick.pas
@@ -48,6 +48,8 @@ constructor TJoy.Create;
 var
   B, N:    integer;
 begin
+  inherited;
+
   //Old Corvus5 Method
   {// joystick support
   SDL_JoystickEventState(SDL_IGNORE);
diff --git a/Game/Code/Classes/ULCD.pas b/Game/Code/Classes/ULCD.pas
index 13736729..4bbddf46 100644
--- a/Game/Code/Classes/ULCD.pas
+++ b/Game/Code/Classes/ULCD.pas
@@ -119,7 +119,7 @@ end;
 
 constructor TLCD.Create;
 begin
-//
+  inherited;
 end;
 
 procedure TLCD.Enable;
diff --git a/Game/Code/Classes/ULanguage.pas b/Game/Code/Classes/ULanguage.pas
index dc07c298..d534b4e1 100644
--- a/Game/Code/Classes/ULanguage.pas
+++ b/Game/Code/Classes/ULanguage.pas
@@ -61,6 +61,8 @@ constructor TLanguage.Create;
 var
   I, J: Integer;
 begin
+  inherited;
+
   LoadList;
 
   //Set Implode Glues for Backward Compatibility
diff --git a/Game/Code/Classes/ULight.pas b/Game/Code/Classes/ULight.pas
index b0ff9d6b..f91d614c 100644
--- a/Game/Code/Classes/ULight.pas
+++ b/Game/Code/Classes/ULight.pas
@@ -82,6 +82,7 @@ uses
 
 constructor TLight.Create;
 begin
+  inherited;
   Enabled := false;
 end;
 
diff --git a/Game/Code/Classes/ULog.pas b/Game/Code/Classes/ULog.pas
index 1d710387..9cfddcfc 100644
--- a/Game/Code/Classes/ULog.pas
+++ b/Game/Code/Classes/ULog.pas
@@ -128,6 +128,7 @@ end;
 
 constructor TLog.Create;
 begin
+  inherited;
   LogLevel := LOG_LEVEL_DEFAULT;
   LogFileLevel := LOG_FILE_LEVEL_DEFAULT;
   FileOutputEnabled := true;
@@ -141,6 +142,7 @@ begin
   //  CloseFile(AnalyzeFile);
   if LogFileOpened then
     CloseFile(LogFile);
+  inherited;
 end;
 
 procedure TLog.BenchmarkStart(Number: integer);
diff --git a/Game/Code/Classes/ULyrics.pas b/Game/Code/Classes/ULyrics.pas
index b542b5f6..05d7682e 100644
--- a/Game/Code/Classes/ULyrics.pas
+++ b/Game/Code/Classes/ULyrics.pas
@@ -157,6 +157,8 @@ end;
 //---------------
 Constructor TLyricEngine.Create;
 begin
+  inherited;
+
   BPM := 0;
   Resolution := 0;
   LCounter := 0;
@@ -194,7 +196,7 @@ end;
 //---------------
 Destructor  TLyricEngine.Destroy;
 begin
-
+  inherited;
 end;
 
 //---------------
diff --git a/Game/Code/Classes/ULyrics_bak.pas b/Game/Code/Classes/ULyrics_bak.pas
index c99b846f..06361911 100644
--- a/Game/Code/Classes/ULyrics_bak.pas
+++ b/Game/Code/Classes/ULyrics_bak.pas
@@ -116,6 +116,7 @@ Constructor TLyric.Create;
 var
   I: Integer;
 begin
+  inherited;
   //Only 2 Players for now
   For I := 0 to 1 do
   begin
diff --git a/Game/Code/Classes/UMedia_dummy.pas b/Game/Code/Classes/UMedia_dummy.pas
index f576400d..dcdcd710 100644
--- a/Game/Code/Classes/UMedia_dummy.pas
+++ b/Game/Code/Classes/UMedia_dummy.pas
@@ -91,6 +91,7 @@ end;
 
 constructor Tmedia_dummy.create();
 begin
+  inherited;
 end;
 
 procedure Tmedia_dummy.init();
diff --git a/Game/Code/Classes/UMusic.pas b/Game/Code/Classes/UMusic.pas
index 93dd15de..4e0291cf 100644
--- a/Game/Code/Classes/UMusic.pas
+++ b/Game/Code/Classes/UMusic.pas
@@ -319,6 +319,7 @@ var
 
 constructor TAudioFormatInfo.Create(Channels: byte; SampleRate: double; Format: TAudioSampleFormat);
 begin
+  inherited Create();
   Self.Channels := Channels;
   Self.SampleRate := SampleRate;
   Self.Format := Format;
@@ -484,12 +485,14 @@ end;
 
 constructor TSoundLibrary.Create();
 begin
+  inherited;
   LoadSounds();
 end;
 
 destructor TSoundLibrary.Destroy();
 begin
   UnloadSounds();
+  inherited;
 end;
 
 procedure TSoundLibrary.LoadSounds();
diff --git a/Game/Code/Classes/UParty.pas b/Game/Code/Classes/UParty.pas
index b7670c67..9fdcf7a6 100644
--- a/Game/Code/Classes/UParty.pas
+++ b/Game/Code/Classes/UParty.pas
@@ -102,6 +102,7 @@ end;
 //-------------
 Constructor TPartySession.Create;
 begin
+  inherited;
   //UnSet PartyMode
   bPartyMode := False;
 end;
@@ -151,6 +152,7 @@ Destructor TPartySession.Destroy;
 begin
   //Just save some Memory if it wasn't done now..
   SetLength(Modis, 0);
+  inherited;
 end;
 
 //-------------
diff --git a/Game/Code/Classes/UPlaylist.pas b/Game/Code/Classes/UPlaylist.pas
index 4f181d73..a08f33ec 100644
--- a/Game/Code/Classes/UPlaylist.pas
+++ b/Game/Code/Classes/UPlaylist.pas
@@ -83,6 +83,7 @@ uses USongs,
 //----------
 constructor TPlayListManager.Create;
 begin
+  inherited;
   LoadPlayLists;
 end;
 
diff --git a/Game/Code/Classes/URecord.pas b/Game/Code/Classes/URecord.pas
index 2f62f441..6faac2b6 100644
--- a/Game/Code/Classes/URecord.pas
+++ b/Game/Code/Classes/URecord.pas
@@ -368,6 +368,7 @@ constructor TAudioInputProcessor.Create;
 var
   i:        integer;
 begin
+  inherited;
   SetLength(Sound, 6 {max players});//Ini.Players+1);
   for i := 0 to High(Sound) do
   begin
diff --git a/Game/Code/Classes/UServices.pas b/Game/Code/Classes/UServices.pas
index cb03248e..6a73521d 100644
--- a/Game/Code/Classes/UServices.pas
+++ b/Game/Code/Classes/UServices.pas
@@ -78,6 +78,8 @@ uses
 //------------
 Constructor TServiceManager.Create;
 begin
+  inherited;
+
   FirstService := nil;
   LastService := nil;
 
@@ -233,11 +235,9 @@ begin
 
     If (Service.isClass) then
       //Use Proc of Class
-      // FIXME: "function ... of object" does not fit into an integer (2x pointers: object + function-code -> 8byte on x86) 
       Result := Service.ProcOfClass(wParam, lParam)
     Else
       //Use normal Proc
-      // FIXME: will not work with x64 CPUs, pointers will be 64bit there  
       Result := Service.Proc(wParam, lParam);
 
     //Restore CurExecuted
diff --git a/Game/Code/Classes/USingScores.pas b/Game/Code/Classes/USingScores.pas
index 07ef2e40..dd326356 100644
--- a/Game/Code/Classes/USingScores.pas
+++ b/Game/Code/Classes/USingScores.pas
@@ -199,6 +199,8 @@ uses SDL,
 //-----------
 Constructor TSingScores.Create;
 begin
+  inherited;
+
   //Clear PopupList Pointers
   FirstPopUp := nil;
   LastPopUp  := nil;
diff --git a/Game/Code/Classes/USkins.pas b/Game/Code/Classes/USkins.pas
index 76a64de0..8d4ef706 100644
--- a/Game/Code/Classes/USkins.pas
+++ b/Game/Code/Classes/USkins.pas
@@ -51,6 +51,7 @@ uses IniFiles,
 
 constructor TSkin.Create;
 begin
+  inherited;
   LoadList;
 //  LoadSkin('Lisek');
 //  SkinColor := Color;
diff --git a/Game/Code/Classes/USong.pas b/Game/Code/Classes/USong.pas
index 3c365720..66e6f680 100644
--- a/Game/Code/Classes/USong.pas
+++ b/Game/Code/Classes/USong.pas
@@ -124,10 +124,13 @@ uses
 
 constructor TSong.Create();
 begin
+  inherited;
 end;
 
 constructor TSong.Create( const aFileName : WideString );
 begin
+  inherited Create();
+
   Mult    := 1;
   MultBPM := 4;
   fFileName := aFileName;
diff --git a/Game/Code/Classes/USongs.pas b/Game/Code/Classes/USongs.pas
index ebc42efe..dfe79c97 100644
--- a/Game/Code/Classes/USongs.pas
+++ b/Game/Code/Classes/USongs.pas
@@ -164,6 +164,7 @@ end;
 destructor TSongs.destroy();
 begin
   freeandnil( SongList );
+  inherited;
 end;
 
 procedure TSongs.DoDirChanged(Sender: TObject);
diff --git a/Game/Code/Classes/UThemes.pas b/Game/Code/Classes/UThemes.pas
index f38871a9..805bf51a 100644
--- a/Game/Code/Classes/UThemes.pas
+++ b/Game/Code/Classes/UThemes.pas
@@ -65,7 +65,7 @@ type
     Align:  integer;
     Text:   string;
     //Reflection
-    Reflection:           boolean;
+    Reflection:           boolean;
     ReflectionSpacing:    Real;
   end;
   AThemeText = array of TThemeText;
@@ -767,6 +767,8 @@ end;
 
 constructor TTheme.Create(FileName: string; Color: integer);
 begin
+  inherited Create();
+
   Loading := TThemeLoading.Create;
   Main := TThemeMain.Create;
   Name := TThemeName.Create;
@@ -1467,7 +1469,7 @@ begin
   ThemeText.Color := ThemeIni.ReadString(Name, 'Color', '');
 
   //Reflection
-  ThemeText.Reflection         := (ThemeIni.ReadInteger(Name, 'Reflection', 0)) = 1;
+  ThemeText.Reflection         := (ThemeIni.ReadInteger(Name, 'Reflection', 0)) = 1;
   ThemeText.Reflectionspacing  := ThemeIni.ReadFloat(Name, 'ReflectionSpacing', 15);
 
   C := ColorExists(ThemeText.Color);
diff --git a/Game/Code/Classes/UTime.pas b/Game/Code/Classes/UTime.pas
index 2bc77a9c..bd03754d 100644
--- a/Game/Code/Classes/UTime.pas
+++ b/Game/Code/Classes/UTime.pas
@@ -48,6 +48,7 @@ http://www.gamedev.net/community/forums/topic.asp?topic_id=466145&whichpage=1%EE
 
 constructor TTime.Create;
 begin
+  inherited;
   CountSkipTimeSet;
 end;
 
diff --git a/Game/Code/Classes/UVideo.pas b/Game/Code/Classes/UVideo.pas
index f0f710a2..185a693d 100644
--- a/Game/Code/Classes/UVideo.pas
+++ b/Game/Code/Classes/UVideo.pas
@@ -407,6 +407,8 @@ end;
 
 constructor TVideoPlayback_ffmpeg.create();
 begin
+  inherited;
+
   av_register_all;
 
   fVideoOpened := False;
diff --git a/Game/Code/Classes/UVisualizer.pas b/Game/Code/Classes/UVisualizer.pas
index de117f20..d778eff7 100644
--- a/Game/Code/Classes/UVisualizer.pas
+++ b/Game/Code/Classes/UVisualizer.pas
@@ -91,7 +91,6 @@ type
       procedure RestoreOpenGLState();
 
     public
-      constructor Create();
       procedure   Init();
       function    GetName: String;
 
@@ -110,12 +109,6 @@ type
   end;
 
 
-constructor TVideoPlayback_ProjectM.Create();
-begin
-  inherited;
-end;
-
-
 procedure TVideoPlayback_ProjectM.Init();
 begin
   // FIXME: dirty fix needed because the init method is not
@@ -393,6 +386,4 @@ initialization
 finalization
   AudioManager.Remove( singleton_VideoProjectM );
 
-
-
 end.
diff --git a/Game/Code/Classes/uPluginLoader.pas b/Game/Code/Classes/uPluginLoader.pas
index cec9d77d..7191678e 100644
--- a/Game/Code/Classes/uPluginLoader.pas
+++ b/Game/Code/Classes/uPluginLoader.pas
@@ -130,6 +130,8 @@ end;
 //-------------
 Constructor TPluginLoader.Create;
 begin
+  inherited;
+
   //Init PluginInterface
   //Using Methods from UPluginInterface
   PluginInterface.CreateHookableEvent := CreateHookableEvent;
@@ -207,6 +209,7 @@ Destructor TPluginLoader.Destroy;
 begin
   //Just save some Memory if it wasn't done now..
   SetLength(Plugins, 0);
+  inherited;
 end;
 
 //--------------
@@ -634,6 +637,7 @@ end;
 //-------------
 Constructor TtehPlugins.Create;
 begin
+  inherited;
   PluginLoader := nil;
 end;
 
diff --git a/Game/Code/Menu/UMenu.pas b/Game/Code/Menu/UMenu.pas
index 9edf1e00..7656c639 100644
--- a/Game/Code/Menu/UMenu.pas
+++ b/Game/Code/Menu/UMenu.pas
@@ -180,6 +180,8 @@ end;
 
 constructor TMenu.Create;
 begin
+  inherited;
+
   Fade := 0;//fWhite;
 
   SetLength(Static, 0);
diff --git a/Game/Code/lib/projectM/projectM-0_9.inc b/Game/Code/lib/projectM/projectM-0_9.inc
index 24d83700..4aed3260 100644
--- a/Game/Code/lib/projectM/projectM-0_9.inc
+++ b/Game/Code/lib/projectM/projectM-0_9.inc
@@ -321,6 +321,8 @@ constructor TProjectM.Create(gx, gy: integer; fps: integer;
 var
   state: PProjectMState;
 begin
+  inherited Create();
+
   New(state);
   data := state;
 
@@ -420,5 +422,6 @@ destructor TProjectM.Destroy();
 begin
   Dispose(PProjectMState(data));
   data := nil;
+  inherited;
 end;
 
diff --git a/Game/Code/lib/projectM/projectM-1_0.inc b/Game/Code/lib/projectM/projectM-1_0.inc
index a1c1c1f4..96b224ae 100644
--- a/Game/Code/lib/projectM/projectM-1_0.inc
+++ b/Game/Code/lib/projectM/projectM-1_0.inc
@@ -68,6 +68,8 @@ end;
 
 constructor TProjectM.Create(const configFile: string);
 begin
+  inherited Create();
+
   // we cannot catch C++ exceptions in delphi, so we have to check
   // if configFile is valid first
   if (FileExists(configFile)) then
@@ -166,5 +168,6 @@ destructor TProjectM.Destroy();
 begin
   _projectM_free(data);
   data := nil;
+  inherited;
 end;
 
-- 
cgit v1.2.3