# HG changeset patch # User unc0rr # Date 1240148211 0 # Node ID fc2fb5c938c3631f5f87f608af753abc61d68d13 # Parent 159d14fe4e9308995abf745916c4ef96caec62d8 Patch by koda: - Variable commands to the commandline version of hwengine diff -r 159d14fe4e93 -r fc2fb5c938c3 hedgewars/hwengine.dpr --- a/hedgewars/hwengine.dpr Sun Apr 19 13:22:17 2009 +0000 +++ b/hedgewars/hwengine.dpr Sun Apr 19 13:36:51 2009 +0000 @@ -27,7 +27,7 @@ // these procedures/functions to the PascalImports.h file (also in the "Pascal Sources" group) // to make these functions available in the C/C++/Objective-C source files // (add "#include PascalImports.h" near the top of these files if it is not there yet) -//Library PascalLibrary; + program hwengine; uses SDLh in 'SDLh.pas', @@ -64,7 +64,7 @@ uFloat in 'uFloat.pas', uStats in 'uStats.pas', uChat in 'uChat.pas', - uLandTexture; + uLandTexture in 'uLandTexture.pas'; {$INCLUDE options.inc} @@ -186,6 +186,23 @@ until isTerminated end; +///////////////////// +procedure DisplayUsage; +begin + WriteLn('Wrong argument format: correct configurations is'); + WriteLn(); + WriteLn(' hwengine [option]'); + WriteLn(); + WriteLn('where [option] must be specified either as'); + WriteLn(' --set-video [screen height] [screen width] [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(); + WriteLn('Read documentation online at http://www.hedgewars.org/ for more information'); +end; + //////////////////// procedure GetParams; var @@ -228,30 +245,98 @@ GameType:= gmtLandPreview; if ParamStr(3) <> 'landpreview' then OutError(errmsgShouldntRun, true); end; - 14: begin - PathPrefix:= ParamStr(1); - recordFileName:= ParamStr(2); - val(ParamStr(3), cScreenWidth); - val(ParamStr(4), cScreenHeight); - cInitWidth:= cScreenWidth; - cInitHeight:= cScreenHeight; - cBitsStr:= ParamStr(5); - val(cBitsStr, cBits); - cFullScreen:= ParamStr(6) = '1'; - isSoundEnabled:= ParamStr(7) = '1'; - cLocaleFName:= ParamStr(8); - val(ParamStr(9), cInitVolume); - val(ParamStr(10), cTimerInterval); - cShowFPS:= ParamStr(11) = '1'; - cAltDamage:= ParamStr(12) = '1'; - isMusicEnabled:= ParamStr(13) = '1'; - cReducedQuality:= ParamStr(14) = '1'; - for p:= Succ(Low(TPathType)) to High(TPathType) do - if p <> ptMapCurrent then Pathz[p]:= PathPrefix + '/' + Pathz[p] - end; - else - OutError(errmsgShouldntRun, true) - end + 2: begin + PathPrefix:= ParamStr(1); + recordFileName:= ParamStr(2); + + for p:= Succ(Low(TPathType)) to High(TPathType) do + if p <> ptMapCurrent then Pathz[p]:= PathPrefix + '/' + Pathz[p] + end; + 6: begin + PathPrefix:= ParamStr(1); + recordFileName:= ParamStr(2); + + if ParamStr(3) = '--set-video' then + begin + val(ParamStr(4), cScreenWidth); + val(ParamStr(5), cScreenHeight); + cInitWidth:= cScreenWidth; + cInitHeight:= cScreenHeight; + cBitsStr:= ParamStr(6); + val(cBitsStr, cBits); + end + 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 DisplayUsage; + end + end; + + for p:= Succ(Low(TPathType)) to High(TPathType) do + if p <> ptMapCurrent then Pathz[p]:= PathPrefix + '/' + Pathz[p] + end; + 11: begin + PathPrefix:= ParamStr(1); + recordFileName:= ParamStr(2); + + if ParamStr(3) = '--set-multimedia' then + begin + val(ParamStr(4), cScreenWidth); + val(ParamStr(5), cScreenHeight); + cInitWidth:= cScreenWidth; + cInitHeight:= 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 DisplayUsage; + + for p:= Succ(Low(TPathType)) to High(TPathType) do + if p <> ptMapCurrent then Pathz[p]:= PathPrefix + '/' + Pathz[p] + end; + 15: begin + if ParamStr(3) = '--set-everything' then + begin + val(ParamStr(4), cScreenWidth); + val(ParamStr(5), cScreenHeight); + cInitWidth:= cScreenWidth; + cInitHeight:= 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); + cReducedQuality:= ParamStr(15) = '1'; + end + else DisplayUsage; + + for p:= Succ(Low(TPathType)) to High(TPathType) do + if p <> ptMapCurrent then Pathz[p]:= PathPrefix + '/' + Pathz[p] + end; + else DisplayUsage; + end; end; procedure ShowMainWindow; @@ -336,7 +421,8 @@ WriteLnToConsole('Hedgewars ' + cVersionString + ' engine'); GetParams; Randomize; -{ /home/nemo/games/bin/hwengine /home/nemo/games/hedgewars/Data ~/.hedgewars/Saves/2009-03-22_19-54.hws_24 480 320 32 0 1 en.txt 128 33 0 1 1 0} + if GameType = gmtLandPreview then GenLandPreview else Game end. + diff -r 159d14fe4e93 -r fc2fb5c938c3 hedgewars/uKeys.pas --- a/hedgewars/uKeys.pas Sun Apr 19 13:22:17 2009 +0000 +++ b/hedgewars/uKeys.pas Sun Apr 19 13:36:51 2009 +0000 @@ -115,6 +115,7 @@ DefaultBinds[ 27]:= 'quit'; DefaultBinds[ 48]:= '+volup'; DefaultBinds[ 57]:= '+voldown'; +DefaultBinds[ 44]:= 'history'; // , instead of ` DefaultBinds[ 96]:= 'history'; DefaultBinds[ 99]:= 'capture'; DefaultBinds[104]:= 'findhh'; diff -r 159d14fe4e93 -r fc2fb5c938c3 hedgewars/uMisc.pas --- a/hedgewars/uMisc.pas Sun Apr 19 13:22:17 2009 +0000 +++ b/hedgewars/uMisc.pas Sun Apr 19 13:36:51 2009 +0000 @@ -55,8 +55,8 @@ cScreenHeight : LongInt = 768; cInitWidth : LongInt = 1024; cInitHeight : LongInt = 768; - cBits : LongInt = 16; - cBitsStr : string[2] = '16'; + cBits : LongInt = 32; + cBitsStr : string[2] = '32'; cTagsMask : byte = 7; cWaterLine : LongInt = LAND_HEIGHT; @@ -73,7 +73,7 @@ cColorNearBlack : Longword = $FF000010; cExplosionBorderColor : LongWord = $808080; - cShowFPS : boolean = true; + cShowFPS : boolean = false; cCaseFactor : Longword = 5; {0..9} cLandAdditions: Longword = 4; cFullScreen : boolean = false; @@ -82,7 +82,7 @@ cSeed : shortstring = ''; cInitVolume : LongInt = 128; cVolumeDelta : LongInt = 0; - cTimerInterval : Longword = 5; + cTimerInterval : Longword = 8; cHasFocus : boolean = true; cInactDelay : Longword = 1250; @@ -551,13 +551,21 @@ {$IFDEF DEBUGFILE} {$I-} -if ParamCount > 0 then +if ParamCount >= 0 then + //this check prevents a crash in Mac OS X + if ParamCount = 0 then + begin + Assign(f, '/tmp/debug.txt'); + rewrite(f); + end else + begin for i:= 0 to 7 do begin Assign(f, ParamStr(1) + '/debug' + inttostr(i) + '.txt'); rewrite(f); if IOResult = 0 then break end; + end; {$I+} finalization diff -r 159d14fe4e93 -r fc2fb5c938c3 share/Info.plist.in --- a/share/Info.plist.in Sun Apr 19 13:22:17 2009 +0000 +++ b/share/Info.plist.in Sun Apr 19 13:36:51 2009 +0000 @@ -5,7 +5,7 @@ CFBundleExecutable hedgewars CFBundleGetInfoString - Hedgewars, a Worms-like game + http://www.hedgewars.org CFBundleIconFile Icon.icns CFBundleIdentifier