hedgewars/ArgParsers.inc
changeset 8425 4f226963faef
parent 8370 0c79946e96f8
child 8444 75db7bb8dce8
child 8884 08fe08651130
equal deleted inserted replaced
8424:225ede46e3dc 8425:4f226963faef
   116         cStereoMode:= TStereoMode(max(0, min(ord(high(TStereoMode)), tmp)))
   116         cStereoMode:= TStereoMode(max(0, min(ord(high(TStereoMode)), tmp)))
   117     else
   117     else
   118         // any other mode
   118         // any other mode
   119         cStereoMode:= TStereoMode(max(0, min(ord(high(TStereoMode)), tmp-6)));
   119         cStereoMode:= TStereoMode(max(0, min(ord(high(TStereoMode)), tmp-6)));
   120 {$ELSE}
   120 {$ELSE}
       
   121     tmp:= tmp;
   121     cStereoMode:= smNone;
   122     cStereoMode:= smNone;
   122 {$ENDIF}
   123 {$ENDIF}
   123 end;
   124 end;
   124 
   125 
   125 procedure startVideoRecording(var paramIndex: LongInt);
   126 procedure startVideoRecording(var paramIndex: LongInt);
   188         {--prefix}               0 : PathPrefix        := getStringParameter (arg, paramIndex, parseParameter);
   189         {--prefix}               0 : PathPrefix        := getStringParameter (arg, paramIndex, parseParameter);
   189         {--user-prefix}          1 : UserPathPrefix    := getStringParameter (arg, paramIndex, parseParameter);
   190         {--user-prefix}          1 : UserPathPrefix    := getStringParameter (arg, paramIndex, parseParameter);
   190         {--locale}               2 : cLocaleFName      := getStringParameter (arg, paramIndex, parseParameter);
   191         {--locale}               2 : cLocaleFName      := getStringParameter (arg, paramIndex, parseParameter);
   191         {--fullscreen-width}     3 : cFullscreenWidth  := getLongIntParameter(arg, paramIndex, parseParameter);
   192         {--fullscreen-width}     3 : cFullscreenWidth  := getLongIntParameter(arg, paramIndex, parseParameter);
   192         {--fullscreen-height}    4 : cFullscreenHeight := getLongIntParameter(arg, paramIndex, parseParameter);
   193         {--fullscreen-height}    4 : cFullscreenHeight := getLongIntParameter(arg, paramIndex, parseParameter);
   193         {--width}       5 : cWindowedWidth    := getLongIntParameter(arg, paramIndex, parseParameter);
   194         {--width}                5 : cWindowedWidth    := getLongIntParameter(arg, paramIndex, parseParameter);
   194         {--height}      6 : cWindowedHeight   := getLongIntParameter(arg, paramIndex, parseParameter);
   195         {--height}               6 : cWindowedHeight   := getLongIntParameter(arg, paramIndex, parseParameter);
   195         {--frame-interval}       7 : cTimerInterval    := getLongIntParameter(arg, paramIndex, parseParameter);
   196         {--frame-interval}       7 : cTimerInterval    := getLongIntParameter(arg, paramIndex, parseParameter);
   196         {--volume}               8 : SetVolume          ( getLongIntParameter(arg, paramIndex, parseParameter) );
   197         {--volume}               8 : SetVolume          ( getLongIntParameter(arg, paramIndex, parseParameter) );
   197         {--nomusic}              9 : SetMusic           ( false );
   198         {--nomusic}              9 : SetMusic           ( false );
   198         {--nosound}             10 : SetSound           ( false );
   199         {--nosound}             10 : SetSound           ( false );
   199         {--fullscreen}          11 : cFullScreen       := true;
   200         {--fullscreen}          11 : cFullScreen       := true;
   209         {--set-audio}           20 : parseClassicParameter(audioArray,3,paramIndex);
   210         {--set-audio}           20 : parseClassicParameter(audioArray,3,paramIndex);
   210         {--set-other}           21 : parseClassicParameter(otherArray,3,paramIndex);
   211         {--set-other}           21 : parseClassicParameter(otherArray,3,paramIndex);
   211         {--set-multimedia}      22 : parseClassicParameter(mediaArray,10,paramIndex);
   212         {--set-multimedia}      22 : parseClassicParameter(mediaArray,10,paramIndex);
   212         {--set-everything}      23 : parseClassicParameter(allArray,14,paramIndex);
   213         {--set-everything}      23 : parseClassicParameter(allArray,14,paramIndex);
   213         {"internal" options}
   214         {"internal" options}
   214         {--internal}            24 : {note it, but do nothing};
   215         {--internal}            24 : {$IFDEF HWLIBRARY}isInternal:= true{$ENDIF};
   215         {--port}                25 : setIpcPort( getLongIntParameter(arg, paramIndex, parseParameter), parseParameter );
   216         {--port}                25 : setIpcPort( getLongIntParameter(arg, paramIndex, parseParameter), parseParameter );
   216         {--recorder}            26 : startVideoRecording(paramIndex);
   217         {--recorder}            26 : startVideoRecording(paramIndex);
   217         {--landpreview}         27 : GameType := gmtLandPreview;
   218         {--landpreview}         27 : GameType := gmtLandPreview;
   218         {anything else}
   219         {anything else}
   219         {--stats-only}          28 : statsOnlyGame();
   220         {--stats-only}          28 : statsOnlyGame();
   276 end;
   277 end;
   277 
   278 
   278 procedure parseCommandLine{$IFDEF HWLIBRARY}(argc: LongInt; argv: PPChar){$ENDIF};
   279 procedure parseCommandLine{$IFDEF HWLIBRARY}(argc: LongInt; argv: PPChar){$ENDIF};
   279 var paramIndex: LongInt;
   280 var paramIndex: LongInt;
   280     paramTotal: LongInt;
   281     paramTotal: LongInt;
       
   282     index, nextIndex: LongInt;
   281     wrongParameter: boolean;
   283     wrongParameter: boolean;
   282 begin
   284 //var tmpInt: LongInt;
   283     paramIndex:= 1;
   285 begin
   284     paramTotal:={$IFDEF HWLIBRARY}argc{$ELSE}ParamCount{$ENDIF};
   286     paramIndex:= {$IFDEF HWLIBRARY}0{$ELSE}1{$ENDIF};
       
   287     paramTotal:= {$IFDEF HWLIBRARY}argc-1{$ELSE}ParamCount{$ENDIF}; //-1 because pascal enumeration is inclusive
       
   288     (*
       
   289     WriteLn(stdout, 'total parameters: ' + inttostr(paramTotal));
       
   290     tmpInt:= 0;
       
   291     while (tmpInt <= paramTotal) do
       
   292         begin
       
   293         WriteLn(stdout, inttostr(tmpInt) + ': ' + {$IFDEF HWLIBRARY}argv[tmpInt]{$ELSE}paramCount(tmpInt){$ENDIF});
       
   294         inc(tmpInt);
       
   295         end;
       
   296     *)
   285     wrongParameter:= false;
   297     wrongParameter:= false;
   286     while (paramIndex <= paramTotal) do
   298     while (paramIndex <= paramTotal) do
   287         begin
   299         begin
       
   300         // avoid going past the number of paramTotal (esp. w/ library)
       
   301         index:= paramIndex;
       
   302         if index = paramTotal then nextIndex:= index
       
   303         else nextIndex:= index+1;
   288         {$IFDEF HWLIBRARY}
   304         {$IFDEF HWLIBRARY}
   289         wrongParameter:= parseParameter( argv[paramIndex], argv[paramIndex+1], paramIndex);
   305         wrongParameter:= parseParameter( argv[index], argv[nextIndex], paramIndex);
   290         {$ELSE}
   306         {$ELSE}
   291         wrongParameter:= parseParameter( ParamStr(paramIndex), ParamStr(paramIndex+1), paramIndex);
   307         wrongParameter:= parseParameter( ParamStr(index), ParamStr(nextIndex), paramIndex);
   292         {$ENDIF}
   308         {$ENDIF}
   293         inc(paramIndex);
   309         inc(paramIndex);
   294         end;
   310         end;
   295     if wrongParameter = true then
   311     if wrongParameter = true then
   296         GameType:= gmtSyntax;
   312         GameType:= gmtSyntax;
   297 end;
   313 end;
   298 
   314 
   299 {$IFNDEF HWLIBRARY}
   315 {$IFNDEF HWLIBRARY}
   300 procedure GetParams;
   316 procedure GetParams;
   301 //var tmpInt: LongInt;
   317 begin
   302 begin
       
   303     (*
       
   304     tmpInt:=0;
       
   305     while (tmpInt <= ParamCount) do
       
   306         begin
       
   307         WriteLn(stdout, inttostr(tmpInt) + ': ' + ParamStr(tmpInt));
       
   308         inc(tmpInt);
       
   309         end;
       
   310     *)
       
   311 
       
   312     isInternal:= (ParamStr(1) = '--internal');
   318     isInternal:= (ParamStr(1) = '--internal');
   313 
   319 
   314     UserPathPrefix := '.';
   320     UserPathPrefix := '.';
   315     PathPrefix     := cDefaultPathPrefix;
   321     PathPrefix     := cDefaultPathPrefix;
   316     recordFileName := '';
   322     recordFileName := '';