Revisión | 5e38aa3d0c9fdddaddc62ab7014ed9a5fc5b3f78 (tree) |
---|---|
Tiempo | 2022-05-22 23:38:50 |
Autor | Adam Kaminski <kaminskiadam9@gmai...> |
Commiter | Adam Kaminski |
Replaced TEAM_CountFlags and TEAM_CountSkull with the template function GAME_CountTeamItem.
@@ -2914,6 +2914,22 @@ | ||
2914 | 2914 | } |
2915 | 2915 | |
2916 | 2916 | //***************************************************************************** |
2917 | +// [AK] Counts the number of a particular team item class in the level. | |
2918 | +// | |
2919 | +template <class TeamItem> | |
2920 | +ULONG GAME_CountTeamItem( void ) | |
2921 | +{ | |
2922 | + TeamItem *pItem; | |
2923 | + TThinkerIterator<TeamItem> iterator; | |
2924 | + ULONG ulCounted = 0; | |
2925 | + | |
2926 | + while ( pItem = iterator.Next( )) | |
2927 | + ulCounted++; | |
2928 | + | |
2929 | + return ulCounted; | |
2930 | +} | |
2931 | + | |
2932 | +//***************************************************************************** | |
2917 | 2933 | // Determine is a level is a deathmatch, CTF, etc. level by items that are placed on it. |
2918 | 2934 | // |
2919 | 2935 | void GAME_CheckMode( void ) |
@@ -2922,8 +2938,6 @@ | ||
2922 | 2938 | ULONG ulFlags2 = (ULONG)dmflags2; |
2923 | 2939 | UCVarValue Val; |
2924 | 2940 | ULONG ulIdx; |
2925 | - ULONG ulNumFlags; | |
2926 | - ULONG ulNumSkulls; | |
2927 | 2941 | bool bPlayerStarts = false; |
2928 | 2942 | bool bTeamStarts = false; |
2929 | 2943 | AActor *pItem; |
@@ -2990,10 +3004,8 @@ | ||
2990 | 3004 | // there are skulls or flags placed on the level. |
2991 | 3005 | // if ( oneflagctf == false ) |
2992 | 3006 | { |
2993 | - TThinkerIterator<AActor> iterator; | |
2994 | - | |
2995 | - ulNumFlags = TEAM_CountFlags( ); | |
2996 | - ulNumSkulls = TEAM_CountSkulls( ); | |
3007 | + ULONG ulNumFlags = GAME_CountTeamItem<AFlag>( ); | |
3008 | + ULONG ulNumSkulls = GAME_CountTeamItem<ASkull>( ); | |
2997 | 3009 | |
2998 | 3010 | // We found flags but no skulls. Set CTF mode. |
2999 | 3011 | if ( ulNumFlags && ( ulNumSkulls == 0 )) |
@@ -1613,34 +1613,6 @@ | ||
1613 | 1613 | |
1614 | 1614 | //***************************************************************************** |
1615 | 1615 | // |
1616 | -ULONG TEAM_CountFlags( void ) | |
1617 | -{ | |
1618 | - AFlag *pItem; | |
1619 | - TThinkerIterator<AFlag> iterator; | |
1620 | - ULONG ulCounted = 0; | |
1621 | - | |
1622 | - while ( (pItem = iterator.Next( ))) | |
1623 | - ulCounted++; | |
1624 | - | |
1625 | - return ulCounted; | |
1626 | -} | |
1627 | - | |
1628 | -//***************************************************************************** | |
1629 | -// | |
1630 | -ULONG TEAM_CountSkulls( void ) | |
1631 | -{ | |
1632 | - ASkull *pItem; | |
1633 | - TThinkerIterator<ASkull> iterator; | |
1634 | - ULONG ulCounted = 0; | |
1635 | - | |
1636 | - while ( (pItem = iterator.Next( ))) | |
1637 | - ulCounted++; | |
1638 | - | |
1639 | - return ulCounted; | |
1640 | -} | |
1641 | - | |
1642 | -//***************************************************************************** | |
1643 | -// | |
1644 | 1616 | ULONG TEAM_GetTeamFromItem( AActor *pActor ) |
1645 | 1617 | { |
1646 | 1618 | for ( ULONG i = 0; i < teams.Size( ); i++ ) |
@@ -174,9 +174,6 @@ | ||
174 | 174 | LONG TEAM_GetWinCountSpread ( ULONG ulTeam ); |
175 | 175 | LONG TEAM_GetPointCountSpread ( ULONG ulTeam ); |
176 | 176 | |
177 | -ULONG TEAM_CountFlags( void ); | |
178 | -ULONG TEAM_CountSkulls( void ); | |
179 | - | |
180 | 177 | ULONG TEAM_GetTeamFromItem( AActor *pActor ); |
181 | 178 | ULONG TEAM_GetNextTeam( ULONG ulTeamIdx ); |
182 | 179 |