mirror of
https://github.com/1dot13/source.git
synced 2026-07-22 13:40:22 +02:00
Use SoldierID
This commit is contained in:
@@ -284,9 +284,10 @@ SOLDIERTYPE* GetUsedSoldierToIndividualMilitia( UINT32 aMilitiaId )
|
||||
{
|
||||
for ( UINT32 cnt = gTacticalStatus.Team[MILITIA_TEAM].bFirstID; cnt <= gTacticalStatus.Team[MILITIA_TEAM].bLastID; ++cnt )
|
||||
{
|
||||
if ( MercPtrs[cnt] && MercPtrs[cnt]->bActive && MercPtrs[cnt]->usIndividualMilitiaID == aMilitiaId )
|
||||
SOLDIERTYPE *pSoldier = MercPtrs[cnt];
|
||||
if ( pSoldier && pSoldier->bActive && pSoldier->usIndividualMilitiaID == aMilitiaId )
|
||||
{
|
||||
return MercPtrs[cnt];
|
||||
return pSoldier;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1716,16 +1716,17 @@ void GiveQuestRewardPoint( INT16 sQuestSectorX, INT16 sQuestsSectorY, INT8 bExpR
|
||||
|
||||
for ( UINT16 i = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; i <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; i++ )
|
||||
{
|
||||
if( MercPtrs[ i ]->bActive && MercPtrs[ i ]->stats.bLife >= CONSCIOUSNESS && !(MercPtrs[ i ]->flags.uiStatusFlags & SOLDIER_VEHICLE) && MercPtrs[ i ]->ubProfile != NO_PROFILE &&
|
||||
MercPtrs[ i ]->sSectorX == sQuestSectorX && MercPtrs[ i ]->sSectorY == sQuestsSectorY && !MercPtrs[ i ]->flags.fBetweenSectors && MercPtrs[ i ]->bTeam == gbPlayerNum &&
|
||||
MercPtrs[ i ]->bAssignment != IN_TRANSIT && MercPtrs[ i ]->bAssignment != ASSIGNMENT_DEAD && gMercProfiles[ MercPtrs[ i ]->ubProfile ].ubBodyType != 21 ) // != ROBOTNOWEAPON )
|
||||
SOLDIERTYPE *pSoldier = MercPtrs[i];
|
||||
if( pSoldier->bActive && pSoldier->stats.bLife >= CONSCIOUSNESS && !(pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE) && pSoldier->ubProfile != NO_PROFILE &&
|
||||
pSoldier->sSectorX == sQuestSectorX && pSoldier->sSectorY == sQuestsSectorY && !pSoldier->flags.fBetweenSectors && pSoldier->bTeam == gbPlayerNum &&
|
||||
pSoldier->bAssignment != IN_TRANSIT && pSoldier->bAssignment != ASSIGNMENT_DEAD && gMercProfiles[ pSoldier->ubProfile ].ubBodyType != 21 ) // != ROBOTNOWEAPON )
|
||||
{
|
||||
if ( MercPtrs[ i ]->ubProfile != bException )
|
||||
if ( pSoldier->ubProfile != bException )
|
||||
{
|
||||
gMercProfiles[ MercPtrs[ i ]->ubProfile ].records.ubQuestsHandled++;
|
||||
gMercProfiles[ pSoldier->ubProfile ].records.ubQuestsHandled++;
|
||||
|
||||
if ( bExpReward > 0 && gGameExternalOptions.usAwardSpecialExpForQuests > 0 )
|
||||
StatChange( MercPtrs[ i ], EXPERAMT, (bExpReward * gGameExternalOptions.usAwardSpecialExpForQuests), FALSE );
|
||||
StatChange( pSoldier, EXPERAMT, (bExpReward * gGameExternalOptions.usAwardSpecialExpForQuests), FALSE );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5458,13 +5458,14 @@ BOOLEAN TestForBloodcatAmbush( GROUP *pGroup )
|
||||
{
|
||||
for( UINT16 i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; i++ )
|
||||
{
|
||||
if( MercPtrs[ i ]->bActive && MercPtrs[ i ]->stats.bLife && !(MercPtrs[ i ]->flags.uiStatusFlags & SOLDIER_VEHICLE) )
|
||||
SOLDIERTYPE *pSoldier = MercPtrs[i];
|
||||
if( pSoldier->bActive && pSoldier->stats.bLife && !(pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE) )
|
||||
{
|
||||
if ( MercPtrs[ i ]->sSectorX == pGroup->ubSectorX && MercPtrs[ i ]->sSectorY == pGroup->ubSectorY && MercPtrs[ i ]->bAssignment != ASSIGNMENT_POW && MercPtrs[ i ]->bAssignment != ASSIGNMENT_MINIEVENT && MercPtrs[i]->bAssignment != ASSIGNMENT_REBELCOMMAND && MercPtrs[ i ]->stats.bLife >= OKLIFE )
|
||||
if ( pSoldier->sSectorX == pGroup->ubSectorX && pSoldier->sSectorY == pGroup->ubSectorY && pSoldier->bAssignment != ASSIGNMENT_POW && pSoldier->bAssignment != ASSIGNMENT_MINIEVENT && pSoldier->bAssignment != ASSIGNMENT_REBELCOMMAND && pSoldier->stats.bLife >= OKLIFE )
|
||||
{
|
||||
if( HAS_SKILL_TRAIT( MercPtrs[ i ], SCOUTING_NT ) && MercPtrs[ i ]->ubProfile != NO_PROFILE )
|
||||
if( HAS_SKILL_TRAIT( pSoldier, SCOUTING_NT ) && pSoldier->ubProfile != NO_PROFILE )
|
||||
{
|
||||
gMercProfiles[ MercPtrs[ i ]->ubProfile ].records.usAmbushesExperienced++;
|
||||
gMercProfiles[ pSoldier->ubProfile ].records.usAmbushesExperienced++;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -5943,13 +5944,14 @@ BOOLEAN ScoutIsPresentInSquad( INT16 ubSectorNumX, INT16 ubSectorNumY )
|
||||
// sevenfm: scout should not be sleeping, in vehicle or on assignment
|
||||
for( i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; i++ )
|
||||
{
|
||||
if( MercPtrs[ i ]->bActive &&
|
||||
MercPtrs[ i ]->stats.bLife >= OKLIFE &&
|
||||
MercPtrs[ i ]->sSectorX == ubSectorNumX &&
|
||||
MercPtrs[ i ]->sSectorY == ubSectorNumY &&
|
||||
MercPtrs[ i ]->bAssignment < ON_DUTY &&
|
||||
!MercPtrs[ i ]->flags.fMercAsleep &&
|
||||
HAS_SKILL_TRAIT( MercPtrs[ i ], SCOUTING_NT ) )
|
||||
SOLDIERTYPE *pSoldier = MercPtrs[i];
|
||||
if( pSoldier->bActive &&
|
||||
pSoldier->stats.bLife >= OKLIFE &&
|
||||
pSoldier->sSectorX == ubSectorNumX &&
|
||||
pSoldier->sSectorY == ubSectorNumY &&
|
||||
pSoldier->bAssignment < ON_DUTY &&
|
||||
!pSoldier->flags.fMercAsleep &&
|
||||
HAS_SKILL_TRAIT( pSoldier, SCOUTING_NT ) )
|
||||
{
|
||||
fScoutPresent = TRUE;
|
||||
}
|
||||
@@ -5982,11 +5984,12 @@ BOOLEAN ConcealedMercInSector( INT16 ubSectorNumX, INT16 ubSectorNumY, BOOLEAN a
|
||||
|
||||
for ( int i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++i )
|
||||
{
|
||||
if ( MercPtrs[i]->bActive && MercPtrs[i]->stats.bLife >= OKLIFE && SPY_LOCATION( MercPtrs[i]->bAssignment ) )
|
||||
SOLDIERTYPE *pSoldier = MercPtrs[i];
|
||||
if ( pSoldier->bActive && pSoldier->stats.bLife >= OKLIFE && SPY_LOCATION( pSoldier->bAssignment ) )
|
||||
{
|
||||
if ( MercPtrs[i]->sSectorX == ubSectorNumX && MercPtrs[i]->sSectorY == ubSectorNumY && MercPtrs[i]->bSectorZ == 10 )
|
||||
if ( pSoldier->sSectorX == ubSectorNumX && pSoldier->sSectorY == ubSectorNumY && pSoldier->bSectorZ == 10 )
|
||||
{
|
||||
if ( !aScoutsOnly || HAS_SKILL_TRAIT( MercPtrs[i], SCOUTING_NT ) )
|
||||
if ( !aScoutsOnly || HAS_SKILL_TRAIT( pSoldier, SCOUTING_NT ) )
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@@ -224,27 +224,29 @@ void FillMapColoursForTransportGroups(INT32(&colorMap)[MAXIMUM_VALID_Y_COORDINAT
|
||||
std::map<UINT8, MonitoredSectorState> monitoredTowns;
|
||||
for( INT16 i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; i++ )
|
||||
{
|
||||
if( MercPtrs[ i ]->bActive &&
|
||||
MercPtrs[ i ]->stats.bLife >= OKLIFE &&
|
||||
(MercPtrs[ i ]->bAssignment < ON_DUTY || MercPtrs[ i ]->bAssignment == GATHERINTEL) &&
|
||||
!MercPtrs[ i ]->flags.fMercAsleep)
|
||||
SOLDIERTYPE *pSoldier = MercPtrs[i];
|
||||
|
||||
if( pSoldier->bActive &&
|
||||
pSoldier->stats.bLife >= OKLIFE &&
|
||||
(pSoldier->bAssignment < ON_DUTY || pSoldier->bAssignment == GATHERINTEL) &&
|
||||
!pSoldier->flags.fMercAsleep)
|
||||
{
|
||||
if (gGameOptions.fNewTraitSystem)
|
||||
{
|
||||
if (HAS_SKILL_TRAIT(MercPtrs[i], SCOUTING_NT))
|
||||
if (HAS_SKILL_TRAIT(pSoldier, SCOUTING_NT))
|
||||
{
|
||||
detectionMap[std::pair<INT16,INT16>(MercPtrs[i]->sSectorX, MercPtrs[i]->sSectorY)] = DETECTION_RANGE_SCOUT;
|
||||
detectionMap[std::pair<INT16,INT16>(pSoldier->sSectorX, pSoldier->sSectorY)] = DETECTION_RANGE_SCOUT;
|
||||
}
|
||||
else if (HAS_SKILL_TRAIT(MercPtrs[i], RADIO_OPERATOR_NT) && MercPtrs[i]->CanUseRadio(FALSE))
|
||||
else if (HAS_SKILL_TRAIT(pSoldier, RADIO_OPERATOR_NT) && pSoldier->CanUseRadio(FALSE))
|
||||
{
|
||||
detectionMap[std::pair<INT16,INT16>(MercPtrs[i]->sSectorX, MercPtrs[i]->sSectorY)] = DETECTION_RANGE_RADIO;
|
||||
detectionMap[std::pair<INT16,INT16>(pSoldier->sSectorX, pSoldier->sSectorY)] = DETECTION_RANGE_RADIO;
|
||||
}
|
||||
else if (HAS_SKILL_TRAIT(MercPtrs[i], COVERT_NT))
|
||||
else if (HAS_SKILL_TRAIT(pSoldier, COVERT_NT))
|
||||
{
|
||||
if (MercPtrs[i]->bAssignment == GATHERINTEL)
|
||||
if (pSoldier->bAssignment == GATHERINTEL)
|
||||
{
|
||||
detectionMap[std::pair<INT16,INT16>(MercPtrs[i]->sSectorX, MercPtrs[i]->sSectorY)] = DETECTION_RANGE_COVERT;
|
||||
monitoredTowns[GetTownIdForSector(MercPtrs[i]->sSectorX, MercPtrs[i]->sSectorY)] = MonitoredSectorState::Monitored;
|
||||
detectionMap[std::pair<INT16,INT16>(pSoldier->sSectorX, pSoldier->sSectorY)] = DETECTION_RANGE_COVERT;
|
||||
monitoredTowns[GetTownIdForSector(pSoldier->sSectorX, pSoldier->sSectorY)] = MonitoredSectorState::Monitored;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -481,11 +483,12 @@ void UpdateTransportGroupInventory()
|
||||
std::set<UINT8> playerCalibres;
|
||||
for (INT16 i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; i++)
|
||||
{
|
||||
if (MercPtrs[i]->bActive && !(MercPtrs[i]->flags.uiStatusFlags & SOLDIER_VEHICLE))
|
||||
SOLDIERTYPE *pSoldier = MercPtrs[i];
|
||||
if (pSoldier->bActive && !(pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE))
|
||||
{
|
||||
for (int j = 0 ; j < MercPtrs[i]->inv.size(); ++j)
|
||||
for (int j = 0 ; j < pSoldier->inv.size(); ++j)
|
||||
{
|
||||
OBJECTTYPE& obj = MercPtrs[i]->inv[j];
|
||||
OBJECTTYPE& obj = pSoldier->inv[j];
|
||||
if (obj.exists()
|
||||
&& Item[obj.usItem].usItemClass == IC_GUN)
|
||||
{
|
||||
|
||||
+41
-32
@@ -184,8 +184,8 @@ BOOLEAN fUsingEdgePointsForStrategicEntry = FALSE;
|
||||
BOOLEAN gfInvalidTraversal = FALSE;
|
||||
BOOLEAN gfLoneEPCAttemptingTraversal = FALSE;
|
||||
BOOLEAN gfRobotWithoutControllerAttemptingTraversal = FALSE;
|
||||
BOOLEAN gubLoneMercAttemptingToAbandonEPCs = 0;
|
||||
INT8 gbPotentiallyAbandonedEPCSlotID = -1;
|
||||
BOOLEAN gubLoneMercAttemptingToAbandonEPCs = 0;
|
||||
SoldierID gbPotentiallyAbandonedEPCSlotID = NOBODY;
|
||||
|
||||
INT8 gbGreenToElitePromotions = 0;
|
||||
INT8 gbGreenToRegPromotions = 0;
|
||||
@@ -2140,10 +2140,12 @@ BOOLEAN SetCurrentWorldSector( INT16 sMapX, INT16 sMapY, INT8 bMapZ )
|
||||
// GridNo = NOWHERE, which causes this assertion to fail
|
||||
//CHRISL: There's also an issue with vehicles. Soldiers in any vehicle are considered to be in sGridNo = NOWHERE
|
||||
// This will result in an assertion error, so let's skip the assertion if the merc is assigned to a vehicle
|
||||
if (!(MercPtrs[i]->flags.uiStatusFlags & SOLDIER_DEAD) && MercPtrs[i]->bAssignment != VEHICLE && !SPY_LOCATION(MercPtrs[i]->bAssignment) && MercPtrs[i]->bAssignment != ASSIGNMENT_POW)
|
||||
SOLDIERTYPE *pSoldier = MercPtrs[i];
|
||||
|
||||
if (!(pSoldier->flags.uiStatusFlags & SOLDIER_DEAD) && pSoldier->bAssignment != VEHICLE && !SPY_LOCATION(pSoldier->bAssignment) && pSoldier->bAssignment != ASSIGNMENT_POW)
|
||||
{
|
||||
//Assert( !MercPtrs[i]->bActive || !MercPtrs[i]->bInSector || MercPtrs[i]->sGridNo != NOWHERE || MercPtrs[i]->bVehicleID == iHelicopterVehicleId );
|
||||
Assert( !MercPtrs[i]->bActive || !MercPtrs[i]->bInSector || !TileIsOutOfBounds( MercPtrs[i]->sGridNo ) || MercPtrs[i]->bVehicleID == iHelicopterVehicleId );
|
||||
//Assert( !pSoldier->bActive || !pSoldier->bInSector || pSoldier->sGridNo != NOWHERE || pSoldier->bVehicleID == iHelicopterVehicleId );
|
||||
Assert( !pSoldier->bActive || !pSoldier->bInSector || !TileIsOutOfBounds( pSoldier->sGridNo ) || pSoldier->bVehicleID == iHelicopterVehicleId );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2190,10 +2192,11 @@ BOOLEAN SetCurrentWorldSector( INT16 sMapX, INT16 sMapY, INT8 bMapZ )
|
||||
// GridNo = NOWHERE, which causes this assertion to fail
|
||||
//CHRISL: There's also an issue with vehicles. Soldiers in any vehicle are considered to be in sGridNo = NOWHERE
|
||||
// This will result in an assertion error, so let's skip the assertion if the merc is assigned to a vehicle
|
||||
if (!(MercPtrs[i]->flags.uiStatusFlags & SOLDIER_DEAD) && MercPtrs[i]->bAssignment != VEHICLE && MercPtrs[i]->bAssignment != ASSIGNMENT_POW)
|
||||
SOLDIERTYPE *pSoldier = MercPtrs[i];
|
||||
if (!(pSoldier->flags.uiStatusFlags & SOLDIER_DEAD) && pSoldier->bAssignment != VEHICLE && pSoldier->bAssignment != ASSIGNMENT_POW)
|
||||
{
|
||||
//Assert( !MercPtrs[i]->bActive || !MercPtrs[i]->bInSector || MercPtrs[i]->sGridNo != NOWHERE || MercPtrs[i]->bVehicleID == iHelicopterVehicleId );
|
||||
Assert( !MercPtrs[i]->bActive || !MercPtrs[i]->bInSector || !TileIsOutOfBounds( MercPtrs[i]->sGridNo ) || MercPtrs[i]->bVehicleID == iHelicopterVehicleId );
|
||||
//Assert( !pSoldier->bActive || !pSoldier->bInSector || pSoldier->sGridNo != NOWHERE || pSoldier->bVehicleID == iHelicopterVehicleId );
|
||||
Assert( !pSoldier->bActive || !pSoldier->bInSector || !TileIsOutOfBounds( pSoldier->sGridNo ) || pSoldier->bVehicleID == iHelicopterVehicleId );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2967,9 +2970,10 @@ BOOLEAN EnterSector( INT16 sSectorX, INT16 sSectorY, INT8 bSectorZ )
|
||||
{
|
||||
for ( i = gTacticalStatus.Team[CIV_TEAM].bFirstID; i <= gTacticalStatus.Team[CIV_TEAM].bLastID; i++ )
|
||||
{
|
||||
if ( MercPtrs[i]->bActive && MercPtrs[i]->bInSector )
|
||||
SOLDIERTYPE *pSoldier = MercPtrs[i];
|
||||
if ( pSoldier->bActive && pSoldier->bInSector )
|
||||
{
|
||||
SetupProfileInsertionDataForSoldier( MercPtrs[i] );
|
||||
SetupProfileInsertionDataForSoldier( pSoldier );
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4869,7 +4873,7 @@ BOOLEAN OKForSectorExit( INT8 bExitDirection, INT32 usAdditionalData, UINT32 *pu
|
||||
gfInvalidTraversal = FALSE;
|
||||
gfLoneEPCAttemptingTraversal = FALSE;
|
||||
gubLoneMercAttemptingToAbandonEPCs = 0;
|
||||
gbPotentiallyAbandonedEPCSlotID = -1;
|
||||
gbPotentiallyAbandonedEPCSlotID = NOBODY;
|
||||
|
||||
// Look through all mercs and check if they are within range of east end....
|
||||
cnt = gTacticalStatus.Team[gbPlayerNum].bFirstID;
|
||||
@@ -4894,7 +4898,7 @@ BOOLEAN OKForSectorExit( INT8 bExitDirection, INT32 usAdditionalData, UINT32 *pu
|
||||
{
|
||||
ubNumEPCs++;
|
||||
//Also record the EPC's slot ID incase we later build a string using the EPC's name.
|
||||
gbPotentiallyAbandonedEPCSlotID = (INT8)cnt;
|
||||
gbPotentiallyAbandonedEPCSlotID = cnt;
|
||||
if ( AM_A_ROBOT( pSoldier ) && !pSoldier->CanRobotBeControlled( ) )
|
||||
{
|
||||
gfRobotWithoutControllerAttemptingTraversal = TRUE;
|
||||
@@ -6491,9 +6495,10 @@ BOOLEAN HandleDefiniteUnloadingOfWorld( UINT8 ubUnloadCode )
|
||||
//@@@Evaluate
|
||||
for ( i = gTacticalStatus.Team[CIV_TEAM].bFirstID; i <= gTacticalStatus.Team[CIV_TEAM].bLastID; i++ )
|
||||
{
|
||||
if ( MercPtrs[i]->bActive && MercPtrs[i]->bInSector )
|
||||
SOLDIERTYPE *pSoldier = MercPtrs[i];
|
||||
if ( pSoldier->bActive && pSoldier->bInSector )
|
||||
{
|
||||
SetupProfileInsertionDataForSoldier( MercPtrs[i] );
|
||||
SetupProfileInsertionDataForSoldier( pSoldier );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6511,19 +6516,21 @@ BOOLEAN HandlePotentialBringUpAutoresolveToFinishBattle( int pSectorX, int pSect
|
||||
//co-exist in the sector, then make them fight for control of the sector via autoresolve.
|
||||
for ( int i = gTacticalStatus.Team[ENEMY_TEAM].bFirstID; i <= gTacticalStatus.Team[CREATURE_TEAM].bLastID; i++ )
|
||||
{
|
||||
if ( MercPtrs[i]->bActive && MercPtrs[i]->stats.bLife )
|
||||
SOLDIERTYPE *pEnemy = MercPtrs[i];
|
||||
if ( pEnemy->bActive && pEnemy->stats.bLife )
|
||||
{
|
||||
if ( MercPtrs[i]->sSectorX == pSectorX &&
|
||||
MercPtrs[i]->sSectorY == pSectorY &&
|
||||
MercPtrs[i]->bSectorZ == pSectorZ )
|
||||
if ( pEnemy->sSectorX == pSectorX &&
|
||||
pEnemy->sSectorY == pSectorY &&
|
||||
pEnemy->bSectorZ == pSectorZ )
|
||||
{ //We have enemies, now look for militia!
|
||||
for ( i = gTacticalStatus.Team[MILITIA_TEAM].bFirstID; i <= gTacticalStatus.Team[MILITIA_TEAM].bLastID; i++ )
|
||||
{
|
||||
if ( MercPtrs[i]->bActive && MercPtrs[i]->stats.bLife && MercPtrs[i]->bSide == OUR_TEAM )
|
||||
SOLDIERTYPE *pMilitia = MercPtrs[i];
|
||||
if ( pMilitia->bActive && pMilitia->stats.bLife && pMilitia->bSide == OUR_TEAM )
|
||||
{
|
||||
if ( MercPtrs[i]->sSectorX == pSectorX &&
|
||||
MercPtrs[i]->sSectorY == pSectorY &&
|
||||
MercPtrs[i]->bSectorZ == pSectorZ )
|
||||
if ( pMilitia->sSectorX == pSectorX &&
|
||||
pMilitia->sSectorY == pSectorY &&
|
||||
pMilitia->bSectorZ == pSectorZ )
|
||||
{ //We have militia and enemies and no mercs! Let's finish this battle in autoresolve.
|
||||
gfEnteringMapScreen = TRUE;
|
||||
gfEnteringMapScreenToEnterPreBattleInterface = TRUE;
|
||||
@@ -6587,14 +6594,15 @@ BOOLEAN CheckAndHandleUnloadingOfCurrentWorld( )
|
||||
{
|
||||
for ( i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; i++ )
|
||||
{ //If we have a live and valid soldier
|
||||
if ( MercPtrs[i]->bActive && MercPtrs[i]->stats.bLife && !MercPtrs[i]->flags.fBetweenSectors && !(MercPtrs[i]->flags.uiStatusFlags & SOLDIER_VEHICLE) && !AM_A_ROBOT( MercPtrs[i] ) && !AM_AN_EPC( MercPtrs[i] ) )
|
||||
SOLDIERTYPE *pSoldier = MercPtrs[i];
|
||||
if ( pSoldier->bActive && pSoldier->stats.bLife && !pSoldier->flags.fBetweenSectors && !(pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE) && !AM_A_ROBOT( pSoldier ) && !AM_AN_EPC( pSoldier ) )
|
||||
{
|
||||
if ( MercPtrs[i]->sSectorX == gWorldSectorX &&
|
||||
MercPtrs[i]->sSectorY == gWorldSectorY &&
|
||||
MercPtrs[i]->bSectorZ == gbWorldSectorZ )
|
||||
if ( pSoldier->sSectorX == gWorldSectorX &&
|
||||
pSoldier->sSectorY == gWorldSectorY &&
|
||||
pSoldier->bSectorZ == gbWorldSectorZ )
|
||||
{
|
||||
MercPtrs[i]->RemoveSoldierFromGridNo( );
|
||||
InitSoldierOppList( MercPtrs[i] );
|
||||
pSoldier->RemoveSoldierFromGridNo( );
|
||||
InitSoldierOppList( pSoldier );
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -6604,11 +6612,12 @@ BOOLEAN CheckAndHandleUnloadingOfCurrentWorld( )
|
||||
{ //Check and see if we have any live mercs in the sector.
|
||||
for ( i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; i++ )
|
||||
{ //If we have a live and valid soldier
|
||||
if ( MercPtrs[i]->bActive && MercPtrs[i]->stats.bLife && !MercPtrs[i]->flags.fBetweenSectors && !(MercPtrs[i]->flags.uiStatusFlags & SOLDIER_VEHICLE) && !AM_A_ROBOT( MercPtrs[i] ) && !AM_AN_EPC( MercPtrs[i] ) )
|
||||
SOLDIERTYPE *pSoldier = MercPtrs[i];
|
||||
if ( pSoldier->bActive && pSoldier->stats.bLife && !pSoldier->flags.fBetweenSectors && !(pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE) && !AM_A_ROBOT( pSoldier ) && !AM_AN_EPC( pSoldier ) )
|
||||
{
|
||||
if ( MercPtrs[i]->sSectorX == gWorldSectorX &&
|
||||
MercPtrs[i]->sSectorY == gWorldSectorY &&
|
||||
MercPtrs[i]->bSectorZ == gbWorldSectorZ )
|
||||
if ( pSoldier->sSectorX == gWorldSectorX &&
|
||||
pSoldier->sSectorY == gWorldSectorY &&
|
||||
pSoldier->bSectorZ == gbWorldSectorZ )
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@@ -210,11 +210,11 @@ BOOLEAN EscapeDirectionIsValid( INT8 * pbDirection );
|
||||
bool IsEscapeDirectionValid(WorldDirections pbDirection);
|
||||
//Used for determining the type of error message that comes up when you can't traverse to
|
||||
//an adjacent sector. THESE VALUES DO NOT NEED TO BE SAVED!
|
||||
extern BOOLEAN gfInvalidTraversal;
|
||||
extern BOOLEAN gfLoneEPCAttemptingTraversal;
|
||||
extern BOOLEAN gfRobotWithoutControllerAttemptingTraversal;
|
||||
extern UINT8 gubLoneMercAttemptingToAbandonEPCs;
|
||||
extern INT8 gbPotentiallyAbandonedEPCSlotID;
|
||||
extern BOOLEAN gfInvalidTraversal;
|
||||
extern BOOLEAN gfLoneEPCAttemptingTraversal;
|
||||
extern BOOLEAN gfRobotWithoutControllerAttemptingTraversal;
|
||||
extern UINT8 gubLoneMercAttemptingToAbandonEPCs;
|
||||
extern SoldierID gbPotentiallyAbandonedEPCSlotID;
|
||||
|
||||
extern INT8 gbGreenToElitePromotions;
|
||||
extern INT8 gbGreenToRegPromotions;
|
||||
|
||||
Reference in New Issue
Block a user