--- a/hedgewars/uUtils.pas Mon Aug 27 16:52:50 2012 -0400
+++ b/hedgewars/uUtils.pas Tue Aug 28 20:30:57 2012 +0400
@@ -61,6 +61,7 @@
function CheckCJKFont(s: ansistring; font: THWFont): THWFont;
procedure AddFileLog(s: shortstring);
+procedure AddFileLogRaw(s: pchar); cdecl;
function CheckNoTeamOrHH: boolean; inline;
@@ -81,6 +82,9 @@
{$IFDEF DEBUGFILE}
var f: textfile;
+{$IFDEF USE_VIDEO_RECORDING}
+ logMutex: TRTLCriticalSection; // mutex for debug file
+{$ENDIF}
{$ENDIF}
var CharArray: array[byte] of Char;
@@ -291,11 +295,31 @@
begin
s:= s;
{$IFDEF DEBUGFILE}
+{$IFDEF USE_VIDEO_RECORDING}
+EnterCriticalSection(logMutex);
+{$ENDIF}
writeln(f, inttostr(GameTicks) + ': ' + s);
-flush(f)
+flush(f);
+{$IFDEF USE_VIDEO_RECORDING}
+LeaveCriticalSection(logMutex);
+{$ENDIF}
{$ENDIF}
end;
+procedure AddFileLogRaw(s: pchar); cdecl;
+begin
+s:= s;
+{$IFDEF DEBUGFILE}
+{$IFDEF USE_VIDEO_RECORDING}
+EnterCriticalSection(logMutex);
+{$ENDIF}
+write(f, s);
+flush(f);
+{$IFDEF USE_VIDEO_RECORDING}
+LeaveCriticalSection(logMutex);
+{$ENDIF}
+{$ENDIF}
+end;
function CheckCJKFont(s: ansistring; font: THWFont): THWFont;
var l, i : LongInt;
@@ -385,9 +409,17 @@
begin
{$IFDEF DEBUGFILE}
if isGame then
- logfileBase:= 'game'
+ begin
+ if GameType = gmtRecord then
+ logfileBase:= 'rec'
+ else
+ logfileBase:= 'game';
+ end
else
logfileBase:= 'preview';
+{$IFDEF USE_VIDEO_RECORDING}
+ InitCriticalSection(logMutex);
+{$ENDIF}
{$I-}
{$IFDEF MOBILE}
{$IFDEF IPHONEOS} Assign(f,'../Documents/hw-' + logfileBase + '.log'); {$ENDIF}
@@ -424,6 +456,9 @@
writeln(f, 'halt at ' + inttostr(GameTicks) + ' ticks. TurnTimeLeft = ' + inttostr(TurnTimeLeft));
flush(f);
close(f);
+{$IFDEF USE_VIDEO_RECORDING}
+ DoneCriticalSection(logMutex);
+{$ENDIF}
{$ENDIF}
end;