hedgewars/uScript.pas
changeset 9751 7a6038c3faa2
parent 9750 8963312df207
child 9752 656c511ab0f3
equal deleted inserted replaced
9750:8963312df207 9751:7a6038c3faa2
    97     mapDims : boolean;
    97     mapDims : boolean;
    98 
    98 
    99 procedure ScriptPrepareAmmoStore; forward;
    99 procedure ScriptPrepareAmmoStore; forward;
   100 procedure ScriptApplyAmmoStore; forward;
   100 procedure ScriptApplyAmmoStore; forward;
   101 procedure ScriptSetAmmo(ammo : TAmmoType; count, probability, delay, reinforcement: Byte); forward;
   101 procedure ScriptSetAmmo(ammo : TAmmoType; count, probability, delay, reinforcement: Byte); forward;
       
   102 procedure ScriptSetAmmoDelay(ammo : TAmmoType; delay: Byte); forward;
   102 
   103 
   103 procedure LuaError(s: shortstring);
   104 procedure LuaError(s: shortstring);
   104 begin
   105 begin
   105     WriteLnToConsole(s);
   106     WriteLnToConsole(s);
   106     AddChatString(#5 + s);
   107     AddChatString(#5 + s);
  1604     else
  1605     else
  1605         ScriptSetAmmo(TAmmoType(lua_tointeger(L, 1)), lua_tointeger(L, 2), lua_tointeger(L, 3), lua_tointeger(L, 4), lua_tointeger(L, 5));
  1606         ScriptSetAmmo(TAmmoType(lua_tointeger(L, 1)), lua_tointeger(L, 2), lua_tointeger(L, 3), lua_tointeger(L, 4), lua_tointeger(L, 5));
  1606     lc_setammo:= 0
  1607     lc_setammo:= 0
  1607 end;
  1608 end;
  1608 
  1609 
       
  1610 function lc_setammodelay(L : Plua_State) : LongInt; Cdecl;
       
  1611 var np: LongInt;
       
  1612 begin
       
  1613     np:= lua_gettop(L);
       
  1614     if (np <> 2) then
       
  1615         LuaError('Lua: Wrong number of parameters passed to SetAmmoDelay!')
       
  1616     else
       
  1617         ScriptSetAmmoDelay(TAmmoType(lua_tointeger(L, 1)), lua_tointeger(L, 2));
       
  1618     lc_setammodelay:= 0
       
  1619 end;
       
  1620 
  1609 function lc_setammostore(L : Plua_State) : LongInt; Cdecl;
  1621 function lc_setammostore(L : Plua_State) : LongInt; Cdecl;
  1610 var np: LongInt;
  1622 var np: LongInt;
  1611 begin
  1623 begin
  1612     np:= lua_gettop(L);
  1624     np:= lua_gettop(L);
  1613     if (np <> 4) then
  1625     if (np <> 4) then
  2236 //if (ord(ammo) < 1) or (count > 9) or (count < 0) or (probability < 0) or (probability > 8) or (delay < 0) or (delay > 9) or (reinforcement < 0) or (reinforcement > 8) then
  2248 //if (ord(ammo) < 1) or (count > 9) or (count < 0) or (probability < 0) or (probability > 8) or (delay < 0) or (delay > 9) or (reinforcement < 0) or (reinforcement > 8) then
  2237 if (ord(ammo) < 1) or (count > 9) or (probability > 8) or (delay > 9) or (reinforcement > 8) then
  2249 if (ord(ammo) < 1) or (count > 9) or (probability > 8) or (delay > 9) or (reinforcement > 8) then
  2238     exit;
  2250     exit;
  2239 ScriptAmmoLoadout[ord(ammo)]:= inttostr(count)[1];
  2251 ScriptAmmoLoadout[ord(ammo)]:= inttostr(count)[1];
  2240 ScriptAmmoProbability[ord(ammo)]:= inttostr(probability)[1];
  2252 ScriptAmmoProbability[ord(ammo)]:= inttostr(probability)[1];
  2241 ScriptAmmoDelay[ord(ammo)]:= inttostr(delay)[1];
  2253 ScriptSetAmmoDelay(ammo, delay);
  2242 ScriptAmmoReinforcement[ord(ammo)]:= inttostr(reinforcement)[1];
  2254 ScriptAmmoReinforcement[ord(ammo)]:= inttostr(reinforcement)[1];
       
  2255 end;
       
  2256 
       
  2257 procedure ScriptSetAmmoDelay(ammo : TAmmoType; delay: Byte);
       
  2258 begin
       
  2259 // change loadout string if ammo store hasn't been initialized yet
       
  2260 if (StoreCnt = 0) then
       
  2261 begin
       
  2262     if (delay <= 9) then
       
  2263         ScriptAmmoDelay[ord(ammo)]:= inttostr(delay)[1];
       
  2264 end
       
  2265 // change "live" delay values
       
  2266 else if (CurrentTeam <> nil) then
       
  2267         ammoz[ammo].SkipTurns:= CurrentTeam^.Clan^.TurnNumber + delay;
  2243 end;
  2268 end;
  2244 
  2269 
  2245 procedure ScriptApplyAmmoStore;
  2270 procedure ScriptApplyAmmoStore;
  2246 var i, j, k : LongInt;
  2271 var i, j, k : LongInt;
  2247 begin
  2272 begin
  2459 lua_register(luaState, _P'ParseCommand', @lc_parsecommand);
  2484 lua_register(luaState, _P'ParseCommand', @lc_parsecommand);
  2460 lua_register(luaState, _P'ShowMission', @lc_showmission);
  2485 lua_register(luaState, _P'ShowMission', @lc_showmission);
  2461 lua_register(luaState, _P'HideMission', @lc_hidemission);
  2486 lua_register(luaState, _P'HideMission', @lc_hidemission);
  2462 lua_register(luaState, _P'AddCaption', @lc_addcaption);
  2487 lua_register(luaState, _P'AddCaption', @lc_addcaption);
  2463 lua_register(luaState, _P'SetAmmo', @lc_setammo);
  2488 lua_register(luaState, _P'SetAmmo', @lc_setammo);
       
  2489 lua_register(luaState, _P'SetAmmoDelay', @lc_setammodelay);
  2464 lua_register(luaState, _P'SetAmmoStore', @lc_setammostore);
  2490 lua_register(luaState, _P'SetAmmoStore', @lc_setammostore);
  2465 lua_register(luaState, _P'PlaySound', @lc_playsound);
  2491 lua_register(luaState, _P'PlaySound', @lc_playsound);
  2466 lua_register(luaState, _P'AddTeam', @lc_addteam);
  2492 lua_register(luaState, _P'AddTeam', @lc_addteam);
  2467 lua_register(luaState, _P'AddHog', @lc_addhog);
  2493 lua_register(luaState, _P'AddHog', @lc_addhog);
  2468 lua_register(luaState, _P'AddAmmo', @lc_addammo);
  2494 lua_register(luaState, _P'AddAmmo', @lc_addammo);