revamped file access and debug display
authorkoda
Fri, 20 Nov 2009 21:22:05 +0000
changeset 2630 079ef82eac75
parent 2629 be70fd3458c0
child 2631 163b0128bd21
revamped file access and debug display
hedgewars/SDLh.pas
hedgewars/getdocumentpath.m
hedgewars/hwengine.pas
hedgewars/options.inc
hedgewars/uAI.pas
hedgewars/uAIActions.pas
hedgewars/uAIAmmoTests.pas
hedgewars/uAmmos.pas
hedgewars/uChat.pas
hedgewars/uCollisions.pas
hedgewars/uConsole.pas
hedgewars/uConsts.pas
hedgewars/uFloat.pas
hedgewars/uGame.pas
hedgewars/uIO.pas
hedgewars/uKeys.pas
hedgewars/uLandGraphics.pas
hedgewars/uLandObjects.pas
hedgewars/uLandTemplates.pas
hedgewars/uLocale.pas
hedgewars/uMisc.pas
hedgewars/uRandom.pas
hedgewars/uSHA.pas
hedgewars/uSound.pas
hedgewars/uStats.pas
hedgewars/uStore.pas
hedgewars/uTriggers.pas
hedgewars/uWorld.pas
--- a/hedgewars/SDLh.pas	Fri Nov 20 14:56:43 2009 +0000
+++ b/hedgewars/SDLh.pas	Fri Nov 20 21:22:05 2009 +0000
@@ -16,16 +16,17 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
  *)
 
+{$INCLUDE "options.inc"}
+
 unit SDLh;
 interface
 
-{$INCLUDE "options.inc"}
 
 {$IFDEF LINUX}
-{$DEFINE UNIX}
+  {$DEFINE UNIX}
 {$ENDIF}
 {$IFDEF FREEBSD}
-{$DEFINE UNIX}
+  {$DEFINE UNIX}
 {$ENDIF}
 
 {$IFDEF UNIX}
@@ -42,18 +43,19 @@
 {$ENDIF}
 
 {$IFDEF DARWIN}
-	{$PASCALMAINNAME SDL_main}
-{$IFNDEF IPHONEOS}
-	{$linkframework Cocoa}
-	{$linkframework SDL}
-	{$linkframework SDL_net}
-	{$linkframework SDL_image}
-	{$linkframework SDL_ttf}
-	{$linkframework SDL_mixer}
-	{$linklib SDLmain}
-	{$linklib gcc}
+  {$PASCALMAINNAME SDL_main}
+  {$IFNDEF IPHONEOS}
+    {$linkframework Cocoa}
+    {$linkframework SDL}
+    {$linkframework SDL_net}
+    {$linkframework SDL_image}
+    {$linkframework SDL_ttf}
+    {$linkframework SDL_mixer}
+    {$linklib SDLmain}
+    {$linklib gcc}
+  {$ENDIF}
 {$ENDIF}
-{$ENDIF}
+
 
 (*  SDL  *)
 const
@@ -482,7 +484,7 @@
 {$ELSE}
 		SDL_GL_SWAP_CONTROL
 {$ENDIF}
-);
+		);
 
 {$IFDEF SDL13}
 	TSDL_ArrayByteOrder = (  // array component order, low byte -> high byte 
@@ -711,6 +713,11 @@
 procedure SDLNet_FreeSocketSet(_set: PSDLNet_SocketSet); cdecl; external SDL_NetLibName;
 function  SDLNet_AddSocket(_set: PSDLNet_SocketSet; sock: PTCPSocket): LongInt; cdecl; external SDL_NetLibName;
 function  SDLNet_CheckSockets(_set: PSDLNet_SocketSet; timeout: LongInt): LongInt; cdecl; external SDL_NetLibName;
+
+{$IFDEF IPHONEOS}
+function  get_documents_path: PChar; cdecl; external 'hwutils';
+{$ENDIF}
+
 {$ELSE}{$ENDIF}
 
 procedure SDLNet_Write16(value: Word; buf: pointer);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/hedgewars/getdocumentpath.m	Fri Nov 20 21:22:05 2009 +0000
@@ -0,0 +1,8 @@
+#import <UIKit/UIKit.h>
+
+const char* get_documents_path() {
+    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
+    NSString *documentsDirectory = [paths objectAtIndex: 0];
+    const char* path = [documentsDirectory UTF8String];
+    return path;
+}
--- a/hedgewars/hwengine.pas	Fri Nov 20 14:56:43 2009 +0000
+++ b/hedgewars/hwengine.pas	Fri Nov 20 21:22:05 2009 +0000
@@ -16,15 +16,10 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
  *)
 
-{$IFNDEF FPC}
-{$ERROR Only Free Pascal supported!}
-{$ENDIF}
-
 {$INCLUDE "options.inc"}
 
 program hwengine;
