diff -r ad178654142a -r 49eb757a1a4d hedgewars/hwengine.pas --- a/hedgewars/hwengine.pas Tue Dec 04 22:31:22 2012 +0400 +++ b/hedgewars/hwengine.pas Mon Dec 03 17:38:31 2012 -0500 @@ -541,23 +541,44 @@ {$INCLUDE "ArgParsers.inc"} procedure GetParams; -var tmpInt: LongInt; +var startIndex,tmpInt: LongInt; + debug: string; begin - if (ParamCount < 3) then + if (ParamCount < 2) then begin DisplayUsage(); GameType:= gmtSyntax; end else - if (ParamCount = 3) and (ParamStr(3) = 'landpreview') then + begin + if (ParamCount >= 2) then + begin + UserPathPrefix := ParamStr(1); + PathPrefix := ParamStr(2) + end; + if (ParamCount >= 3) then + recordFilename := ParamStr(3); + if (ParamCount = 2) or + ((ParamCount >= 3) and (Copy(recordFileName,1,2) = '--')) then + begin + recordFileName := PathPrefix; + PathPrefix := UserPathPrefix; + UserPathPrefix := '.'; + startIndex := 3; + end + else + startIndex := 4; + if (ParamCount = startIndex) and + (ParamStr(startIndex) = 'landpreview') then begin ipcPort:= StrToInt(ParamStr(2)); GameType:= gmtLandPreview; end else begin - if (ParamCount = 3) and (ParamStr(3) = '--stats-only') then - playReplayFileWithParameters() + if (ParamCount = startIndex) and + (ParamStr(startIndex) = '--stats-only') then + playReplayFileWithParameters(startIndex) else if ParamCount = cDefaultParamNum then internalStartGameWithParameters() @@ -566,8 +587,12 @@ internalStartVideoRecordingWithParameters() {$ENDIF} else - playReplayFileWithParameters(); + playReplayFileWithParameters(startIndex); end + end; + WriteLn(stdout,recordFilename); + WriteLn(stdout,PathPrefix); + WriteLn(stdout,UserPathPrefix); end; ///////////////////////////////////////////////////////////////////////////////