hedgewars/uScript.pas
changeset 10553 67c6de2a0213
parent 10542 383328755384
child 10560 9f09196d92a6
equal deleted inserted replaced
10552:15d1e24a8c72 10553:67c6de2a0213
  1632         //lua_pushnil(L)
  1632         //lua_pushnil(L)
  1633     lc_addteam:= 0;//1;
  1633     lc_addteam:= 0;//1;
  1634 end;
  1634 end;
  1635 
  1635 
  1636 function lc_dismissteam(L : Plua_State) : LongInt; Cdecl;
  1636 function lc_dismissteam(L : Plua_State) : LongInt; Cdecl;
       
  1637 var HHGear: PGear;
       
  1638     i, h  : LongInt;
       
  1639     hidden: boolean;
  1637 begin
  1640 begin
  1638     if CheckLuaParamCount(L, 1, 'DismissTeam', 'teamname') then
  1641     if CheckLuaParamCount(L, 1, 'DismissTeam', 'teamname') then
  1639         ParseCommand('teamgone ' + lua_tostring(L, 1), true, true);
  1642         begin
  1640     lc_dismissteam:= 0;;
  1643         if TeamsCount > 0 then
       
  1644             for i:= 0 to Pred(TeamsCount) do
       
  1645                 begin
       
  1646                 // skip teams that don't have matching name
       
  1647                 if TeamsArray[i]^.TeamName <> lua_tostring(L, 1) then
       
  1648                     continue;
       
  1649 
       
  1650                 // destroy all hogs of matching team, including the hidden ones
       
  1651                 for h:= 0 to cMaxHHIndex do
       
  1652                     begin
       
  1653                     hidden:= (TeamsArray[i]^.Hedgehogs[h].GearHidden <> nil);
       
  1654                     if hidden then
       
  1655                         RestoreHog(@TeamsArray[i]^.Hedgehogs[h]);
       
  1656                     // destroy hedgehog gear, if any
       
  1657                     HHGear:= TeamsArray[i]^.Hedgehogs[h].Gear;
       
  1658                     if HHGear <> nil then
       
  1659                         begin
       
  1660                         // smoke effect
       
  1661                         if (not hidden) then
       
  1662                             begin
       
  1663                             AddVisualGear(hwRound(HHGear^.X), hwRound(HHGear^.Y), vgtSmokeWhite);
       
  1664                             AddVisualGear(hwRound(HHGear^.X) - 16 + Random(32), hwRound(HHGear^.Y) - 16 + Random(32), vgtSmokeWhite);
       
  1665                             AddVisualGear(hwRound(HHGear^.X) - 16 + Random(32), hwRound(HHGear^.Y) - 16 + Random(32), vgtSmokeWhite);
       
  1666                             AddVisualGear(hwRound(HHGear^.X) - 16 + Random(32), hwRound(HHGear^.Y) - 16 + Random(32), vgtSmokeWhite);
       
  1667                             AddVisualGear(hwRound(HHGear^.X) - 16 + Random(32), hwRound(HHGear^.Y) - 16 + Random(32), vgtSmokeWhite);
       
  1668                             end;
       
  1669                         HHGear^.Message:= HHGear^.Message or gmDestroy;
       
  1670                         end;
       
  1671                     end;
       
  1672                 // can't dismiss more than one team
       
  1673                 break;
       
  1674                 end;
       
  1675         end;
       
  1676     lc_dismissteam:= 0;
  1641 end;
  1677 end;
  1642 
  1678 
  1643 function lc_addhog(L : Plua_State) : LongInt; Cdecl;
  1679 function lc_addhog(L : Plua_State) : LongInt; Cdecl;
  1644 var temp: ShortString;
  1680 var temp: ShortString;
  1645 begin
  1681 begin