-uses
-	SDLh in 'SDLh.pas',
+uses	SDLh in 'SDLh.pas',
 {$IFDEF GLES11}
 	gles11,
 {$ELSE}
@@ -314,14 +309,14 @@
 		end;
 {$ENDIF}
 {$IFDEF IPHONEOS}
-		SDL_JOYAXISMOTION: begin
+(*		SDL_JOYAXISMOTION: begin
                 {* axis 0 = left and right;
                    axis 1 = up and down;
                    axis 2 = back and forth; *}
 
                         WriteLnToConsole('*********************************************       accelerometer');
 			
-			tiltValue:= SDL_JoystickGetAxis(uKeys.theJoystick, 0);
+			tiltValue:= SDL_JoystickGetAxis(uKeys.theJoystick,≤ 0);
 
                         if (CurrentTeam <> nil) then
                         begin
@@ -343,7 +338,7 @@
                                         else
                                                 if (tiltValue  > -1500) and (tiltValue <= 1500) and (movedbybuttons = false) then uKeys.isWalking:= false;  
                         end;
-                end;
+                end;*)
 {$ELSE}
 		SDL_MOUSEBUTTONDOWN: if event.button.button = SDL_BUTTON_WHEELDOWN then uKeys.wheelDown:= true;
 		SDL_MOUSEBUTTONUP: if event.button.button = SDL_BUTTON_WHEELDUP then uKeys.wheelUp:= true;
@@ -392,11 +387,6 @@
 {$ENDIF}
     p: TPathType;
 begin
-{$IFDEF DEBUGFILE}
-AddFileLog('Prefix: "' + PathPrefix +'"');
-for i:= 0 to ParamCount do
-    AddFileLog(inttostr(i) + ': ' + ParamStr(i));
-{$ENDIF}
 
 case ParamCount of
  17: begin
@@ -425,25 +415,25 @@
 {$IFDEF IPHONEOS}
   0: begin
         PathPrefix:= 'hedgewars/Data';
-		recordFileName:= 'hedgewars/save.hws';
-		val('320', cScreenWidth);
-		val('480', cScreenHeight);
-		cInitWidth:= cScreenWidth;
-		cInitHeight:= cScreenHeight;
-		cBitsStr:= '32';
-		val(cBitsStr, cBits);
-		val('100', cInitVolume);
-		isMusicEnabled:= false;
-		isSoundEnabled:= false;
-		cLocaleFName:= 'en.txt';
-		cFullScreen:= true; //T or F is is the same here
-		cAltDamage:= false;
-		cShowFPS:= true;
-		val('8', cTimerInterval);
-		cReducedQuality:= false;
+        recordFileName:= 'hedgewars/save.hws';
+        val('320', cScreenWidth);
+        val('480', cScreenHeight);
+        cInitWidth:= cScreenWidth;
+        cInitHeight:= cScreenHeight;
+        cBitsStr:= '32';
+        val(cBitsStr, cBits);
+        val('100', cInitVolume);
+        isMusicEnabled:= false;
+        isSoundEnabled:= false;
+        cLocaleFName:= 'en.txt';
+        cFullScreen:= true; //T or F is is the same here
+        cAltDamage:= false;
+        cShowFPS:= true;
+        val('8', cTimerInterval);
+        cReducedQuality:= false;
 
         for p:= Succ(Low(TPathType)) to High(TPathType) do
-			if p <> ptMapCurrent then Pathz[p]:= PathPrefix + '/' + Pathz[p]
+                if p <> ptMapCurrent then Pathz[p]:= PathPrefix + '/' + Pathz[p]
      end;
 {$ENDIF}
   3: begin
@@ -457,7 +447,7 @@
 
 		for p:= Succ(Low(TPathType)) to High(TPathType) do
 			if p <> ptMapCurrent then Pathz[p]:= PathPrefix + '/' + Pathz[p]
-	end;
+     end;
   6: begin
 		PathPrefix:= ParamStr(1);
 		recordFileName:= ParamStr(2);
@@ -545,6 +535,15 @@
 	end;
 	else DisplayUsage;
 	end;
+
+{$IFDEF DEBUGFILE}
+AddFileLog('Prefix: "' + PathPrefix +'"');
+for i:= 0 to ParamCount do
+	AddFileLog(inttostr(i) + ': ' + ParamStr(i));
+{$IFDEF IPHONEOS}
+WriteLnToConsole('Saving debug file at: ' + get_documents_path());
+{$ENDIF}
+{$ENDIF}
 end;
 
 /////////////////////////
--- a/hedgewars/options.inc	Fri Nov 20 14:56:43 2009 +0000
+++ b/hedgewars/options.inc	Fri Nov 20 21:22:05 2009 +0000
@@ -18,19 +18,22 @@
 
 {$IFDEF FPC}
   {$J+}
