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 := ''; |