diff -r b90745d87332 -r dfc7507a21a0 hedgewars/uScript.pas --- a/hedgewars/uScript.pas Sun Mar 14 20:48:13 2010 +0000 +++ b/hedgewars/uScript.pas Sun Mar 14 22:55:46 2010 +0000 @@ -57,7 +57,7 @@ procedure ScriptPrepareAmmoStore; forward; procedure ScriptApplyAmmoStore; forward; -procedure ScriptSetAmmo(ammo : TAmmoType; count, propability: Byte); forward; +procedure ScriptSetAmmo(ammo : TAmmoType; count, propability, delay: Byte); forward; // wrapped calls // @@ -211,7 +211,7 @@ ParseCommand('grave ' + lua_tostring(L, 3), true); ParseCommand('fort ' + lua_tostring(L, 4), true); ParseCommand('voicepack ' + lua_tostring(L, 5), true); - CurrentTeam^.Binds:= DefaultBinds; + CurrentTeam^.Binds:= DefaultBinds // fails on x64 //lua_pushinteger(L, LongInt(CurrentTeam)); end; @@ -277,11 +277,11 @@ function lc_setammo(L : Plua_State) : LongInt; Cdecl; begin - if lua_gettop(L) <> 3 then + if lua_gettop(L) <> 4 then WriteLnToConsole('LUA: Wrong number of parameters passed to SetAmmo!') else begin - ScriptSetAmmo(TAmmoType(lua_tointeger(L, 1)), lua_tointeger(L, 2), lua_tointeger(L, 3)); + ScriptSetAmmo(TAmmoType(lua_tointeger(L, 1)), lua_tointeger(L, 2), lua_tointeger(L, 3), lua_tointeger(L, 4)); end; lc_setammo:= 0 end; @@ -345,6 +345,7 @@ ScriptSetInteger('TurnTime', cHedgehogTurnTime); ScriptSetInteger('CaseFreq', cCaseFactor); ScriptSetInteger('LandAdds', cLandAdditions); +ScriptSetInteger('Explosives', cExplosives); ScriptSetInteger('Delay', cInactDelay); ScriptSetString('Map', ''); ScriptSetString('Theme', ''); @@ -362,6 +363,7 @@ ParseCommand('$turntime ' + ScriptGetString('TurnTime'), true); ParseCommand('$casefreq ' + ScriptGetString('CaseFreq'), true); ParseCommand('$landadds ' + ScriptGetString('LandAdds'), true); +ParseCommand('$explosives ' + ScriptGetString('Explosives'), true); ParseCommand('$delay ' + ScriptGetString('Delay'), true); if ScriptGetString('Map') <> '' then ParseCommand('map ' + ScriptGetString('Map'), true); @@ -370,6 +372,11 @@ ScriptPrepareAmmoStore; ScriptCall('onAmmoStoreInit'); +ScriptApplyAmmoStore; // doing 6 times - this is just temporary for now +ScriptApplyAmmoStore; +ScriptApplyAmmoStore; +ScriptApplyAmmoStore; +ScriptApplyAmmoStore; ScriptApplyAmmoStore; end; @@ -459,12 +466,13 @@ ScriptAmmoStore:= ScriptAmmoStore + '0000'; end; -procedure ScriptSetAmmo(ammo : TAmmoType; count, propability: Byte); +procedure ScriptSetAmmo(ammo : TAmmoType; count, propability, delay: Byte); begin -if (ord(ammo) < 1) or (count > 9) or (count < 0) or (propability < 0) or (propability > 8) then +if (ord(ammo) < 1) or (count > 9) or (count < 0) or (propability < 0) or (propability > 8) or (delay < 0) or (delay > 9)then exit; ScriptAmmoStore[ord(ammo)]:= inttostr(count)[1]; ScriptAmmoStore[ord(ammo) + ord(high(TAmmoType))]:= inttostr(propability)[1]; +ScriptAmmoStore[ord(ammo) + 2 * ord(high(TAmmoType))]:= inttostr(delay)[1]; end; procedure ScriptApplyAmmoStore;