-{$ENDIF}
-
-{$DEFINE DEBUGFILE}
-
-{$IFDEF DEBUGFILE}
-  {$DEFINE DUMP}
-  {$DEFINE TRACEAIACTIONS}
+{$ELSE}
+  {$ERROR Only Free Pascal supported!}
 {$ENDIF}
 
 {$IFDEF IPHONEOS}
   {$DEFINE SDL13}
   {$DEFINE GLES11}
   {$DEFINE TOUCHINPUT}
+  {$DEFINE LOWRES}
+{$ENDIF}
+
+{$IFNDEF DARWIN}
+  {$DEFINE DEBUGFILE}
+  {  $DEFINE DUMP}
+  {  $DEFINE TRACEAIACTIONS}
+  {  $DEFINE COUNTTICKS}
 {$ENDIF}
 
 {$IFDEF TOUCHINPUT}
--- a/hedgewars/uAI.pas	Fri Nov 20 14:56:43 2009 +0000
+++ b/hedgewars/uAI.pas	Fri Nov 20 21:22:05 2009 +0000
@@ -16,10 +16,12 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
  *)
 
+{$INCLUDE "options.inc"}
+
 unit uAI;
 interface
 uses uFloat;
-{$INCLUDE "options.inc"}
+
 procedure ProcessBot;
 procedure FreeActionsList;
 
--- a/hedgewars/uAIActions.pas	Fri Nov 20 14:56:43 2009 +0000
+++ b/hedgewars/uAIActions.pas	Fri Nov 20 21:22:05 2009 +0000
@@ -16,10 +16,12 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
  *)
 
+{$INCLUDE "options.inc"}
+
 unit uAIActions;
 interface
 uses uGears, uFloat;
-{$INCLUDE "options.inc"}
+
 const MAXACTIONS = 96;
       aia_none       = 0;
       aia_Left       = 1;
--- a/hedgewars/uAIAmmoTests.pas	Fri Nov 20 14:56:43 2009 +0000
+++ b/hedgewars/uAIAmmoTests.pas	Fri Nov 20 21:22:05 2009 +0000
@@ -16,6 +16,8 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
  *)
 
+{$INCLUDE "options.inc"}
+
 unit uAIAmmoTests;
 interface
 uses SDLh, uGears, uConsts, uFloat;
--- a/hedgewars/uAmmos.pas	Fri Nov 20 14:56:43 2009 +0000
+++ b/hedgewars/uAmmos.pas	Fri Nov 20 21:22:05 2009 +0000
@@ -16,10 +16,11 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
  *)
 
+{$INCLUDE "options.inc"}
+
 unit uAmmos;
 interface
 uses uConsts, uTeams;
-{$INCLUDE "options.inc"}
 
 procedure AddAmmoStore(s: shortstring);
 procedure AssignStores;
--- a/hedgewars/uChat.pas	Fri Nov 20 14:56:43 2009 +0000
+++ b/hedgewars/uChat.pas	Fri Nov 20 21:22:05 2009 +0000
@@ -16,6 +16,8 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
  *)
 
+{$INCLUDE "options.inc"}
+
 unit uChat;
 
 interface
--- a/hedgewars/uCollisions.pas	Fri Nov 20 14:56:43 2009 +0000
+++ b/hedgewars/uCollisions.pas	Fri Nov 20 21:22:05 2009 +0000
@@ -16,10 +16,12 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
  *)
 
+{$INCLUDE "options.inc"}
+
 unit uCollisions;
 interface
 uses uGears, uFloat;
-{$INCLUDE "options.inc"}
+
 const cMaxGearArrayInd = 255;
 
 type PGearArray = ^TGearArray;
--- a/hedgewars/uConsole.pas	Fri Nov 20 14:56:43 2009 +0000
+++ b/hedgewars/uConsole.pas	Fri Nov 20 21:22:05 2009 +0000
@@ -16,10 +16,12 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
  *)
 
+{$INCLUDE "options.inc"}
+
 unit uConsole;
 interface
 uses uFloat;
-{$INCLUDE "options.inc"}
+
 const isDeveloperMode: boolean = true;
 type TVariableType = (vtCommand, vtLongInt, vthwFloat, vtBoolean);
      TCommandHandler = procedure (var params: shortstring);
--- a/hedgewars/uConsts.pas	Fri Nov 20 14:56:43 2009 +0000
+++ b/hedgewars/uConsts.pas	Fri Nov 20 21:22:05 2009 +0000
@@ -186,32 +186,26 @@
       1024 -> $FFFFFC00
        512 -> $FFFFFE00  *}
 
-{$IFDEF IPHONEOS}
-    LAND_WIDTH  = 2048;
-    LAND_HEIGHT = 1024;
-    LAND_WIDTH_MASK  = $FFFFF800;
-    LAND_HEIGHT_MASK = $FFFFFC00;
+{$IFDEF LOWRES}
+	// default for iphone pre 3gs
+	LAND_WIDTH  = 2048;
+	LAND_HEIGHT = 1024;
+	LAND_WIDTH_MASK  = $FFFFF800;
+	LAND_HEIGHT_MASK = $FFFFFC00;
 {$ELSE}
