hedgewars/ArgParsers.inc
changeset 3858 e40e5dfe9d5b
parent 3709 c7849b74748d
child 4004 b1c2c2f6fc5e
equal deleted inserted replaced
3857:8ade6104e8bb 3858:e40e5dfe9d5b
     2 procedure internalSetGameTypeLandPreviewFromParameters();
     2 procedure internalSetGameTypeLandPreviewFromParameters();
     3 begin
     3 begin
     4     val(ParamStr(2), ipcPort);
     4     val(ParamStr(2), ipcPort);
     5     GameType:= gmtLandPreview;
     5     GameType:= gmtLandPreview;
     6     if ParamStr(3) <> 'landpreview' then
     6     if ParamStr(3) <> 'landpreview' then
     7         GameType:= gmtSyntax;
     7         GameType:= gmtSyntax
     8 end;
     8 end;
     9 
     9 
    10 procedure internalStartGameWithParameters();
    10 procedure internalStartGameWithParameters();
    11 begin
    11 begin
    12     val(ParamStr(2), cScreenWidth);
    12     val(ParamStr(2), cScreenWidth);
    21     PathPrefix:= ParamStr(11);
    21     PathPrefix:= ParamStr(11);
    22     cShowFPS:= ParamStr(12) = '1';
    22     cShowFPS:= ParamStr(12) = '1';
    23     cAltDamage:= ParamStr(13) = '1';
    23     cAltDamage:= ParamStr(13) = '1';
    24     UserNick:= DecodeBase64(ParamStr(14));
    24     UserNick:= DecodeBase64(ParamStr(14));
    25     val(ParamStr(15), cReducedQuality);
    25     val(ParamStr(15), cReducedQuality);
    26     cLocaleFName:= ParamStr(16);
    26     cLocaleFName:= ParamStr(16)
    27 
       
    28 end;
    27 end;
    29 
    28 
    30 procedure setVideo(screenWidth: LongInt; screenHeight: LongInt; bitsStr: LongInt);
    29 procedure setVideo(screenWidth: LongInt; screenHeight: LongInt; bitsStr: LongInt);
    31 begin
    30 begin
    32     cScreenWidth:= screenWidth;
    31     cScreenWidth:= screenWidth;
    33     cScreenHeight:= screenHeight;
    32     cScreenHeight:= screenHeight;
    34     cBits:= bitsStr;
    33     cBits:= bitsStr
    35 end;
    34 end;
    36 
    35 
    37 procedure setVideoWithParameters(screenWidthParam: string; screenHeightParam: string; bitsParam: string);
    36 procedure setVideoWithParameters(screenWidthParam: string; screenHeightParam: string; bitsParam: string);
    38 var screenWidthAsInt, screenHeightAsInt, bitsStrAsInt: LongInt;
    37 var screenWidthAsInt, screenHeightAsInt, bitsStrAsInt: LongInt;
    39 begin
    38 begin
    40     val(screenWidthParam, screenWidthAsInt);
    39     val(screenWidthParam, screenWidthAsInt);
    41     val(screenHeightParam, screenHeightAsInt);
    40     val(screenHeightParam, screenHeightAsInt);
    42     val(bitsParam, bitsStrAsInt);
    41     val(bitsParam, bitsStrAsInt);
    43     setVideo(screenWidthAsInt,screenHeightAsInt,bitsStrAsInt);
    42     setVideo(screenWidthAsInt,screenHeightAsInt,bitsStrAsInt)
    44 end;
    43 end;
    45 
    44 
    46 procedure setOtherOptions(languageFile: string; fullScreen: boolean);
    45 procedure setOtherOptions(languageFile: string; fullScreen: boolean);
    47 begin
    46 begin
    48     cLocaleFName:= languageFile;
    47     cLocaleFName:= languageFile;
    49     cFullScreen:= fullScreen;
    48     cFullScreen:= fullScreen
    50 end;
    49 end;
    51 
    50 
    52 procedure setShowFPS(showFPS: boolean);
    51 procedure setShowFPS(showFPS: boolean);
    53 begin
    52 begin
    54     cShowFPS:= showFPS;
    53     cShowFPS:= showFPS
    55 end;
    54 end;
    56 
    55 
    57 procedure setOtherOptionsWithParameters(languageFileParam: string; fullScreenParam: string; showFPSParam: string);
    56 procedure setOtherOptionsWithParameters(languageFileParam: string; fullScreenParam: string; showFPSParam: string);
    58 var fullScreen, showFPS: boolean;
    57 var fullScreen, showFPS: boolean;
    59 begin
    58 begin
    60     fullScreen:= fullScreenParam = '1';
    59     fullScreen:= fullScreenParam = '1';
    61     showFPS:= showFPSParam = '1';
    60     showFPS:= showFPSParam = '1';
    62     setOtherOptions(languageFileParam,fullScreen);
    61     setOtherOptions(languageFileParam,fullScreen);
    63     setShowFPS(showFPS);
    62     setShowFPS(showFPS)
    64 end;
    63 end;
    65 
    64 
    66 procedure setAudio(initialVolume: LongInt; musicEnabled: boolean; soundEnabled: boolean);
    65 procedure setAudio(initialVolume: LongInt; musicEnabled: boolean; soundEnabled: boolean);
    67 begin
    66 begin
    68     cInitVolume:= initialVolume;
    67     cInitVolume:= initialVolume;
    69     isMusicEnabled:= musicEnabled;
    68     isMusicEnabled:= musicEnabled;
    70     isSoundEnabled:= soundEnabled; 
    69     isSoundEnabled:= soundEnabled
    71 end;
    70 end;
    72 
    71 
    73 procedure setAudioWithParameters(initialVolumeParam: string; musicEnabledParam: string; soundEnabledParam: string);
    72 procedure setAudioWithParameters(initialVolumeParam: string; musicEnabledParam: string; soundEnabledParam: string);
    74 var initialVolumeAsInt: LongInt;
    73 var initialVolumeAsInt: LongInt;
    75     musicEnabled, soundEnabled: boolean;
    74     musicEnabled, soundEnabled: boolean;
    76 begin
    75 begin
    77     val(initialVolumeParam, initialVolumeAsInt);
    76     val(initialVolumeParam, initialVolumeAsInt);
    78     musicEnabled:= musicEnabledParam = '1';
    77     musicEnabled:= musicEnabledParam = '1';
    79     soundEnabled:= soundEnabledParam = '1';
    78     soundEnabled:= soundEnabledParam = '1';
    80     setAudio(initialVolumeAsInt,musicEnabled, soundEnabled);
    79     setAudio(initialVolumeAsInt,musicEnabled, soundEnabled)
    81 end;
    80 end;
    82 
    81 
    83 procedure setMultimediaOptionsWithParameters(screenWidthParam, screenHeightParam, bitsParam: string;
    82 procedure setMultimediaOptionsWithParameters(screenWidthParam, screenHeightParam, bitsParam: string;
    84                                              initialVolumeParam, musicEnabledParam, soundEnabledParam: string;
    83                                              initialVolumeParam, musicEnabledParam, soundEnabledParam: string;
    85                                              languageFileParam, fullScreenParam: string);
    84                                              languageFileParam, fullScreenParam: string);
    86 begin
    85 begin
    87     setVideoWithParameters(screenWidthParam,screenHeightParam, bitsParam);
    86     setVideoWithParameters(screenWidthParam,screenHeightParam, bitsParam);
    88     setAudioWithParameters(initialVolumeParam,musicEnabledParam,soundEnabledParam);
    87     setAudioWithParameters(initialVolumeParam,musicEnabledParam,soundEnabledParam);
    89     setOtherOptions(languageFileParam,fullScreenParam = '1');
    88     setOtherOptions(languageFileParam,fullScreenParam = '1')
    90 end;
    89 end;
    91 
    90 
    92 procedure setAltDamageTimerValueAndQuality(altDamage: boolean; timeIterval: LongInt; reducedQuality: boolean);
    91 procedure setAltDamageTimerValueAndQuality(altDamage: boolean; timeIterval: LongInt; reducedQuality: boolean);
    93 begin
    92 begin
    94     cAltDamage:= altDamage;
    93     cAltDamage:= altDamage;
    97         cReducedQuality:= $FFFFFFFF xor rqLowRes
    96         cReducedQuality:= $FFFFFFFF xor rqLowRes
    98 end;
    97 end;
    99 
    98 
   100 procedure setAllOptionsWithParameters(screenWidthParam:string; screenHeightParam:string; bitsParam:string;
    99 procedure setAllOptionsWithParameters(screenWidthParam:string; screenHeightParam:string; bitsParam:string;
   101                                       initialVolumeParam:string; musicEnabledParam:string; soundEnabledParam:string;
   100                                       initialVolumeParam:string; musicEnabledParam:string; soundEnabledParam:string;
   102                                       languageFileParam:string; fullScreenParam:string; showFPSParam:string; 
   101                                       languageFileParam:string; fullScreenParam:string; showFPSParam:string;
   103                                       altDamageParam:string; timeItervalParam:string; reducedQualityParam: string);
   102                                       altDamageParam:string; timeItervalParam:string; reducedQualityParam: string);
   104 var showFPS, altDamage, reducedQuality: boolean;
   103 var showFPS, altDamage, reducedQuality: boolean;
   105     timeIterval: LongInt;
   104     timeIterval: LongInt;
   106 begin
   105 begin
   107     setMultimediaOptionsWithParameters(screenWidthParam,screenHeightParam, bitsParam,
   106     setMultimediaOptionsWithParameters(screenWidthParam,screenHeightParam, bitsParam,
   108                                        initialVolumeParam,musicEnabledParam,soundEnabledParam,
   107                                        initialVolumeParam,musicEnabledParam,soundEnabledParam,
   109                                        languageFileParam,fullScreenParam);                       
   108                                        languageFileParam,fullScreenParam);
   110     showFPS := showFPSParam = '1';
   109     showFPS := showFPSParam = '1';
   111     setShowFPS(showFPS);
   110     setShowFPS(showFPS);
   112     
   111 
   113     altDamage:= altDamageParam = '1';
   112     altDamage:= altDamageParam = '1';
   114     val(timeItervalParam, timeIterval);
   113     val(timeItervalParam, timeIterval);
   115     reducedQuality:= reducedQualityParam = '1';
   114     reducedQuality:= reducedQualityParam = '1';
   116     setAltDamageTimerValueAndQuality(altDamage,timeIterval,reducedQuality);    
   115     setAltDamageTimerValueAndQuality(altDamage,timeIterval,reducedQuality);
   117 end;
   116 end;
   118 
   117 
   119 procedure playReplayFileWithParameters();
   118 procedure playReplayFileWithParameters();
   120 var paramIndex: LongInt;
   119 var paramIndex: LongInt;
   121     wrongParameter: boolean;
   120     wrongParameter: boolean;
   123     PathPrefix:= ParamStr(1);
   122     PathPrefix:= ParamStr(1);
   124     recordFileName:= ParamStr(2);
   123     recordFileName:= ParamStr(2);
   125     paramIndex:= 3;
   124     paramIndex:= 3;
   126     wrongParameter:= false;
   125     wrongParameter:= false;
   127     while (paramIndex <= ParamCount) and not wrongParameter do
   126     while (paramIndex <= ParamCount) and not wrongParameter do
   128     begin
       
   129         //--set-video [screen width] [screen height] [color dept]
       
   130         if(ParamStr(paramIndex) = '--set-video') then
       
   131         begin
   127         begin
   132 	    if(ParamCount-paramIndex < 3) then
   128         if ParamStr(paramIndex) = '--set-video'  then
   133 	    begin
   129 //--set-video [screen width] [screen height] [color dept]
   134 	        wrongParameter:= true;
   130             begin
   135 	        GameType:= gmtSyntax;
       
   136 	    end;
       
   137 	    setVideoWithParameters(ParamStr(paramIndex+1), ParamStr(paramIndex+2), ParamStr(paramIndex+3));
       
   138 	    paramIndex:= paramIndex + 4;
       
   139         end 
       
   140         else 
       
   141         //--set-audio [volume] [enable music] [enable sounds]
       
   142         if(ParamStr(paramIndex) = '--set-audio') then
       
   143         begin
       
   144     	    if(ParamCount-paramIndex < 3) then
       
   145 	    begin
       
   146 	        wrongParameter := true;
       
   147 	        GameType:= gmtSyntax;
       
   148 	    end;
       
   149 	    setAudioWithParameters(ParamStr(paramIndex+1),ParamStr(paramIndex+2), ParamStr(paramIndex+3));
       
   150 	    paramIndex:= paramIndex + 4;
       
   151         end 
       
   152         else 
       
   153         // --set-other [language file] [full screen] [show FPS]
       
   154         if(ParamStr(paramIndex) = '--set-other') then
       
   155         begin
       
   156             if(ParamCount-paramIndex < 3) then
   131             if(ParamCount-paramIndex < 3) then
   157             begin
   132                 begin
   158                 wrongParameter:= true;
   133                 wrongParameter:= true;
   159                 GameType:= gmtSyntax;
   134                 GameType:= gmtSyntax
   160 	    end;
   135                 end;
   161 	    setOtherOptionsWithParameters(ParamStr(paramIndex+1),ParamStr(paramIndex+2), ParamStr(paramIndex+3));
   136             setVideoWithParameters(ParamStr(paramIndex+1), ParamStr(paramIndex+2), ParamStr(paramIndex+3));
   162 	    paramIndex:= paramIndex + 4;
   137             paramIndex:= paramIndex + 4
   163 	end 
   138             end
   164 	else 
       
   165 	//--set-multimedia [screen width] [screen height] [color dept] [volume] [enable music] [enable sounds] [language file] [full screen]
       
   166 	if(ParamStr(paramIndex) = '--set-multimedia') then
       
   167 	begin
       
   168 	    if(ParamCount-paramIndex < 8) then
       
   169 	    begin
       
   170 	        wrongParameter:= true;
       
   171 	        GameType:= gmtSyntax;
       
   172 	    end;
       
   173 	    setMultimediaOptionsWithParameters(ParamStr(paramIndex+1),ParamStr(paramIndex+2),ParamStr(paramIndex+3),
       
   174 		   			       ParamStr(paramIndex+4),ParamStr(paramIndex+5),ParamStr(paramIndex+6),
       
   175 					       ParamStr(paramIndex+7),ParamStr(paramIndex+8));
       
   176 	    paramIndex:= paramIndex + 9;
       
   177         end 
       
   178         else
   139         else
   179         //--set-everything [screen width] [screen height] [color dept] [volume] [enable music] [enable sounds] [language file] [full screen] [show FPS] [alternate damage] [timer value] [reduced quality]
   140 //--set-audio [volume] [enable music] [enable sounds]
   180         if(ParamStr(paramIndex) = '--set-everything') then
   141             if ParamStr(paramIndex) = '--set-audio'  then
   181         begin
   142                 begin
   182 	    if(ParamCount-paramIndex < 12) then
   143                 if(ParamCount-paramIndex < 3) then
   183 	    begin
   144                     begin
   184 	        wrongParameter:= true;
   145                     wrongParameter := true;
   185 	        GameType:= gmtSyntax;
   146                     GameType:= gmtSyntax
   186 	    end;
   147                     end;
   187 	    setAllOptionsWithParameters(ParamStr(paramIndex+1),ParamStr(paramIndex+2),ParamStr(paramIndex+3),
   148                 setAudioWithParameters(ParamStr(paramIndex+1),ParamStr(paramIndex+2), ParamStr(paramIndex+3));
   188 				        ParamStr(paramIndex+4),ParamStr(paramIndex+5),ParamStr(paramIndex+6),
   149                 paramIndex:= paramIndex + 4
   189 				        ParamStr(paramIndex+7),ParamStr(paramIndex+8),ParamStr(paramIndex+9),
   150                 end
   190 				        ParamStr(paramIndex+10),ParamStr(paramIndex+11),ParamStr(paramIndex+12));
   151             else
   191 	    paramIndex:= paramIndex + 13;
   152 // --set-other [language file] [full screen] [show FPS]
   192         end 
   153                 if ParamStr(paramIndex) = '--set-other'  then
   193         else
   154                     begin
   194         begin
   155                     if(ParamCount-paramIndex < 3) then
   195 	    wrongParameter:= true;
   156                         begin
   196 	    GameType:= gmtSyntax;
   157                         wrongParameter:= true;
   197         end;
   158                         GameType:= gmtSyntax
   198     end;
   159                         end;
       
   160                     setOtherOptionsWithParameters(ParamStr(paramIndex+1),ParamStr(paramIndex+2), ParamStr(paramIndex+3));
       
   161                     paramIndex:= paramIndex + 4
       
   162                     end
       
   163                 else
       
   164 //--set-multimedia [screen width] [screen height] [color dept] [volume] [enable music] [enable sounds] [language file] [full screen]
       
   165                     if ParamStr(paramIndex) = '--set-multimedia'  then
       
   166                         begin
       
   167                         if ParamCount-paramIndex < 8  then
       
   168                             begin
       
   169                             wrongParameter:= true;
       
   170                             GameType:= gmtSyntax
       
   171                             end;
       
   172                         setMultimediaOptionsWithParameters(ParamStr(paramIndex+1),ParamStr(paramIndex+2),ParamStr(paramIndex+3),
       
   173                                                            ParamStr(paramIndex+4),ParamStr(paramIndex+5),ParamStr(paramIndex+6),
       
   174                                                            ParamStr(paramIndex+7),ParamStr(paramIndex+8));
       
   175                         paramIndex:= paramIndex + 9
       
   176                         end
       
   177                     else
       
   178 //--set-everything [screen width] [screen height] [color dept] [volume] [enable music] [enable sounds] [language file] [full screen] [show FPS] [alternate damage] [timer value] [reduced quality]
       
   179                         if ParamStr(paramIndex) = '--set-everything'  then
       
   180                             begin
       
   181                             if ParamCount-paramIndex < 12  then
       
   182                                 begin
       
   183                                 wrongParameter:= true;
       
   184                                 GameType:= gmtSyntax
       
   185                                 end;
       
   186                             setAllOptionsWithParameters(ParamStr(paramIndex+1),ParamStr(paramIndex+2),ParamStr(paramIndex+3),
       
   187                                                         ParamStr(paramIndex+4),ParamStr(paramIndex+5),ParamStr(paramIndex+6),
       
   188                                                         ParamStr(paramIndex+7),ParamStr(paramIndex+8),ParamStr(paramIndex+9),
       
   189                                                         ParamStr(paramIndex+10),ParamStr(paramIndex+11),ParamStr(paramIndex+12));
       
   190                             paramIndex:= paramIndex + 13
       
   191                             end
       
   192                         else
       
   193                             begin
       
   194                             wrongParameter:= true;
       
   195                             GameType:= gmtSyntax
       
   196                             end
       
   197     end
   199 end;
   198 end;
   200 
   199