--- a/hedgewars/uChat.pas Thu Jul 25 16:29:14 2019 +0300
+++ b/hedgewars/uChat.pas Mon Jul 22 19:26:58 2019 +0200
@@ -35,7 +35,8 @@
procedure TextInput(var event: TSDL_TextInputEvent);
implementation
-uses uInputHandler, uTypes, uVariables, uCommands, uUtils, uTextures, uRender, uIO, uScript, uRenderUtils, uLocale;
+uses uInputHandler, uTypes, uVariables, uCommands, uUtils, uTextures, uRender, uIO, uScript, uRenderUtils, uLocale
+ {$IFDEF USE_VIDEO_RECORDING}, uVideoRec{$ENDIF};
const MaxStrIndex = 27;
MaxInputStrLen = 200;
@@ -548,7 +549,15 @@
if (copy(s, 2, 3) = 'lua') then
begin
+ LuaCmdUsed:= true;
AddFileLog('/lua issued');
+{$IFDEF USE_VIDEO_RECORDING}
+ if flagPrerecording then
+ begin
+ AddFileLog('Force-stopping prerecording! Lua commands can not be recorded');
+ StopPreRecording;
+ end;
+{$ENDIF}
if gameType <> gmtNet then
begin
liveLua:= (not liveLua);
--- a/hedgewars/uVariables.pas Thu Jul 25 16:29:14 2019 +0300
+++ b/hedgewars/uVariables.pas Mon Jul 22 19:26:58 2019 +0200
@@ -280,6 +280,9 @@
// whether Lua requested to pause the clock
LuaClockPaused: boolean;
+ // whether /lua command was used
+ LuaCmdUsed: boolean;
+
MaskedSounds : array[TSound] of boolean;
LastVoice : TVoice;
@@ -3007,6 +3010,8 @@
LuaEndTurnRequested:= false;
LuaNoEndTurnTaunts:= false;
+ LuaCmdUsed:= false;
+
for t:= Low(TSound) to High(TSound) do
MaskedSounds[t]:= false;
--- a/hedgewars/uVideoRec.pas Thu Jul 25 16:29:14 2019 +0300
+++ b/hedgewars/uVideoRec.pas Mon Jul 22 19:26:58 2019 +0200
@@ -48,7 +48,7 @@
procedure freeModule;
implementation
-uses uVariables, GLunit, SDLh, SysUtils, uUtils, uIO, uMisc, uTypes, uDebug;
+uses uVariables, GLunit, SDLh, SysUtils, uUtils, uSound, uIO, uMisc, uTypes, uDebug;
type TAddFileLogRaw = procedure (s: pchar); cdecl;
const AvwrapperLibName = 'libavwrapper';
@@ -286,6 +286,14 @@
begin
result:= 0;
AddFileLog('BeginPreRecording');
+ // Videos don't work if /lua command was used, so we forbid them
+ if luaCmdUsed then
+ begin
+ // TODO: Show message to player
+ PlaySound(sndDenied);
+ AddFileLog('Pre-recording prevented; /lua command was used before');
+ exit;
+ end;
thumbnailSaved:= false;
RecPrefix:= 'hw-' + FormatDateTime('YYYY-MM-DD_HH-mm-ss-z', TDateTime(Now()));