From bbf6784e26b5f94c87c9deedb75711948d937f46 Mon Sep 17 00:00:00 2001
From: jaybinks <jaybinks@b956fd51-792f-4845-bead-9b4dfca2ff2c>
Date: Wed, 26 Mar 2008 12:03:20 +0000
Subject: added "-debug" flag at run time and "CONSOLE" Define in switches.inc
 also the default is to run with no debug info sent to the console

git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@973 b956fd51-792f-4845-bead-9b4dfca2ff2c
---
 Game/Code/Classes/UAudioInput_Bass.pas |  2 -
 Game/Code/Classes/UCommandLine.pas     |  6 ++-
 Game/Code/Classes/UDataBase.pas        | 17 ++++---
 Game/Code/Classes/UDraw.pas            |  8 ----
 Game/Code/Classes/UFiles.pas           | 44 +++++++++---------
 Game/Code/Classes/UHooks.pas           | 22 ++++-----
 Game/Code/Classes/ULog.pas             | 15 ++++++-
 Game/Code/Classes/UMain.pas            | 42 +++---------------
 Game/Code/Classes/UServices.pas        | 18 ++++----
 Game/Code/Classes/USingScores.pas      | 22 ---------
 Game/Code/Classes/USongs.pas           | 26 +----------
 Game/Code/Classes/UThemes.pas          |  4 +-
 Game/Code/Classes/UTime.pas            | 51 ++++++---------------
 Game/Code/Classes/UVideo.pas           | 35 ++++++++-------
 Game/Code/Screens/UScreenCredits.pas   |  2 +-
 Game/Code/Screens/UScreenSing.pas      |  3 --
 Game/Code/Screens/UScreenSong.pas      | 81 +---------------------------------
 Game/Code/switches.inc                 |  7 ++-
 18 files changed, 120 insertions(+), 285 deletions(-)

(limited to 'Game/Code')

diff --git a/Game/Code/Classes/UAudioInput_Bass.pas b/Game/Code/Classes/UAudioInput_Bass.pas
index adc3bf3e..cfb77038 100644
--- a/Game/Code/Classes/UAudioInput_Bass.pas
+++ b/Game/Code/Classes/UAudioInput_Bass.pas
@@ -244,11 +244,9 @@ begin
         Inc(SourceIndex);
       end;
 
-      //Writeln('BASS_RecordFree');
       // FIXME: this call hangs in FPC (windows) every 2nd time USDX is called.
       //   Maybe because the sound-device was not released properly?
       BASS_RecordFree;
-      //Writeln('BASS_RecordFree - Done');
 
       Inc(DeviceIndex);
     end;
diff --git a/Game/Code/Classes/UCommandLine.pas b/Game/Code/Classes/UCommandLine.pas
index 92163f89..e7398b50 100644
--- a/Game/Code/Classes/UCommandLine.pas
+++ b/Game/Code/Classes/UCommandLine.pas
@@ -55,6 +55,7 @@ var
   
 const
   cHelp            = 'help';
+  cDebug           = 'debug';
   cMediaInterfaces = 'showinterfaces';
   cUseLocalPaths   = 'localpaths';
 
@@ -72,7 +73,7 @@ uses SysUtils,
 Constructor TCMDParams.Create;
 begin
 
-  if FindCmdLineSwitch( cHelp ) then
+  if FindCmdLineSwitch( cHelp ) or FindCmdLineSwitch( 'h' ) then
     showhelp();
 
   ResetVariables;
