hedgewars/ArgParsers.inc
branchwebgl
changeset 8446 c18ba8726f5a
parent 8444 75db7bb8dce8
child 8850 ae8a957c69fd
equal deleted inserted replaced
8444:75db7bb8dce8 8446:c18ba8726f5a
   158     if wrongParameter then
   158     if wrongParameter then
   159          WriteLn(stderr, 'ERROR: '+ParamStr(paramIndex-1)+' expects a string, you passed "'+str+'"');
   159          WriteLn(stderr, 'ERROR: '+ParamStr(paramIndex-1)+' expects a string, you passed "'+str+'"');
   160     getStringParameter:= str;
   160     getStringParameter:= str;
   161 end;
   161 end;
   162 
   162 
   163 procedure parseClassicParameter(cmdArray: array of String; size:LongInt; var paramIndex:LongInt); forward;
   163 procedure parseClassicParameter(cmdarray: array of String; size:LongInt; var paramIndex:LongInt); forward;
   164 
   164 
   165 function parseParameter(cmd:String; arg:String; var paramIndex:LongInt): Boolean;
   165 function parseParameter(cmd:String; arg:String; var paramIndex:LongInt): Boolean;
   166 const videoArray: Array [1..5] of String = ('--fullscreen-width','--fullscreen-height', '--width', '--height', '--depth');
   166 const videoarray: array [0..4] of String = ('--fullscreen-width','--fullscreen-height', '--width', '--height', '--depth');
   167       audioArray: Array [1..3] of String = ('--volume','--nomusic','--nosound');
   167       audioarray: array [0..2] of String = ('--volume','--nomusic','--nosound');
   168       otherArray: Array [1..3] of String = ('--locale','--fullscreen','--showfps');
   168       otherarray: array [0..2] of String = ('--locale','--fullscreen','--showfps');
   169       mediaArray: Array [1..10] of String = ('--fullscreen-width', '--fullscreen-height', '--width', '--height', '--depth', '--volume','--nomusic','--nosound','--locale','--fullscreen');
   169       mediaarray: array [0..9] of String = ('--fullscreen-width', '--fullscreen-height', '--width', '--height', '--depth', '--volume','--nomusic','--nosound','--locale','--fullscreen');
   170       allArray: Array [1..14] of String = ('--fullscreen-width','--fullscreen-height', '--width', '--height', '--depth','--volume','--nomusic','--nosound','--locale','--fullscreen','--showfps','--altdmg','--frame-interval','--low-quality');
   170       allarray: array [0..13] of String = ('--fullscreen-width','--fullscreen-height', '--width', '--height', '--depth','--volume','--nomusic','--nosound','--locale','--fullscreen','--showfps','--altdmg','--frame-interval','--low-quality');
   171       reallyAll: array[0..30] of shortstring = (
   171       reallyAll: array[0..30] of shortstring = (
   172                 '--prefix', '--user-prefix', '--locale', '--fullscreen-width', '--fullscreen-height', '--width', 
   172                 '--prefix', '--user-prefix', '--locale', '--fullscreen-width', '--fullscreen-height', '--width', 
   173                 '--height', '--frame-interval', '--volume','--nomusic', '--nosound',
   173                 '--height', '--frame-interval', '--volume','--nomusic', '--nosound',
   174                 '--fullscreen', '--showfps', '--altdmg', '--low-quality', '--raw-quality', '--stereo', '--nick', 
   174                 '--fullscreen', '--showfps', '--altdmg', '--low-quality', '--raw-quality', '--stereo', '--nick', 
   175   {deprecated}  '--depth', '--set-video', '--set-audio', '--set-other', '--set-multimedia', '--set-everything',
   175   {deprecated}  '--depth', '--set-video', '--set-audio', '--set-other', '--set-multimedia', '--set-everything',
   203         {--raw-quality}         15 : cReducedQuality   := getLongIntParameter(arg, paramIndex, parseParameter);
   203         {--raw-quality}         15 : cReducedQuality   := getLongIntParameter(arg, paramIndex, parseParameter);
   204         {--stereo}              16 : setStereoMode      ( getLongIntParameter(arg, paramIndex, parseParameter) );
   204         {--stereo}              16 : setStereoMode      ( getLongIntParameter(arg, paramIndex, parseParameter) );
   205         {--nick}                17 : UserNick          := parseNick( getStringParameter(arg, paramIndex, parseParameter) );
   205         {--nick}                17 : UserNick          := parseNick( getStringParameter(arg, paramIndex, parseParameter) );
   206         {deprecated options}
   206         {deprecated options}
   207         {--depth}               18 : setDepth(paramIndex);
   207         {--depth}               18 : setDepth(paramIndex);
   208         {--set-video}           19 : parseClassicParameter(videoArray,5,paramIndex);
   208         {--set-video}           19 : parseClassicParameter(videoarray,5,paramIndex);
   209         {--set-audio}           20 : parseClassicParameter(audioArray,3,paramIndex);
   209         {--set-audio}           20 : parseClassicParameter(audioarray,3,paramIndex);
   210         {--set-other}           21 : parseClassicParameter(otherArray,3,paramIndex);
   210         {--set-other}           21 : parseClassicParameter(otherarray,3,paramIndex);
   211         {--set-multimedia}      22 : parseClassicParameter(mediaArray,10,paramIndex);
   211         {--set-multimedia}      22 : parseClassicParameter(mediaarray,10,paramIndex);
   212         {--set-everything}      23 : parseClassicParameter(allArray,14,paramIndex);
   212         {--set-everything}      23 : parseClassicParameter(allarray,14,paramIndex);
   213         {"internal" options}
   213         {"internal" options}
   214         {--internal}            24 : {$IFDEF HWLIBRARY}isInternal:= true{$ENDIF};
   214         {--internal}            24 : {$IFDEF HWLIBRARY}isInternal:= true{$ENDIF};
   215         {--port}                25 : setIpcPort( getLongIntParameter(arg, paramIndex, parseParameter), parseParameter );
   215         {--port}                25 : setIpcPort( getLongIntParameter(arg, paramIndex, parseParameter), parseParameter );
   216         {--recorder}            26 : startVideoRecording(paramIndex);
   216         {--recorder}            26 : startVideoRecording(paramIndex);
   217         {--landpreview}         27 : GameType := gmtLandPreview;
   217         {--landpreview}         27 : GameType := gmtLandPreview;
   231             end;
   231             end;
   232         end;
   232         end;
   233     end;
   233     end;
   234 end;
   234 end;
   235 
   235 
   236 procedure parseClassicParameter(cmdArray: array of String; size:LongInt; var paramIndex:LongInt);
   236 procedure parseClassicParameter(cmdarray: array of String; size:LongInt; var paramIndex:LongInt);
   237 var index, tmpInt: LongInt;
   237 var index, tmpInt: LongInt;
   238     isBool, isValid: Boolean;
   238     isBool, isValid: Boolean;
   239     cmd, arg, newSyntax: String;
   239     cmd, arg, newSyntax: String;
   240 begin
   240 begin
   241     WriteLn(stdout, 'WARNING: you are using a deprecated command, which could be removed in a future version!');
   241     WriteLn(stdout, 'WARNING: you are using a deprecated command, which could be removed in a future version!');
   247     tmpInt:= 1;
   247     tmpInt:= 1;
   248     while (index < size) do
   248     while (index < size) do
   249         begin
   249         begin
   250         newSyntax:= '';
   250         newSyntax:= '';
   251         inc(paramIndex);
   251         inc(paramIndex);
   252         cmd:= cmdArray[index];
   252         cmd:= cmdarray[index];
   253         arg:= ParamStr(paramIndex);
   253         arg:= ParamStr(paramIndex);
   254         isValid:= (cmd<>'--depth');
   254         isValid:= (cmd<>'--depth');
   255 
   255 
   256         // check if the parameter is a boolean one
   256         // check if the parameter is a boolean one
   257         isBool:= (cmd = '--nomusic') or (cmd = '--nosound') or (cmd = '--fullscreen') or (cmd = '--showfps') or (cmd = '--altdmg');
   257         isBool:= (cmd = '--nomusic') or (cmd = '--nosound') or (cmd = '--fullscreen') or (cmd = '--showfps') or (cmd = '--altdmg');
   314 {$IFNDEF HWLIBRARY}
   314 {$IFNDEF HWLIBRARY}
   315 procedure GetParams;
   315 procedure GetParams;
   316 begin
   316 begin
   317     isInternal:= (ParamStr(1) = '--internal');
   317     isInternal:= (ParamStr(1) = '--internal');
   318 
   318 
   319     UserPathPrefix := '.';
   319     UserPathPrefix := _S'.';
   320     PathPrefix     := cDefaultPathPrefix;
   320     PathPrefix     := cDefaultPathPrefix;
   321     recordFileName := '';
   321     recordFileName := '';
   322     parseCommandLine();
   322     parseCommandLine();
   323 
   323 
   324     if (isInternal) and (ParamCount<=1) then
   324     if (isInternal) and (ParamCount<=1) then