hedgewars/uTeams.pas
changeset 13649 d5fe7db1baa9
parent 13648 f606ca8b80fd
child 13650 34aeaa627400
equal deleted inserted replaced
13648:f606ca8b80fd 13649:d5fe7db1baa9
    49     uGearsUtils, uGearsList, uVisualGearsList, uTextures
    49     uGearsUtils, uGearsList, uVisualGearsList, uTextures
    50     {$IFDEF USE_TOUCH_INTERFACE}, uTouch{$ENDIF};
    50     {$IFDEF USE_TOUCH_INTERFACE}, uTouch{$ENDIF};
    51 
    51 
    52 var TeamsGameOver: boolean;
    52 var TeamsGameOver: boolean;
    53     NextClan: boolean;
    53     NextClan: boolean;
       
    54     SwapClan: LongInt;
    54 
    55 
    55 function CheckForWin: boolean;
    56 function CheckForWin: boolean;
    56 var AliveClan: PClan;
    57 var AliveClan: PClan;
    57     s, cap: ansistring;
    58     s, cap: ansistring;
    58     ts: array[0..(cMaxTeams - 1)] of ansistring;
    59     ts: array[0..(cMaxTeams - 1)] of ansistring;
   202             end;
   203             end;
   203 
   204 
   204     if (GameFlags and gfTagTeam) = 0 then
   205     if (GameFlags and gfTagTeam) = 0 then
   205         inc(c);
   206         inc(c);
   206 
   207 
       
   208     if (c = SwapClan) and (not PlacingHogs) then
       
   209         inc(TotalRounds);
   207     if c = ClansCount then
   210     if c = ClansCount then
   208         begin
   211         c:= 0;
   209         if not PlacingHogs then
       
   210             inc(TotalRounds);
       
   211         c:= 0
       
   212         end;
       
   213 
   212 
   214     with ClansArray[c]^ do
   213     with ClansArray[c]^ do
   215         begin
   214         begin
   216         PrevTeam:= CurrTeam;
   215         PrevTeam:= CurrTeam;
   217         repeat
   216         repeat
   283         begin
   282         begin
   284         for i:= 0 to ClansCount do
   283         for i:= 0 to ClansCount do
   285             if ClansArray[i] <> nil then
   284             if ClansArray[i] <> nil then
   286                 ClansArray[i]^.TurnNumber:= 0;
   285                 ClansArray[i]^.TurnNumber:= 0;
   287         ResetWeapons
   286         ResetWeapons
   288         end
   287         end;
   289     end;
   288 
       
   289     end;
       
   290 
       
   291 // Clan ID (+1) to check to determine whether to increase TotalRounds
       
   292 if (SwapClan = -1) and (not PlacingHogs) then
       
   293     if (GameFlags and gfRandomOrder) <> 0 then
       
   294         SwapClan:= ClansCount
       
   295     else
       
   296         SwapClan:= 1;
   290 
   297 
   291 inc(CurrentTeam^.Clan^.TurnNumber);
   298 inc(CurrentTeam^.Clan^.TurnNumber);
   292 with CurrentTeam^.Clan^ do
   299 with CurrentTeam^.Clan^ do
   293     for t:= 0 to Pred(TeamsNumber) do
   300     for t:= 0 to Pred(TeamsNumber) do
   294         with Teams[t]^ do
   301         with Teams[t]^ do
   872 LocalClan:= -1;
   879 LocalClan:= -1;
   873 LocalTeam:= -1;
   880 LocalTeam:= -1;
   874 LocalAmmo:= -1;
   881 LocalAmmo:= -1;
   875 TeamsGameOver:= false;
   882 TeamsGameOver:= false;
   876 NextClan:= true;
   883 NextClan:= true;
       
   884 SwapClan:= -1;
   877 MaxTeamHealth:= 0;
   885 MaxTeamHealth:= 0;
   878 end;
   886 end;
   879 
   887 
   880 procedure freeModule;
   888 procedure freeModule;
   881 var i, h: LongWord;
   889 var i, h: LongWord;
   917         Dispose(ClansArray[i])
   925         Dispose(ClansArray[i])
   918         end
   926         end
   919     end;
   927     end;
   920 TeamsCount:= 0;
   928 TeamsCount:= 0;
   921 ClansCount:= 0;
   929 ClansCount:= 0;
       
   930 SwapClan:= -1;
   922 end;
   931 end;
   923 
   932 
   924 end.
   933 end.