-{$IFDEF LOWRES}
-    LAND_WIDTH  = 2048;
-    LAND_HEIGHT = 1024;
-    LAND_WIDTH_MASK  = $FFFFF800;
-    LAND_HEIGHT_MASK = $FFFFFC00;
-{$ELSE}
-    LAND_WIDTH  = 4096;
-    LAND_HEIGHT = 2048;
-    LAND_WIDTH_MASK  = $FFFFF000;
-    LAND_HEIGHT_MASK = $FFFFF800;
-{$ENDIF}
+	LAND_WIDTH  = 4096;
+	LAND_HEIGHT = 2048;
+	LAND_WIDTH_MASK  = $FFFFF000;
+	LAND_HEIGHT_MASK = $FFFFF800;
 {$ENDIF}
 
-    COLOR_LAND           = $FFFF;  // white
-    COLOR_INDESTRUCTIBLE = $88FF;  // red
+	COLOR_LAND           = $FFFF;  // white
+	COLOR_INDESTRUCTIBLE = $88FF;  // red
 
-    //some opengl headers do not have these macros
-    GL_BGR  = $80E0;
-    GL_BGRA = $80E1;
-    GL_CLAMP_TO_EDGE = $812F;
+	// some opengl headers do not have these macros
+	GL_BGR  = $80E0;
+	GL_BGRA = $80E1;
+	GL_CLAMP_TO_EDGE = $812F;
 
 
 	cifRandomize = $00000001;
@@ -246,6 +240,9 @@
 
 	cSendEmptyPacketTime = 1000;
 
+	// from uTriggers
+	trigTurns = $80000001;
+
 	// Training Flags
 	tfNone          = $00000000;
 	tfTimeTrial     = $00000001;
@@ -341,18 +338,18 @@
 	htTransparent = $80;
 	
 	cTagsMasks       : array[0..7] of byte = (
-											htTeamName or htName or htHealth,
-											htName or htHealth,
-											htHealth,
-											htNone,
-											htTeamName or htName or htHealth or htTransparent,
-											htName or htHealth or htTransparent,
-											htHealth or htTransparent,
-											htNone
-											);
+				htTeamName or htName or htHealth,
+				htName or htHealth,
+				htHealth,
+				htNone,
+				htTeamName or htName or htHealth or htTransparent,
+				htName or htHealth or htTransparent,
+				htHealth or htTransparent,
+				htNone
+				);
 
-	cHHFileName   = 'Hedgehog';
-	cCHFileName   = 'Crosshair';
+	cHHFileName = 'Hedgehog';
+	cCHFileName = 'Crosshair';
 	cThemeCFGFilename = 'theme.cfg';
 
 	Fontz: array[THWFont] of THHFont = (
@@ -635,7 +632,6 @@
 			Width: 64; Height: 64; imageWidth: 0; imageHeight: 0; saveSurf: false), // sprJetpack
 			(FileName:  'Health'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
 			Width: 16; Height: 16; imageWidth: 0; imageHeight: 0; saveSurf: false), // sprHealth
-
 			(FileName:  'amMolotov'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil; 
 			Width: 32; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false), //sprHandMolotov
 			(FileName:  'Molotov'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
--- a/hedgewars/uFloat.pas	Fri Nov 20 14:56:43 2009 +0000
+++ b/hedgewars/uFloat.pas	Fri Nov 20 21:22:05 2009 +0000
@@ -16,11 +16,11 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
  *)
 
+{$INCLUDE "options.inc"}
+
 unit uFloat;
 interface
 
-{$INCLUDE "options.inc"}
-
 {$IFDEF FPC}
 {$IFDEF ENDIAN_LITTLE}
 type hwFloat = record
--- a/hedgewars/uGame.pas	Fri Nov 20 14:56:43 2009 +0000
+++ b/hedgewars/uGame.pas	Fri Nov 20 21:22:05 2009 +0000
@@ -16,10 +16,11 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
  *)
 
+{$INCLUDE "options.inc"}
+
 unit uGame;
 interface
 uses uFloat;
-{$INCLUDE "options.inc"}
 
 procedure DoGameTick(Lag: LongInt);
 
--- a/hedgewars/uIO.pas	Fri Nov 20 14:56:43 2009 +0000
+++ b/hedgewars/uIO.pas	Fri Nov 20 21:22:05 2009 +0000
@@ -16,10 +16,11 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
  *)
 
+{$INCLUDE "options.inc"}
+
 unit uIO;
 interface
 uses SDLh;
-{$INCLUDE "options.inc"}
 
 const ipcPort: Word = 0;
 
@@ -173,9 +174,9 @@
 	buf: array[0..255] of byte;
 	s: shortstring absolute buf;
 begin