@@ -97,6 +98,9 @@ begin
   writeln( '  ----------------------------------------------------------' );
   writeln( '  '+s( cMediaInterfaces ) + #9 + ' : Show in-use media interfaces' );
   writeln( '  '+s( cUseLocalPaths ) + #9 + ' : Use relative paths' );
+  writeln( '  '+s( cDebug ) + #9 + ' : Display Debugging info' );
+
+
 
   writeln( '' );
 
diff --git a/Game/Code/Classes/UDataBase.pas b/Game/Code/Classes/UDataBase.pas
index ef3c28fe..dcf32315 100644
--- a/Game/Code/Classes/UDataBase.pas
+++ b/Game/Code/Classes/UDataBase.pas
@@ -62,7 +62,10 @@ var
 
 implementation
 
-uses IniFiles, SysUtils;
+uses
+  IniFiles,
+  ULog,
+  SysUtils;
 
 const
   cUS_Scores = 'us_scores';
@@ -74,7 +77,7 @@ const
 
 Procedure TDataBaseSystem.Init(const Filename: string);
 begin
-  writeln( 'TDataBaseSystem.Init ('+Filename+') @ '+ floattostr( now() ) );
+  debugWriteln( 'TDataBaseSystem.Init ('+Filename+') @ '+ floattostr( now() ) );
   
   //Open Database
   ScoreDB   := TSqliteDatabase.Create( Filename );
@@ -85,13 +88,13 @@ begin
     if not ScoreDB.TableExists( cUS_Scores ) then
     begin
       ScoreDB.execsql('CREATE TABLE `'+cUS_Scores+'` (`SongID` INT( 11 ) NOT NULL , `Difficulty` INT( 1 ) NOT NULL , `Player` VARCHAR( 150 ) NOT NULL , `Score` INT( 5 ) NOT NULL );');
-      writeln( 'TDataBaseSystem.Init - CREATED US_Scores' );
+      debugWriteln( 'TDataBaseSystem.Init - CREATED US_Scores' );
     end;
 
     if not ScoreDB.TableExists( cUS_Songs ) then
     begin
       ScoreDB.execsql('CREATE TABLE `'+cUS_Songs+'` (`ID` INTEGER PRIMARY KEY, `Artist` VARCHAR( 255 ) NOT NULL , `Title` VARCHAR( 255 ) NOT NULL , `TimesPlayed` int(5) NOT NULL );');
-      writeln( 'TDataBaseSystem.Init - CREATED US_Songs' );
+      debugWriteln( 'TDataBaseSystem.Init - CREATED US_Songs' );
     end;
     
      //Not possible because of String Limitation to 255 Chars //Need to rewrite Wrapper
@@ -100,8 +103,8 @@ begin
 
 
   finally
-    writeln( cUS_Songs +' Exist : ' + inttostr( integer(ScoreDB.TableExists( cUS_Songs )) ) );
-    writeln( cUS_Scores +' Exist : ' + inttostr( integer(ScoreDB.TableExists( cUS_Scores )) ) );
+    debugWriteln( cUS_Songs +' Exist : ' + inttostr( integer(ScoreDB.TableExists( cUS_Songs )) ) );
+    debugWriteln( cUS_Scores +' Exist : ' + inttostr( integer(ScoreDB.TableExists( cUS_Scores )) ) );
   //ScoreDB.Free;
   end;
 
@@ -112,7 +115,7 @@ end;
 //--------------------
 Destructor TDataBaseSystem.Free;
 begin
-  writeln( 'TDataBaseSystem.Free' );
+  debugWriteln( 'TDataBaseSystem.Free' );
 
   freeandnil( ScoreDB );
 end;
diff --git a/Game/Code/Classes/UDraw.pas b/Game/Code/Classes/UDraw.pas
index 7e8e9849..18c347a7 100644
--- a/Game/Code/Classes/UDraw.pas
+++ b/Game/Code/Classes/UDraw.pas
@@ -250,14 +250,6 @@ begin
   lTmpA := (Right-Left);
   lTmpB := (Lines[NrCzesci].Line[Lines[NrCzesci].Current].End_ - Lines[NrCzesci].Line[Lines[NrCzesci].Current].StartNote);
 
-  {$IFDEF LAZARUS}
-(*
-  writeln( 'UDRAW (Right-Left)    : ' + floattostr( lTmpA ) );
-  writeln( 'UDRAW                 : ' + floattostr( lTmpB ) );
-  writeln( '' );
-*)
-  {$ENDIF}
-
   if ( lTmpA > 0 ) AND
      ( lTmpB > 0 ) THEN
   begin
diff --git a/Game/Code/Classes/UFiles.pas b/Game/Code/Classes/UFiles.pas
index b7c231db..076db441 100644
--- a/Game/Code/Classes/UFiles.pas
+++ b/Game/Code/Classes/UFiles.pas
@@ -82,32 +82,32 @@ begin
   AssignFile(SongFile, Name);
   Rewrite(SongFile);
 
-  WriteLn(SongFile, '#TITLE:' + Song.Title + '');
-  WriteLn(SongFile, '#ARTIST:' + Song.Artist);
+  Writeln(SongFile, '#TITLE:' + Song.Title + '');
+  Writeln(SongFile, '#ARTIST:' + Song.Artist);
 
-  if Song.Creator     <> '' then    WriteLn(SongFile, '#CREATOR:'     + Song.Creator);
-  if Song.Edition     <> 'Unknown' then WriteLn(SongFile, '#EDITION:' + Song.Edition);
-  if Song.Genre       <> 'Unknown' then   WriteLn(SongFile, '#GENRE:' + Song.Genre);
-  if Song.Language    <> 'Unknown' then    WriteLn(SongFile, '#LANGUAGE:'    + Song.Language);
+  if Song.Creator     <> '' then    Writeln(SongFile, '#CREATOR:'     + Song.Creator);
+  if Song.Edition     <> 'Unknown' then Writeln(SongFile, '#EDITION:' + Song.Edition);
+  if Song.Genre       <> 'Unknown' then   Writeln(SongFile, '#GENRE:' + Song.Genre);
+  if Song.Language    <> 'Unknown' then    Writeln(SongFile, '#LANGUAGE:'    + Song.Language);
 
-  WriteLn(SongFile, '#MP3:' + Song.Mp3);
+  Writeln(SongFile, '#MP3:' + Song.Mp3);
 
-  if Song.Cover       <> '' then    WriteLn(SongFile, '#COVER:'       + Song.Cover);
-  if Song.Background  <> '' then    WriteLn(SongFile, '#BACKGROUND:'  + Song.Background);
-  if Song.Video       <> '' then    WriteLn(SongFile, '#VIDEO:'       + Song.Video);
-  if Song.VideoGAP    <> 0  then    WriteLn(SongFile, '#VIDEOGAP:'    + FloatToStr(Song.VideoGAP));
-  if Song.Resolution  <> 4  then    WriteLn(SongFile, '#RESOLUTION:'  + IntToStr(Song.Resolution));
-  if Song.NotesGAP    <> 0  then    WriteLn(SongFile, '#NOTESGAP:'    + IntToStr(Song.NotesGAP));
-  if Song.Start       <> 0  then    WriteLn(SongFile, '#START:'       + FloatToStr(Song.Start));
-  if Song.Finish      <> 0  then    WriteLn(SongFile, '#END:'         + IntToStr(Song.Finish));
-  if Relative               then    WriteLn(SongFile, '#RELATIVE:yes');
+  if Song.Cover       <> '' then    Writeln(SongFile, '#COVER:'       + Song.Cover);
+  if Song.Background  <> '' then    Writeln(SongFile, '#BACKGROUND:'  + Song.Background);
+  if Song.Video       <> '' then    Writeln(SongFile, '#VIDEO:'       + Song.Video);
+  if Song.VideoGAP    <> 0  then    Writeln(SongFile, '#VIDEOGAP:'    + FloatToStr(Song.VideoGAP));
+  if Song.Resolution  <> 4  then    Writeln(SongFile, '#RESOLUTION:'  + IntToStr(Song.Resolution));
+  if Song.NotesGAP    <> 0  then    Writeln(SongFile, '#NOTESGAP:'    + IntToStr(Song.NotesGAP));
+  if Song.Start       <> 0  then    Writeln(SongFile, '#START:'       + FloatToStr(Song.Start));
+  if Song.Finish      <> 0  then    Writeln(SongFile, '#END:'         + IntToStr(Song.Finish));
+  if Relative               then    Writeln(SongFile, '#RELATIVE:yes');
 
-  WriteLn(SongFile, '#BPM:' + FloatToStr(Song.BPM[0].BPM / 4));
-  WriteLn(SongFile, '#GAP:' + FloatToStr(Song.GAP));
+  Writeln(SongFile, '#BPM:' + FloatToStr(Song.BPM[0].BPM / 4));
+  Writeln(SongFile, '#GAP:' + FloatToStr(Song.GAP));
 
   RelativeSubTime := 0;
   for B := 1 to High(CurrentSong.BPM) do
-    WriteLn(SongFile, 'B ' + FloatToStr(CurrentSong.BPM[B].StartBeat) + ' ' + FloatToStr(CurrentSong.BPM[B].BPM/4));
+    Writeln(SongFile, 'B ' + FloatToStr(CurrentSong.BPM[B].StartBeat) + ' ' + FloatToStr(CurrentSong.BPM[B].BPM/4));
 
   for C := 0 to Lines.High do begin
     for N := 0 to Lines.Line[C].HighNote do begin
@@ -123,7 +123,7 @@ begin
         S := NoteState + IntToStr(Start-RelativeSubTime) + ' ' + IntToStr(Length) + ' ' + IntToStr(Tone) + ' ' + Text;
 
 
-        WriteLn(SongFile, S);
+        Writeln(SongFile, S);
       end; // with
     end; // N
 
@@ -135,13 +135,13 @@ begin
           ' ' + IntToStr(Lines.Line[C+1].Start - RelativeSubTime);
         RelativeSubTime := Lines.Line[C+1].Start;
       end;
-      WriteLn(SongFile, S);
+      Writeln(SongFile, S);
     end;
 
   end; // C
 
 
-  WriteLn(SongFile, 'E');
+  Writeln(SongFile, 'E');
   CloseFile(SongFile);
 end;
 
diff --git a/Game/Code/Classes/UHooks.pas b/Game/Code/Classes/UHooks.pas
index 8b33959d..9c9e7dca 100644
--- a/Game/Code/Classes/UHooks.pas
+++ b/Game/Code/Classes/UHooks.pas
@@ -66,7 +66,9 @@ var
   HookManager: THookManager;
 
 implementation
-uses UCore;
+uses
+  ULog,
+  UCore;
 
 //------------
 // Create - Creates Class and Set Standard Values
@@ -82,7 +84,7 @@ begin
   SpaceinEvents := SpacetoAllocate;
 
   {$IFDEF DEBUG}
-    WriteLn('HookManager: Succesful Created.');
+    debugWriteLn('HookManager: Succesful Created.');
   {$ENDIF}
 end;
 
@@ -109,7 +111,7 @@ begin
         end;
 
       {$IFDEF DEBUG}
-        WriteLn('HookManager: Found Space for Event at Handle: ''' + InttoStr(Result+1) + '');
+        debugWriteLn('HookManager: Found Space for Event at Handle: ''' + InttoStr(Result+1) + '');
       {$ENDIF}
     end
     else
@@ -127,12 +129,12 @@ begin
     Inc(Result);
 
     {$IFDEF DEBUG}
-    WriteLn('HookManager: Add Event succesful: ''' + EventName + '');
+    debugWriteLn('HookManager: Add Event succesful: ''' + EventName + '');
     {$ENDIF}
   end
   {$IFDEF DEBUG}
   else
-    WriteLn('HookManager: Trying to ReAdd Event: ''' + EventName + '');
+    debugWriteLn('HookManager: Trying to ReAdd Event: ''' + EventName + '');
   {$ENDIF}
 end;
 
@@ -160,7 +162,7 @@ begin
     end;
 
     {$IFDEF DEBUG}
-      WriteLn('HookManager: Removed Event succesful: ''' + Events[hEvent].Name + '');
+      debugWriteLn('HookManager: Removed Event succesful: ''' + Events[hEvent].Name + '');
     {$ENDIF}
 
     //Free the Event
@@ -170,7 +172,7 @@ begin
 
   {$IFDEF DEBUG}
   else
-    WriteLn('HookManager: Try to Remove not Existing Event. Handle: ''' + InttoStr(hEvent) + '');
+    debugWriteLn('HookManager: Try to Remove not Existing Event. Handle: ''' + InttoStr(hEvent) + '');
   {$ENDIF}
 end;
 
@@ -239,7 +241,7 @@ begin
       Events[EventIndex].LastSubscriber := Cur;
 
       {$IFDEF DEBUG}
-          WriteLn('HookManager: Add Subscriber to Event ''' + Events[EventIndex].Name + ''' succesful. Handle: ''' + InttoStr(Result) + ''' Owner: ' + InttoStr(Cur.Owner));
+          debugWriteLn('HookManager: Add Subscriber to Event ''' + Events[EventIndex].Name + ''' succesful. Handle: ''' + InttoStr(Result) + ''' Owner: ' + InttoStr(Cur.Owner));
       {$ENDIF}
     end;
   end;
@@ -298,7 +300,7 @@ begin
         FreeSubscriber(EventIndex, Last, Cur);
 
         {$IFDEF DEBUG}
-          WriteLn('HookManager: Del Subscriber from Event ''' + Events[EventIndex].Name + ''' succesful. Handle: ''' + InttoStr(hSubscriber) + '');
+          debugWriteLn('HookManager: Del Subscriber from Event ''' + Events[EventIndex].Name + ''' succesful. Handle: ''' + InttoStr(hSubscriber) + '');
         {$ENDIF}
 
         //Set Result and Break the Loop
@@ -353,7 +355,7 @@ begin
   end;
 
   {$IFDEF DEBUG}
-    WriteLn('HookManager: Called Chain from Event ''' + Events[EventIndex].Name + ''' succesful. Result: ''' + InttoStr(Result) + '');
+    debugWriteLn('HookManager: Called Chain from Event ''' + Events[EventIndex].Name + ''' succesful. Result: ''' + InttoStr(Result) + '');
   {$ENDIF}
 end;
 
diff --git a/Game/Code/Classes/ULog.pas b/Game/Code/Classes/ULog.pas
index c30bf676..4e976ab4 100644
--- a/Game/Code/Classes/ULog.pas
+++ b/Game/Code/Classes/ULog.pas
@@ -53,6 +53,7 @@ type
   end;
 
 procedure SafeWriteLn(const msg: string); {$IFDEF HasInline}inline;{$ENDIF}
+procedure debugWriteln( aString : String );
 
 var
   Log:    TLog;
@@ -66,8 +67,8 @@ uses
   SysUtils,
   DateUtils,
 //UFiles,
-  UMain,
   URecord,
+  UMain,  
   UTime,
 //UIni,  // JB - Seems to not be needed.
   {$IFDEF FPC}
@@ -136,10 +137,20 @@ begin
   SDL_CondSignal(ConsoleCond);
   SDL_mutexV(ConsoleMutex);
 {$ELSE}
-  WriteLn(msg);
+  debugWriteln(msg);
 {$ENDIF}
 end;
 
+procedure debugWriteln( aString : String );
+begin
+  {$IFDEF CONSOLE}
+    if FindCmdLineSwitch( cDebug ) then
+      writeln( 'DEBUG - '+aString );
+  {$ENDIF}
+
+end;
+
+
 constructor TLog.Create;
 begin
 {$IFDEF FPC}
diff --git a/Game/Code/Classes/UMain.pas b/Game/Code/Classes/UMain.pas
index f9762c1e..a68445b0 100644
--- a/Game/Code/Classes/UMain.pas
+++ b/Game/Code/Classes/UMain.pas
@@ -22,11 +22,6 @@ uses
   UScreenSing,
   USong,
   OpenGL12,
-  {$IFDEF UseSerialPort}
-  //zlportio, //you can disable it and all PortWriteB calls
-  {$ENDIF}
-  //ULCD,  //TODO: maybe LCD Support as Plugin?
-  //ULight, //TODO: maybe Light Support as Plugin?
   UThemes;
 
 type
@@ -113,8 +108,8 @@ procedure NewBeatC(Sender: TScreenSing); // executed when on then new beat for c
 procedure NewBeatD(Sender: TScreenSing); // executed when on then new beat for detection
 //procedure NewHalf; // executed when in the half between beats
 procedure NewNote(Sender: TScreenSing); // detect note
-function GetMidBeat(Time: real): real;
-function GetTimeFromBeat(Beat: integer): real;
+function  GetMidBeat(Time: real): real;
+function  GetTimeFromBeat(Beat: integer): real;
 procedure ClearScores(PlayerNum: integer);
 
 implementation
@@ -139,6 +134,9 @@ uses
   UPluginDefs,
   UPlatform;
 
+
+
+
 procedure Main;
 var
   WndTitle: string;
@@ -225,36 +223,6 @@ begin
     Log.BenchmarkEnd(1);
     Log.LogBenchmark('Load Sound Settings', 1);
 
-    // LCD         //TODO: maybe LCD Support as Plugin?
-    //Log.BenchmarkStart(1);
-    //Log.LogStatus('Load LCD', 'Initialization');
-    //LCD := TLCD.Create;
-    (*
-    if Ini.LPT = 1 then
-    begin
-      //LCD.HalfInterface := true;
-      LCD.Enable;
-      LCD.Clear;
-      LCD.WriteText(1, '  UltraStar    ');
-      LCD.WriteText(2, '  Loading...   ');
-    end;
-    Log.BenchmarkEnd(1);
-    Log.LogBenchmark('Loading LCD', 1);
-    *)
-    // Light //TODO: maybe Light Support as Plugin?
-    (*
-    Log.BenchmarkStart(1);
-    Log.LogStatus('Load Light', 'Initialization');
-    Light := TLight.Create;
-    if Ini.LPT = 2 then
-    begin
-      Light.Enable;
-    end;
-    Log.BenchmarkEnd(1);
-    Log.LogBenchmark('Loading Light', 1);
-    *)
-
-
     // Theme
     Log.BenchmarkStart(1);
     Log.LogStatus('Load Themes', 'Initialization');
diff --git a/Game/Code/Classes/UServices.pas b/Game/Code/Classes/UServices.pas
index be1fcf2c..7cc811bc 100644
--- a/Game/Code/Classes/UServices.pas
+++ b/Game/Code/Classes/UServices.pas
@@ -65,7 +65,9 @@ var
   ServiceManager: TServiceManager; 
 
 implementation
-uses UCore;
+uses
+  ULog,
+  UCore;
 
 //------------
 // Create - Creates Class and Set Standard Values
@@ -85,7 +87,7 @@ begin
   NextHandle := 1;
 
   {$IFDEF DEBUG}
-    WriteLn('ServiceManager: Succesful created!');
+    debugWriteln('ServiceManager: Succesful created!');
   {$ENDIF}
 end;
 
@@ -141,14 +143,14 @@ begin
       LastService := Cur;
 
       {$IFDEF DEBUG}
-      WriteLn('ServiceManager: Service added: ''' + ServiceName + ''', Handle: ' + InttoStr(Cur.Self));
+      debugWriteln('ServiceManager: Service added: ''' + ServiceName + ''', Handle: ' + InttoStr(Cur.Self));
       {$ENDIF}
 
       //Inc Next Handle
       Inc(NextHandle);
     end
     {$IFDEF DEBUG}
-    else WriteLn('ServiceManager: Try to readd Service: ' + ServiceName);
+    else debugWriteln('ServiceManager: Try to readd Service: ' + ServiceName);
     {$ENDIF}
   end;
 end;
@@ -190,7 +192,7 @@ begin
         end;
 
       {$IFDEF DEBUG}
-      WriteLn('ServiceManager: Removed Service succesful: ' + Cur.Name);
+      debugWriteln('ServiceManager: Removed Service succesful: ' + Cur.Name);
       {$ENDIF}
 
       //Free Memory
@@ -237,7 +239,7 @@ begin
   end;
 
   {$IFDEF DEBUG}
-  WriteLn('ServiceManager: Service ''' + ServiceName + ''' called. Result: ' + InttoStr(Result));
+  debugWriteln('ServiceManager: Service ''' + ServiceName + ''' called. Result: ' + InttoStr(Result));
   {$ENDIF}
 end;
 
@@ -288,7 +290,7 @@ begin
         Result := Integer(ServiceCache[I]);
 
         {$IFDEF DEBUG}
-        WriteLn('ServiceManager: Found Service in Cache: ''' + ServiceName + '''');
+        debugWriteln('ServiceManager: Found Service in Cache: ''' + ServiceName + '''');
         {$ENDIF}
 
         Break;
@@ -308,7 +310,7 @@ begin
           Result := Integer(Cur);
 
           {$IFDEF DEBUG}
-          WriteLn('ServiceManager: Found Service in List: ''' + ServiceName + '''');
+          debugWriteln('ServiceManager: Found Service in List: ''' + ServiceName + '''');
           {$ENDIF}
 
           //Add to Cache
diff --git a/Game/Code/Classes/USingScores.pas b/Game/Code/Classes/USingScores.pas
index 894f5782..67f94824 100644
--- a/Game/Code/Classes/USingScores.pas
+++ b/Game/Code/Classes/USingScores.pas
@@ -423,31 +423,9 @@ begin
   aPlayers[Cur.Player].ScoreDisplayed := aPlayers[Cur.Player].ScoreDisplayed + Cur.ScoreDiff - Cur.ScoreGiven;
 
   //Change Bars Position
-  
-  // TODO : JB_Lazarus - Exception=Invalid floating point operation
-  //                     AT THIS LINE !
-  
-  {$IFDEF LAZARUS}
-(*
-  writeln( 'USINGSCORES-aPlayers[Cur.Player].RBTarget    : ' + floattostr( aPlayers[Cur.Player].RBTarget ) );
-  writeln( 'USINGSCORES-(Cur.ScoreDiff - Cur.ScoreGiven) : ' + floattostr( (Cur.ScoreDiff - Cur.ScoreGiven) ) );
-  writeln( 'USINGSCORES-Cur.ScoreDiff                    : ' + floattostr( Cur.ScoreDiff ) );
-  writeln( 'USINGSCORES-(Cur.Rating / 20 - 0.26)         : ' + floattostr( (Cur.Rating / 20 - 0.26) ) );
-  writeln( '' );
-*)
-  {$ENDIF}
-
   lTempA := ( aPlayers[Cur.Player].RBTarget + (Cur.ScoreDiff - Cur.ScoreGiven) );
   lTempB := ( Cur.ScoreDiff * (Cur.Rating / 20 - 0.26) );
   
-  {$IFDEF LAZARUS}
-(*
-  writeln( 'USINGSCORES-lTempA                           : ' + floattostr( lTempA ) );
-  writeln( 'USINGSCORES-lTempB                           : ' + floattostr( lTempB ) );
-  writeln( '----------------------------------------------------------' );
-*)
-  {$ENDIF}
-
   if ( lTempA > 0 ) AND
      ( lTempB > 0 ) THEN
   begin
diff --git a/Game/Code/Classes/USongs.pas b/Game/Code/Classes/USongs.pas
index ce6275e8..10af65e3 100644
--- a/Game/Code/Classes/USongs.pas
+++ b/Game/Code/Classes/USongs.pas
@@ -157,30 +157,6 @@ begin
     fDirWatch.active       := true;
   {$ENDIF}
 
-  {$IFDEF linux}
-  (*
-    Thankyou to : http://www.linuxjournal.com/article/8478
-                  http://www.tin.org/bin/man.cgi?section=2&topic=inotify_add_watch
-  *)
-(*
-  fNotify := -1;
-  fWatch  := -1;
-  
-  writeln( 'Calling inotify_init' );
-  fNotify := Do_SysCall( syscall_nr_inotify_init );
-  if ( fNotify < 0 ) then
-    writeln( 'Filesystem change notification - disabled' );
-  writeln( 'Calling inotify_init : '+ inttostr(fNotify)  );
-
-  writeln( 'Calling syscall_nr_inotify_init ('+SongPath+')' );
-  fWatch := Do_SysCall( syscall_nr_inotify_init , TSysParam( fNotify ), longint( pchar( SongPath ) ) , IN_MODIFY AND IN_CREATE AND IN_DELETE  );
-  
-  if (fWatch < 0) then
-     writeln ('inotify_add_watch');
-  writeln( 'Calling syscall_nr_inotify_init : '+ inttostr(fWatch)  );
-*)
-  {$endif}
-  
   // now we can start the thread
   Resume();
 end;
@@ -209,7 +185,7 @@ begin
 
     if fParseSongDirectory then
     begin
-      writeln( 'int_LoadSongList' );
+      debugWriteln( 'int_LoadSongList' );
       int_LoadSongList();
     end;
 
diff --git a/Game/Code/Classes/UThemes.pas b/Game/Code/Classes/UThemes.pas
index d6041946..a6a91418 100644
--- a/Game/Code/Classes/UThemes.pas
+++ b/Game/Code/Classes/UThemes.pas
@@ -810,14 +810,14 @@ begin
 
   create_theme_objects();
   
-  writeln( 'TTheme.LoadTheme : '+ FileName );
+  debugWriteln( 'TTheme.LoadTheme : '+ FileName );
 
   FileName := AdaptFilePaths( FileName );
 
   if not FileExists(FileName) then
   begin
     {$ifndef win32}
-      writeln( 'ERROR !!! Theme does not exist ('+ FileName +')' );
+      debugWriteln( 'ERROR !!! Theme does not exist ('+ FileName +')' );
     {$endif}
 
     Log.LogStatus( 'ERROR !!! Theme does not exist ('+ FileName +')' , 'TTheme.LoadTheme');
diff --git a/Game/Code/Classes/UTime.pas b/Game/Code/Classes/UTime.pas
index 3b7749a2..2bc77a9c 100644
--- a/Game/Code/Classes/UTime.pas
+++ b/Game/Code/Classes/UTime.pas
@@ -5,14 +5,13 @@ interface
 {$IFDEF FPC}
   {$MODE Delphi}
 {$ENDIF}
-{$I switches.inc}
 
-{$UNDEF DebugDisplay}
+{$I switches.inc}
 
 type
   TTime = class
     constructor Create;
-    function GetTime: real;
+    function    GetTime: real;
   end;
 
 procedure CountSkipTimeSet;
@@ -20,18 +19,17 @@ procedure CountSkipTime;
 procedure CountMidTime;
 
 var
-  USTime:   TTime;
+  USTime      : TTime;
   
-  TimeNew:  int64;
-  TimeOld:  int64;
-  TimeSkip: real;
-  TimeMid:  real;
-  TimeMidTemp:  int64;
+  TimeNew     : int64;
+  TimeOld     : int64;
+  TimeSkip    : real;
+  TimeMid     : real;
+  TimeMidTemp : int64;
 
 implementation
 
 uses
-//  sysutils,
   sdl,
   ucommon;
   
@@ -53,50 +51,27 @@ begin
   CountSkipTimeSet;
 end;
 
-
 procedure CountSkipTimeSet;
 begin
-  TimeNew  := SDL_GetTicks();
-
-  {$IFDEF DebugDisplay}
-  Writeln( 'CountSkipTimeSet : ' + inttostr(trunc(TimeNew)) );
-  {$ENDIF}
+  TimeNew     := SDL_GetTicks();
 end;
 
-
 procedure CountSkipTime;
 begin
-  TimeOld  := TimeNew;
-  TimeNew  := SDL_GetTicks();
-  TimeSkip := (TimeNew-TimeOld) / cSDLCorrectionRatio;
-
-  {$IFDEF DebugDisplay}
-    Writeln( 'TimeNew       : ' + inttostr(trunc(TimeNew)) );
-    Writeln( 'CountSkipTime : ' + inttostr(trunc(TimeSkip)) );
-  {$ENDIF}
+  TimeOld     := TimeNew;
+  TimeNew     := SDL_GetTicks();
+  TimeSkip    := (TimeNew-TimeOld) / cSDLCorrectionRatio;
 end;
 
-
 procedure CountMidTime;
 begin
   TimeMidTemp := SDL_GetTicks();
   TimeMid     := (TimeMidTemp - TimeNew) / cSDLCorrectionRatio;
-
-  {$IFDEF DebugDisplay}
-  Writeln( 'TimeNew      : ' + inttostr(trunc(TimeNew)) );
-  Writeln( 'CountMidTime : ' + inttostr(trunc(TimeMid)) );
-  {$ENDIF}
 end;
 
-
 function TTime.GetTime: real;
 begin
-  Result   := SDL_GetTicks() / cSDLCorrectionRatio;
-
-  {$IFDEF DebugDisplay}
-  Writeln( 'GetTime : ' + inttostr(trunc(Result)) );
-  {$ENDIF}
+  Result      := SDL_GetTicks() / cSDLCorrectionRatio;
 end;
 
-
 end.
diff --git a/Game/Code/Classes/UVideo.pas b/Game/Code/Classes/UVideo.pas
index 9a0c5f74..1db31b92 100644
--- a/Game/Code/Classes/UVideo.pas
+++ b/Game/Code/Classes/UVideo.pas
@@ -54,6 +54,7 @@ uses SDL,
      {$endif}
      *)
      UIni,
+     ULog,
      UMusic,
      UGraphic;
 
@@ -126,7 +127,7 @@ type
 
 procedure showmessage( aMessage : String );
 begin
-  writeln( aMessage );
+  debugwriteln( aMessage );
 end;
 
 //{$endif}
@@ -163,14 +164,14 @@ begin
   aFirstAudioStream := -1;
   aFirstVideoStream := -1;
 
-  writeln( ' aFormatCtx.nb_streams : ' + inttostr( aFormatCtx.nb_streams ) );
-  writeln( ' length( aFormatCtx.streams ) : ' + inttostr( length(aFormatCtx.streams) ) );
+  debugwriteln( ' aFormatCtx.nb_streams : ' + inttostr( aFormatCtx.nb_streams ) );
+  debugwriteln( ' length( aFormatCtx.streams ) : ' + inttostr( length(aFormatCtx.streams) ) );
 
   i := 0;
   while ( i < aFormatCtx.nb_streams ) do
 //  while ( i < length(aFormatCtx.streams)-1 ) do
   begin
-    writeln( ' aFormatCtx.streams[i] : ' + inttostr( i ) );
+    debugwriteln( ' aFormatCtx.streams[i] : ' + inttostr( i ) );
     st := aFormatCtx.streams[i];
 
     if(st.codec.codec_type = CODEC_TYPE_VIDEO ) AND
@@ -294,7 +295,7 @@ begin
     else
     if (AVPacket.stream_index = AudioStreamIndex ) then
     begin
-      writeln('Encue Audio packet');
+      debugwriteln('Encue Audio packet');
       audioq.put(AVPacket);
     {$endif}
     *)
@@ -455,10 +456,10 @@ begin
   TimeDifference     := 0;
   VideoFormatContext := nil;
 
-//  writeln( aFileName );
+//  debugwriteln( aFileName );
 
   errnum         := av_open_input_file(VideoFormatContext, pchar( aFileName ), Nil, 0, Nil);
-//  writeln( 'Errnum : ' +inttostr( errnum ));
+//  debugwriteln( 'Errnum : ' +inttostr( errnum ));
   if(errnum <> 0) then
   begin
 {$ifdef DebugDisplay}
@@ -485,8 +486,8 @@ begin
     begin
       find_stream_ids( VideoFormatContext, VideoStreamIndex, AudioStreamIndex );
 
-      writeln( 'VideoStreamIndex : ' + inttostr(VideoStreamIndex) );
-      writeln( 'AudioStreamIndex : ' + inttostr(AudioStreamIndex) );
+      debugwriteln( 'VideoStreamIndex : ' + inttostr(VideoStreamIndex) );
+      debugwriteln( 'AudioStreamIndex : ' + inttostr(AudioStreamIndex) );
     end;
     // FIXME: AudioStreamIndex is -1 if video has no sound -> memory access error
     // Just a temporary workaround for now
@@ -510,27 +511,27 @@ begin
 
       if (SDL_OpenAudio(@wanted_spec, @spec) < 0) then
       begin
-        writeln('SDL_OpenAudio: '+SDL_GetError());
+        debugwriteln('SDL_OpenAudio: '+SDL_GetError());
         exit;
       end;
 
-      writeln( 'SDL opened audio device' );
+      debugwriteln( 'SDL opened audio device' );
 
       aCodec := avcodec_find_decoder(aCodecCtx.codec_id);
       if (aCodec = nil) then
       begin
-        writeln('Unsupported codec!');
+        debugwriteln('Unsupported codec!');
         exit;
       end;
 
       avcodec_open(aCodecCtx, aCodec);
 
-      writeln( 'Opened the codec' );
+      debugwriteln( 'Opened the codec' );
 
       packet_queue_init( audioq );
       SDL_PauseAudio(0);
 
-      writeln( 'SDL_PauseAudio' );
+      debugwriteln( 'SDL_PauseAudio' );
 
 
     end;
@@ -608,9 +609,9 @@ begin
                                          TexX, TexY, integer(PIX_FMT_RGB24),
                                          SWS_FAST_BILINEAR, nil, nil, nil);
     if SoftwareScaleContext <> Nil then
-        writeln('got swscale context')
+        debugwriteln('got swscale context')
     else begin
-      writeln('ERROR: didn�t get swscale context');
+      debugwriteln('ERROR: didn�t get swscale context');
       av_free(AVFrameRGB);
       av_free(AVFrame);
       avcodec_close(VideoCodecContext);
@@ -637,7 +638,7 @@ begin
         ScaledVideoWidth:=800.0;
         ScaledVideoHeight:=800.0/VideoAspect;
         VideoTimeBase:=VideoFormatContext^.streams[VideoStreamIndex]^.r_frame_rate.den/VideoFormatContext^.streams[VideoStreamIndex]^.r_frame_rate.num;
-        writeln(VideoTimeBase);
+        debugwriteln( floattostr(VideoTimeBase) );
 {$ifdef DebugDisplay}
       showmessage('framerate: '+inttostr(floor(1/videotimebase))+'fps');
 {$endif}
diff --git a/Game/Code/Screens/UScreenCredits.pas b/Game/Code/Screens/UScreenCredits.pas
index ab883b84..2cf78d12 100644
--- a/Game/Code/Screens/UScreenCredits.pas
+++ b/Game/Code/Screens/UScreenCredits.pas
@@ -337,7 +337,7 @@ begin
   end
   else
     {$IFDEF FPC}
-    writeln( 'could not open file - test.png');
+    debugWriteln( 'could not open file - test.png');
     {$ELSE}
     showmessage('could not open file - test.png');
     {$ENDIF}
diff --git a/Game/Code/Screens/UScreenSing.pas b/Game/Code/Screens/UScreenSing.pas
index bc6c0966..d75a3171 100644
--- a/Game/Code/Screens/UScreenSing.pas
+++ b/Game/Code/Screens/UScreenSing.pas
@@ -915,10 +915,7 @@ begin
   if CurrentSong.VideoLoaded then
   begin
     try
-      writeln( 'VideoPlayback.FFmpegGetFrame' );
       fCurrentVideoPlaybackEngine.GetFrame(LineState.CurrentTime);
-
-      writeln( 'VideoPlayback.FFmpegDrawGL' );
       fCurrentVideoPlaybackEngine.DrawGL(ScreenAct);
 //      PlaySmpeg;
     except
diff --git a/Game/Code/Screens/UScreenSong.pas b/Game/Code/Screens/UScreenSong.pas
index a3467bfe..7bc08148 100644
--- a/Game/Code/Screens/UScreenSong.pas
+++ b/Game/Code/Screens/UScreenSong.pas
@@ -775,83 +775,7 @@ begin
   CatSongs.Refresh;
 
   GenerateThumbnails();
-(*
-  if (length(CatSongs.Song) > 0) then
-  begin
-    //Set Length of Button Array one Time Instead of one time for every Song
-    SetButtonLength(Length(CatSongs.Song));
-
-    I := 0;
-    CreateSongButtons:
-
-    try
-      for Pet := I to High(CatSongs.Song) do begin // creating all buttons
-        // new
-        Texture.Limit := 512;// 256 0.4.2 value, 512 in 0.5.0
-
-        if not FileExists(CatSongs.Song[Pet].Path + CatSongs.Song[Pet].Cover) then
-          CatSongs.Song[Pet].Cover := ''; // 0.5.0: if cover not found then show 'no cover'
-
-        if CatSongs.Song[Pet].Cover = '' then
-          AddButton(300 + Pet*250, 140, 200, 200, Skin.GetTextureFileName('SongCover'), 'JPG', 'Plain', Theme.Song.Cover.Reflections)
-        else begin
-          // cache texture if there is a need to this
-          if not Covers.CoverExists(CatSongs.Song[Pet].Path + CatSongs.Song[Pet].Cover) then
-          begin
-            Texture.CreateCacheMipmap := true;
-            Texture.GetTexture(CatSongs.Song[Pet].Path + CatSongs.Song[Pet].Cover, 'Plain', true); // preloads textures and creates cache mipmap
-            Texture.CreateCacheMipmap := false;
-
-            // puts this texture to the cache file
-            Covers.AddCover(CatSongs.Song[Pet].Path + CatSongs.Song[Pet].Cover);
-
-            // unload full size texture
-            Texture.UnloadTexture(CatSongs.Song[Pet].Path + CatSongs.Song[Pet].Cover, false);
-
-            // we should also add mipmap texture by calling createtexture and use mipmap cache as data source
-          end;
-
-          // and now load it from cache file (small place for the optimization by eliminating reading it from file, but not here)
-          AddButton(300 + Pet*250, 140, 200, 200, CatSongs.Song[Pet].Path + CatSongs.Song[Pet].Cover, 'JPG', 'Plain', Theme.Song.Cover.Reflections);
-        end;
-        Texture.Limit := 1024*1024;
-        I := -1;
-      end;
-    except
-      //When Error is reported the First time for this Song
-      if (I <> Pet) then
-      begin
-        //Some Error reporting:
-        Log.LogError('Could not load Cover: ' + CatSongs.Song[Pet].Cover);
-
-        //Change Cover to NoCover and Continue Loading
-        CatSongs.Song[Pet].Cover := '';
-        I := Pet;
-      end
-      else //when Error occurs Multiple Times(NoSong Cover is damaged), then start loading next Song
-      begin
-        Log.LogError('NoCover Cover is damaged!');
-        try
-          AddButton(300 + Pet*250, 140, 200, 200, '', 'JPG', 'Plain', Theme.Song.Cover.Reflections);
-        except
-          {$IFDEF MSWINDOWS}
-          Messagebox(0, PChar('No Cover Image is damage. Could not Workaround Song Loading, Ultrastar will exit now.'), PChar(Language.Translate('US_VERSION')), MB_ICONERROR or MB_OK);
-          {$ELSE}
-          // TODO : JB_linux - better handle this message and display to user..
-          writeln( 'No Cover Image is damage. Could not Workaround Song Loading, Ultrastar will exit now.');
-          Log.LogError( 'No Cover Image is damage. Could not Workaround Song Loading, Ultrastar will exit now.' );
-          {$ENDIF}
-          Halt;
-        end;
-        I := Pet + 1;
-      end;
-    end;
 
-    if (I <> -1) then
-      GoTo CreateSongButtons;
-
-  end;
-*)
 
   // Randomize Patch
   Randomize;
@@ -932,8 +856,9 @@ begin
           {$IFDEF MSWINDOWS}
           Messagebox(0, PChar('No Cover Image is damage. Could not Workaround Song Loading, Ultrastar will exit now.'), PChar(Language.Translate('US_VERSION')), MB_ICONERROR or MB_OK);
           {$ELSE}
+          
           // TODO : JB_linux - better handle this message and display to user..
-          writeln( 'No Cover Image is damage. Could not Workaround Song Loading, Ultrastar will exit now.');
+          writeln( 'Cover Image is damaged. Could not Workaround Song Loading, Ultrastar will exit now.');
           Log.LogError( 'No Cover Image is damage. Could not Workaround Song Loading, Ultrastar will exit now.' );
           {$ENDIF}
           Halt;
@@ -1625,8 +1550,6 @@ begin
   dx := SongTarget-SongCurrent;
   dt := TimeSkip * 7;
 
-//  writeln( 'TScreenSong.Draw '+ inttostr(trunc(TimeSkip)) );
-  
   if dt > 1 then
     dt := 1;
     
diff --git a/Game/Code/switches.inc b/Game/Code/switches.inc
index 1a8f26cc..ba028f57 100644
--- a/Game/Code/switches.inc
+++ b/Game/Code/switches.inc
@@ -7,6 +7,7 @@
 // So, for Windows-only code use the MSWINDOWS define.
 
 {$IFDEF FPC}
+  {$DEFINE CONSOLE}
   {$IFDEF DARWIN}
     {$H+}
     {$R-}
@@ -26,6 +27,8 @@
   {$DEFINE HasInline}
   {$UNDEF UseSerialPort}
 {$ELSE}
+  {$UNDEF CONSOLE}  // Delphi requires a special app type... no thanks ! :)
+  // {$DEFINE CONSOLE} // -- use for development only !
   {$DEFINE Delphi}
 
   // Delphi version numbers (ignore versions released before Delphi 6 as they miss the $IF directive):
@@ -82,7 +85,9 @@
 
   {$IFDEF DEBUG}
     {$IFNDEF DARWIN}
-      {$APPTYPE CONSOLE}
+      {$IFDEF CONSOLE}
+        {$APPTYPE CONSOLE}
+      {$ENDIF}
     {$ENDIF}
   {$ENDIF}
 
-- 
cgit v1.2.3