hedgewars/uScript.pas
branchwebgl
changeset 8018 091293bc974f
parent 8012 2a61631a4505
child 8025 07862ab415c8
child 8026 4a4f21070479
equal deleted inserted replaced
8008:2ed42786aca7 8018:091293bc974f
  1725     if lua_gettop(L) <> 1 then
  1725     if lua_gettop(L) <> 1 then
  1726         LuaError('Lua: Wrong number of parameters passed to HideHog!')
  1726         LuaError('Lua: Wrong number of parameters passed to HideHog!')
  1727     else
  1727     else
  1728         begin
  1728         begin
  1729         gear:= GearByUID(lua_tointeger(L, 1));
  1729         gear:= GearByUID(lua_tointeger(L, 1));
  1730         hiddenHedgehogs[hiddenHedgehogsNumber]:=gear^.hedgehog;
  1730         HideHog(gear^.hedgehog)
  1731         inc(hiddenHedgehogsNumber);
       
  1732         HideHog(gear^.hedgehog);
       
  1733         end;
  1731         end;
  1734     lc_hidehog := 0;
  1732     lc_hidehog := 0;
  1735 end;
  1733 end;
  1736 
  1734 
  1737 function lc_restorehog(L: Plua_State): LongInt; Cdecl;
  1735 function lc_restorehog(L: Plua_State): LongInt; Cdecl;
  1738 var hog: PHedgehog;
  1736 var hog: PHedgehog;
  1739     i, j: LongInt;
  1737     i, h: LongInt;
       
  1738     uid: LongWord;
  1740 begin
  1739 begin
  1741     if lua_gettop(L) <> 1 then
  1740     if lua_gettop(L) <> 1 then
  1742         LuaError('Lua: Wrong number of parameters passed to RestoreHog!')
  1741         LuaError('Lua: Wrong number of parameters passed to RestoreHog!')
  1743     else
  1742     else
  1744         begin
  1743         begin
  1745           i := 0;
  1744         uid:= LongWord(lua_tointeger(L, 1));
  1746           while (i < hiddenHedgehogsNumber) do
  1745         if TeamsCount > 0 then
  1747             begin
  1746             for i:= 0 to Pred(TeamsCount) do
  1748             if hiddenHedgehogs[i]^.gearHidden^.uid = LongWord(lua_tointeger(L, 1)) then
  1747                 for h:= 0 to cMaxHHIndex do
  1749               begin
  1748                     if (TeamsArray[i]^.Hedgehogs[h].GearHidden <> nil) and (TeamsArray[i]^.Hedgehogs[h].GearHidden^.uid = uid) then
  1750                 hog := hiddenHedgehogs[i];
  1749                         begin
  1751                 RestoreHog(hog);
  1750                         RestoreHog(@TeamsArray[i]^.Hedgehogs[h]);
  1752                 dec(hiddenHedgehogsNumber);
  1751                         exit(0)
  1753                 for j := i to hiddenHedgehogsNumber - 1 do
  1752                         end
  1754                   hiddenHedgehogs[j] := hiddenHedgehogs[j + 1];
       
  1755                 lc_restorehog := 0;
       
  1756                 exit;
       
  1757               end;
       
  1758             inc(i);
       
  1759             end;
       
  1760         end;
  1753         end;
  1761     lc_restorehog := 0;
  1754     lc_restorehog := 0;
  1762 end;
  1755 end;
  1763 
  1756 
  1764 // boolean TestRectForObstacle(x1, y1, x2, y2, landOnly)
  1757 // boolean TestRectForObstacle(x1, y1, x2, y2, landOnly)
  1781                     );
  1774                     );
  1782         lua_pushboolean(L, rtn);
  1775         lua_pushboolean(L, rtn);
  1783         end;
  1776         end;
  1784     lc_testrectforobstacle:= 1
  1777     lc_testrectforobstacle:= 1
  1785 end;
  1778 end;
       
  1779 
       
  1780 
       
  1781 function lc_setaihintsongear(L : Plua_State) : LongInt; Cdecl;
       
  1782 var gear: PGear;
       
  1783 begin
       
  1784     if lua_gettop(L) <> 2 then
       
  1785         LuaError('Lua: Wrong number of parameters passed to SetAIHintOnGear!')
       
  1786     else
       
  1787         begin
       
  1788         gear:= GearByUID(lua_tointeger(L, 1));
       
  1789         if gear <> nil then
       
  1790             gear^.aihints:= lua_tointeger(L, 2);
       
  1791         end;
       
  1792     lc_setaihintsongear:= 0
       
  1793 end;
       
  1794 
  1786 ///////////////////
  1795 ///////////////////
  1787 
  1796 
  1788 procedure ScriptPrintStack;
  1797 procedure ScriptPrintStack;
  1789 var n, i : LongInt;
  1798 var n, i : LongInt;
  1790 begin
  1799 begin
  2284 ScriptSetInteger('gstWait'           ,$00020000);
  2293 ScriptSetInteger('gstWait'           ,$00020000);
  2285 ScriptSetInteger('gstNotKickable'    ,$00040000);
  2294 ScriptSetInteger('gstNotKickable'    ,$00040000);
  2286 ScriptSetInteger('gstLoser'          ,$00080000);
  2295 ScriptSetInteger('gstLoser'          ,$00080000);
  2287 ScriptSetInteger('gstHHGone'         ,$00100000);
  2296 ScriptSetInteger('gstHHGone'         ,$00100000);
  2288 ScriptSetInteger('gstInvisible'      ,$00200000);
  2297 ScriptSetInteger('gstInvisible'      ,$00200000);
       
  2298 
       
  2299 ScriptSetInteger('aihUsualProcessing' ,$00000000);
       
  2300 ScriptSetInteger('aihDoesntMatter'    ,$00000001);
  2289 
  2301 
  2290 // register functions
  2302 // register functions
  2291 lua_register(luaState, _P'HideHog', @lc_hidehog);
  2303 lua_register(luaState, _P'HideHog', @lc_hidehog);
  2292 lua_register(luaState, _P'RestoreHog', @lc_restorehog);
  2304 lua_register(luaState, _P'RestoreHog', @lc_restorehog);
  2293 lua_register(luaState, _P'SaveCampaignVar', @lc_savecampaignvar);
  2305 lua_register(luaState, _P'SaveCampaignVar', @lc_savecampaignvar);
  2378 lua_register(luaState, _P'SetHogHat', @lc_sethoghat);
  2390 lua_register(luaState, _P'SetHogHat', @lc_sethoghat);
  2379 lua_register(luaState, _P'PlaceGirder', @lc_placegirder);
  2391 lua_register(luaState, _P'PlaceGirder', @lc_placegirder);
  2380 lua_register(luaState, _P'GetCurAmmoType', @lc_getcurammotype);
  2392 lua_register(luaState, _P'GetCurAmmoType', @lc_getcurammotype);
  2381 lua_register(luaState, _P'TestRectForObstacle', @lc_testrectforobstacle);
  2393 lua_register(luaState, _P'TestRectForObstacle', @lc_testrectforobstacle);
  2382 
  2394 
       
  2395 lua_register(luaState, _P'SetGearAIHints', @lc_setaihintsongear);
       
  2396 
  2383 
  2397 
  2384 ScriptClearStack; // just to be sure stack is empty
  2398 ScriptClearStack; // just to be sure stack is empty
  2385 ScriptLoaded:= false;
  2399 ScriptLoaded:= false;
  2386 end;
  2400 end;
  2387 
  2401