-{$IFDEF IPHONEOS}
-filemode := 0;
-{$ENDIF}
+
+// set RDNLY on file open
+filemode:= 0;
 
 assign(f, fileName);
 reset(f, 1);
--- a/hedgewars/uKeys.pas	Fri Nov 20 14:56:43 2009 +0000
+++ b/hedgewars/uKeys.pas	Fri Nov 20 21:22:05 2009 +0000
@@ -16,10 +16,11 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
  *)
 
+{$INCLUDE "options.inc"}
+
 unit uKeys;
 interface
 uses uConsts, SDLh;
-{$INCLUDE "options.inc"}
 
 type TBinds = array[0..cKeyMaxIndex] of shortstring;
 type TKeyboardState = array[0..cKeyMaxIndex] of Byte;
--- a/hedgewars/uLandGraphics.pas	Fri Nov 20 14:56:43 2009 +0000
+++ b/hedgewars/uLandGraphics.pas	Fri Nov 20 21:22:05 2009 +0000
@@ -16,10 +16,11 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
  *)
 
+{$INCLUDE "options.inc"}
+
 unit uLandGraphics;
 interface
 uses uFloat, uConsts;
-{$INCLUDE "options.inc"}
 
 type PRangeArray = ^TRangeArray;
      TRangeArray = array[0..31] of record
--- a/hedgewars/uLandObjects.pas	Fri Nov 20 14:56:43 2009 +0000
+++ b/hedgewars/uLandObjects.pas	Fri Nov 20 21:22:05 2009 +0000
@@ -16,10 +16,11 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
  *)
 
+{$INCLUDE "options.inc"}
+
 unit uLandObjects;
 interface
 uses SDLh;
-{$INCLUDE "options.inc"}
 
 procedure AddObjects();
 procedure LoadThemeConfig;
--- a/hedgewars/uLandTemplates.pas	Fri Nov 20 14:56:43 2009 +0000
+++ b/hedgewars/uLandTemplates.pas	Fri Nov 20 21:22:05 2009 +0000
@@ -16,10 +16,11 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
  *)
 
+{$INCLUDE "options.inc"}
+
 unit uLandTemplates;
 interface
 uses SDLh;
-{$INCLUDE "options.inc"}
 
 const NTPX = Low(TSDL_Rect.x);
 
--- a/hedgewars/uLocale.pas	Fri Nov 20 14:56:43 2009 +0000
+++ b/hedgewars/uLocale.pas	Fri Nov 20 21:22:05 2009 +0000
@@ -16,6 +16,8 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
  *)
 
+{$INCLUDE "options.inc"}
+
 unit uLocale;
 interface
 type TAmmoStrId = (sidNothing, sidGrenade, sidClusterBomb, sidBazooka, sidUFO, sidShotgun,
--- a/hedgewars/uMisc.pas	Fri Nov 20 14:56:43 2009 +0000
+++ b/hedgewars/uMisc.pas	Fri Nov 20 21:22:05 2009 +0000
@@ -16,9 +16,11 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
  *)
 
+{$INCLUDE "options.inc"}
+
 unit uMisc;
 interface
-{$INCLUDE "options.inc"}
+
 uses uConsts, SDLh,
 {$IFDEF GLES11}
 	gles11,
@@ -130,6 +132,8 @@
 
 	AttackBar: LongInt = 0; // 0 - none, 1 - just bar at the right-down corner, 2 - like in WWP
 
+var	i: LongInt;
+
 type HwColor4f = record
 	r, g, b, a: byte
 	end;
@@ -559,6 +563,7 @@
 	else doSurfaceConversion:= tmpsurf;
 end;
 
+
 initialization
 cDrownSpeed.QWordValue:= 257698038;// 0.06
 cMaxWindSpeed.QWordValue:= 2147484;// 0.0005
@@ -571,17 +576,25 @@
 
 {$IFDEF DEBUGFILE}
 {$I-}
-f:= stderr;
-rewrite(f);
-{$IFNDEF IPHONEOS}
-if ParamCount <> 0 then
-   for i:= 0 to 7 do
-    begin
-      assign(f, ParamStr(1) + '/debug' + inttostr(i) + '.txt');
-      rewrite(f);
-      if IOResult = 0 then break
-    end;
+for i:= 0 to 7 do
+begin
+	assign(f, 
+{$IFDEF IPHONEOS}
+	string(get_documents_path())
+{$ELSE}
+	ParamStr(1)
 {$ENDIF}
+	+ '/debug' + inttostr(i) + '.txt');
+	rewrite(f);
+	if IOResult = 5 then
+	begin
+		// prevent writing on a directory you do not have permissions on
+		// should be safe to assume the current directory is writable
+		assign(f, './debug' + inttostr(i) + '.txt');
+		rewrite(f);
+	end;
+	if IOResult = 0 then break
+end;
 {$I+}
 
 finalization
