diff --git a/Strategic/MilitiaIndividual.cpp b/Strategic/MilitiaIndividual.cpp index 28cd25af..d40759af 100644 --- a/Strategic/MilitiaIndividual.cpp +++ b/Strategic/MilitiaIndividual.cpp @@ -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; } } diff --git a/Strategic/Quests.cpp b/Strategic/Quests.cpp index 51e5b27a..c125bda6 100644 --- a/Strategic/Quests.cpp +++ b/Strategic/Quests.cpp @@ -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 ); } } } diff --git a/Strategic/Strategic Movement.cpp b/Strategic/Strategic Movement.cpp index 426a8832..8ebeaf87 100644 --- a/Strategic/Strategic Movement.cpp +++ b/Strategic/Strategic Movement.cpp @@ -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; } diff --git a/Strategic/Strategic Transport Groups.cpp b/Strategic/Strategic Transport Groups.cpp index ccd981d0..5cc85f3d 100644 --- a/Strategic/Strategic Transport Groups.cpp +++ b/Strategic/Strategic Transport Groups.cpp @@ -224,27 +224,29 @@ void FillMapColoursForTransportGroups(INT32(&colorMap)[MAXIMUM_VALID_Y_COORDINAT std::map 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(MercPtrs[i]->sSectorX, MercPtrs[i]->sSectorY)] = DETECTION_RANGE_SCOUT; + detectionMap[std::pair(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(MercPtrs[i]->sSectorX, MercPtrs[i]->sSectorY)] = DETECTION_RANGE_RADIO; + detectionMap[std::pair(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(MercPtrs[i]->sSectorX, MercPtrs[i]->sSectorY)] = DETECTION_RANGE_COVERT; - monitoredTowns[GetTownIdForSector(MercPtrs[i]->sSectorX, MercPtrs[i]->sSectorY)] = MonitoredSectorState::Monitored; + detectionMap[std::pair(pSoldier->sSectorX, pSoldier->sSectorY)] = DETECTION_RANGE_COVERT; + monitoredTowns[GetTownIdForSector(pSoldier->sSectorX, pSoldier->sSectorY)] = MonitoredSectorState::Monitored; } } } @@ -481,11 +483,12 @@ void UpdateTransportGroupInventory() std::set 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) { diff --git a/Strategic/strategicmap.cpp b/Strategic/strategicmap.cpp index cca5a3ee..b5908ecf 100644 --- a/Strategic/strategicmap.cpp +++ b/Strategic/strategicmap.cpp @@ -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; } diff --git a/Strategic/strategicmap.h b/Strategic/strategicmap.h index e43191c5..1a74e8fc 100644 --- a/Strategic/strategicmap.h +++ b/Strategic/strategicmap.h @@ -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; diff --git a/Tactical/Interface Dialogue.cpp b/Tactical/Interface Dialogue.cpp index 6bb0bf63..a47e6402 100644 --- a/Tactical/Interface Dialogue.cpp +++ b/Tactical/Interface Dialogue.cpp @@ -3224,7 +3224,7 @@ void HandleNPCDoAction( UINT8 ubTargetNPC, UINT16 usActionCode, UINT8 ubQuoteNum if ( pSoldier ) { INT32 sNearestPC; - UINT16 ubID; + SoldierID ubID; INT8 bMoneySlot; INT8 bEmptySlot; @@ -3235,7 +3235,7 @@ void HandleNPCDoAction( UINT8 ubTargetNPC, UINT16 usActionCode, UINT8 ubQuoteNum ubID = WhoIsThere2( sNearestPC, 0 ); if (ubID != NOBODY) { - pSoldier2 = MercPtrs[ ubID ]; + pSoldier2 = ubID; } } @@ -3357,7 +3357,7 @@ void HandleNPCDoAction( UINT8 ubTargetNPC, UINT16 usActionCode, UINT8 ubQuoteNum pSoldier = FindSoldierByProfileID( ubTargetNPC, FALSE ); if (pSoldier) { - UINT16 ubTargetID; + SoldierID ubTargetID; SOLDIERTYPE *pTarget; // Target a different merc.... @@ -3384,7 +3384,7 @@ void HandleNPCDoAction( UINT8 ubTargetNPC, UINT16 usActionCode, UINT8 ubQuoteNum } else { - pTarget = MercPtrs[ ubTargetID ]; + pTarget = ubTargetID; } // Use a different approach.... @@ -3477,7 +3477,7 @@ void HandleNPCDoAction( UINT8 ubTargetNPC, UINT16 usActionCode, UINT8 ubQuoteNum pSoldier = FindSoldierByProfileID( ubTargetNPC, FALSE ); if (pSoldier) { - UINT16 ubTargetID; + SoldierID ubTargetID; SOLDIERTYPE *pTarget; INT32 cnt; BOOLEAN fGoodTarget = FALSE; @@ -3491,7 +3491,7 @@ void HandleNPCDoAction( UINT8 ubTargetNPC, UINT16 usActionCode, UINT8 ubQuoteNum } else { - pTarget = MercPtrs[ ubTargetID ]; + pTarget = ubTargetID; } pSoldier->aiData.uiPendingActionData4 = APPROACH_DONE_PUNCH_1; @@ -3901,7 +3901,7 @@ void HandleNPCDoAction( UINT8 ubTargetNPC, UINT16 usActionCode, UINT8 ubQuoteNum if ( !gfInTalkPanel ) { INT32 sNearestPC; - UINT16 ubID; + SoldierID ubID; pSoldier = FindSoldierByProfileID( ubTargetNPC, FALSE ); if ( pSoldier ) @@ -3914,7 +3914,7 @@ void HandleNPCDoAction( UINT8 ubTargetNPC, UINT16 usActionCode, UINT8 ubQuoteNum ubID = WhoIsThere2( sNearestPC, 0 ); if (ubID != NOBODY) { - pSoldier2 = MercPtrs[ ubID ]; + pSoldier2 = ubID; } } diff --git a/Tactical/Interface Items.cpp b/Tactical/Interface Items.cpp index b3f56f6a..ed3ee63b 100644 --- a/Tactical/Interface Items.cpp +++ b/Tactical/Interface Items.cpp @@ -9185,10 +9185,10 @@ BOOLEAN HandleItemPointerClick( INT32 usMapPos ) usItem = gpItemPointer->usItem; // If the target is a robot, - if ( MercPtrs[ ubSoldierID ]->flags.uiStatusFlags & SOLDIER_ROBOT ) + if ( ubSoldierID->flags.uiStatusFlags & SOLDIER_ROBOT ) { // Charge APs to reload robot! - sAPCost = GetAPsToReloadRobot( gpItemPointerSoldier, MercPtrs[ ubSoldierID ] ); + sAPCost = GetAPsToReloadRobot( gpItemPointerSoldier, ubSoldierID ); } else { @@ -9208,12 +9208,12 @@ BOOLEAN HandleItemPointerClick( INT32 usMapPos ) // } /* //if the user just clicked on an arms dealer - if( IsMercADealer( MercPtrs[ ubSoldierID ]->ubProfile ) ) + if( IsMercADealer( ubSoldierID->ubProfile ) ) { if ( EnoughPoints( gpItemPointerSoldier, sAPCost, 0, TRUE ) ) { //Enter the shopkeeper interface - EnterShopKeeperInterfaceScreen( MercPtrs[ ubSoldierID ]->ubProfile ); + EnterShopKeeperInterfaceScreen( ubSoldierID->ubProfile ); EndItemPointer( ); } @@ -9225,10 +9225,10 @@ BOOLEAN HandleItemPointerClick( INT32 usMapPos ) if ( EnoughPoints( gpItemPointerSoldier, sAPCost, 0, TRUE ) ) { // If we are a robot, check if this is proper item to reload! - if ( MercPtrs[ ubSoldierID ]->flags.uiStatusFlags & SOLDIER_ROBOT ) + if ( ubSoldierID->flags.uiStatusFlags & SOLDIER_ROBOT ) { // Check if we can reload robot.... - if ( IsValidAmmoToReloadRobot( MercPtrs[ ubSoldierID ], &gTempObject ) ) + if ( IsValidAmmoToReloadRobot( ubSoldierID, &gTempObject ) ) { INT32 sActionGridNo; UINT8 ubDirection; @@ -9236,7 +9236,7 @@ BOOLEAN HandleItemPointerClick( INT32 usMapPos ) // Walk up to him and reload! // See if we can get there to stab - sActionGridNo = FindAdjacentGridEx( gpItemPointerSoldier, MercPtrs[ ubSoldierID ]->sGridNo, &ubDirection, &sAdjustedGridNo, TRUE, FALSE ); + sActionGridNo = FindAdjacentGridEx( gpItemPointerSoldier, ubSoldierID->sGridNo, &ubDirection, &sAdjustedGridNo, TRUE, FALSE ); if ( sActionGridNo != -1 && gbItemPointerSrcSlot != NO_SLOT ) { @@ -9279,16 +9279,16 @@ BOOLEAN HandleItemPointerClick( INT32 usMapPos ) //if (gbItemPointerSrcSlot != NO_SLOT ) { // Give guy this item..... - SoldierGiveItem( gpItemPointerSoldier, MercPtrs[ ubSoldierID ], &gTempObject, gbItemPointerSrcSlot ); + SoldierGiveItem( gpItemPointerSoldier, ubSoldierID, &gTempObject, gbItemPointerSrcSlot ); gfDontChargeAPsToPickup = FALSE; EndItemPointer( ); // If we are giving it to somebody not on our team.... - if ( gMercProfiles[MercPtrs[ubSoldierID]->ubProfile].Type == PROFILETYPE_AIM || - gMercProfiles[MercPtrs[ubSoldierID]->ubProfile].Type == PROFILETYPE_MERC || - gMercProfiles[MercPtrs[ubSoldierID]->ubProfile].Type == PROFILETYPE_IMP - || RPC_RECRUITED( MercPtrs[ubSoldierID] ) ) + if ( gMercProfiles[ubSoldierID->ubProfile].Type == PROFILETYPE_AIM || + gMercProfiles[ubSoldierID->ubProfile].Type == PROFILETYPE_MERC || + gMercProfiles[ubSoldierID->ubProfile].Type == PROFILETYPE_IMP + || RPC_RECRUITED( ubSoldierID ) ) { } @@ -10533,7 +10533,7 @@ void ItemPopupRegionCallback( MOUSE_REGION * pRegion, INT32 iReason ) { UINT32 uiItemPos; UINT32 iItemCap; - INT32 ubID; + SoldierID ubID; CHAR16 sString[ 128 ]; uiItemPos = MSYS_GetRegionUserData( pRegion, 0 ); @@ -10625,11 +10625,11 @@ void ItemPopupRegionCallback( MOUSE_REGION * pRegion, INT32 iReason ) fTeamPanelDirty=TRUE; // remember which gridno the object came from - sObjectSourceGridNo = MercPtrs[ubID]->sGridNo; + sObjectSourceGridNo = ubID->sGridNo; // and who owned it last - gpItemPointerSoldier = MercPtrs[ubID]; + gpItemPointerSoldier = ubID; - ReevaluateItemHatches( MercPtrs[ubID], FALSE ); + ReevaluateItemHatches( ubID, FALSE ); } //Dirty interface diff --git a/Tactical/Interface Panels.cpp b/Tactical/Interface Panels.cpp index ae0ed4cc..8f039637 100644 --- a/Tactical/Interface Panels.cpp +++ b/Tactical/Interface Panels.cpp @@ -4513,17 +4513,18 @@ void BtnDropPackCallback(GUI_BUTTON *btn,INT32 reason) INT8 bAssignment = gpSMCurrentMerc->bAssignment; for( int x = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; x <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; x++ ) { + SOLDIERTYPE *pSoldier = MercPtrs[x]; /* Is DropPackFlag currently false and is there something in the backpack pocket? If so, we haven't dropped a pack yet and apparently want to*/ - if(MercPtrs[x]->bAssignment == bAssignment && MercPtrs[x]->inv[BPACKPOCKPOS].exists() == true && !MercPtrs[x]->flags.DropPackFlag) + if(pSoldier->bAssignment == bAssignment && pSoldier->inv[BPACKPOCKPOS].exists() == true && !pSoldier->flags.DropPackFlag) { - ChangeDropPackStatus(MercPtrs[x], TRUE); + ChangeDropPackStatus(pSoldier, TRUE); } /* Is DropPackFlag currently true, is nothing in the backpack pocket and have we dropped a pack? If so, we must want to retreive a backpack we previously dropped.*/ - else if(MercPtrs[x]->bAssignment == bAssignment && MercPtrs[x]->inv[BPACKPOCKPOS].exists() == false && MercPtrs[x]->flags.DropPackFlag) + else if(pSoldier->bAssignment == bAssignment && pSoldier->inv[BPACKPOCKPOS].exists() == false && pSoldier->flags.DropPackFlag) { - ChangeDropPackStatus(MercPtrs[x], FALSE); + ChangeDropPackStatus(pSoldier, FALSE); } } } diff --git a/Tactical/LOS.cpp b/Tactical/LOS.cpp index 3513e580..044e99fc 100644 --- a/Tactical/LOS.cpp +++ b/Tactical/LOS.cpp @@ -7223,8 +7223,10 @@ void MoveBullet( INT32 iBullet ) } else if (pStructure->fFlags & STRUCTURE_PERSON) { + SOLDIERTYPE *pSoldier = MercPtrs[pStructure->usStructureID]; + // HEADROCK HAM 5: Fragments can hit the shooter. - if ( MercPtrs[ pStructure->usStructureID ] != pBullet->pFirer || pBullet->fFragment == TRUE ) + if ( pSoldier != pBullet->pFirer || pBullet->fFragment == TRUE ) { // in actually moving the bullet, we consider only count friends as targets if the bullet is unaimed // (buckshot), if they are the intended target, or beyond the range of automatic friendly fire hits @@ -7243,13 +7245,13 @@ void MoveBullet( INT32 iBullet ) else if ( pBullet->pFirer->flags.uiStatusFlags & SOLDIER_MONSTER ) { // monsters firing will always accidentally hit people but never accidentally hit each other. - if ( !(MercPtrs[ pStructure->usStructureID ]->flags.uiStatusFlags & SOLDIER_MONSTER) ) + if ( !(pSoldier->flags.uiStatusFlags & SOLDIER_MONSTER) ) { gpLocalStructure[iNumLocalStructures] = pStructure; iNumLocalStructures++; } } - else if (MercPtrs[pStructure->usStructureID]->bVisible == TRUE && + else if (pSoldier->bVisible == TRUE && PositionAllowsHit(pBullet, pStructure) && (pBullet->fAimed && pBullet->iLoop > MIN_DIST_FOR_HIT_FRIENDS || !pBullet->fAimed && pBullet->iLoop > MIN_DIST_FOR_HIT_FRIENDS_UNAIMED || @@ -7261,16 +7263,16 @@ void MoveBullet( INT32 iBullet ) } // this might be a close call - if ( pBullet->ubFirerID != NOBODY && MercPtrs[ pStructure->usStructureID ]->bTeam == gbPlayerNum && pBullet->pFirer->bTeam != gbPlayerNum && sDesiredLevel == MercPtrs[ pStructure->usStructureID ]->pathing.bLevel ) + if ( pBullet->ubFirerID != NOBODY && pSoldier->bTeam == gbPlayerNum && pBullet->pFirer->bTeam != gbPlayerNum && sDesiredLevel == pSoldier->pathing.bLevel ) { - MercPtrs[ pStructure->usStructureID ]->flags.fCloseCall = TRUE; + pSoldier->flags.fCloseCall = TRUE; } - if ( IS_MERC_BODY_TYPE( MercPtrs[pStructure->usStructureID] ) ) + if ( IS_MERC_BODY_TYPE( pSoldier ) ) { // apply suppression, regardless of friendly or enemy // except if friendly, not within a few tiles of shooter - if (pBullet->ubFirerID == NOBODY || MercPtrs[pStructure->usStructureID]->bSide != pBullet->pFirer->bSide || pBullet->iLoop > gGameExternalOptions.usMinDistanceFriendlySuppression) + if (pBullet->ubFirerID == NOBODY || pSoldier->bSide != pBullet->pFirer->bSide || pBullet->iLoop > gGameExternalOptions.usMinDistanceFriendlySuppression) { // buckshot has only a 1 in 2 chance of applying a suppression point // HEADROCK HAM 5: For NCTH, make pellets as effective as any other bullet. @@ -7279,7 +7281,7 @@ void MoveBullet( INT32 iBullet ) if (!(pBullet->usFlags & BULLET_FLAG_BUCKSHOT) || Chance(gGameExternalOptions.ubBuckshotSuppressionEffectiveness)) { // bullet goes whizzing by this guy! - switch ( gAnimControl[ MercPtrs[pStructure->usStructureID]->usAnimState ].ubEndHeight ) + switch ( gAnimControl[ pSoldier->usAnimState ].ubEndHeight ) { case ANIM_PRONE: // two 1/4 chances of avoiding suppression pt - one below @@ -7296,8 +7298,8 @@ void MoveBullet( INT32 iBullet ) } // else fall through default: - MercPtrs[pStructure->usStructureID]->ubSuppressionPoints++; - MercPtrs[pStructure->usStructureID]->ubSuppressorID = pBullet->ubFirerID; + pSoldier->ubSuppressionPoints++; + pSoldier->ubSuppressorID = pBullet->ubFirerID; break; } } diff --git a/Tactical/Morale.cpp b/Tactical/Morale.cpp index 9ff5e12f..bd2924cb 100644 --- a/Tactical/Morale.cpp +++ b/Tactical/Morale.cpp @@ -315,7 +315,8 @@ void DecayTacticalMoraleModifiers( void ) fHandleNervous = TRUE; for ( ubLoop2 = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; ubLoop2 <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ubLoop2++ ) { - if ( MercPtrs[ ubLoop2 ] != pSoldier && MercPtrs[ ubLoop2 ]->bActive && MercPtrs[ ubLoop2 ]->sSectorX == pSoldier->sSectorX && MercPtrs[ ubLoop2 ]->sSectorY == pSoldier->sSectorY && MercPtrs[ ubLoop2 ]->bSectorZ == pSoldier->bSectorZ ) + SOLDIERTYPE *pSoldier = MercPtrs[ubLoop2]; + if ( pSoldier != pSoldier && pSoldier->bActive && pSoldier->sSectorX == pSoldier->sSectorX && pSoldier->sSectorY == pSoldier->sSectorY && pSoldier->bSectorZ == pSoldier->bSectorZ ) { // found someone! fHandleNervous = FALSE; diff --git a/Tactical/PATHAI.cpp b/Tactical/PATHAI.cpp index 478c4f1a..f564fe7f 100644 --- a/Tactical/PATHAI.cpp +++ b/Tactical/PATHAI.cpp @@ -2198,7 +2198,7 @@ INT32 FindBestPath(SOLDIERTYPE *s , INT32 sDestination, INT8 bLevel, INT16 usMov INT8 bLoopState = LOOPING_CLOCKWISE; //BOOLEAN fLoopForwards = FALSE; BOOLEAN fCheckedBehind = FALSE; - UINT16 ubMerc; + SoldierID ubMerc; INT32 iDestX,iDestY, iLocX, iLocY, dx, dy; INT32 newLoc,curLoc; //INT32 curY; @@ -3145,7 +3145,7 @@ if(!GridNoOnVisibleWorldTile(iDestination)) // sevenfm: for player mercs, ignore invisible opponents if (ubMerc < TOTAL_SOLDIERS && ubMerc != s->ubID && - (!(s->flags.uiStatusFlags & SOLDIER_PC) || MercPtrs[ubMerc]->bSide == s->bSide || MercPtrs[ubMerc]->aiData.bNeutral || MercPtrs[ubMerc]->bVisible >= 0 || SoldierToSoldierLineOfSightTest(s, MercPtrs[ubMerc], TRUE, CALC_FROM_ALL_DIRS))) + (!(s->flags.uiStatusFlags & SOLDIER_PC) || ubMerc->bSide == s->bSide || ubMerc->aiData.bNeutral || ubMerc->bVisible >= 0 || SoldierToSoldierLineOfSightTest(s, ubMerc, TRUE, CALC_FROM_ALL_DIRS))) //if ( ubMerc < TOTAL_SOLDIERS && ubMerc != s->ubID ) { goto NEXTDIR; diff --git a/Tactical/ShopKeeper Interface.cpp b/Tactical/ShopKeeper Interface.cpp index d1245983..67805e08 100644 --- a/Tactical/ShopKeeper Interface.cpp +++ b/Tactical/ShopKeeper Interface.cpp @@ -6537,9 +6537,7 @@ BOOLEAN SKITryToReturnInvToOwnerOrCurrentMerc( INVENTORY_IN_SLOT *pInv ) // if it does have an owner if( pInv->ubIdOfMercWhoOwnsTheItem != NO_PROFILE ) { - INT16 sSoldierID; - - sSoldierID = GetSoldierIDFromMercID( pInv->ubIdOfMercWhoOwnsTheItem ); + SoldierID sSoldierID = GetSoldierIDFromMercID( pInv->ubIdOfMercWhoOwnsTheItem ); // if that soldier is not in player's hire any longer if ( sSoldierID == -1 ) { @@ -6548,13 +6546,13 @@ BOOLEAN SKITryToReturnInvToOwnerOrCurrentMerc( INVENTORY_IN_SLOT *pInv ) // For owners of repaired items, this checks that owner is still hired, in sector, // on current squad, close enough to the shopkeeper, etc. - if ( !CanMercInteractWithSelectedShopkeeper( MercPtrs[ sSoldierID ] ) ) + if ( !CanMercInteractWithSelectedShopkeeper( sSoldierID ) ) { return(FALSE); } // Try to find a place to put in its owner's inventory (regardless of which merc is currently displayed!) - if ( SKITryToAddInvToMercsInventory( pInv, MercPtrs[ sSoldierID ] ) ) + if ( SKITryToAddInvToMercsInventory( pInv, sSoldierID ) ) { return( TRUE ); } diff --git a/Tactical/Soldier Ani.cpp b/Tactical/Soldier Ani.cpp index 51a097d5..b06980a4 100644 --- a/Tactical/Soldier Ani.cpp +++ b/Tactical/Soldier Ani.cpp @@ -3126,15 +3126,11 @@ BOOLEAN AdjustToNextAnimationFrame( SOLDIERTYPE *pSoldier ) // Reload robot.... { - UINT16 ubPerson; - SOLDIERTYPE *pRobot; + SoldierID ubPerson = WhoIsThere2( pSoldier->aiData.sPendingActionData2, pSoldier->pathing.bLevel ); - // Get pointer... - ubPerson = WhoIsThere2( pSoldier->aiData.sPendingActionData2, pSoldier->pathing.bLevel ); - - if ( ubPerson != NOBODY && MercPtrs[ ubPerson ]->flags.uiStatusFlags & SOLDIER_ROBOT ) + if ( ubPerson != NOBODY && ubPerson->flags.uiStatusFlags & SOLDIER_ROBOT ) { - pRobot = MercPtrs[ ubPerson ]; + SOLDIERTYPE *pRobot = ubPerson; ReloadGun( pRobot, &(pRobot->inv[ HANDPOS ] ), pSoldier->pTempObject ); @@ -3658,50 +3654,51 @@ void SayBuddyWitnessedQuoteFromKill( SOLDIERTYPE *pKillerSoldier, INT32 sGridNo, if ( ubNumMercs > 0 ) { ubChosenMerc = (UINT16)Random( ubNumMercs ); + SOLDIERTYPE *pChosen = MercPtrs[ubMercsInSector[ubChosenMerc]]; switch( bBuddyIndex[ ubChosenMerc ] ) { case 0: usQuoteNum = QUOTE_BUDDY_1_GOOD; - MercPtrs[ ubMercsInSector[ ubChosenMerc ] ]->usQuoteSaidExtFlags |= SOLDIER_QUOTE_SAID_BUDDY_1_WITNESSED; + pChosen->usQuoteSaidExtFlags |= SOLDIER_QUOTE_SAID_BUDDY_1_WITNESSED; break; case 1: usQuoteNum = QUOTE_BUDDY_2_GOOD; - MercPtrs[ ubMercsInSector[ ubChosenMerc ] ]->usQuoteSaidExtFlags |= SOLDIER_QUOTE_SAID_BUDDY_2_WITNESSED; + pChosen->usQuoteSaidExtFlags |= SOLDIER_QUOTE_SAID_BUDDY_2_WITNESSED; break; case 2: - if( MercPtrs[ ubMercsInSector[ ubChosenMerc ] ]->ubWhatKindOfMercAmI == MERC_TYPE__AIM_MERC ) + if( pChosen->ubWhatKindOfMercAmI == MERC_TYPE__AIM_MERC ) usQuoteNum = QUOTE_AIM_BUDDY_3_GOOD; else usQuoteNum = QUOTE_NON_AIM_BUDDY_3_GOOD; - MercPtrs[ ubMercsInSector[ ubChosenMerc ] ]->usQuoteSaidExtFlags |= SOLDIER_QUOTE_SAID_BUDDY_3_WITNESSED; + pChosen->usQuoteSaidExtFlags |= SOLDIER_QUOTE_SAID_BUDDY_3_WITNESSED; break; case 3: - if( MercPtrs[ ubMercsInSector[ ubChosenMerc ] ]->ubWhatKindOfMercAmI == MERC_TYPE__AIM_MERC ) + if( pChosen->ubWhatKindOfMercAmI == MERC_TYPE__AIM_MERC ) usQuoteNum = QUOTE_AIM_BUDDY_4_GOOD; else usQuoteNum = QUOTE_NON_AIM_BUDDY_4_GOOD; - MercPtrs[ ubMercsInSector[ ubChosenMerc ] ]->usQuoteSaidExtFlags |= SOLDIER_QUOTE_SAID_BUDDY_4_WITNESSED; + pChosen->usQuoteSaidExtFlags |= SOLDIER_QUOTE_SAID_BUDDY_4_WITNESSED; break; case 4: - if( MercPtrs[ ubMercsInSector[ ubChosenMerc ] ]->ubWhatKindOfMercAmI == MERC_TYPE__AIM_MERC ) + if( pChosen->ubWhatKindOfMercAmI == MERC_TYPE__AIM_MERC ) usQuoteNum = QUOTE_AIM_BUDDY_5_GOOD; else usQuoteNum = QUOTE_NON_AIM_BUDDY_5_GOOD; - MercPtrs[ ubMercsInSector[ ubChosenMerc ] ]->usQuoteSaidExtFlags |= SOLDIER_QUOTE_SAID_BUDDY_5_WITNESSED; + pChosen->usQuoteSaidExtFlags |= SOLDIER_QUOTE_SAID_BUDDY_5_WITNESSED; break; case 5: usQuoteNum = QUOTE_LEARNED_TO_LIKE_WITNESSED; - MercPtrs[ ubMercsInSector[ ubChosenMerc ] ]->usQuoteSaidExtFlags |= SOLDIER_QUOTE_SAID_BUDDY_6_WITNESSED; + pChosen->usQuoteSaidExtFlags |= SOLDIER_QUOTE_SAID_BUDDY_6_WITNESSED; break; } - TacticalCharacterDialogue( MercPtrs[ ubMercsInSector[ ubChosenMerc ] ], usQuoteNum ); + TacticalCharacterDialogue( pChosen, usQuoteNum ); buddyquoteused = TRUE; } diff --git a/Tactical/Soldier Find.cpp b/Tactical/Soldier Find.cpp index 50e6b05e..77d19f39 100644 --- a/Tactical/Soldier Find.cpp +++ b/Tactical/Soldier Find.cpp @@ -116,13 +116,13 @@ BOOLEAN SelectiveFindSoldierFromMouse( SoldierID *pusSoldierIndex, UINT32 *pMerc } -UINT32 GetSoldierFindFlags( const SoldierID ubID ) +UINT32 GetSoldierFindFlags( SoldierID ubID ) { UINT32 MercFlags = 0; SOLDIERTYPE *pSoldier; // Get pSoldier! - pSoldier = MercPtrs[ ubID ]; + pSoldier = ubID; // Find out and set flags if ( ubID == gusSelectedSoldier ) @@ -530,13 +530,13 @@ SOLDIERTYPE * SimpleFindSoldier( INT32 sGridNo, INT8 bLevel ) } else { - return( MercPtrs[ ubID ] ); + return( ubID ); } } BOOLEAN IsValidTargetMerc( SoldierID ubSoldierID ) { - SOLDIERTYPE *pSoldier = MercPtrs[ ubSoldierID ]; + SOLDIERTYPE *pSoldier = ubSoldierID; // CHECK IF ACTIVE! diff --git a/Tactical/Soldier Tile.cpp b/Tactical/Soldier Tile.cpp index 05be45f9..5b5172c2 100644 --- a/Tactical/Soldier Tile.cpp +++ b/Tactical/Soldier Tile.cpp @@ -96,8 +96,6 @@ void OutputDebugInfoForTurnBasedNextTileWaiting( SOLDIERTYPE * pSoldier ) void SetDelayedTileWaiting( SOLDIERTYPE *pSoldier, INT32 sCauseGridNo, INT8 bValue ) { - UINT16 ubPerson; - // Cancel AI Action // CancelAIAction( pSoldier, TRUE ); @@ -108,7 +106,7 @@ void SetDelayedTileWaiting( SOLDIERTYPE *pSoldier, INT32 sCauseGridNo, INT8 bVal // ATE: Now update realtime movement speed.... // check if guy exists here... - ubPerson = WhoIsThere2( sCauseGridNo, pSoldier->pathing.bLevel ); + SoldierID ubPerson = WhoIsThere2( sCauseGridNo, pSoldier->pathing.bLevel ); // There may not be anybody there, but it's reserved by them! if ( ( gpWorldLevelData[ sCauseGridNo ].uiFlags & MAPELEMENT_MOVEMENT_RESERVED ) ) @@ -119,7 +117,7 @@ void SetDelayedTileWaiting( SOLDIERTYPE *pSoldier, INT32 sCauseGridNo, INT8 bVal if ( ubPerson != NOBODY ) { // if they are our own team members ( both ) - if ( MercPtrs[ ubPerson ]->bTeam == gbPlayerNum && pSoldier->bTeam == gbPlayerNum ) + if ( ubPerson->bTeam == gbPlayerNum && pSoldier->bTeam == gbPlayerNum ) { // Here we have another guy.... save his stats so we can use them for // speed determinations.... @@ -205,7 +203,6 @@ void UnMarkMovementReserved( SOLDIERTYPE *pSoldier ) INT8 TileIsClear( SOLDIERTYPE *pSoldier, INT8 bDirection, INT32 sGridNo, INT8 bLevel ) { - UINT16 ubPerson; INT32 sTempDestGridNo; INT32 sNewGridNo; BOOLEAN fSwapInDoor = FALSE; @@ -225,7 +222,7 @@ INT8 TileIsClear( SOLDIERTYPE *pSoldier, INT8 bDirection, INT32 sGridNo, INT8 b return( MOVE_TILE_CLEAR ); } - ubPerson = WhoIsThere2( sGridNo, bLevel ); + SoldierID ubPerson = WhoIsThere2( sGridNo, bLevel ); if ( ubPerson != NOBODY ) @@ -243,7 +240,7 @@ INT8 TileIsClear( SOLDIERTYPE *pSoldier, INT8 bDirection, INT32 sGridNo, INT8 b // Are we only temporarily blocked? // Check if our final destination is = our gridno - if ( ( MercPtrs[ ubPerson ]->pathing.sFinalDestination == MercPtrs[ ubPerson ]->sGridNo ) ) + if ( ( ubPerson->pathing.sFinalDestination == ubPerson->sGridNo ) ) { return( MOVE_TILE_STATIONARY_BLOCKED ); } @@ -251,12 +248,12 @@ INT8 TileIsClear( SOLDIERTYPE *pSoldier, INT8 bDirection, INT32 sGridNo, INT8 b { // OK, if buddy who is blocking us is trying to move too... // And we are in opposite directions... - if ( MercPtrs[ ubPerson ]->flags.fBlockedByAnotherMerc && MercPtrs[ ubPerson ]->bBlockedByAnotherMercDirection == gOppositeDirection[ bDirection ] ) + if ( ubPerson->flags.fBlockedByAnotherMerc && ubPerson->bBlockedByAnotherMercDirection == gOppositeDirection[ bDirection ] ) { // OK, try and get a path around buddy.... // We have to temporarily make buddy stopped... - sTempDestGridNo = MercPtrs[ ubPerson ]->pathing.sFinalDestination; - MercPtrs[ ubPerson ]->pathing.sFinalDestination = MercPtrs[ ubPerson ]->sGridNo; + sTempDestGridNo = ubPerson->pathing.sFinalDestination; + ubPerson->pathing.sFinalDestination = ubPerson->sGridNo; if ( PlotPath( pSoldier, pSoldier->pathing.sFinalDestination, NO_COPYROUTE, NO_PLOT, TEMPORARY, pSoldier->usUIMovementMode, NOT_STEALTH, FORWARD, pSoldier->bActionPoints ) ) { @@ -264,7 +261,7 @@ INT8 TileIsClear( SOLDIERTYPE *pSoldier, INT8 bDirection, INT32 sGridNo, INT8 b // OK, make guy go here... pSoldier->EVENT_GetNewSoldierPath( pSoldier->pathing.sFinalDestination, pSoldier->usUIMovementMode ); // Restore final dest.... - MercPtrs[ ubPerson ]->pathing.sFinalDestination = sTempDestGridNo; + ubPerson->pathing.sFinalDestination = sTempDestGridNo; pSoldier->flags.fBlockedByAnotherMerc = FALSE; // Is the next tile blocked too? @@ -288,18 +285,18 @@ INT8 TileIsClear( SOLDIERTYPE *pSoldier, INT8 bDirection, INT32 sGridNo, INT8 b // Swap now! - MercPtrs[ ubPerson ]->flags.fBlockedByAnotherMerc = FALSE; + ubPerson->flags.fBlockedByAnotherMerc = FALSE; // Restore final dest.... - MercPtrs[ ubPerson ]->pathing.sFinalDestination = sTempDestGridNo; + ubPerson->pathing.sFinalDestination = sTempDestGridNo; // Swap merc positions..... - SwapMercPositions( pSoldier, MercPtrs[ ubPerson ] ); + SwapMercPositions( pSoldier, ubPerson ); // With these two guys swapped, they should try and continue on their way.... // Start them both again along their way... pSoldier->EVENT_GetNewSoldierPath( pSoldier->pathing.sFinalDestination, pSoldier->usUIMovementMode ); - MercPtrs[ ubPerson ]->EVENT_GetNewSoldierPath( MercPtrs[ ubPerson ]->pathing.sFinalDestination, MercPtrs[ ubPerson ]->usUIMovementMode ); + ubPerson->EVENT_GetNewSoldierPath( ubPerson->pathing.sFinalDestination, ubPerson->usUIMovementMode ); } } } @@ -311,14 +308,14 @@ INT8 TileIsClear( SOLDIERTYPE *pSoldier, INT8 bDirection, INT32 sGridNo, INT8 b //return( MOVE_TILE_STATIONARY_BLOCKED ); // ATE: OK, put some smartshere... // If we are waiting for more than a few times, change to stationary... - if ( MercPtrs[ ubPerson ]->flags.fDelayedMovement >= 105 ) + if ( ubPerson->flags.fDelayedMovement >= 105 ) { // Set to special 'I want to walk through people' value pSoldier->flags.fDelayedMovement = 150; return( MOVE_TILE_STATIONARY_BLOCKED ); } - if ( MercPtrs[ ubPerson ]->sGridNo == MercPtrs[ ubPerson ]->pathing.sFinalDestination ) + if ( ubPerson->sGridNo == ubPerson->pathing.sFinalDestination ) { return( MOVE_TILE_STATIONARY_BLOCKED ); } @@ -495,11 +492,11 @@ BOOLEAN HandleNextTile( SOLDIERTYPE *pSoldier, INT8 bDirection, INT32 sGridNo, I BOOLEAN HandleNextTileWaiting( SOLDIERTYPE *pSoldier ) { // Buddy is waiting to continue his path - INT8 bBlocked, bPathBlocked; + INT8 bBlocked, bPathBlocked; INT32 sCost; - INT32 sNewGridNo, sCheckGridNo; + INT32 sNewGridNo, sCheckGridNo; UINT8 ubDirection, bCauseDirection; - UINT16 ubPerson; + SoldierID ubPerson; UINT8 fFlags = 0; @@ -659,16 +656,16 @@ BOOLEAN HandleNextTileWaiting( SOLDIERTYPE *pSoldier ) ubPerson = WhoIsThere2( pSoldier->sDelayedMovementCauseGridNo, pSoldier->pathing.bLevel ); // if either on a mission from god, or two AI guys not on stationary... - if ( ubPerson != NOBODY && ( pSoldier->ubQuoteRecord != 0 || ( pSoldier->bTeam != gbPlayerNum && pSoldier->aiData.bOrders != STATIONARY && MercPtrs[ ubPerson ]->bTeam != gbPlayerNum && MercPtrs[ ubPerson ]->aiData.bOrders != STATIONARY ) || (pSoldier->bTeam == gbPlayerNum && gTacticalStatus.fAutoBandageMode && !(MercPtrs[ ubPerson ]->bTeam == CIV_TEAM && MercPtrs[ ubPerson ]->aiData.bOrders == STATIONARY ) ) ) ) + if ( ubPerson != NOBODY && ( pSoldier->ubQuoteRecord != 0 || ( pSoldier->bTeam != gbPlayerNum && pSoldier->aiData.bOrders != STATIONARY && ubPerson->bTeam != gbPlayerNum && ubPerson->aiData.bOrders != STATIONARY ) || (pSoldier->bTeam == gbPlayerNum && gTacticalStatus.fAutoBandageMode && !(ubPerson->bTeam == CIV_TEAM && ubPerson->aiData.bOrders == STATIONARY ) ) ) ) { // Swap now! - //MercPtrs[ ubPerson ]->flags.fBlockedByAnotherMerc = FALSE; + //ubPerson->flags.fBlockedByAnotherMerc = FALSE; // Restore final dest.... - //MercPtrs[ ubPerson ]->pathing.sFinalDestination = sTempDestGridNo; + //ubPerson->pathing.sFinalDestination = sTempDestGridNo; // Swap merc positions..... - SwapMercPositions( pSoldier, MercPtrs[ ubPerson ] ); + SwapMercPositions( pSoldier, ubPerson ); // With these two guys swapped, we should try to continue on our way.... pSoldier->flags.fDelayedMovement = FALSE; @@ -693,7 +690,7 @@ BOOLEAN HandleNextTileWaiting( SOLDIERTYPE *pSoldier ) pSoldier->pathing.bPathStored = TRUE; pSoldier->EVENT_GetNewSoldierPath( pSoldier->sAbsoluteFinalDestination, pSoldier->usUIMovementMode ); - //EVENT_GetNewSoldierPath( MercPtrs[ ubPerson ], MercPtrs[ ubPerson ]->pathing.sFinalDestination, MercPtrs[ ubPerson ]->usUIMovementMode ); + //EVENT_GetNewSoldierPath( ubPerson, ubPerson->pathing.sFinalDestination, ubPerson->usUIMovementMode ); } } diff --git a/Tactical/Squads.cpp b/Tactical/Squads.cpp index fe88875d..5b96f8a2 100644 --- a/Tactical/Squads.cpp +++ b/Tactical/Squads.cpp @@ -995,16 +995,13 @@ void RebuildCurrentSquad( void ) void ExamineCurrentSquadLights( void ) { - // rebuilds current squad to reset faces in tactical - UINT16 ubLoop; - // OK, we should add lights for any guy currently bInSector who is not bad OKLIFE... - ubLoop = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; - for ( ; ubLoop <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ubLoop++) + SoldierID usID = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; + for ( ; usID <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++usID) { - if ( MercPtrs[ ubLoop ]->bInSector && MercPtrs[ ubLoop ]->stats.bLife >= OKLIFE ) + if ( usID->bInSector && usID->stats.bLife >= OKLIFE ) { - MercPtrs[ ubLoop ]->PositionSoldierLight( ); + usID->PositionSoldierLight( ); } } diff --git a/Tactical/Strategic Exit GUI.cpp b/Tactical/Strategic Exit GUI.cpp index c8b87e8d..eb8192fc 100644 --- a/Tactical/Strategic Exit GUI.cpp +++ b/Tactical/Strategic Exit GUI.cpp @@ -119,7 +119,6 @@ BOOLEAN InternalInitSectorExitMenu( UINT8 ubDirection, INT32 sAdditionalData )// { UINT32 uiTraverseTimeInMinutes; SOLDIERTYPE *pSoldier; - INT32 i; SGPRect aRect; UINT16 usTextBoxWidth, usTextBoxHeight; INT32 usMapPos = 0; @@ -189,10 +188,10 @@ BOOLEAN InternalInitSectorExitMenu( UINT8 ubDirection, INT32 sAdditionalData )// if ( gTacticalStatus.uiFlags & INCOMBAT ) { - INT32 i, cnt = 0; - for( i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; i++ ) + INT32 cnt = 0; + for( SoldierID id = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; id <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++id ) { - if( OK_INSECTOR_MERC( MercPtrs[ i ] ) ) + if( OK_INSECTOR_MERC( id ) ) cnt++; } if( cnt != 1 ) @@ -220,13 +219,14 @@ BOOLEAN InternalInitSectorExitMenu( UINT8 ubDirection, INT32 sAdditionalData )// gExitDialog.ubNumPeopleOnSquad = NumberOfPlayerControllableMercsInSquad( gusSelectedSoldier->bAssignment ); //Determine - for( i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; i++ ) + for( SoldierID id = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; id <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++id ) { - pSoldier = MercPtrs[ i ]; - if( i == gusSelectedSoldier ) + if( id == gusSelectedSoldier ) { continue; } + + pSoldier = id; if( !pSoldier->flags.fBetweenSectors && pSoldier->sSectorX == gWorldSectorX && pSoldier->sSectorY == gWorldSectorY && pSoldier->bSectorZ == gbWorldSectorZ && pSoldier->stats.bLife >= OKLIFE && @@ -262,21 +262,21 @@ BOOLEAN InternalInitSectorExitMenu( UINT8 ubDirection, INT32 sAdditionalData )// //Assuming that the matching squad assignment is in the same sector. UINT16 ubNumMercs = 1; //selected soldier is a merc UINT16 ubNumEPCs = 0; - for( i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; i++ ) + for( SoldierID id = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; id <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++id ) { - if( i == gusSelectedSoldier ) + if( id == gusSelectedSoldier ) { continue; } - if( MercPtrs[ i ]->bAssignment == gusSelectedSoldier->bAssignment ) + if( id->bAssignment == gusSelectedSoldier->bAssignment ) { - if( AM_AN_EPC( MercPtrs[ i ] ) ) + if( AM_AN_EPC( id ) ) { ubNumEPCs++; //record the slot of the epc. If there are more than one EPCs, then //it doesn't matter. This is used in building the text message explaining //why the selected merc can't leave. This is how we extract the EPC's name. - gExitDialog.bSingleMoveWillIsolateEPC = (INT16)i; + gExitDialog.bSingleMoveWillIsolateEPC = id; } else { //We have more than one merc, so we will allow the selected merc to leave alone if diff --git a/Tactical/Tactical Save.cpp b/Tactical/Tactical Save.cpp index fc4562cb..852032d0 100644 --- a/Tactical/Tactical Save.cpp +++ b/Tactical/Tactical Save.cpp @@ -2556,11 +2556,13 @@ BOOLEAN SetSectorFlag( INT16 sMapX, INT16 sMapY, UINT8 bMapZ, UINT32 uiFlagToSet for ( UINT16 i = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; i <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; i++ ) { - if( MercPtrs[ i ]->bActive && MercPtrs[ i ]->stats.bLife && !(MercPtrs[ i ]->flags.uiStatusFlags & SOLDIER_VEHICLE) && MercPtrs[ i ]->ubProfile != NO_PROFILE && - MercPtrs[ i ]->sSectorX == sMapX && MercPtrs[ i ]->sSectorY == sMapY && MercPtrs[ i ]->bSectorZ == bMapZ && !MercPtrs[ i ]->flags.fBetweenSectors && - MercPtrs[ i ]->bAssignment != IN_TRANSIT && MercPtrs[ i ]->bAssignment != ASSIGNMENT_DEAD ) + SOLDIERTYPE *pSoldier = MercPtrs[i]; + + if( pSoldier->bActive && pSoldier->stats.bLife && !(pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE) && pSoldier->ubProfile != NO_PROFILE && + pSoldier->sSectorX == sMapX && pSoldier->sSectorY == sMapY && pSoldier->bSectorZ == bMapZ && !pSoldier->flags.fBetweenSectors && + pSoldier->bAssignment != IN_TRANSIT && pSoldier->bAssignment != ASSIGNMENT_DEAD ) { - gMercProfiles[ MercPtrs[ i ]->ubProfile ].records.usSectorsDiscovered++; + gMercProfiles[ pSoldier->ubProfile ].records.usSectorsDiscovered++; } } } diff --git a/Tactical/TeamTurns.cpp b/Tactical/TeamTurns.cpp index 0b8c58e1..d67d782d 100644 --- a/Tactical/TeamTurns.cpp +++ b/Tactical/TeamTurns.cpp @@ -506,7 +506,7 @@ void BeginTeamTurn( UINT8 ubTeam ) { DebugMsg (TOPIC_JA2INTERRUPT,DBG_LEVEL_3,"BeginTeamTurn"); INT32 cnt; - UINT16 ubID; + SoldierID ubID; SOLDIERTYPE *pSoldier; //rain @@ -657,7 +657,7 @@ void BeginTeamTurn( UINT8 ubTeam ) { AddTopMessage( COMPUTER_TURN_MESSAGE, TeamTurnString[ ubTeam ] ); } - StartNPCAI( MercPtrs[ ubID ] ); + StartNPCAI( ubID ); /*if(is_server && !net_turn) send_EndTurn(ubTeam); if(net_turn == true) net_turn = false;*/ if(is_server) send_EndTurn(ubTeam); @@ -983,22 +983,23 @@ void StartInterrupt( void ) // report any close call quotes for us here for ( iCounter = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; iCounter <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; iCounter++ ) { - if ( OK_INSECTOR_MERC( MercPtrs[ iCounter ] ) ) + SOLDIERTYPE *pSoldier = MercPtrs[iCounter]; + + if ( OK_INSECTOR_MERC( pSoldier ) ) { - if ( MercPtrs[ iCounter ]->flags.fCloseCall ) + if ( pSoldier->flags.fCloseCall ) { - if ( MercPtrs[ iCounter ]->bNumHitsThisTurn == 0 && !(MercPtrs[ iCounter ]->usQuoteSaidExtFlags & SOLDIER_QUOTE_SAID_EXT_CLOSE_CALL) && Random( 3 ) == 0 ) + if ( pSoldier->bNumHitsThisTurn == 0 && !(pSoldier->usQuoteSaidExtFlags & SOLDIER_QUOTE_SAID_EXT_CLOSE_CALL) && Random( 3 ) == 0 ) { // say close call quote! - TacticalCharacterDialogue( MercPtrs[ iCounter ], QUOTE_CLOSE_CALL ); - MercPtrs[ iCounter ]->usQuoteSaidExtFlags |= SOLDIER_QUOTE_SAID_EXT_CLOSE_CALL; + TacticalCharacterDialogue( pSoldier, QUOTE_CLOSE_CALL ); + pSoldier->usQuoteSaidExtFlags |= SOLDIER_QUOTE_SAID_EXT_CLOSE_CALL; } - MercPtrs[ iCounter ]->flags.fCloseCall = FALSE; + pSoldier->flags.fCloseCall = FALSE; } } } } - } else { diff --git a/Tactical/Turn Based Input.cpp b/Tactical/Turn Based Input.cpp index 4572c033..84c4c2ce 100644 --- a/Tactical/Turn Based Input.cpp +++ b/Tactical/Turn Based Input.cpp @@ -4890,12 +4890,12 @@ BOOLEAN HandleCheckForExitArrowsInput( BOOLEAN fAdjustConfirm ) if( gMercProfiles[ gusSelectedSoldier->ubProfile ].bSex == MALE ) { //male singular swprintf( str, pExitingSectorHelpText[ EXIT_GUI_MERC_CANT_ISOLATE_EPC_HELPTEXT_MALE_SINGULAR ], gusSelectedSoldier->GetName(), - MercPtrs[ gbPotentiallyAbandonedEPCSlotID ]->GetName() ); + gbPotentiallyAbandonedEPCSlotID->GetName() ); } else { //female singular swprintf( str, pExitingSectorHelpText[ EXIT_GUI_MERC_CANT_ISOLATE_EPC_HELPTEXT_FEMALE_SINGULAR ], gusSelectedSoldier->GetName(), - MercPtrs[ gbPotentiallyAbandonedEPCSlotID ]->GetName() ); + gbPotentiallyAbandonedEPCSlotID->GetName() ); } } else diff --git a/Tactical/opplist.cpp b/Tactical/opplist.cpp index 0b05cb5a..3a880361 100644 --- a/Tactical/opplist.cpp +++ b/Tactical/opplist.cpp @@ -3151,7 +3151,7 @@ void UpdatePublic(UINT8 ubTeam, SoldierID ubID, INT8 bNewOpplist, INT32 sGridNo, // if soldier isn't aware of guynum, give him another chance to see if (pSoldier->aiData.bOppList[ubID] == NOT_HEARD_OR_SEEN) { - if (ManLooksForMan(pSoldier,MercPtrs[ubID],UPDATEPUBLIC)) + if ( ManLooksForMan( pSoldier, ubID, UPDATEPUBLIC ) ) // then he actually saw guynum because of our new public knowledge ubMadeDifference = TRUE; @@ -7624,16 +7624,17 @@ INT8 GetHighestWatchedLocPoints( UINT16 ubID ) } -void CommunicateWatchedLoc( UINT16 ubID, INT32 sGridNo, INT8 bLevel, UINT8 ubPoints ) +void CommunicateWatchedLoc( SoldierID ubID, INT32 sGridNo, INT8 bLevel, UINT8 ubPoints ) { UINT16 ubLoop; INT8 bTeam, bLoopPoint, bPoint; - bTeam = MercPtrs[ ubID ]->bTeam; + bTeam = ubID->bTeam; for ( ubLoop = gTacticalStatus.Team[ bTeam ].bFirstID; ubLoop <= gTacticalStatus.Team[ bTeam ].bLastID; ubLoop++ ) { - if ( ubLoop == ubID || MercPtrs[ ubLoop ]->bActive == FALSE || MercPtrs[ ubLoop ]->bInSector == FALSE || MercPtrs[ ubLoop ]->stats.bLife < OKLIFE ) + SOLDIERTYPE *pSoldier = MercPtrs[ubLoop]; + if ( ubLoop == ubID || pSoldier->bActive == FALSE || pSoldier->bInSector == FALSE || pSoldier->stats.bLife < OKLIFE ) { continue; }