mirror of
https://github.com/1dot13/source.git
synced 2026-07-22 13:40:22 +02:00
Use SoldierID
This commit is contained in:
+7
-10
@@ -874,8 +874,6 @@ void HandleSoldierAI( SOLDIERTYPE *pSoldier ) // FIXME - this function is named
|
||||
|
||||
void EndAIGuysTurn( SOLDIERTYPE *pSoldier )
|
||||
{
|
||||
UINT16 ubID;
|
||||
|
||||
if (gfTurnBasedAI)
|
||||
{
|
||||
if (gTacticalStatus.uiFlags & PLAYER_TEAM_DEAD)
|
||||
@@ -885,9 +883,9 @@ void EndAIGuysTurn( SOLDIERTYPE *pSoldier )
|
||||
}
|
||||
|
||||
// search for any player merc to say close call quote
|
||||
for ( ubID = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; ubID <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++ubID )
|
||||
for ( SoldierID ubID = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; ubID <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++ubID )
|
||||
{
|
||||
SOLDIERTYPE *pMerc = MercPtrs[ubID];
|
||||
SOLDIERTYPE *pMerc = ubID;
|
||||
|
||||
if ( OK_INSECTOR_MERC( pMerc ) )
|
||||
{
|
||||
@@ -941,10 +939,10 @@ void EndAIGuysTurn( SOLDIERTYPE *pSoldier )
|
||||
#endif
|
||||
|
||||
// find the next AI guy
|
||||
ubID = RemoveFirstAIListEntry();
|
||||
SoldierID ubID = RemoveFirstAIListEntry();
|
||||
if (ubID != NOBODY)
|
||||
{
|
||||
StartNPCAI( MercPtrs[ ubID ] );
|
||||
StartNPCAI( ubID );
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1119,14 +1117,13 @@ void StartNPCAI(SOLDIERTYPE *pSoldier)
|
||||
|
||||
BOOLEAN DestNotSpokenFor(SOLDIERTYPE *pSoldier, INT32 sGridNo)
|
||||
{
|
||||
INT32 cnt;
|
||||
SOLDIERTYPE *pOurTeam;
|
||||
|
||||
cnt = gTacticalStatus.Team[pSoldier->bTeam].bFirstID;
|
||||
SoldierID cnt = gTacticalStatus.Team[pSoldier->bTeam].bFirstID;
|
||||
|
||||
// make a list of all of our team's mercs
|
||||
for (pOurTeam = MercPtrs[cnt]; cnt <= gTacticalStatus.Team[pSoldier->bTeam].bLastID; cnt++,pOurTeam++)
|
||||
for ( ; cnt <= gTacticalStatus.Team[pSoldier->bTeam].bLastID; ++cnt )
|
||||
{
|
||||
pOurTeam = cnt;
|
||||
if ( pOurTeam->bActive )
|
||||
{
|
||||
if (pOurTeam->sGridNo == sGridNo || pOurTeam->aiData.usActionData == sGridNo)
|
||||
|
||||
+43
-52
@@ -1703,18 +1703,17 @@ INT32 ClosestPC( SOLDIERTYPE *pSoldier, INT32 * psDistance )
|
||||
|
||||
// NOTE: skips EPCs!
|
||||
|
||||
UINT16 ubLoop;
|
||||
SOLDIERTYPE *pTargetSoldier;
|
||||
INT32 sMinDist = WORLD_MAX;
|
||||
INT32 sDist;
|
||||
INT32 sGridNo = NOWHERE;
|
||||
|
||||
// Loop through all mercs on player team
|
||||
ubLoop = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
|
||||
SoldierID ubLoop = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
|
||||
|
||||
for ( ; ubLoop <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ubLoop++)
|
||||
for ( ; ubLoop <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++ubLoop)
|
||||
{
|
||||
pTargetSoldier = Menptr + ubLoop;
|
||||
pTargetSoldier = ubLoop;
|
||||
|
||||
if (!pTargetSoldier->bActive || !pTargetSoldier->bInSector)
|
||||
{
|
||||
@@ -1762,17 +1761,16 @@ INT32 ClosestUnDisguisedPC( SOLDIERTYPE *pSoldier, INT32 * psDistance )
|
||||
// used by NPCs... find the closest PC
|
||||
// NOTE: skips EPCs!
|
||||
|
||||
UINT16 ubLoop;
|
||||
SOLDIERTYPE *pTargetSoldier;
|
||||
INT32 sMinDist = WORLD_MAX;
|
||||
INT32 sDist;
|
||||
INT32 sGridNo = NOWHERE;
|
||||
|
||||
// Loop through all mercs on player team
|
||||
ubLoop = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
|
||||
for ( ; ubLoop <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ubLoop++)
|
||||
SoldierID ubLoop = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
|
||||
for ( ; ubLoop <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++ubLoop )
|
||||
{
|
||||
pTargetSoldier = Menptr + ubLoop;
|
||||
pTargetSoldier = ubLoop;
|
||||
|
||||
if (!pTargetSoldier->bActive || !pTargetSoldier->bInSector)
|
||||
continue;
|
||||
@@ -2021,7 +2019,6 @@ INT16 EstimatePathCostToLocation( SOLDIERTYPE * pSoldier, INT32 sDestGridNo, INT
|
||||
BOOLEAN GuySawEnemy( SOLDIERTYPE * pSoldier, UINT8 ubMax )
|
||||
{
|
||||
UINT8 ubTeamLoop;
|
||||
UINT16 ubIDLoop;
|
||||
SOLDIERTYPE *pOpponent;
|
||||
|
||||
for ( ubTeamLoop = 0; ubTeamLoop < MAXTEAMS; ++ubTeamLoop )
|
||||
@@ -2032,9 +2029,9 @@ BOOLEAN GuySawEnemy( SOLDIERTYPE * pSoldier, UINT8 ubMax )
|
||||
if ( gTacticalStatus.Team[ ubTeamLoop ].bSide != pSoldier->bSide )
|
||||
{
|
||||
// consider guys in this team, which isn't on our side
|
||||
for ( ubIDLoop = gTacticalStatus.Team[ ubTeamLoop ].bFirstID; ubIDLoop <= gTacticalStatus.Team[ ubTeamLoop ].bLastID; ++ubIDLoop )
|
||||
for ( SoldierID ubIDLoop = gTacticalStatus.Team[ ubTeamLoop ].bFirstID; ubIDLoop <= gTacticalStatus.Team[ ubTeamLoop ].bLastID; ++ubIDLoop )
|
||||
{
|
||||
pOpponent = MercPtrs[ubIDLoop];
|
||||
pOpponent = ubIDLoop;
|
||||
|
||||
// if this merc is inactive, at base, on assignment, or dead
|
||||
if (!pOpponent)
|
||||
@@ -2174,15 +2171,14 @@ INT32 ClosestReachableFriendInTrouble(SOLDIERTYPE *pSoldier, BOOLEAN * pfClimbin
|
||||
INT16 DistanceToClosestFriend( SOLDIERTYPE * pSoldier )
|
||||
{
|
||||
// find the distance to the closest person on the same team
|
||||
UINT16 ubLoop;
|
||||
SOLDIERTYPE *pTargetSoldier;
|
||||
INT16 sMinDist = 1000;
|
||||
INT16 sDist;
|
||||
|
||||
// Loop through all mercs on player team
|
||||
ubLoop = gTacticalStatus.Team[ pSoldier->bTeam ].bFirstID;
|
||||
SoldierID ubLoop = gTacticalStatus.Team[ pSoldier->bTeam ].bFirstID;
|
||||
|
||||
for ( ; ubLoop <= gTacticalStatus.Team[ pSoldier->bTeam ].bLastID; ubLoop++ )
|
||||
for ( ; ubLoop <= gTacticalStatus.Team[ pSoldier->bTeam ].bLastID; ++ubLoop )
|
||||
{
|
||||
if (ubLoop == pSoldier->ubID)
|
||||
{
|
||||
@@ -2190,7 +2186,7 @@ INT16 DistanceToClosestFriend( SOLDIERTYPE * pSoldier )
|
||||
continue;
|
||||
}
|
||||
|
||||
pTargetSoldier = Menptr + ubLoop;
|
||||
pTargetSoldier = ubLoop;
|
||||
|
||||
if ( pSoldier->bActive && pSoldier->bInSector )
|
||||
{
|
||||
@@ -3167,12 +3163,11 @@ INT32 RangeChangeDesire( SOLDIERTYPE * pSoldier )
|
||||
|
||||
BOOLEAN ArmySeesOpponents( void )
|
||||
{
|
||||
INT32 cnt;
|
||||
SOLDIERTYPE * pSoldier;
|
||||
|
||||
for ( cnt = gTacticalStatus.Team[ ENEMY_TEAM ].bFirstID; cnt <= gTacticalStatus.Team[ ENEMY_TEAM ].bLastID; cnt++ )
|
||||
for ( SoldierID cnt = gTacticalStatus.Team[ ENEMY_TEAM ].bFirstID; cnt <= gTacticalStatus.Team[ ENEMY_TEAM ].bLastID; ++cnt )
|
||||
{
|
||||
pSoldier = MercPtrs[ cnt ];
|
||||
pSoldier = cnt;
|
||||
|
||||
if ( pSoldier->bActive && pSoldier->bInSector && pSoldier->stats.bLife >= OKLIFE && pSoldier->aiData.bOppCnt > 0 )
|
||||
{
|
||||
@@ -3306,7 +3301,7 @@ INT16 AssessTacticalSituation( INT8 bTeam )
|
||||
BOOLEAN TeamSeesOpponent( INT8 bTeam, SOLDIERTYPE * pOpponent )
|
||||
{
|
||||
SOLDIERTYPE * pSoldier;
|
||||
UINT16 cnt;
|
||||
SoldierID cnt;
|
||||
|
||||
// This assertion can be safely removed, assuming the program does what it should. It simply checks
|
||||
// whether the "opponent" is on the same team being checked. That should be avoided when calling this
|
||||
@@ -3316,9 +3311,9 @@ BOOLEAN TeamSeesOpponent( INT8 bTeam, SOLDIERTYPE * pOpponent )
|
||||
// We're checking Merc/Militia visibility
|
||||
if (bTeam == OUR_TEAM || bTeam == MILITIA_TEAM )
|
||||
{
|
||||
for ( cnt = gTacticalStatus.Team[ MILITIA_TEAM ].bFirstID; cnt <= gTacticalStatus.Team[ MILITIA_TEAM ].bLastID; cnt++ )
|
||||
for ( cnt = gTacticalStatus.Team[ MILITIA_TEAM ].bFirstID; cnt <= gTacticalStatus.Team[ MILITIA_TEAM ].bLastID; ++cnt )
|
||||
{
|
||||
pSoldier = MercPtrs[ cnt ];
|
||||
pSoldier = cnt;
|
||||
|
||||
if (pSoldier->bActive && pSoldier->bInSector && pSoldier->stats.bLife >= OKLIFE)
|
||||
{
|
||||
@@ -3328,9 +3323,9 @@ BOOLEAN TeamSeesOpponent( INT8 bTeam, SOLDIERTYPE * pOpponent )
|
||||
return ( TRUE );
|
||||
}
|
||||
}
|
||||
for ( cnt = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; cnt <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; cnt++ )
|
||||
for ( cnt = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; cnt <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++cnt )
|
||||
{
|
||||
pSoldier = MercPtrs[ cnt ];
|
||||
pSoldier = cnt;
|
||||
|
||||
if (pSoldier->bActive && pSoldier->bInSector && pSoldier->stats.bLife >= OKLIFE)
|
||||
{
|
||||
@@ -3349,9 +3344,9 @@ BOOLEAN TeamSeesOpponent( INT8 bTeam, SOLDIERTYPE * pOpponent )
|
||||
// Check enemy visibility
|
||||
else if (bTeam == ENEMY_TEAM)
|
||||
{
|
||||
for ( cnt = gTacticalStatus.Team[ ENEMY_TEAM ].bFirstID; cnt <= gTacticalStatus.Team[ ENEMY_TEAM ].bLastID; cnt++ )
|
||||
for ( cnt = gTacticalStatus.Team[ ENEMY_TEAM ].bFirstID; cnt <= gTacticalStatus.Team[ ENEMY_TEAM ].bLastID; ++cnt )
|
||||
{
|
||||
pSoldier = MercPtrs[ cnt ];
|
||||
pSoldier = cnt;
|
||||
|
||||
if (pSoldier->bActive && pSoldier->bInSector && pSoldier->stats.bLife >= OKLIFE)
|
||||
{
|
||||
@@ -3448,14 +3443,13 @@ INT32 CalcStraightThreatValue( SOLDIERTYPE *pEnemy )
|
||||
SoldierID GetClosestFlaggedSoldierID( SOLDIERTYPE * pSoldier, INT16 aRange, UINT8 auTeam, UINT32 aFlag, BOOLEAN fCheckSight )
|
||||
{
|
||||
SoldierID id = NOBODY;
|
||||
UINT32 uiLoop;
|
||||
SOLDIERTYPE * pFriend;
|
||||
INT16 range = aRange;
|
||||
|
||||
// go through each soldier, looking for "friends" (soldiers on same team)
|
||||
for (uiLoop = gTacticalStatus.Team[ auTeam ].bFirstID; uiLoop <= gTacticalStatus.Team[ auTeam ].bLastID; ++uiLoop)
|
||||
for ( SoldierID uiLoop = gTacticalStatus.Team[ auTeam ].bFirstID; uiLoop <= gTacticalStatus.Team[ auTeam ].bLastID; ++uiLoop)
|
||||
{
|
||||
pFriend = MercPtrs[ uiLoop ];
|
||||
pFriend = uiLoop;
|
||||
|
||||
// if this merc is inactive, not in sector, or dead
|
||||
if (!pFriend)
|
||||
@@ -3501,14 +3495,13 @@ SoldierID GetClosestFlaggedSoldierID( SOLDIERTYPE * pSoldier, INT16 aRange, UINT
|
||||
SoldierID GetClosestWoundedSoldierID( SOLDIERTYPE * pSoldier, INT16 aRange, UINT8 auTeam )
|
||||
{
|
||||
SoldierID id = NOBODY;
|
||||
UINT32 uiLoop;
|
||||
SOLDIERTYPE * pFriend;
|
||||
INT16 range = aRange;
|
||||
|
||||
// go through each soldier, looking for "friends" (soldiers on same team)
|
||||
for (uiLoop = gTacticalStatus.Team[ auTeam ].bFirstID; uiLoop <= gTacticalStatus.Team[ auTeam ].bLastID; ++uiLoop)
|
||||
for ( SoldierID uiLoop = gTacticalStatus.Team[ auTeam ].bFirstID; uiLoop <= gTacticalStatus.Team[ auTeam ].bLastID; ++uiLoop)
|
||||
{
|
||||
pFriend = MercPtrs[ uiLoop ];
|
||||
pFriend = uiLoop;
|
||||
|
||||
// if this merc is inactive, not in sector, or dead
|
||||
if (!pFriend)
|
||||
@@ -3550,14 +3543,13 @@ SoldierID GetClosestWoundedSoldierID( SOLDIERTYPE * pSoldier, INT16 aRange, UINT
|
||||
SoldierID GetClosestMedicSoldierID( SOLDIERTYPE * pSoldier, INT16 aRange, UINT8 auTeam )
|
||||
{
|
||||
SoldierID id = NOBODY;
|
||||
UINT32 uiLoop;
|
||||
SOLDIERTYPE * pFriend;
|
||||
INT16 range = aRange;
|
||||
|
||||
// go through each soldier, looking for "friends" (soldiers on same team)
|
||||
for (uiLoop = gTacticalStatus.Team[ auTeam ].bFirstID; uiLoop <= gTacticalStatus.Team[ auTeam ].bLastID; ++uiLoop)
|
||||
for ( SoldierID uiLoop = gTacticalStatus.Team[ auTeam ].bFirstID; uiLoop <= gTacticalStatus.Team[ auTeam ].bLastID; ++uiLoop)
|
||||
{
|
||||
pFriend = MercPtrs[ uiLoop ];
|
||||
pFriend = uiLoop;
|
||||
|
||||
// if this merc is inactive, not in sector, or dead
|
||||
if (!pFriend)
|
||||
@@ -3622,9 +3614,9 @@ UINT16 CountFriendsInDirection( SOLDIERTYPE *pSoldier, INT32 sTargetGridNo )
|
||||
ubMyDir = GetDirectionFromCenterCellXYGridNo(sTargetGridNo, pSoldier->sGridNo);
|
||||
|
||||
// Run through each friendly.
|
||||
for ( UINT16 iCounter = gTacticalStatus.Team[ pSoldier->bTeam ].bFirstID ; iCounter <= gTacticalStatus.Team[ pSoldier->bTeam ].bLastID ; iCounter ++ )
|
||||
for ( SoldierID iCounter = gTacticalStatus.Team[ pSoldier->bTeam ].bFirstID ; iCounter <= gTacticalStatus.Team[ pSoldier->bTeam ].bLastID ; ++iCounter )
|
||||
{
|
||||
pFriend = MercPtrs[ iCounter ];
|
||||
pFriend = iCounter;
|
||||
ubFriendDir = GetDirectionFromCenterCellXYGridNo(sTargetGridNo, pFriend->sGridNo);
|
||||
|
||||
if (pFriend != pSoldier &&
|
||||
@@ -3654,9 +3646,9 @@ UINT16 CountNearbyFriends( SOLDIERTYPE *pSoldier, INT32 sGridNo, UINT8 ubDistanc
|
||||
return 0;
|
||||
|
||||
// Run through each friendly.
|
||||
for ( UINT16 iCounter = gTacticalStatus.Team[ pSoldier->bTeam ].bFirstID ; iCounter <= gTacticalStatus.Team[ pSoldier->bTeam ].bLastID ; iCounter ++ )
|
||||
for ( SoldierID iCounter = gTacticalStatus.Team[ pSoldier->bTeam ].bFirstID ; iCounter <= gTacticalStatus.Team[ pSoldier->bTeam ].bLastID ; ++iCounter )
|
||||
{
|
||||
pFriend = MercPtrs[ iCounter ];
|
||||
pFriend = iCounter;
|
||||
// Make sure that character is alive, not too shocked, and conscious, and of higher experience level
|
||||
// than the character being suppressed.
|
||||
if (pFriend != pSoldier && pFriend->bActive && pFriend->stats.bLife >= OKLIFE &&
|
||||
@@ -3963,9 +3955,9 @@ BOOLEAN WeAttack(INT8 bTeam)
|
||||
SOLDIERTYPE * pFriend;
|
||||
|
||||
// Run through each friendly.
|
||||
for (UINT16 iCounter = gTacticalStatus.Team[bTeam].bFirstID; iCounter <= gTacticalStatus.Team[bTeam].bLastID; iCounter++)
|
||||
for ( SoldierID iCounter = gTacticalStatus.Team[bTeam].bFirstID; iCounter <= gTacticalStatus.Team[bTeam].bLastID; ++iCounter )
|
||||
{
|
||||
pFriend = MercPtrs[iCounter];
|
||||
pFriend = iCounter;
|
||||
|
||||
if (pFriend &&
|
||||
pFriend->bActive &&
|
||||
@@ -3987,9 +3979,9 @@ UINT8 CountNearbyFriendsLastAttackHit( SOLDIERTYPE *pSoldier, INT32 sGridNo, UIN
|
||||
UINT8 ubFriendCount = 0;
|
||||
|
||||
// Run through each friendly.
|
||||
for ( UINT16 iCounter = gTacticalStatus.Team[ pSoldier->bTeam ].bFirstID ; iCounter <= gTacticalStatus.Team[ pSoldier->bTeam ].bLastID ; iCounter ++ )
|
||||
for ( SoldierID iCounter = gTacticalStatus.Team[ pSoldier->bTeam ].bFirstID ; iCounter <= gTacticalStatus.Team[ pSoldier->bTeam ].bLastID ; ++iCounter )
|
||||
{
|
||||
pFriend = MercPtrs[ iCounter ];
|
||||
pFriend = iCounter;
|
||||
|
||||
if (pFriend != pSoldier &&
|
||||
pFriend->bActive &&
|
||||
@@ -4027,9 +4019,9 @@ UINT8 CountFriendsFlankSameSpot(SOLDIERTYPE *pSoldier, INT32 sSpot)
|
||||
}
|
||||
|
||||
// Run through each friendly.
|
||||
for (UINT16 iCounter = gTacticalStatus.Team[pSoldier->bTeam].bFirstID; iCounter <= gTacticalStatus.Team[pSoldier->bTeam].bLastID; iCounter++)
|
||||
for ( SoldierID iCounter = gTacticalStatus.Team[pSoldier->bTeam].bFirstID; iCounter <= gTacticalStatus.Team[pSoldier->bTeam].bLastID; ++iCounter )
|
||||
{
|
||||
pFriend = MercPtrs[iCounter];
|
||||
pFriend = iCounter;
|
||||
|
||||
if (pFriend &&
|
||||
pFriend != pSoldier &&
|
||||
@@ -4109,9 +4101,9 @@ UINT8 CountFriendsBlack( SOLDIERTYPE *pSoldier, INT32 sClosestOpponent )
|
||||
}
|
||||
|
||||
// Run through each friendly.
|
||||
for ( UINT16 iCounter = gTacticalStatus.Team[ pSoldier->bTeam ].bFirstID ; iCounter <= gTacticalStatus.Team[ pSoldier->bTeam ].bLastID ; iCounter ++ )
|
||||
for ( SoldierID iCounter = gTacticalStatus.Team[ pSoldier->bTeam ].bFirstID ; iCounter <= gTacticalStatus.Team[ pSoldier->bTeam ].bLastID ; ++iCounter )
|
||||
{
|
||||
pFriend = MercPtrs[ iCounter ];
|
||||
pFriend = iCounter;
|
||||
|
||||
// Make sure that character is alive, not too shocked, and conscious
|
||||
if (pFriend != pSoldier &&
|
||||
@@ -4148,9 +4140,9 @@ UINT16 CountTeamUnderAttack(INT8 bTeam, INT32 sGridNo, INT16 sDistance)
|
||||
return 0;
|
||||
|
||||
// Run through each friendly.
|
||||
for (UINT16 iCounter = gTacticalStatus.Team[bTeam].bFirstID; iCounter <= gTacticalStatus.Team[bTeam].bLastID; iCounter++)
|
||||
for ( SoldierID iCounter = gTacticalStatus.Team[bTeam].bFirstID; iCounter <= gTacticalStatus.Team[bTeam].bLastID; ++iCounter )
|
||||
{
|
||||
pFriend = MercPtrs[iCounter];
|
||||
pFriend = iCounter;
|
||||
|
||||
if (pFriend &&
|
||||
pFriend->bActive &&
|
||||
@@ -4400,9 +4392,9 @@ UINT16 CountTeamSeeSoldier( INT8 bTeam, SOLDIERTYPE *pSoldier )
|
||||
if ( bTeam >= MAXTEAMS )
|
||||
return 0;
|
||||
|
||||
for ( UINT16 cnt = gTacticalStatus.Team[bTeam].bFirstID; cnt <= gTacticalStatus.Team[bTeam].bLastID; ++cnt )
|
||||
for ( SoldierID cnt = gTacticalStatus.Team[bTeam].bFirstID; cnt <= gTacticalStatus.Team[bTeam].bLastID; ++cnt )
|
||||
{
|
||||
pFriend = MercPtrs[cnt];
|
||||
pFriend = cnt;
|
||||
|
||||
if ( pFriend->bActive &&
|
||||
pFriend->bInSector &&
|
||||
@@ -4844,7 +4836,6 @@ UINT16 CountSeenEnemiesLastTurn( SOLDIERTYPE* pSoldier )
|
||||
CHECKF(pSoldier);
|
||||
|
||||
UINT8 ubTeamLoop;
|
||||
UINT16 ubIDLoop;
|
||||
UINT16 cnt = 0;
|
||||
|
||||
for( ubTeamLoop = 0; ubTeamLoop < MAXTEAMS; ubTeamLoop++ )
|
||||
@@ -4855,7 +4846,7 @@ UINT16 CountSeenEnemiesLastTurn( SOLDIERTYPE* pSoldier )
|
||||
if( gTacticalStatus.Team[ ubTeamLoop ].bSide != pSoldier->bSide )
|
||||
{
|
||||
// consider guys in this team, which isn't on our side
|
||||
for( ubIDLoop = gTacticalStatus.Team[ ubTeamLoop ].bFirstID; ubIDLoop <= gTacticalStatus.Team[ ubTeamLoop ].bLastID; ubIDLoop++ )
|
||||
for( SoldierID ubIDLoop = gTacticalStatus.Team[ ubTeamLoop ].bFirstID; ubIDLoop <= gTacticalStatus.Team[ ubTeamLoop ].bLastID; ++ubIDLoop )
|
||||
{
|
||||
// if this guy SAW an enemy recently...
|
||||
if( pSoldier->aiData.bOppList[ ubIDLoop ] >= SEEN_CURRENTLY &&
|
||||
|
||||
@@ -3903,9 +3903,9 @@ void CheckTossFriendSmoke(SOLDIERTYPE *pSoldier, ATTACKTYPE *pBestThrow)
|
||||
UINT8 ubDirection;
|
||||
|
||||
// Run through each friendly.
|
||||
for (UINT16 iCounter = gTacticalStatus.Team[pSoldier->bTeam].bFirstID; iCounter <= gTacticalStatus.Team[pSoldier->bTeam].bLastID; iCounter++)
|
||||
for ( SoldierID iCounter = gTacticalStatus.Team[pSoldier->bTeam].bFirstID; iCounter <= gTacticalStatus.Team[pSoldier->bTeam].bLastID; ++iCounter)
|
||||
{
|
||||
pFriend = MercPtrs[iCounter];
|
||||
pFriend = iCounter;
|
||||
|
||||
// check that friend is alive and needs cover
|
||||
if (pFriend &&
|
||||
|
||||
@@ -66,11 +66,11 @@ INT8 gbHuntCallPriority[NUM_CREATURE_CALLS] =
|
||||
void CreatureCall( SOLDIERTYPE * pCaller )
|
||||
{
|
||||
UINT8 ubCallerType=0;
|
||||
UINT16 ubReceiver;
|
||||
INT8 bFullPriority;
|
||||
INT8 bPriority;
|
||||
SOLDIERTYPE * pReceiver;
|
||||
UINT16 usDistToCaller;
|
||||
SoldierID ubReceiver;
|
||||
INT8 bFullPriority;
|
||||
INT8 bPriority;
|
||||
SOLDIERTYPE *pReceiver;
|
||||
UINT16 usDistToCaller;
|
||||
// communicate call to all creatures on map through ultrasonics
|
||||
|
||||
gTacticalStatus.Team[pCaller->bTeam].bAwareOfOpposition = TRUE;
|
||||
@@ -121,9 +121,9 @@ void CreatureCall( SOLDIERTYPE * pCaller )
|
||||
}
|
||||
|
||||
|
||||
for (ubReceiver = gTacticalStatus.Team[ pCaller->bTeam ].bFirstID; ubReceiver <= gTacticalStatus.Team[ pCaller->bTeam ].bLastID; ubReceiver++)
|
||||
for (ubReceiver = gTacticalStatus.Team[ pCaller->bTeam ].bFirstID; ubReceiver <= gTacticalStatus.Team[ pCaller->bTeam ].bLastID; ++ubReceiver )
|
||||
{
|
||||
pReceiver = MercPtrs[ubReceiver];
|
||||
pReceiver = ubReceiver;
|
||||
if (pReceiver->bActive && pReceiver->bInSector && (pReceiver->stats.bLife >= OKLIFE) && (pReceiver != pCaller) && (pReceiver->aiData.bAlertStatus < STATUS_BLACK))
|
||||
{
|
||||
if (pReceiver->ubBodyType != LARVAE_MONSTER && pReceiver->ubBodyType != INFANT_MONSTER && pReceiver->ubBodyType != QUEENMONSTER)
|
||||
|
||||
@@ -754,9 +754,9 @@ INT8 DecideActionGreen(SOLDIERTYPE *pSoldier)
|
||||
{
|
||||
// WANNE: This should fix the bug if any merc are still under PC control. This could happen after boxing in SAN MONA.
|
||||
SOLDIERTYPE *pTeamSoldier;
|
||||
for (UINT16 bLoop=gTacticalStatus.Team[gbPlayerNum].bFirstID; bLoop <= gTacticalStatus.Team[gbPlayerNum].bLastID; bLoop++)
|
||||
for ( SoldierID bLoop=gTacticalStatus.Team[gbPlayerNum].bFirstID; bLoop <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++bLoop )
|
||||
{
|
||||
pTeamSoldier=MercPtrs[bLoop];
|
||||
pTeamSoldier = bLoop;
|
||||
|
||||
if (pTeamSoldier->flags.uiStatusFlags & SOLDIER_PCUNDERAICONTROL)
|
||||
pTeamSoldier->flags.uiStatusFlags &= (~SOLDIER_PCUNDERAICONTROL);
|
||||
|
||||
@@ -21,7 +21,6 @@ void CallAvailableEnemiesTo( INT32 sGridNo )
|
||||
|
||||
void CallAvailableTeamEnemiesTo( INT32 sGridNo, INT8 bTeam )
|
||||
{
|
||||
INT32 iLoop2;
|
||||
SOLDIERTYPE * pSoldier;
|
||||
|
||||
// All enemy teams become aware of a very important "noise" coming from here!
|
||||
@@ -36,9 +35,10 @@ void CallAvailableTeamEnemiesTo( INT32 sGridNo, INT8 bTeam )
|
||||
gubPublicNoiseVolume[bTeam] = MAX_MISC_NOISE_DURATION;
|
||||
|
||||
// new situation for everyone;
|
||||
iLoop2 = gTacticalStatus.Team[ bTeam ].bFirstID;
|
||||
for ( pSoldier = MercPtrs[iLoop2]; iLoop2 <= gTacticalStatus.Team[ bTeam ].bLastID; iLoop2++, pSoldier++ )
|
||||
SoldierID iLoop2 = gTacticalStatus.Team[ bTeam ].bFirstID;
|
||||
for ( ; iLoop2 <= gTacticalStatus.Team[ bTeam ].bLastID; ++iLoop2 )
|
||||
{
|
||||
pSoldier = iLoop2;
|
||||
if (pSoldier->bActive && pSoldier->bInSector && pSoldier->stats.bLife >= OKLIFE)
|
||||
{
|
||||
SetNewSituation( pSoldier );
|
||||
@@ -54,7 +54,6 @@ void CallAvailableKingpinMenTo( INT32 sGridNo )
|
||||
// like call all enemies, but only affects civgroup KINGPIN guys with
|
||||
// NO PROFILE
|
||||
|
||||
INT32 iLoop2;
|
||||
SOLDIERTYPE * pSoldier;
|
||||
|
||||
// All enemy teams become aware of a very important "noise" coming from here!
|
||||
@@ -67,9 +66,10 @@ void CallAvailableKingpinMenTo( INT32 sGridNo )
|
||||
|
||||
// new situation for everyone...
|
||||
|
||||
iLoop2 = gTacticalStatus.Team[ CIV_TEAM ].bFirstID;
|
||||
for ( pSoldier = MercPtrs[iLoop2]; iLoop2 <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; iLoop2++, pSoldier++ )
|
||||
SoldierID iLoop2 = gTacticalStatus.Team[ CIV_TEAM ].bFirstID;
|
||||
for ( ; iLoop2 <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; ++iLoop2 )
|
||||
{
|
||||
pSoldier = iLoop2;
|
||||
if (pSoldier->bActive && pSoldier->bInSector && pSoldier->stats.bLife >= OKLIFE && pSoldier->ubCivilianGroup == KINGPIN_CIV_GROUP && pSoldier->ubProfile == NO_PROFILE)
|
||||
{
|
||||
SetNewSituation( pSoldier );
|
||||
|
||||
+14
-14
@@ -72,7 +72,6 @@ BOOLEAN FindAutobandageClimbPoint( INT32 sDesiredGridNo, BOOLEAN fClimbUp )
|
||||
|
||||
BOOLEAN FullPatientCheck( SOLDIERTYPE * pPatient )
|
||||
{
|
||||
UINT16 cnt;
|
||||
SOLDIERTYPE * pSoldier;
|
||||
|
||||
if ( CanCharacterAutoBandageTeammate( pPatient ) )
|
||||
@@ -90,9 +89,10 @@ BOOLEAN FullPatientCheck( SOLDIERTYPE * pPatient )
|
||||
else
|
||||
{
|
||||
// run though the list of chars on team
|
||||
cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
|
||||
for ( pSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; cnt++,pSoldier++)
|
||||
SoldierID cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
|
||||
for ( ; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++cnt )
|
||||
{
|
||||
pSoldier = cnt;
|
||||
// can this character help out?
|
||||
if ( CanCharacterAutoBandageTeammate( pSoldier ) == TRUE )
|
||||
{
|
||||
@@ -119,17 +119,16 @@ BOOLEAN FullPatientCheck( SOLDIERTYPE * pPatient )
|
||||
BOOLEAN CanAutoBandage( BOOLEAN fDoFullCheck )
|
||||
{
|
||||
// returns false if we should stop being in auto-bandage mode
|
||||
UINT16 cnt;
|
||||
UINT16 ubMedics = 0, ubPatients = 0;
|
||||
SOLDIERTYPE * pSoldier;
|
||||
static SoldierID ubIDForFullCheck = NOBODY;
|
||||
|
||||
// run though the list of chars on team
|
||||
cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
|
||||
for ( pSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; cnt++,pSoldier++)
|
||||
SoldierID cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
|
||||
for ( ; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++cnt)
|
||||
{
|
||||
// can this character help out?
|
||||
if( CanCharacterAutoBandageTeammate( pSoldier ) == TRUE )
|
||||
if( CanCharacterAutoBandageTeammate( cnt ) == TRUE )
|
||||
{
|
||||
// yep, up the number of medics in sector
|
||||
ubMedics++;
|
||||
@@ -143,8 +142,9 @@ BOOLEAN CanAutoBandage( BOOLEAN fDoFullCheck )
|
||||
}
|
||||
|
||||
cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
|
||||
for ( pSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; cnt++,pSoldier++)
|
||||
for ( ; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++cnt )
|
||||
{
|
||||
pSoldier = cnt;
|
||||
// can this character be helped out by a teammate?
|
||||
if ( CanCharacterBeAutoBandagedByTeammate( pSoldier ) == TRUE )
|
||||
{
|
||||
@@ -227,7 +227,6 @@ BOOLEAN CanCharacterBeAutoBandagedByTeammate( SOLDIERTYPE *pSoldier )
|
||||
|
||||
INT8 FindBestPatient( SOLDIERTYPE * pSoldier, BOOLEAN * pfDoClimb )
|
||||
{
|
||||
UINT16 cnt;
|
||||
UINT8 cnt2;
|
||||
INT32 bBestPriority = 0, sBestAdjGridNo = NOWHERE;
|
||||
INT32 sPatientGridNo = NOWHERE, sBestPatientGridNo = NOWHERE;
|
||||
@@ -244,9 +243,10 @@ INT8 FindBestPatient( SOLDIERTYPE * pSoldier, BOOLEAN * pfDoClimb )
|
||||
gubGlobalPathFlags = PATH_THROUGH_PEOPLE;
|
||||
|
||||
// search for someone who needs aid
|
||||
cnt = gTacticalStatus.Team[ OUR_TEAM ].bFirstID;
|
||||
for ( pPatient = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; cnt++,pPatient++)
|
||||
SoldierID cnt = gTacticalStatus.Team[ OUR_TEAM ].bFirstID;
|
||||
for ( ; cnt <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++cnt )
|
||||
{
|
||||
pPatient = cnt;
|
||||
if ( !(pPatient->bActive) || !(pPatient->bInSector) )
|
||||
{
|
||||
continue; // NEXT!!!
|
||||
@@ -475,13 +475,13 @@ INT8 DecideAutoBandage( SOLDIERTYPE * pSoldier )
|
||||
BOOLEAN DoctorIsPresent( SOLDIERTYPE * pPatient, BOOLEAN fOnDoctorAssignmentCheck )
|
||||
{
|
||||
SOLDIERTYPE * pMedic = NULL;
|
||||
UINT16 cnt;
|
||||
INT8 bSlot;
|
||||
BOOLEAN fDoctorHasBeenFound = FALSE;
|
||||
|
||||
cnt = gTacticalStatus.Team[ OUR_TEAM ].bFirstID;
|
||||
for ( pMedic = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; cnt++,pMedic++)
|
||||
SoldierID cnt = gTacticalStatus.Team[ OUR_TEAM ].bFirstID;
|
||||
for ( ; cnt <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++cnt )
|
||||
{
|
||||
pMedic = cnt;
|
||||
if ( !(pMedic->bActive) || !(pMedic->bInSector) || ( pMedic->flags.uiStatusFlags & SOLDIER_VEHICLE ) || (pMedic->bAssignment == VEHICLE ) )
|
||||
{
|
||||
// is nowhere around!
|
||||
|
||||
+6
-6
@@ -2913,7 +2913,6 @@ void TriggerClosestMercWhoCanSeeNPC( UINT8 ubNPC, NPCQuoteInfo *pQuotePtr )
|
||||
UINT16 ubNumMercs = 0;
|
||||
UINT16 ubChosenMerc;
|
||||
SOLDIERTYPE *pTeamSoldier, *pSoldier;
|
||||
INT32 cnt;
|
||||
|
||||
// First get pointer to NPC
|
||||
pSoldier = FindSoldierByProfileID( ubNPC, FALSE );
|
||||
@@ -2921,11 +2920,12 @@ void TriggerClosestMercWhoCanSeeNPC( UINT8 ubNPC, NPCQuoteInfo *pQuotePtr )
|
||||
// Loop through all our guys and randomly say one from someone in our sector
|
||||
|
||||
// set up soldier ptr as first element in mercptrs list
|
||||
cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
|
||||
SoldierID cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
|
||||
|
||||
// run through list
|
||||
for ( pTeamSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; cnt++,pTeamSoldier++ )
|
||||
for ( ; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++cnt )
|
||||
{
|
||||
pTeamSoldier = cnt;
|
||||
// Add guy if he's a candidate...
|
||||
if ( OK_INSECTOR_MERC( pTeamSoldier ) && pTeamSoldier->aiData.bOppList[ pSoldier->ubID ] == SEEN_CURRENTLY )
|
||||
{
|
||||
@@ -3649,7 +3649,6 @@ void TriggerFriendWithHostileQuote( UINT8 ubNPC )
|
||||
UINT16 ubNumMercsAvailable = 0, ubChosenMerc;
|
||||
SOLDIERTYPE * pTeamSoldier;
|
||||
SOLDIERTYPE * pSoldier;
|
||||
INT32 cnt;
|
||||
INT8 bTeam;
|
||||
|
||||
// First get pointer to NPC
|
||||
@@ -3663,11 +3662,12 @@ void TriggerFriendWithHostileQuote( UINT8 ubNPC )
|
||||
// Loop through all our guys and find one to yell
|
||||
|
||||
// set up soldier ptr as first element in mercptrs list
|
||||
cnt = gTacticalStatus.Team[ bTeam ].bFirstID;
|
||||
SoldierID cnt = gTacticalStatus.Team[ bTeam ].bFirstID;
|
||||
|
||||
// run through list
|
||||
for ( pTeamSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ bTeam ].bLastID; cnt++,pTeamSoldier++ )
|
||||
for ( ; cnt <= gTacticalStatus.Team[ bTeam ].bLastID; ++cnt )
|
||||
{
|
||||
pTeamSoldier = cnt;
|
||||
// Add guy if he's a candidate...
|
||||
if ( pTeamSoldier->bActive && pSoldier->bInSector && pTeamSoldier->stats.bLife >= OKLIFE && pTeamSoldier->bBreath >= OKBREATH && pTeamSoldier->aiData.bOppCnt > 0 && pTeamSoldier->ubProfile != NO_PROFILE )
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user