diff -r 9527839ad58b -r 96635d815141 hedgewars/hwengine.pas --- a/hedgewars/hwengine.pas Fri Nov 30 22:23:26 2012 -0500 +++ b/hedgewars/hwengine.pas Fri Nov 30 23:04:10 2012 -0500 @@ -543,21 +543,37 @@ procedure GetParams; var tmpInt: LongInt; begin - if (ParamCount < 3) then - begin - DisplayUsage(); - GameType:= gmtSyntax; - end + if (ParamCount < 2) then + GameType:= gmtSyntax else - if (ParamCount = 3) and (ParamStr(3) = 'landpreview') then + 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; + startIndex := 3; + WriteLn(stdout,'defaulting UserPathPrefix') + 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,7 +582,7 @@ internalStartVideoRecordingWithParameters() {$ENDIF} else - playReplayFileWithParameters(); + playReplayFileWithParameters(startIndex); end end;