diff -r fa29572fa56a -r 00428183300f hedgewars/hwengine.pas --- a/hedgewars/hwengine.pas Sat Jul 31 07:05:06 2010 +0200 +++ b/hedgewars/hwengine.pas Sat Jul 31 08:19:56 2010 +0200 @@ -32,11 +32,12 @@ uses SDLh, uMisc, uConsole, uGame, uConsts, uLand, uAmmos, uVisualGears, uGears, uStore, uWorld, uKeys, uSound, uScript, uTeams, uStats, uIO, uLocale, uChat, uAI, uAIMisc, uRandom, uLandTexture, uCollisions, sysutils; -type arrayofpchar = array[0..9] of PChar; var isTerminated: boolean = false; alsoShutdownFrontend: boolean = false; {$IFDEF HWLIBRARY} +type arrayofpchar = array[0..9] of PChar; + procedure initEverything(complete:boolean); procedure freeEverything(complete:boolean); @@ -417,140 +418,38 @@ begin WriteLn('Wrong argument format: correct configurations is'); WriteLn(); - WriteLn(' hwengine [option]'); + WriteLn(' hwengine [options]'); WriteLn(); - WriteLn('where [option] must be specified either as'); + WriteLn('where [options] must be specified either as:'); WriteLn(' --set-video [screen width] [screen height] [color dept]'); WriteLn(' --set-audio [volume] [enable music] [enable sounds]'); WriteLn(' --set-other [language file] [full screen] [show FPS]'); - WriteLn(' --set-multimedia [screen height] [screen width] [color dept] [volume] [enable music] [enable sounds] [language file] [full screen]'); - WriteLn(' --set-everything [screen height] [screen width] [color dept] [volume] [enable music] [enable sounds] [language file] [full screen] [show FPS] [alternate damage] [timer value] [reduced quality]'); + WriteLn(' --set-multimedia [screen width] [screen height] [color dept] [volume] [enable music] [enable sounds] [language file] [full screen]'); + WriteLn(' --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]'); WriteLn(); - WriteLn('Read documentation online at http://www.hedgewars.org/node/1465 for more information'); - Write('parsed command: '); + WriteLn('Read documentation online at http://code.google.com/p/hedgewars/wiki/CommandLineOptions for more information'); + WriteLn(); + Write('PARSED COMMAND: '); for i:=0 to ParamCount do Write(ParamStr(i) + ' '); WriteLn(); end; //////////////////// +{$INCLUDE "ArgParsers.inc"} + procedure GetParams; begin - case ParamCount of - 18: begin - val(ParamStr(2), cScreenWidth); - val(ParamStr(3), cScreenHeight); - cBitsStr:= ParamStr(4); - val(cBitsStr, cBits); - val(ParamStr(5), ipcPort); - cFullScreen:= ParamStr(6) = '1'; - isSoundEnabled:= ParamStr(7) = '1'; - //cVSyncInUse:= ParamStr(8) = '1'; //merged with rqFlags - //cWeaponTooltips:= ParamStr(9) = '1'; //merged with rqFlags - cLocaleFName:= ParamStr(10); - val(ParamStr(11), cInitVolume); - val(ParamStr(12), cTimerInterval); - PathPrefix:= ParamStr(13); - cShowFPS:= ParamStr(14) = '1'; - cAltDamage:= ParamStr(15) = '1'; - UserNick:= DecodeBase64(ParamStr(16)); - isMusicEnabled:= ParamStr(17) = '1'; - - if (ParamStr(18) = '1') then //HACK - always disable rqLowRes as it's a game breaker - cReducedQuality:= $FFFFFFFF xor rqLowRes - else - val(ParamStr(18), cReducedQuality); - - if (ParamStr(8) = '0') then //HACK - ifcVSyncInUse not true, disable it - cReducedQuality:= cReducedQuality xor rqDesyncVBlank; - if (ParamStr(9) = '0') then //HACK - if cWeaponTooltips not true, disable it - cReducedQuality:= cReducedQuality xor rqTooltipsOff; - end; - 3: begin - val(ParamStr(2), ipcPort); - GameType:= gmtLandPreview; - if ParamStr(3) <> 'landpreview' then - OutError(errmsgShouldntRun, true); - end; - 2: begin - PathPrefix:= ParamStr(1); - recordFileName:= ParamStr(2); - end; - 6: begin - PathPrefix:= ParamStr(1); - recordFileName:= ParamStr(2); - - if ParamStr(3) = '--set-video' then - begin - val(ParamStr(4), cScreenWidth); - val(ParamStr(5), cScreenHeight); - cBitsStr:= ParamStr(6); - val(cBitsStr, cBits); - end + if (ParamCount < 2) then + GameType:= gmtSyntax + else + if (ParamCount = 3) then + internalSetGameTypeLandPreviewFromParameters() + else + if (ParamCount = 18) then + internalStartGameWithParameters() else - begin - if ParamStr(3) = '--set-audio' then - begin - val(ParamStr(4), cInitVolume); - isMusicEnabled:= ParamStr(5) = '1'; - isSoundEnabled:= ParamStr(6) = '1'; - end - else - begin - if ParamStr(3) = '--set-other' then - begin - cLocaleFName:= ParamStr(4); - cFullScreen:= ParamStr(5) = '1'; - cShowFPS:= ParamStr(6) = '1'; - end - else GameType:= gmtSyntax; - end - end; - end; - 11: begin - PathPrefix:= ParamStr(1); - recordFileName:= ParamStr(2); - - if ParamStr(3) = '--set-multimedia' then - begin - val(ParamStr(4), cScreenWidth); - val(ParamStr(5), cScreenHeight); - cBitsStr:= ParamStr(6); - val(cBitsStr, cBits); - val(ParamStr(7), cInitVolume); - isMusicEnabled:= ParamStr(8) = '1'; - isSoundEnabled:= ParamStr(9) = '1'; - cLocaleFName:= ParamStr(10); - cFullScreen:= ParamStr(11) = '1'; - end - else GameType:= gmtSyntax; - end; - 15: begin - PathPrefix:= ParamStr(1); - recordFileName:= ParamStr(2); - if ParamStr(3) = '--set-everything' then - begin - val(ParamStr(4), cScreenWidth); - val(ParamStr(5), cScreenHeight); - cBitsStr:= ParamStr(6); - val(cBitsStr, cBits); - val(ParamStr(7), cInitVolume); - isMusicEnabled:= ParamStr(8) = '1'; - isSoundEnabled:= ParamStr(9) = '1'; - cLocaleFName:= ParamStr(10); - cFullScreen:= ParamStr(11) = '1'; - cAltDamage:= ParamStr(12) = '1'; - cShowFPS:= ParamStr(13) = '1'; - val(ParamStr(14), cTimerInterval); - if (ParamStr(15) = '1') then //HACK - cReducedQuality:= $FFFFFFFF xor rqLowRes - else - val(ParamStr(15), cReducedQuality); - end - else GameType:= gmtSyntax; - end; - else GameType:= gmtSyntax; - end; + playReplayFileWithParameters(); end; ////////////////////////////////////////////////////////////////////////////////