--- a/hedgewars/uRandom.pas	Fri Nov 20 14:56:43 2009 +0000
+++ b/hedgewars/uRandom.pas	Fri Nov 20 21:22:05 2009 +0000
@@ -16,10 +16,11 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
  *)
 
+{$INCLUDE "options.inc"}
+
 unit uRandom;
 interface
 uses uFloat;
-{$INCLUDE "options.inc"}
 {$INCLUDE "proto.inc"}
 
 procedure SetRandomSeed(Seed: shortstring);
--- a/hedgewars/uSHA.pas	Fri Nov 20 14:56:43 2009 +0000
+++ b/hedgewars/uSHA.pas	Fri Nov 20 21:22:05 2009 +0000
@@ -15,6 +15,8 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
  *)
+ 
+{$INCLUDE "options.inc"}
 
 unit uSHA;
 interface
--- a/hedgewars/uSound.pas	Fri Nov 20 14:56:43 2009 +0000
+++ b/hedgewars/uSound.pas	Fri Nov 20 21:22:05 2009 +0000
@@ -16,10 +16,11 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
  *)
 
+{$INCLUDE "options.inc"}
+
 unit uSound;
 interface
 uses SDLh, uConsts;
-{$INCLUDE "options.inc"}
 
 type PVoicepack = ^TVoicepack;
 	TVoicepack = record
--- a/hedgewars/uStats.pas	Fri Nov 20 14:56:43 2009 +0000
+++ b/hedgewars/uStats.pas	Fri Nov 20 21:22:05 2009 +0000
@@ -16,6 +16,8 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
  *)
 
+{$INCLUDE "options.inc"}
+
 unit uStats;
 interface
 uses uGears, uConsts;
--- a/hedgewars/uStore.pas	Fri Nov 20 14:56:43 2009 +0000
+++ b/hedgewars/uStore.pas	Fri Nov 20 21:22:05 2009 +0000
@@ -265,10 +265,6 @@
     ai: TAmmoType;
     tmpsurf: PSDL_Surface;
     i: LongInt;
-{$IFDEF IPHONEOS}
-tmpP: PLongWordArray;
-tmpA, tmpR, tmpG, tmpB: LongWord;
-{$ENDIF}
 begin
 
 for fi:= Low(THWFont) to High(THWFont) do
@@ -304,45 +300,7 @@
 				end;
 
 			if tmpsurf <> nil then
-				begin
-{$IFDEF IPHONEOS}   
-{* http://bugzilla.libsdl.org/show_bug.cgi?id=868 but patched library doesn't work on ipod, so implementing workaround here *}
-				if (ifAlpha or ifTransparent) > 0 then
-				begin
-					tmpP := tmpsurf^.pixels;
-					for i:= 0 to (tmpsurf^.pitch shr 2) * tmpsurf^.h - 1 do 
-					begin
-{$IFDEF ENDIAN_LITTLE}
-						tmpA:= tmpP^[i] shr 24 and $FF;
-						tmpR:= tmpP^[i] shr 16 and $FF;
-						tmpG:= tmpP^[i] shr 8 and $FF;
-						tmpB:= tmpP^[i] and $FF;
-{$ELSE}
-						tmpA:= tmpP^[i] and $FF;
-						tmpR:= tmpP^[i] shr 8 and $FF;
-						tmpG:= tmpP^[i] shr 16 and $FF;
-						tmpB:= tmpP^[i] shr 24 and $FF;
-{$ENDIF}
-						if tmpA <> 0 then
-						begin
-							tmpR:= round(tmpR * 255 / tmpA);
-							tmpG:= round(tmpG * 255 / tmpA);
-							tmpB:= round(tmpB * 255 / tmpA);
-						end;
-
-						if tmpR > 255 then tmpR:= 255;
-						if tmpG > 255 then tmpG:= 255;
-						if tmpB > 255 then tmpB:= 255;
-
-{$IFDEF ENDIAN_LITTLE}
-						tmpP^[i]:= (tmpA shl 24) or (tmpR shl 16) or (tmpG shl 8) or tmpB;
-{$ELSE}
-						tmpP^[i]:= (tmpA) or (tmpR shl 8) or (tmpG shl 16) or (tmpB shl 24);
-{$ENDIF}
-					end;
-				end;
-{$ENDIF}
-				
+			begin
 				if imageWidth = 0 then imageWidth:= tmpsurf^.w;
 				if imageHeight = 0 then imageHeight:= tmpsurf^.h;
 				if Width = 0 then Width:= tmpsurf^.w;
@@ -353,22 +311,10 @@
 					begin
 					Texture:= Surface2Tex(tmpsurf, false);
 					if (ii = sprWater) and not cReducedQuality then // HACK: We should include some sprite attribute to define the texture wrap directions
-						begin
-					(*	REMOVE ME WHEN BUG ABOVE IS FIXED
-						tmpP := tmpsurf^.pixels; 
-						for i:= 0 to (tmpsurf^.pitch shr 2) * tmpsurf^.h - 1 do
-						begin
-							tmpA:= tmpP^[i] shr 24 and $FF;
-							tmpR:= tmpP^[i] shr 16 and $FF;
-							tmpG:= tmpP^[i] shr 8 and $FF;
-							tmpB:= tmpP^[i] and $FF;
-						
-							writeln(stdout, inttostr(tmpA) + ' | ' + inttostr(tmpR) + ' | ' + inttostr(tmpG)+ ' | ' + inttostr(tmpB));
-						end;
-					*)
+					begin
 						glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
-						end;
 					end;
+				end;
 				if saveSurf then Surface:= tmpsurf else SDL_FreeSurface(tmpsurf)
 				end
 			else
@@ -1030,13 +976,18 @@
 function  LoadImage(const filename: string; imageFlags: Integer): PSDL_Surface;
 var tmpsurf: PSDL_Surface;
     s: shortstring;
+{$IFDEF IPHONEOS}
+    tmpP: PLongWordArray;
+    tmpA, tmpR, tmpG, tmpB: LongWord;
+    i: LongInt;
+{$ENDIF}
 begin
-WriteToConsole(msgLoading + filename + '... ');
+	WriteToConsole(msgLoading + filename + '... ');
 
-s:= filename + '.png';
-tmpsurf:= IMG_Load(Str2PChar(s));
+	s:= filename + '.png';
+	tmpsurf:= IMG_Load(Str2PChar(s));
 
-if ((imageFlags and ifLowRes) <> 0) then
+	if (imageFlags and ifLowRes) <> 0 then
 	begin
 		s:= filename + '-lowres.png';
 		if (tmpsurf <> nil) then
@@ -1044,39 +995,90 @@
 			if ((tmpsurf^.w > MaxTextureSize) or (tmpsurf^.h > MaxTextureSize)) then
 			begin
 				SDL_FreeSurface(tmpsurf);
-				WriteLnToConsole('Image too big, trying to load lowres version: ' + s);
+				{$IFDEF DEBUGFILE}
+				AddFileLog('...image too big, trying to load lowres version: ' + s + '...');
+				{$ENDIF}
 				tmpsurf:= IMG_Load(Str2PChar(s))
 			end;
 		end
 		else
 		begin
-			WriteLnToConsole('Image not found, trying to load lowres version: ' + s);
+			{$IFDEF DEBUGFILE}
+			AddFileLog('...image not found, trying to load lowres version: ' + s + '...');
+			{$ENDIF}
 			tmpsurf:= IMG_Load(Str2PChar(s))
 		end;
 	end;
 
-if tmpsurf = nil then
+	if tmpsurf = nil then
 	begin
-	OutError(msgFailed, (imageFlags and ifCritical) <> 0);
-	exit(nil)
+		OutError(msgFailed, (imageFlags and ifCritical) <> 0);
+		exit(nil)
 	end;
 
-if ((imageFlags and ifIgnoreCaps) = 0) and ((tmpsurf^.w > MaxTextureSize) or (tmpsurf^.h > MaxTextureSize)) then
+	if ((imageFlags and ifIgnoreCaps) = 0) and ((tmpsurf^.w > MaxTextureSize) or (tmpsurf^.h > MaxTextureSize)) then
 	begin
 		SDL_FreeSurface(tmpsurf);
 		OutError(msgFailedSize, (imageFlags and ifCritical) <> 0);
-		//dummy surface to replace non-critical textures that failed to load due to their size
+		// dummy surface to replace non-critical textures that failed to load due to their size
 		exit(SDL_CreateRGBSurface(SDL_SWSURFACE, 32, 32, 32, RMask, GMask, BMask, AMask));
 	end;
 
-tmpsurf:= doSurfaceConversion(tmpsurf);
+	tmpsurf:= doSurfaceConversion(tmpsurf);
+
+{$IFDEF IPHONEOS}   
+{* http://bugzilla.libsdl.org/show_bug.cgi?id=868 but patched library doesn't work on ipod, so implementing workaround here *}
+	if imageFlags and (ifAlpha or ifTransparent) > 0 then
+	begin
+		tmpP := tmpsurf^.pixels;
+		for i:= 0 to (tmpsurf^.pitch shr 2) * tmpsurf^.h - 1 do 
+		begin
+{$IFDEF ENDIAN_LITTLE}
+			tmpA:= tmpP^[i] shr 24 and $FF;
+			tmpR:= tmpP^[i] shr 16 and $FF;
+			tmpG:= tmpP^[i] shr 8 and $FF;
+			tmpB:= tmpP^[i] and $FF;
+{$ELSE}
+			tmpA:= tmpP^[i] and $FF;
+			tmpR:= tmpP^[i] shr 8 and $FF;
+			tmpG:= tmpP^[i] shr 16 and $FF;
+			tmpB:= tmpP^[i] shr 24 and $FF;
+{$ENDIF}
+			if tmpA <> 0 then
+			begin
+				tmpR:= round(tmpR * 255 / tmpA);
+				tmpG:= round(tmpG * 255 / tmpA);
+				tmpB:= round(tmpB * 255 / tmpA);
+			end;
 
-if (imageFlags and ifTransparent) <> 0 then TryDo(SDL_SetColorKey(tmpsurf, SDL_SRCCOLORKEY, 0) = 0, errmsgTransparentSet, true);
-//if (imageFlags and ifAlpha) <> 0 then Result:= SDL_DisplayFormatAlpha(tmpsurf) else Result:= SDL_DisplayFormat(tmpsurf);
-WriteLnToConsole('(' + inttostr(tmpsurf^.w) + ',' + inttostr(tmpsurf^.h) + ') ');
-WriteLnToConsole(msgOK);
+			if tmpR > 255 then tmpR:= 255;
+			if tmpG > 255 then tmpG:= 255;
+			if tmpB > 255 then tmpB:= 255;
 
-LoadImage:= tmpsurf //Result
+{$IFDEF ENDIAN_LITTLE}
+			tmpP^[i]:= (tmpA shl 24) or (tmpR shl 16) or (tmpG shl 8) or tmpB;
+{$ELSE}
+			tmpP^[i]:= (tmpA) or (tmpR shl 8) or (tmpG shl 16) or (tmpB shl 24);
+{$ENDIF}
+		end;
+(*		for i:= 0 to (tmpsurf^.pitch shr 2) * tmpsurf^.h - 1 do
+		begin
+			tmpA:= tmpP^[i] shr 24 and $FF;
+			tmpR:= tmpP^[i] shr 16 and $FF;
+			tmpG:= tmpP^[i] shr 8 and $FF;
+			tmpB:= tmpP^[i] and $FF;
+			writeln(stdout, inttostr(tmpA) + ' | ' + inttostr(tmpR) + ' | ' + inttostr(tmpG)+ ' | ' + inttostr(tmpB));
+		end; *)
+	end;
+{$ENDIF}
+
+	if (imageFlags and ifTransparent) <> 0 then
+		TryDo(SDL_SetColorKey(tmpsurf, SDL_SRCCOLORKEY, 0) = 0, errmsgTransparentSet, true);
+
+	WriteLnToConsole('(' + inttostr(tmpsurf^.w) + ',' + inttostr(tmpsurf^.h) + ') ');
+	WriteLnToConsole(msgOK);
+
+	LoadImage:= tmpsurf //Result
 end;
 
 function glLoadExtension(extension : string) : boolean;
@@ -1099,14 +1101,14 @@
 begin
 glGetIntegerv(GL_MAX_TEXTURE_SIZE, @MaxTextureSize);
 
+WriteLnToConsole('OpenGL - Renderer: ' + string(pchar(glGetString(GL_RENDERER))));
 {$IFDEF DEBUGFILE}
-AddFileLog('OpenGL - Renderer: ' + string(pchar(glGetString(GL_RENDERER))));
 AddFileLog('OpenGL - Vendor: ' + string(pchar(glGetString(GL_VENDOR))));
 AddFileLog('OpenGL - Version: ' + string(pchar(glGetString(GL_VERSION))));
-AddFileLog('OpenGL - GL_MAX_TEXTURE_SIZE: ' + inttostr(MaxTextureSize));
 {$ENDIF}
+WriteLnToConsole('OpenGL - GL_MAX_TEXTURE_SIZE: ' + inttostr(MaxTextureSize));
 
-if MaxTextureSize = 0 then
+	if MaxTextureSize = 0 then
 	begin
 	MaxTextureSize:= 1024;
 {$IFDEF DEBUGFILE}
--- a/hedgewars/uTriggers.pas	Fri Nov 20 14:56:43 2009 +0000
+++ b/hedgewars/uTriggers.pas	Fri Nov 20 21:22:05 2009 +0000
@@ -16,12 +16,12 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
  *)
 
+{$INCLUDE "options.inc"}
+
 unit uTriggers;
 
 interface
 uses SDLh, uConsts;
-{$INCLUDE "options.inc"}
-const trigTurns = $80000001;
 
 type TTrigAction = (taSpawnGear, taSuccessFinish, taFailFinish);
 
--- a/hedgewars/uWorld.pas	Fri Nov 20 14:56:43 2009 +0000
+++ b/hedgewars/uWorld.pas	Fri Nov 20 21:22:05 2009 +0000
@@ -16,10 +16,12 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
  *)
 
+{$INCLUDE "options.inc"}
+
 unit uWorld;
 interface
 uses SDLh, uGears, uConsts, uFloat;
-{$INCLUDE "options.inc"}
+
 const WorldDx: LongInt = -512;
       WorldDy: LongInt = -256;