diff --git a/Laptop/personnel.cpp b/Laptop/personnel.cpp index 65aabfe2..239b48ef 100644 --- a/Laptop/personnel.cpp +++ b/Laptop/personnel.cpp @@ -9122,81 +9122,85 @@ void AssignPersonnelWoundsHelpText( INT32 ubProfile ) INT8 CalculateMercsAchievementPercentage( INT32 ubProfile ) { SOLDIERTYPE *pTeamSoldier; - INT32 cnt=0; UINT32 uiMercPoints, uiMercPercentage; unsigned long ulTotalMercPoints = 0; // run through active soldiers - for ( cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; cnt++) + SoldierID id = gTacticalStatus.Team[gbPlayerNum].bFirstID; + const SoldierID lastid = gTacticalStatus.Team[gbPlayerNum].bLastID; + for ( ; id <= lastid; ++id) { - pTeamSoldier = MercPtrs[cnt]; + pTeamSoldier = id; // Only count stats of merc (not vehicles) if ( !( pTeamSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE ) && !AM_A_ROBOT( pTeamSoldier ) ) { if( pTeamSoldier->bActive && pTeamSoldier->stats.bLife > 0 && pTeamSoldier->ubProfile != 0 ) { + const STRUCT_Records &records = gMercProfiles[pTeamSoldier->ubProfile].records; + // get total value of all mercs, adjust by importance ulTotalMercPoints += - ( gMercProfiles[ pTeamSoldier->ubProfile ].records.usLocksPicked ) + ( records.usLocksPicked ) + - ( gMercProfiles[ pTeamSoldier->ubProfile ].records.usLocksBreached ) + ( records.usLocksBreached ) + - ( gMercProfiles[ pTeamSoldier->ubProfile ].records.usTrapsRemoved *3/2) + ( records.usTrapsRemoved *3/2) + - ( gMercProfiles[ pTeamSoldier->ubProfile ].records.usExpDetonated *3/2) + ( records.usExpDetonated *3/2) + - ( gMercProfiles[ pTeamSoldier->ubProfile ].records.usItemsRepaired /2) + ( records.usItemsRepaired /2) + - ( gMercProfiles[ pTeamSoldier->ubProfile ].records.usItemsCombined *2) + ( records.usItemsCombined *2) + - ( gMercProfiles[ pTeamSoldier->ubProfile ].records.usItemsStolen ) + ( records.usItemsStolen ) + - ( gMercProfiles[ pTeamSoldier->ubProfile ].records.usMercsBandaged *3/4) + ( records.usMercsBandaged *3/4) + - ( gMercProfiles[ pTeamSoldier->ubProfile ].records.usSurgeriesMade *3/2) + ( records.usSurgeriesMade *3/2) + - ( gMercProfiles[ pTeamSoldier->ubProfile ].records.usNPCsDiscovered *4/3) + ( records.usNPCsDiscovered *4/3) + - ( gMercProfiles[ pTeamSoldier->ubProfile ].records.usSectorsDiscovered ) + ( records.usSectorsDiscovered ) + - ( gMercProfiles[ pTeamSoldier->ubProfile ].records.usMilitiaTrained /4) + ( records.usMilitiaTrained /4) + - ( gMercProfiles[ pTeamSoldier->ubProfile ].records.ubQuestsHandled *2) + ( records.ubQuestsHandled *2) + - (gMercProfiles[pTeamSoldier->ubProfile].records.usInterrogations); + ( records.usInterrogations); } } } // Now get points of our mercs - uiMercPoints = - ( gMercProfiles[ ubProfile ].records.usLocksPicked ) + const STRUCT_Records &records = gMercProfiles[ubProfile].records; + uiMercPoints = + ( records.usLocksPicked ) + - ( gMercProfiles[ ubProfile ].records.usLocksBreached ) + ( records.usLocksBreached ) + - ( gMercProfiles[ ubProfile ].records.usTrapsRemoved *3/2) + ( records.usTrapsRemoved *3/2) + - ( gMercProfiles[ ubProfile ].records.usExpDetonated *3/2) + ( records.usExpDetonated *3/2) + - ( gMercProfiles[ ubProfile ].records.usItemsRepaired /2) + ( records.usItemsRepaired /2) + - ( gMercProfiles[ ubProfile ].records.usItemsCombined *2) + ( records.usItemsCombined *2) + - ( gMercProfiles[ ubProfile ].records.usItemsStolen ) + ( records.usItemsStolen ) + - ( gMercProfiles[ ubProfile ].records.usMercsBandaged *3/4) + ( records.usMercsBandaged *3/4) + - ( gMercProfiles[ ubProfile ].records.usSurgeriesMade *3/2) + ( records.usSurgeriesMade *3/2) + - ( gMercProfiles[ ubProfile ].records.usNPCsDiscovered *4/3) + ( records.usNPCsDiscovered *4/3) + - ( gMercProfiles[ ubProfile ].records.usSectorsDiscovered ) + ( records.usSectorsDiscovered ) + - ( gMercProfiles[ ubProfile ].records.usMilitiaTrained /4) + ( records.usMilitiaTrained /4) + - ( gMercProfiles[ ubProfile ].records.ubQuestsHandled *2) + ( records.ubQuestsHandled *2) + - ( gMercProfiles[ubProfile].records.usInterrogations ); + ( records.usInterrogations ); // Calculate percentage if( ulTotalMercPoints != 0 ) diff --git a/Strategic/Assignments.cpp b/Strategic/Assignments.cpp index 3df48d31..afac13f5 100644 --- a/Strategic/Assignments.cpp +++ b/Strategic/Assignments.cpp @@ -18407,12 +18407,12 @@ BOOLEAN HandleSelectedMercsBeingPutAsleep( BOOLEAN fWakeUp, BOOLEAN fDisplayWarn BOOLEAN IsAnyOneOnPlayersTeamOnThisAssignment( INT8 bAssignment ) { - SOLDIERTYPE *pSoldier = NULL; - - for( INT32 iCounter = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; iCounter <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++iCounter ) + SoldierID id = gTacticalStatus.Team[OUR_TEAM].bFirstID; + SoldierID lastid = gTacticalStatus.Team[OUR_TEAM].bLastID; + for( ; id <= lastid; ++id) { // get the current soldier - pSoldier = &Menptr[ iCounter ]; + SOLDIERTYPE *pSoldier = id; // active? if( pSoldier->bActive == FALSE ) @@ -18443,7 +18443,6 @@ void RebuildAssignmentsBox( void ) void BandageBleedingDyingPatientsBeingTreated( ) { - INT32 iCounter = 0; SOLDIERTYPE *pSoldier = NULL; SOLDIERTYPE *pDoctor = NULL; INT32 iKitSlot; @@ -18452,10 +18451,10 @@ void BandageBleedingDyingPatientsBeingTreated( ) UINT32 uiKitPtsUsed; BOOLEAN fSomeoneStillBleedingDying = FALSE; - for( iCounter = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; iCounter <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; iCounter++ ) + for( SoldierID id = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; id <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++id ) { // get the soldier - pSoldier = &Menptr[ iCounter ]; + pSoldier = id; // check if the soldier is currently active? if( pSoldier->bActive == FALSE ) @@ -19601,9 +19600,11 @@ void RepairItemsOnOthers( SOLDIERTYPE *pSoldier, UINT8 *pubRepairPtsLeft ) fSomethingWasRepairedThisPass = FALSE; // look for jammed guns on other soldiers in sector and unjam them - for( bLoop = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; bLoop <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++bLoop ) + SoldierID id = gTacticalStatus.Team[gbPlayerNum].bFirstID; + const SoldierID lastid = gTacticalStatus.Team[gbPlayerNum].bLastID; + for ( ; id <= lastid; ++id ) { - pOtherSoldier = MercPtrs[ bLoop ]; + pOtherSoldier = id; // check character is valid, alive, same sector, not between, has inventory, etc. if ( CanCharacterRepairAnotherSoldiersStuff( pSoldier, pOtherSoldier ) ) @@ -19621,9 +19622,11 @@ void RepairItemsOnOthers( SOLDIERTYPE *pSoldier, UINT8 *pubRepairPtsLeft ) pBestOtherSoldier = NULL; // now look for items to repair on other mercs - for( bLoop = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; bLoop <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++bLoop ) + SoldierID id = gTacticalStatus.Team[gbPlayerNum].bFirstID; + const SoldierID lastid = gTacticalStatus.Team[gbPlayerNum].bLastID; + for ( ; id <= lastid; ++id ) { - pOtherSoldier = MercPtrs[ bLoop ]; + pOtherSoldier = id; // check character is valid, alive, same sector, not between, has inventory, etc. if ( CanCharacterRepairAnotherSoldiersStuff( pSoldier, pOtherSoldier ) ) @@ -22806,11 +22809,11 @@ BOOLEAN MercStaffsMilitaryHQ() return TRUE; SOLDIERTYPE *pSoldier = NULL; - UINT32 uiCnt = 0; - UINT32 firstid = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; - UINT32 lastid = gTacticalStatus.Team[ OUR_TEAM ].bLastID; - for ( uiCnt = firstid, pSoldier = MercPtrs[ uiCnt ]; uiCnt <= lastid; ++uiCnt, ++pSoldier) + SoldierID id = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; + SoldierID lastid = gTacticalStatus.Team[ OUR_TEAM ].bLastID; + for ( ; id <= lastid; ++id) { + pSoldier = id; if( pSoldier && pSoldier->bAssignment == FACILITY_STRATEGIC_MILITIA_MOVEMENT && pSoldier->flags.fMercAsleep == FALSE ) { return TRUE; diff --git a/Strategic/Auto Resolve.cpp b/Strategic/Auto Resolve.cpp index c5e0010f..f19dd2c9 100644 --- a/Strategic/Auto Resolve.cpp +++ b/Strategic/Auto Resolve.cpp @@ -1852,11 +1852,14 @@ void RenderAutoResolve() case BATTLE_SURRENDERED: case BATTLE_CAPTURED: - for( i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; i++ ) + { + SoldierID id = gTacticalStatus.Team[OUR_TEAM].bFirstID; + const SoldierID lastid = gTacticalStatus.Team[OUR_TEAM].bLastID; + for ( ; id <= lastid; ++id ) { - SOLDIERTYPE *pSoldier = MercPtrs[i]; + SOLDIERTYPE *pSoldier = id; - if( pSoldier->bActive && pSoldier->stats.bLife && !(pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE) && !AM_A_ROBOT( pSoldier ) ) + if ( pSoldier->bActive && pSoldier->stats.bLife && !(pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE) && !AM_A_ROBOT( pSoldier ) ) { //Merc is active and alive, and not a vehicle or robot if ( PlayerMercInvolvedInThisCombat( pSoldier ) ) { @@ -1866,17 +1869,18 @@ void RenderAutoResolve() } } HandleMoraleEvent( NULL, MORALE_HEARD_BATTLE_LOST, gpAR->ubSectorX, gpAR->ubSectorY, 0 ); - if( ProcessLoyalty() )HandleGlobalLoyaltyEvent( GLOBAL_LOYALTY_BATTLE_LOST, gpAR->ubSectorX, gpAR->ubSectorY, 0 ); - #ifdef NEWMUSIC - GlobalSoundID = MusicSoundValues[ SECTOR( gpAR->ubSectorX, gpAR->ubSectorY ) ].SoundTacticalDeath[0]; - if ( MusicSoundValues[ SECTOR( gpAR->ubSectorX, gpAR->ubSectorY ) ].SoundTacticalDeath[0] != -1 ) - SetMusicModeID( MUSIC_TACTICAL_DEATH, MusicSoundValues[ SECTOR( gpAR->ubSectorX, gpAR->ubSectorY ) ].SoundTacticalDeath[0] ); + if ( ProcessLoyalty() )HandleGlobalLoyaltyEvent( GLOBAL_LOYALTY_BATTLE_LOST, gpAR->ubSectorX, gpAR->ubSectorY, 0 ); +#ifdef NEWMUSIC + GlobalSoundID = MusicSoundValues[SECTOR( gpAR->ubSectorX, gpAR->ubSectorY )].SoundTacticalDeath[0]; + if ( MusicSoundValues[SECTOR( gpAR->ubSectorX, gpAR->ubSectorY )].SoundTacticalDeath[0] != -1 ) + SetMusicModeID( MUSIC_TACTICAL_DEATH, MusicSoundValues[SECTOR( gpAR->ubSectorX, gpAR->ubSectorY )].SoundTacticalDeath[0] ); else - #endif - SetMusicMode( MUSIC_TACTICAL_DEATH ); +#endif + SetMusicMode( MUSIC_TACTICAL_DEATH ); gsEnemyGainedControlOfSectorID = (INT16)SECTOR( gpAR->ubSectorX, gpAR->ubSectorY ); break; + } case BATTLE_DEFEAT: HandleMoraleEvent( NULL, MORALE_HEARD_BATTLE_LOST, gpAR->ubSectorX, gpAR->ubSectorY, 0 ); @@ -5959,9 +5963,11 @@ void CheckForSoldiersWhoRetreatedIntoMilitiaHeldSectors() (!gTacticalStatus.fEnemyInSector)) { unsigned mercCnt = 0; - for( int i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++i ) + SoldierID id = gTacticalStatus.Team[OUR_TEAM].bFirstID; + const SoldierID lastid = gTacticalStatus.Team[OUR_TEAM].bLastID; + for ( ; id <= lastid; ++id ) { - SOLDIERTYPE *pSoldier = MercPtrs[i]; + SOLDIERTYPE *pSoldier = id; if( pSoldier->bActive && pSoldier->stats.bLife && !(pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE) && !AM_A_ROBOT( pSoldier ) ) { diff --git a/Strategic/Creature Spreading.cpp b/Strategic/Creature Spreading.cpp index 1bd1c033..e55ca1f2 100644 --- a/Strategic/Creature Spreading.cpp +++ b/Strategic/Creature Spreading.cpp @@ -1676,9 +1676,9 @@ void DetermineCreatureTownCompositionBasedOnTacticalInformation( UINT16 *pubNumC *pubNumCreatures = 0; pSector->ubNumCreatures = 0; pSector->ubCreaturesInBattle = 0; - for( INT32 i = gTacticalStatus.Team[ CREATURE_TEAM ].bFirstID; i <= gTacticalStatus.Team[ CREATURE_TEAM ].bLastID; ++i ) + for( SoldierID i = gTacticalStatus.Team[ CREATURE_TEAM ].bFirstID; i <= gTacticalStatus.Team[ CREATURE_TEAM ].bLastID; ++i ) { - pSoldier = MercPtrs[ i ]; + pSoldier = i; if( pSoldier->bActive && pSoldier->bInSector && pSoldier->stats.bLife ) { switch( pSoldier->ubBodyType ) @@ -1712,9 +1712,9 @@ void DetermineOtherCreatureTownCompositionBasedOnTacticalInformation( UINT16* pu *pubNumCreatures = 0; pSector->ubNumCreatures = 0; pSector->ubCreaturesInBattle = 0; - for ( INT32 i = gTacticalStatus.Team[CREATURE_TEAM].bFirstID; i <= gTacticalStatus.Team[CREATURE_TEAM].bLastID; ++i ) + for ( SoldierID i = gTacticalStatus.Team[CREATURE_TEAM].bFirstID; i <= gTacticalStatus.Team[CREATURE_TEAM].bLastID; ++i ) { - pSoldier = MercPtrs[i]; + pSoldier = i; if ( pSoldier->bActive && pSoldier->bInSector && pSoldier->stats.bLife ) { if ( pSoldier->IsZombie() ) @@ -2243,7 +2243,6 @@ BOOLEAN PlayerGroupIsInACreatureInfestedMine() { CREATURE_DIRECTIVE *curr; SOLDIERTYPE *pSoldier; - INT32 i; INT16 sSectorX, sSectorY; INT8 bSectorZ; @@ -2261,9 +2260,9 @@ BOOLEAN PlayerGroupIsInACreatureInfestedMine() bSectorZ = (INT8)curr->pLevel->ubSectorZ; //Loop through all the creature directives (mine sectors that are infectible) and //see if players are there. - for( i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; i++ ) + for( SoldierID i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++i ) { - pSoldier = MercPtrs[ i ]; + pSoldier = i; if( pSoldier->bActive && pSoldier->stats.bLife && pSoldier->sSectorX == sSectorX && pSoldier->sSectorY == sSectorY && diff --git a/Strategic/Game Init.cpp b/Strategic/Game Init.cpp index c47c0578..250cb79f 100644 --- a/Strategic/Game Init.cpp +++ b/Strategic/Game Init.cpp @@ -842,19 +842,14 @@ fFirstTimeInMapScreen = TRUE; BOOLEAN AnyMercsHired( ) { - INT32 cnt; - SOLDIERTYPE *pTeamSoldier; - INT16 bLastTeamID; - - // Find first guy availible in team - cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; - - bLastTeamID = gTacticalStatus.Team[ gbPlayerNum ].bLastID; + // Find first guy available in team + SoldierID id = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; + SoldierID bLastTeamID = gTacticalStatus.Team[ gbPlayerNum ].bLastID; // look for all mercs on the same team, - for ( pTeamSoldier = MercPtrs[ cnt ]; cnt <= bLastTeamID; cnt++,pTeamSoldier++) + for ( ; id <= bLastTeamID; ++id) { - if ( pTeamSoldier->bActive ) + if ( id->bActive ) { return( TRUE ); } diff --git a/Strategic/Hourly Update.cpp b/Strategic/Hourly Update.cpp index f6e3386e..b6b91ef9 100644 --- a/Strategic/Hourly Update.cpp +++ b/Strategic/Hourly Update.cpp @@ -361,18 +361,18 @@ UINT16 LarryItems[ NUM_LARRY_ITEMS ][ 3 ] = void HourlyLarryUpdate() { - SOLDIERTYPE * pSoldier = NULL; - SOLDIERTYPE * pOtherSoldier = NULL; - INT8 bSlot = NO_SLOT, bBoozeSlot; - UINT16 usTemptation = 0; - UINT16 usCashAmount; - BOOLEAN fBar = FALSE; - OBJECTTYPE* pObj = NULL; - BOOLEAN fTookDrugs = FALSE; + SOLDIERTYPE *pSoldier = NULL; + SOLDIERTYPE *pOtherSoldier = NULL; + INT8 bSlot = NO_SLOT, bBoozeSlot; + UINT16 usTemptation = 0; + UINT16 usCashAmount; + BOOLEAN fBar = FALSE; + OBJECTTYPE* pObj = NULL; + BOOLEAN fTookDrugs = FALSE; - for( UINT32 cnt = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; cnt <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++cnt ) + for( SoldierID id = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; id <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++id ) { - pSoldier = MercPtrs[ cnt ]; + pSoldier = id; if ( pSoldier && pSoldier->bActive && !pSoldier->flags.fMercAsleep && ( pSoldier->ubProfile == LARRY_NORMAL || pSoldier->ubProfile == LARRY_DRUNK || pSoldier->HasBackgroundFlag( BACKGROUND_DRUGUSE ) ) ) { @@ -484,9 +484,9 @@ void HourlyLarryUpdate() { // anv: snitches stop mercs from getting wasted BOOLEAN fSnitchStoppedBehaviour = FALSE; - for( INT32 cnt2 = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; cnt2 <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++cnt2 ) + for( SoldierID id2 = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; id2 <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++id2 ) { - pOtherSoldier = MercPtrs[ cnt2 ]; + pOtherSoldier = id2; // note - snitches stop others, but can get wasted themselves (if they have drug use specifically set in background...) if( pOtherSoldier && !pOtherSoldier->flags.fBetweenSectors && pOtherSoldier->bActive && !pOtherSoldier->flags.fMercAsleep && pSoldier->ubProfile != pOtherSoldier->ubProfile ) { @@ -612,12 +612,12 @@ void HourlyLarryUpdate() // Flugente: mercs that are smokers occasionally consume smokes if they have some in their inventory void HourlySmokerUpdate( ) { - SOLDIERTYPE * pSoldier = NULL; - OBJECTTYPE* pObj = NULL; + SOLDIERTYPE *pSoldier = NULL; + OBJECTTYPE *pObj = NULL; - for ( UINT32 cnt = gTacticalStatus.Team[OUR_TEAM].bFirstID; cnt <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++cnt ) + for ( SoldierID id = gTacticalStatus.Team[OUR_TEAM].bFirstID; id <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++id ) { - pSoldier = MercPtrs[cnt]; + pSoldier = id; if ( pSoldier && pSoldier->bActive && !pSoldier->flags.fMercAsleep ) { @@ -647,9 +647,9 @@ void HourlyDisabilityUpdate( ) SOLDIERTYPE* pSoldier = NULL; SOLDIERTYPE* pOtherSoldier = NULL; - for ( UINT32 cnt = gTacticalStatus.Team[OUR_TEAM].bFirstID; cnt <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++cnt ) + for ( SoldierID id = gTacticalStatus.Team[OUR_TEAM].bFirstID; id <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++id ) { - pSoldier = MercPtrs[cnt]; + pSoldier = id; if ( pSoldier && pSoldier->bActive ) { @@ -664,9 +664,9 @@ void HourlyDisabilityUpdate( ) { // anv: snitches stop mercs from getting wasted BOOLEAN fSnitchStoppedBehaviour = FALSE; - for ( INT32 cnt2 = gTacticalStatus.Team[OUR_TEAM].bFirstID; cnt2 <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++cnt2 ) + for ( SoldierID id2 = gTacticalStatus.Team[OUR_TEAM].bFirstID; id2 <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++id2 ) { - pOtherSoldier = MercPtrs[cnt2]; + pOtherSoldier = id2; // note - snitches stop others, but can get wasted themselves (if they have drug use specifically set in background...) if ( pOtherSoldier && !pOtherSoldier->flags.fBetweenSectors && pOtherSoldier->bActive && !pOtherSoldier->flags.fMercAsleep && pSoldier->ubProfile != pOtherSoldier->ubProfile ) @@ -760,9 +760,9 @@ void HourlyStealUpdate() SOLDIERTYPE * pSoldier = NULL; SOLDIERTYPE * pOtherSoldier = NULL; - for( INT32 cnt = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; cnt <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++cnt ) + for( SoldierID cnt = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; cnt <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++cnt ) { - pSoldier = MercPtrs[ cnt ]; + pSoldier = cnt; // merc must be alive, not travelling and awake. If he is in the currently loaded sector, we may not be in tactical (we would see an item suddenly disappearing) and not in combat if ( pSoldier @@ -794,9 +794,9 @@ void HourlyStealUpdate() // anv: snitches prevent scrounging in the same sector BOOLEAN fSnitchStoppedBehaviour = FALSE; - for ( UINT32 cnt2 = gTacticalStatus.Team[OUR_TEAM].bFirstID; cnt2 <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++cnt2 ) + for ( SoldierID cnt2 = gTacticalStatus.Team[OUR_TEAM].bFirstID; cnt2 <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++cnt2 ) { - pOtherSoldier = MercPtrs[cnt2]; + pOtherSoldier = cnt2; // note - snitches stop others, but can scrounge themselves (if they have scrounging specifically set in background...) if ( pOtherSoldier diff --git a/Strategic/LuaInitNPCs.cpp b/Strategic/LuaInitNPCs.cpp index ee32f9e8..5a0141f2 100644 --- a/Strategic/LuaInitNPCs.cpp +++ b/Strategic/LuaInitNPCs.cpp @@ -2953,17 +2953,14 @@ SOLDIERTYPE * FindSoldierByProfileID_( UINT8 ubProfileID ) SOLDIERTYPE * FindSoldierByProfileID2( UINT8 ubProfileID, BOOLEAN fPlayerMercsOnly ) { - UINT16 cnt2, ubLoopLimit; - SOLDIERTYPE * pSoldier; + SoldierID soldier = gTacticalStatus.Team[ CIV_TEAM ].bFirstID; + SoldierID lastid = gTacticalStatus.Team[CIV_TEAM].bLastID; - ubLoopLimit = gTacticalStatus.Team[CIV_TEAM].bLastID; - - cnt2 = gTacticalStatus.Team[ CIV_TEAM ].bFirstID; - for ( pSoldier = MercPtrs[ cnt2 ]; cnt2 <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; cnt2++ ,pSoldier++) + for ( ; soldier <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; ++soldier) { - if ( pSoldier->bActive && pSoldier->bInSector ) + if ( soldier->bActive && soldier->bInSector ) { - return( pSoldier ); + return( soldier ); } } return( NULL ); @@ -5977,7 +5974,6 @@ return 0; static int l_ActionInProgress(lua_State *L) { - UINT16 cnt2; SOLDIERTYPE * pSoldier; if (lua_gettop(L) >= 2) @@ -5995,9 +5991,10 @@ static int l_ActionInProgress(lua_State *L) } else { - cnt2 = gTacticalStatus.Team[CIV_TEAM].bFirstID; - for (pSoldier = MercPtrs[cnt2]; cnt2 <= gTacticalStatus.Team[CIV_TEAM].bLastID; cnt2++, pSoldier++) + SoldierID cnt2 = gTacticalStatus.Team[CIV_TEAM].bFirstID; + for ( ; cnt2 <= gTacticalStatus.Team[CIV_TEAM].bLastID; ++cnt2) { + pSoldier = cnt2; if (pSoldier->bActive && pSoldier->bInSector && pSoldier->ubProfile == NO_PROFILE) { pSoldier->aiData.bActionInProgress = ExecuteAction(pSoldier); @@ -7623,9 +7620,9 @@ static int l_SetEnterCombatMode (lua_State *L) return 0; SOLDIERTYPE* pGoon = NULL; - for ( UINT16 ubLoop = gTacticalStatus.Team[ CIV_TEAM ].bFirstID; ubLoop <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; ubLoop++ ) + for ( SoldierID ubLoop = gTacticalStatus.Team[ CIV_TEAM ].bFirstID; ubLoop <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; ++ubLoop) { - pGoon = MercPtrs[ ubLoop ]; + pGoon = ubLoop; if ( pGoon->ubCivilianGroup == group && pGoon->bActive && pGoon->bInSector && pGoon->stats.bLife >= OKLIFE && pGoon->aiData.bOppList[ ubID ] == SEEN_CURRENTLY ) { MakeCivHostile(pGoon); diff --git a/Strategic/Map Screen Interface Map.cpp b/Strategic/Map Screen Interface Map.cpp index 41e11cda..46332334 100644 --- a/Strategic/Map Screen Interface Map.cpp +++ b/Strategic/Map Screen Interface Map.cpp @@ -6948,19 +6948,15 @@ UINT32 WhatPlayerKnowsAboutEnemiesInSector( INT16 sSectorX, INT16 sSectorY ) BOOLEAN CanMercsScoutThisSector( INT16 sSectorX, INT16 sSectorY, INT8 bSectorZ ) { - INT32 iFirstId = 0, iLastId = 0; - INT32 iCounter = 0; SOLDIERTYPE *pSoldier = NULL; - // to speed it up a little? - iFirstId = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; - iLastId = gTacticalStatus.Team[ OUR_TEAM ].bLastID; - - for( iCounter = iFirstId; iCounter <= iLastId; iCounter++ ) + SoldierID id = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; + const SoldierID iLastId = gTacticalStatus.Team[ OUR_TEAM ].bLastID; + for( ; id <= iLastId; ++id ) { // get the soldier - pSoldier = &Menptr[ iCounter ]; + pSoldier = id; // is the soldier active if( pSoldier->bActive == FALSE ) diff --git a/Strategic/Map Screen Interface.cpp b/Strategic/Map Screen Interface.cpp index 8e51fa4c..42c65f78 100644 --- a/Strategic/Map Screen Interface.cpp +++ b/Strategic/Map Screen Interface.cpp @@ -6173,7 +6173,7 @@ BOOLEAN CanCharacterMoveInStrategic( SOLDIERTYPE *pSoldier, INT8 *pbErrorNumber ( !pSoldier->flags.fBetweenSectors ) && gMercProfiles[ ELDIN ].bMercStatus != MERC_IS_DEAD ) { //DBrot: More Rooms - UINT16 /*ubRoom,*/ cnt; + SoldierID /*ubRoom,*/ cnt; UINT16 usRoom; SOLDIERTYPE * pSoldier2; @@ -6181,8 +6181,9 @@ BOOLEAN CanCharacterMoveInStrategic( SOLDIERTYPE *pSoldier, INT8 *pbErrorNumber { cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; - for ( pSoldier2 = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; cnt++,pSoldier2++) + for ( ; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++cnt) { + pSoldier2 = cnt; if ( pSoldier2->bActive ) { if ( FindObj( pSoldier2, CHALICE ) != ITEM_NOT_FOUND ) diff --git a/Strategic/Merc Contract.cpp b/Strategic/Merc Contract.cpp index 848213e9..c8a85fdd 100644 --- a/Strategic/Merc Contract.cpp +++ b/Strategic/Merc Contract.cpp @@ -742,16 +742,12 @@ BOOLEAN WillMercRenew( SOLDIERTYPE *pSoldier, BOOLEAN fSayQuote ) void HandleBuddiesReactionToFiringMerc(SOLDIERTYPE *pFiredSoldier, INT8 bMoraleEvent ) { - UINT16 bMercID; - UINT16 bLastTeamID; - SOLDIERTYPE * pSoldier; - - - bMercID = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; - bLastTeamID = gTacticalStatus.Team[ gbPlayerNum ].bLastID; + SoldierID bMercID = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; + SoldierID bLastTeamID = gTacticalStatus.Team[ gbPlayerNum ].bLastID; // loop through all mercs to find buddies - for ( pSoldier = MercPtrs[ bMercID ]; bMercID <= bLastTeamID; bMercID++,pSoldier++) + for ( ; bMercID <= bLastTeamID; ++bMercID) { + SOLDIERTYPE *pSoldier = bMercID; //if the merc is active, in Arulco, not POW and is a buddy if ( WhichBuddy(pSoldier->ubProfile,pFiredSoldier->ubProfile) != (-1) && pSoldier->bActive && pSoldier->ubProfile != NO_PROFILE && diff --git a/Strategic/MilitiaIndividual.cpp b/Strategic/MilitiaIndividual.cpp index d40759af..bc950bf8 100644 --- a/Strategic/MilitiaIndividual.cpp +++ b/Strategic/MilitiaIndividual.cpp @@ -282,9 +282,9 @@ void UpdateMilitia( MILITIA aMilitia ) SOLDIERTYPE* GetUsedSoldierToIndividualMilitia( UINT32 aMilitiaId ) { - for ( UINT32 cnt = gTacticalStatus.Team[MILITIA_TEAM].bFirstID; cnt <= gTacticalStatus.Team[MILITIA_TEAM].bLastID; ++cnt ) + for ( SoldierID cnt = gTacticalStatus.Team[MILITIA_TEAM].bFirstID; cnt <= gTacticalStatus.Team[MILITIA_TEAM].bLastID; ++cnt ) { - SOLDIERTYPE *pSoldier = MercPtrs[cnt]; + SOLDIERTYPE *pSoldier = cnt; if ( pSoldier && pSoldier->bActive && pSoldier->usIndividualMilitiaID == aMilitiaId ) { return pSoldier; @@ -300,11 +300,11 @@ void ApplyTacticalLifeRatioToMilitia() if ( !gGameExternalOptions.fIndividualMilitia ) return; - SOLDIERTYPE* pSoldier; - UINT32 cnt = gTacticalStatus.Team[MILITIA_TEAM].bFirstID; - INT32 lastid = gTacticalStatus.Team[MILITIA_TEAM].bLastID; - for ( pSoldier = MercPtrs[cnt]; cnt < lastid; ++cnt, ++pSoldier ) + SoldierID cnt = gTacticalStatus.Team[MILITIA_TEAM].bFirstID; + SoldierID lastid = gTacticalStatus.Team[MILITIA_TEAM].bLastID; + for ( ; cnt < lastid; ++cnt ) { + SOLDIERTYPE *pSoldier = cnt; MILITIA militia; if ( pSoldier && pSoldier->bActive && pSoldier->stats.bLifeMax && GetMilitia( pSoldier->usIndividualMilitiaID, &militia ) ) { @@ -326,11 +326,11 @@ void ApplyMilitiaHealthRatioToTactical() if ( !gGameExternalOptions.fIndividualMilitia || !gGameExternalOptions.fIndividualMilitia_ManageHealth ) return; - SOLDIERTYPE* pSoldier; - UINT32 cnt = gTacticalStatus.Team[MILITIA_TEAM].bFirstID; - INT32 lastid = gTacticalStatus.Team[MILITIA_TEAM].bLastID; - for ( pSoldier = MercPtrs[cnt]; cnt < lastid; ++cnt, ++pSoldier ) + SoldierID cnt = gTacticalStatus.Team[MILITIA_TEAM].bFirstID; + SoldierID lastid = gTacticalStatus.Team[MILITIA_TEAM].bLastID; + for ( ; cnt < lastid; ++cnt ) { + SOLDIERTYPE *pSoldier = cnt; MILITIA militia; if ( pSoldier && pSoldier->bActive && pSoldier->stats.bLifeMax && GetMilitia( pSoldier->usIndividualMilitiaID, &militia ) ) { @@ -696,12 +696,12 @@ UINT32 GetIdOfUnusedIndividualMilitia( UINT8 aSoldierClass, UINT8 aSector ) // fitting data found - now we have to make sure this one isn't already in use BOOLEAN found = FALSE; - SOLDIERTYPE* pSoldier; - - INT32 cnt = gTacticalStatus.Team[MILITIA_TEAM].bFirstID; - INT32 lastid = gTacticalStatus.Team[MILITIA_TEAM].bLastID; - for ( pSoldier = MercPtrs[cnt]; cnt < lastid; ++cnt, ++pSoldier ) + SoldierID cnt = gTacticalStatus.Team[MILITIA_TEAM].bFirstID; + SoldierID lastid = gTacticalStatus.Team[MILITIA_TEAM].bLastID; + for ( ; cnt < lastid; ++cnt ) { + SOLDIERTYPE *pSoldier = cnt; + if ( pSoldier && pSoldier->bActive && ( *it ).id == pSoldier->usIndividualMilitiaID && IsLegalMilitiaId( pSoldier->usIndividualMilitiaID ) ) { found = TRUE; @@ -853,10 +853,11 @@ FLOAT PromoteIndividualMilitiaInSector( UINT8 aSector, FLOAT aPointsToAdd ) { BOOLEAN changesnecessary = FALSE; - SOLDIERTYPE* pSoldier = NULL; - int cnt = gTacticalStatus.Team[MILITIA_TEAM].bFirstID; - for ( pSoldier = MercPtrs[cnt]; cnt <= gTacticalStatus.Team[MILITIA_TEAM].bLastID; ++cnt, ++pSoldier ) + SoldierID cnt = gTacticalStatus.Team[MILITIA_TEAM].bFirstID; + SoldierID lastid = gTacticalStatus.Team[MILITIA_TEAM].bLastID; + for ( ; cnt < lastid; ++cnt ) { + SOLDIERTYPE *pSoldier = cnt; MILITIA militia; if ( pSoldier && GetMilitia( pSoldier->usIndividualMilitiaID, &militia ) ) diff --git a/Strategic/MiniEvents.cpp b/Strategic/MiniEvents.cpp index 88516ea3..21e4660e 100644 --- a/Strategic/MiniEvents.cpp +++ b/Strategic/MiniEvents.cpp @@ -1089,9 +1089,9 @@ namespace MiniEventHelpers INT16 x = 0; INT16 y = 0; INT8 z = 0; - for (UINT32 i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++i) + for (SoldierID i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++i) { - const SOLDIERTYPE* merc = MercPtrs[i]; + const SOLDIERTYPE* merc = i; if (merc && merc->ubProfile == profileId) { x = merc->sSectorX; @@ -1519,9 +1519,9 @@ void MiniEventsLua(UINT32 eventId) gAllMercs.clear(); // get all mercs eligible to get a mini event - for (UINT32 cnt = gTacticalStatus.Team[OUR_TEAM].bFirstID; cnt <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++cnt) + for (SoldierID cnt = gTacticalStatus.Team[OUR_TEAM].bFirstID; cnt <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++cnt) { - SOLDIERTYPE* pSoldier = MercPtrs[ cnt ]; + SOLDIERTYPE* pSoldier = cnt; if (pSoldier && pSoldier->bActive && pSoldier->stats.bLife > 0 @@ -1542,9 +1542,9 @@ void MiniEventsLua(UINT32 eventId) // second param: a table containing basic info about all of the player's mercs ({ nickname = profileid }) f.TableOpen(); - for (UINT32 i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++i) + for (SoldierID i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++i) { - const SOLDIERTYPE* merc = MercPtrs[i]; + const SOLDIERTYPE* merc = i; if (merc && merc->bActive && merc->bAssignment != IN_TRANSIT && !(merc->flags.uiStatusFlags & SOLDIER_VEHICLE) && !(AM_A_ROBOT(merc))) { std::wstring ws(gMercProfiles[merc->ubProfile].zNickname); @@ -1561,9 +1561,9 @@ void MiniEventsLua(UINT32 eventId) LuaFunction f = LuaFunction(gLS, "BeginRandomEvent"); // first param: a table containing basic info about all of the player's mercs ({ nickname = profileid }) f.TableOpen(); - for (UINT32 i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++i) + for ( SoldierID i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++i) { - const SOLDIERTYPE* merc = MercPtrs[i]; + const SOLDIERTYPE* merc = i; if (merc && merc->bActive && merc->bAssignment != IN_TRANSIT && !(merc->flags.uiStatusFlags & SOLDIER_VEHICLE) && !(AM_A_ROBOT(merc))) { std::wstring ws(gMercProfiles[merc->ubProfile].zNickname); diff --git a/Strategic/PreBattle Interface.cpp b/Strategic/PreBattle Interface.cpp index 73bb1cd8..30d8f540 100644 --- a/Strategic/PreBattle Interface.cpp +++ b/Strategic/PreBattle Interface.cpp @@ -296,7 +296,6 @@ FLOAT gAmbushRadiusModifier = 1.0f; void InitPreBattleInterface( GROUP *pBattleGroup, BOOLEAN fPersistantPBI ) { VOBJECT_DESC VObjectDesc; - INT32 i; UINT8 ubGroupID = 0; UINT16 ubNumStationaryEnemies = 0; UINT16 ubNumMobileEnemies = 0; @@ -600,9 +599,9 @@ void InitPreBattleInterface( GROUP *pBattleGroup, BOOLEAN fPersistantPBI ) //Count the number of players involved or not involved in this battle guiNumUninvolved = 0; guiNumInvolved = 0; - for( i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++i ) + for( SoldierID i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++i ) { - SOLDIERTYPE *pSoldier = MercPtrs[i]; + SOLDIERTYPE *pSoldier = i; if( pSoldier->bActive && pSoldier->stats.bLife && !(pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE) ) { if ( PlayerMercInvolvedInThisCombat( pSoldier ) ) @@ -889,9 +888,9 @@ void InitPreBattleInterface( GROUP *pBattleGroup, BOOLEAN fPersistantPBI ) // SANDRO - merc records - ambush experienced if ( GetEnemyEncounterCode() == ENEMY_AMBUSH_CODE || GetEnemyEncounterCode() == BLOODCAT_AMBUSH_CODE || GetEnemyEncounterCode() == ENEMY_AMBUSH_DEPLOYMENT_CODE || fAmbushPrevented ) { - for( i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++i ) + for( SoldierID i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++i ) { - SOLDIERTYPE *pSoldier = MercPtrs[i]; + SOLDIERTYPE *pSoldier = i; if( pSoldier->bActive && pSoldier->stats.bLife && !(pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE) ) { if ( PlayerMercInvolvedInThisCombat( pSoldier ) && pSoldier->ubProfile != NO_PROFILE ) @@ -1577,9 +1576,9 @@ void RenderPreBattleInterface() // | NAME | ASSIGN | COND | HP | BP | line = 0; y = TOP_Y + TOP_Y_TEXT_BUFFER - bListOffset; - 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) { - SOLDIERTYPE *pSoldier = MercPtrs[i]; + SOLDIERTYPE *pSoldier = id; if( pSoldier->bActive && pSoldier->stats.bLife && !(pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE) ) { if( PlayerMercInvolvedInThisCombat( pSoldier ) ) @@ -1623,9 +1622,9 @@ void RenderPreBattleInterface() { pGroup = gpGroupList; y = TOP_Y + TOP_Y_TEXT_BUFFER + ubUninvolvedStartY + UNINVOLVED_RELEVANT_HEIGHT - bListOffset; - 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 ) { - SOLDIERTYPE *pSoldier = MercPtrs[i]; + SOLDIERTYPE *pSoldier = id; if( pSoldier->bActive && pSoldier->stats.bLife && !(pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE) ) { if( !PlayerMercInvolvedInThisCombat(pSoldier) ) @@ -1816,9 +1815,9 @@ void RetreatMercsCallback( GUI_BUTTON *btn, INT32 reason ) { ///////////////////////////////////////////////////////////////////////////////// // SANDRO - merc records - times retreated counter - for( UINT16 i = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; i <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; i++ ) + for( SoldierID i = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; i <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++i ) { - SOLDIERTYPE *pSoldier = MercPtrs[i]; + SOLDIERTYPE *pSoldier = i; if ( pSoldier->bActive && pSoldier->stats.bLife >= OKLIFE ) { if ( PlayerMercInvolvedInThisCombat( pSoldier ) && pSoldier->ubProfile != NO_PROFILE ) @@ -2558,12 +2557,10 @@ BOOLEAN CurrentBattleSectorIs( INT16 sSectorX, INT16 sSectorY, INT16 sSectorZ ) void CheckForRobotAndIfItsControlled( void ) { - INT32 i; - // search for the robot on player's team - for( i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; i++ ) + for( SoldierID i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++i ) { - SOLDIERTYPE *pSoldier = MercPtrs[i]; + SOLDIERTYPE *pSoldier = i; if( pSoldier->bActive && pSoldier->stats.bLife && AM_A_ROBOT( pSoldier )) { // check whether it has a valid controller with it. This sets its ubRobotRemoteHolderID field. diff --git a/Strategic/Queen Command.cpp b/Strategic/Queen Command.cpp index 1ee6eaef..0841d470 100644 --- a/Strategic/Queen Command.cpp +++ b/Strategic/Queen Command.cpp @@ -103,13 +103,13 @@ void ValidateEnemiesHaveWeapons() { #ifdef JA2BETAVERSION SGPRect CenteringRect= {0 + xResOffset, 0, SCREEN_WIDTH - xResOffset, SCREEN_HEIGHT }; - INT32 i, iErrorDialog; + INT32 iErrorDialog; SOLDIERTYPE *pSoldier; INT32 iNumInvalid = 0; - for( i = gTacticalStatus.Team[ ENEMY_TEAM ].bFirstID; i <= gTacticalStatus.Team[ ENEMY_TEAM ].bLastID; ++i ) + for( SoldierID i = gTacticalStatus.Team[ ENEMY_TEAM ].bFirstID; i <= gTacticalStatus.Team[ ENEMY_TEAM ].bLastID; ++i ) { - pSoldier = MercPtrs[ i ]; + pSoldier = i; if( !pSoldier->bActive || !pSoldier->bInSector ) { continue; @@ -287,11 +287,12 @@ UINT16 NumPlayerTeamMembersInSector( INT16 sSectorX, INT16 sSectorY, INT8 sSecto { UINT16 teammemberspresent = 0; - SOLDIERTYPE* pTeamSoldier = NULL; - UINT16 bMercID = gTacticalStatus.Team[gbPlayerNum].bFirstID; - UINT16 bLastTeamID = gTacticalStatus.Team[gbPlayerNum].bLastID; - for ( pTeamSoldier = MercPtrs[bMercID]; bMercID <= bLastTeamID; ++bMercID, pTeamSoldier++ ) + SOLDIERTYPE *pTeamSoldier = NULL; + SoldierID bMercID = gTacticalStatus.Team[gbPlayerNum].bFirstID; + SoldierID bLastTeamID = gTacticalStatus.Team[gbPlayerNum].bLastID; + for ( ; bMercID <= bLastTeamID; ++bMercID ) { + pTeamSoldier = bMercID; // we test several conditions before we allow adding an opinion // other merc must be active, have a profile, be someone else and not be in transit or dead if ( pTeamSoldier->bActive && !pTeamSoldier->flags.fBetweenSectors && pTeamSoldier->stats.bLife > 0 && !(pTeamSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE) && @@ -505,7 +506,6 @@ void GetNumberOfEnemiesInSector( INT16 sSectorX, INT16 sSectorY, UINT16 *pubNumA void EndTacticalBattleForEnemy() { GROUP *pGroup; - INT32 i; //Clear enemies in battle for all stationary groups in the sector. if( gbWorldSectorZ > 0 ) @@ -558,15 +558,15 @@ void EndTacticalBattleForEnemy() //Check to see if any of our mercs have abandoned the militia during a battle. This is cause for a rather //severe loyalty blow. - for( i = gTacticalStatus.Team[ MILITIA_TEAM ].bFirstID; i <= gTacticalStatus.Team[ MILITIA_TEAM ].bLastID; ++i ) + for( SoldierID i = gTacticalStatus.Team[ MILITIA_TEAM ].bFirstID; i <= gTacticalStatus.Team[ MILITIA_TEAM ].bLastID; ++i ) { - SOLDIERTYPE *pSoldier = MercPtrs[i]; + SOLDIERTYPE *pSoldier = i; if( pSoldier->bActive && pSoldier->bInSector && pSoldier->stats.bLife >= OKLIFE ) { //found one live militia, so look for any enemies/creatures. // NOTE: this is relying on ENEMY_TEAM being immediately followed by CREATURE_TEAM - for(UINT16 j = gTacticalStatus.Team[ ENEMY_TEAM ].bFirstID; j <= gTacticalStatus.Team[ CREATURE_TEAM ].bLastID; ++i ) + for( SoldierID j = gTacticalStatus.Team[ ENEMY_TEAM ].bFirstID; j <= gTacticalStatus.Team[ CREATURE_TEAM ].bLastID; ++j ) { - SOLDIERTYPE *pEnemy = MercPtrs[j]; + SOLDIERTYPE *pEnemy = j; if( pEnemy->bActive && pEnemy->bInSector && pEnemy->stats.bLife >= OKLIFE ) { //confirmed at least one enemy here, so do the loyalty penalty. HandleGlobalLoyaltyEvent( GLOBAL_LOYALTY_ABANDON_MILITIA, gWorldSectorX, gWorldSectorY, 0 ); @@ -583,9 +583,9 @@ UINT16 NumFreeSlots( UINT8 ubTeam ) UINT16 ubNumFreeSlots = 0; //Count the number of free enemy slots. It is possible to have multiple groups exceed the maximum. - for ( INT32 i = gTacticalStatus.Team[ubTeam].bFirstID; i <= gTacticalStatus.Team[ubTeam].bLastID; ++i ) + for ( SoldierID i = gTacticalStatus.Team[ubTeam].bFirstID; i <= gTacticalStatus.Team[ubTeam].bLastID; ++i ) { - if ( !Menptr[i].bActive ) + if ( !i->bActive ) ++ubNumFreeSlots; } @@ -2106,14 +2106,14 @@ void AddPossiblePendingEnemiesToBattle() void NotifyPlayersOfNewEnemies() { - INT32 iSoldiers, iChosenSoldier, i; + INT32 iSoldiers, iChosenSoldier; SOLDIERTYPE *pSoldier; BOOLEAN fIgnoreBreath = FALSE; iSoldiers = 0; - for( i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; i++ ) + for( SoldierID i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++i ) { //find a merc that is aware. - pSoldier = MercPtrs[ i ]; + pSoldier = i; if( pSoldier->bInSector && pSoldier->bActive && pSoldier->stats.bLife >= OKLIFE && pSoldier->bBreath >= OKBREATH ) { iSoldiers++; @@ -2123,9 +2123,9 @@ void NotifyPlayersOfNewEnemies() { // look for an out of breath merc. fIgnoreBreath = TRUE; - for( i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; i++ ) + for( SoldierID i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++i ) { //find a merc that is aware. - pSoldier = MercPtrs[ i ]; + pSoldier = i; if( pSoldier->bInSector && pSoldier->bActive && pSoldier->stats.bLife >= OKLIFE ) { iSoldiers++; @@ -2135,9 +2135,9 @@ void NotifyPlayersOfNewEnemies() if( iSoldiers ) { iChosenSoldier = Random( iSoldiers ); - for( i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; i++ ) + for( SoldierID i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++i ) { //find a merc that is aware. - pSoldier = MercPtrs[ i ]; + pSoldier = i; if( pSoldier->bInSector && pSoldier->bActive && pSoldier->stats.bLife >= OKLIFE && ( ( pSoldier->bBreath >= OKBREATH ) || fIgnoreBreath ) ) { @@ -2969,13 +2969,13 @@ BOOLEAN PlayerSectorDefended( UINT8 ubSectorID ) BOOLEAN OnlyHostileCivsInSector() { SOLDIERTYPE *pSoldier; - INT32 i; + SoldierID i; BOOLEAN fHostileCivs = FALSE; //Look for any hostile civs. - for( i = gTacticalStatus.Team[ CIV_TEAM ].bFirstID; i <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; i++ ) + for( i = gTacticalStatus.Team[ CIV_TEAM ].bFirstID; i <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; ++i ) { - pSoldier = MercPtrs[ i ]; + pSoldier = i; if( pSoldier->bActive && pSoldier->bInSector && pSoldier->stats.bLife ) { if( !pSoldier->aiData.bNeutral ) @@ -2990,9 +2990,9 @@ BOOLEAN OnlyHostileCivsInSector() return FALSE; } //Look for anybody else hostile. If found, return FALSE immediately. - for( i = gTacticalStatus.Team[ ENEMY_TEAM ].bFirstID; i <= gTacticalStatus.Team[ ENEMY_TEAM ].bLastID; i++ ) + for( i = gTacticalStatus.Team[ ENEMY_TEAM ].bFirstID; i <= gTacticalStatus.Team[ ENEMY_TEAM ].bLastID; ++i ) { - pSoldier = MercPtrs[ i ]; + pSoldier = i; if( pSoldier->bActive && pSoldier->bInSector && pSoldier->stats.bLife ) { if( !pSoldier->aiData.bNeutral ) @@ -3001,9 +3001,9 @@ BOOLEAN OnlyHostileCivsInSector() } } } - for( i = gTacticalStatus.Team[ CREATURE_TEAM ].bFirstID; i <= gTacticalStatus.Team[ CREATURE_TEAM ].bLastID; i++ ) + for( i = gTacticalStatus.Team[ CREATURE_TEAM ].bFirstID; i <= gTacticalStatus.Team[ CREATURE_TEAM ].bLastID; ++i ) { - pSoldier = MercPtrs[ i ]; + pSoldier = i; if( pSoldier->bActive && pSoldier->bInSector && pSoldier->stats.bLife ) { if( !pSoldier->aiData.bNeutral ) @@ -3012,9 +3012,9 @@ BOOLEAN OnlyHostileCivsInSector() } } } - for( i = gTacticalStatus.Team[ MILITIA_TEAM ].bFirstID; i <= gTacticalStatus.Team[ MILITIA_TEAM ].bLastID; i++ ) + for( i = gTacticalStatus.Team[ MILITIA_TEAM ].bFirstID; i <= gTacticalStatus.Team[ MILITIA_TEAM ].bLastID; ++i ) { - pSoldier = MercPtrs[ i ]; + pSoldier = i; if( pSoldier->bActive && pSoldier->bInSector && pSoldier->stats.bLife ) { if( !pSoldier->aiData.bNeutral ) diff --git a/Strategic/Quests.cpp b/Strategic/Quests.cpp index c125bda6..3606eca6 100644 --- a/Strategic/Quests.cpp +++ b/Strategic/Quests.cpp @@ -394,7 +394,7 @@ BOOLEAN PCInSameRoom( UINT8 ubProfileID ) //DBrot: More Rooms //UINT8 ubRoom; UINT16 usRoom; - UINT16 bLoop; + SoldierID bLoop; SOLDIERTYPE * pSoldier; pNPC = FindSoldierByProfileID( ubProfileID, FALSE ); @@ -404,9 +404,9 @@ BOOLEAN PCInSameRoom( UINT8 ubProfileID ) } usRoom = gusWorldRoomInfo[ pNPC->sGridNo ]; - for ( bLoop = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; bLoop <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; bLoop++ ) + for ( bLoop = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; bLoop <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++bLoop ) { - pSoldier = MercPtrs[ bLoop ]; + pSoldier = bLoop; if ( pSoldier && pSoldier->bActive && pSoldier->bInSector ) { if ( gusWorldRoomInfo[ pSoldier->sGridNo ] == usRoom ) @@ -536,12 +536,11 @@ BOOLEAN FemalePresent( UINT8 ubProfileID ) BOOLEAN CheckPlayerHasHead( void ) { - UINT16 bLoop; SOLDIERTYPE * pSoldier; - for ( bLoop = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; bLoop <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; bLoop++ ) + for ( SoldierID bLoop = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; bLoop <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++bLoop ) { - pSoldier = MercPtrs[ bLoop ]; + pSoldier = bLoop; if ( pSoldier->bActive && pSoldier->stats.bLife > 0 ) { @@ -1714,9 +1713,9 @@ void GiveQuestRewardPoint( INT16 sQuestSectorX, INT16 sQuestsSectorY, INT8 bExpR { ScreenMsg( FONT_MCOLOR_LTBLUE, MSG_TESTVERSION, L"QUEST COMPLETED - Adding to merc records and awarding experiences (%d).", (bExpReward * gGameExternalOptions.usAwardSpecialExpForQuests) ); - for ( UINT16 i = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; i <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; i++ ) + for ( SoldierID i = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; i <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++i ) { - SOLDIERTYPE *pSoldier = MercPtrs[i]; + SOLDIERTYPE *pSoldier = 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 ) diff --git a/Strategic/Rebel Command.cpp b/Strategic/Rebel Command.cpp index 1688ea83..67e32bec 100644 --- a/Strategic/Rebel Command.cpp +++ b/Strategic/Rebel Command.cpp @@ -2178,9 +2178,9 @@ BOOLEAN SetupMissionAgentBox(UINT16 x, UINT16 y, INT8 index) // temp/fixme std::vector mercs; - for (UINT16 i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++i) + for ( SoldierID i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++i) { - SOLDIERTYPE* pSoldier = MercPtrs[i]; + SOLDIERTYPE* pSoldier = i; if (pSoldier && pSoldier->bActive && !(pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE) @@ -2823,9 +2823,9 @@ void PrepareMission(INT8 index) // confirmation popup std::vector mercs; - for (UINT16 i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++i) + for ( SoldierID i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++i) { - SOLDIERTYPE* pSoldier = MercPtrs[i]; + SOLDIERTYPE* pSoldier = i; if (pSoldier && pSoldier->bActive && !(pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE) @@ -2988,9 +2988,9 @@ void PrepareMission(INT8 index) if (!evt.sentGenericRebelAgent) { - for (UINT16 i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++i) + for ( SoldierID i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++i) { - SOLDIERTYPE* pSoldier = MercPtrs[i]; + SOLDIERTYPE* pSoldier = i; if (pSoldier->ubProfile == evt.mercProfileId) { TakeSoldierOutOfVehicle(pSoldier); @@ -4908,9 +4908,9 @@ void HandleStrategicEvent(const UINT32 eventParam) // make sure the merc's still on our team BOOLEAN foundMerc = FALSE; - for (UINT16 i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++i) + for ( SoldierID i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++i) { - const SOLDIERTYPE* pSoldier = MercPtrs[i]; + const SOLDIERTYPE* pSoldier = i; if (pSoldier->ubProfile == evt1.mercProfileId && pSoldier->bActive) { @@ -4979,9 +4979,9 @@ void HandleStrategicEvent(const UINT32 eventParam) if (!evt1.sentGenericRebelAgent) { - for (UINT16 i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++i) + for ( SoldierID i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++i) { - SOLDIERTYPE* pSoldier = MercPtrs[i]; + SOLDIERTYPE* pSoldier = i; if (pSoldier->ubProfile == evt1.mercProfileId) { if (mission == RCAM_FORGE_TRANSPORT_ORDERS) @@ -5006,9 +5006,9 @@ void HandleStrategicEvent(const UINT32 eventParam) { if (!evt1.sentGenericRebelAgent && foundMerc) { - for (UINT16 i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++i) + for ( SoldierID i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++i) { - SOLDIERTYPE* pSoldier = MercPtrs[i]; + SOLDIERTYPE* pSoldier = i; if (pSoldier->ubProfile == evt1.mercProfileId) { // mission failed! we tried, give some pity exp @@ -5028,9 +5028,9 @@ void HandleStrategicEvent(const UINT32 eventParam) if (!evt1.sentGenericRebelAgent && foundMerc) { - for (UINT16 i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++i) + for ( SoldierID i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++i) { - SOLDIERTYPE* pSoldier = MercPtrs[i]; + SOLDIERTYPE* pSoldier = i; if (pSoldier->ubProfile == evt1.mercProfileId) { // merc ready for reassignment diff --git a/Strategic/Strategic AI.cpp b/Strategic/Strategic AI.cpp index 8fbed770..91f80588 100644 --- a/Strategic/Strategic AI.cpp +++ b/Strategic/Strategic AI.cpp @@ -912,7 +912,6 @@ void RemovePlayersFromAllMismatchGroups( SOLDIERTYPE *pSoldier ) #ifdef JA2BETAVERSION void ValidatePlayersAreInOneGroupOnly() { - INT32 i; INT32 iGroups; INT32 iMismatches; INT32 iNumErrors; @@ -923,10 +922,10 @@ void ValidatePlayersAreInOneGroupOnly() UINT8 ubGroupID; //Go through each merc slot in the player team iNumErrors = 0; - for( i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; i++ ) + for( SoldierID i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++i ) { //check to see if the merc has a group ID - pSoldier = MercPtrs[ i ]; + pSoldier = i; if( !pSoldier || !pSoldier->bActive || !pSoldier->stats.bLife || !pSoldier->ubGroupID ) { //non-existant, dead, or in no group (don't care, skip to next merc) @@ -4107,13 +4106,12 @@ BOOLEAN LoadStrategicAI( HWFILE hFile ) } else { //We are in the basement sector, relocate queen to proper position. - INT32 i; - for( i = gTacticalStatus.Team[ CIV_TEAM ].bFirstID; i <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; i++ ) + for( SoldierID i = gTacticalStatus.Team[ CIV_TEAM ].bFirstID; i <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; ++i ) { - if( MercPtrs[ i ]->ubProfile == QUEEN ) + if( i->ubProfile == QUEEN ) { //Found queen, relocate her to 16866 BumpAnyExistingMerc( 16866 ); - TeleportSoldier( MercPtrs[ i ], 16866, TRUE ); + TeleportSoldier( i, 16866, TRUE ); break; } } diff --git a/Strategic/Strategic Merc Handler.cpp b/Strategic/Strategic Merc Handler.cpp index f510e653..8f8a0790 100644 --- a/Strategic/Strategic Merc Handler.cpp +++ b/Strategic/Strategic Merc Handler.cpp @@ -184,8 +184,8 @@ void StrategicHandlePlayerTeamMercDeath( SOLDIERTYPE *pSoldier ) // MercDailyUpdate() gets called every day at midnight. If something is to happen to a merc that day, add an event for it. void MercDailyUpdate() { - INT32 cnt; - UINT16 bLastTeamID; + SoldierID id; + SoldierID bLastTeamID; SOLDIERTYPE *pSoldier; //SOLDIERTYPE *pQuitList[ 21 ]; MERCPROFILESTRUCT *pProfile; @@ -217,12 +217,13 @@ void MercDailyUpdate() AddSameDayStrategicEvent( EVENT_BEGIN_CONTRACT_RENEWAL_SEQUENCE, MERC_ARRIVE_TIME_SLOT_2, 0 ); AddSameDayStrategicEvent( EVENT_BEGIN_CONTRACT_RENEWAL_SEQUENCE, MERC_ARRIVE_TIME_SLOT_3, 0 ); - cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; + id = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; bLastTeamID = gTacticalStatus.Team[ gbPlayerNum ].bLastID; //loop though all the mercs - for ( pSoldier = MercPtrs[ cnt ]; cnt <= bLastTeamID; ++cnt,++pSoldier) + for ( ; id <= bLastTeamID; ++id) { + pSoldier = id; //if the merc is active if ( ( pSoldier->bActive )&&( pSoldier->bAssignment != ASSIGNMENT_POW ) && ( pSoldier->bAssignment != IN_TRANSIT ) ) { @@ -374,11 +375,10 @@ void MercDailyUpdate() } } - //r eset the counter - cnt = 0; - - for ( pSoldier = MercPtrs[ cnt ]; cnt <= bLastTeamID; cnt++,pSoldier++) + //reset the counter + for ( id = 0; id <= bLastTeamID; ++id ) { + pSoldier = id; //if the merc is active if ( ( pSoldier->bActive )&&( pSoldier->bAssignment != ASSIGNMENT_POW ) && ( pSoldier->bAssignment != IN_TRANSIT ) ) { @@ -402,7 +402,7 @@ void MercDailyUpdate() // WANNE: Only send mails from the original 1.13 merc, and not from the wildfire merc, // otherwise we get wrong mails cause of hardcoded Email.edt structure!!!!! UINT16 numOriginalProfiles = 255; - for( cnt = 0; cnt < numOriginalProfiles; ++cnt) + for( UINT16 cnt = 0; cnt < numOriginalProfiles; ++cnt) { pProfile = &(gMercProfiles[ cnt ]); @@ -900,7 +900,7 @@ void MercComplainAboutEquipment( UINT8 ubProfile ) void UpdateBuddyAndHatedCounters( void ) { - UINT16 bMercID, bOtherID, bLastTeamID; + SoldierID bMercID, bOtherID, bLastTeamID; INT32 iLoop; UINT8 ubOtherProfileID; SOLDIERTYPE *pSoldier; @@ -913,8 +913,9 @@ void UpdateBuddyAndHatedCounters( void ) bLastTeamID = gTacticalStatus.Team[ gbPlayerNum ].bLastID; //loop though all the mercs - for ( pSoldier = MercPtrs[ bMercID ]; bMercID <= bLastTeamID; bMercID++,pSoldier++) + for ( ; bMercID <= bLastTeamID; ++bMercID ) { + pSoldier = bMercID; fSameGroupOnly = FALSE; //if the merc is active and on a combat assignment @@ -931,9 +932,9 @@ void UpdateBuddyAndHatedCounters( void ) fUpdatedTimeTillNextHatedComplaint = FALSE; bOtherID = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; - - for ( pOtherSoldier = MercPtrs[ bOtherID ]; bOtherID <= bLastTeamID; bOtherID++, pOtherSoldier++) + for ( ; bOtherID <= bLastTeamID; ++bOtherID ) { + pOtherSoldier = bOtherID; // is this guy in the same sector and on active duty (or in the same moving group) if (bOtherID != bMercID && pOtherSoldier->bActive && pOtherSoldier->bAssignment < ON_DUTY ) @@ -1248,15 +1249,16 @@ void UpdateBuddyAndHatedCounters( void ) void HourlyCamouflageUpdate( void ) { - UINT16 bMercID, bLastTeamID; + SoldierID bMercID, bLastTeamID; SOLDIERTYPE * pSoldier; BOOLEAN camoWoreOff = FALSE; bMercID = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; bLastTeamID = gTacticalStatus.Team[ gbPlayerNum ].bLastID; // loop through all mercs - for ( pSoldier = MercPtrs[ bMercID ]; bMercID <= bLastTeamID; bMercID++,pSoldier++) + for ( ; bMercID <= bLastTeamID; ++bMercID ) { + pSoldier = bMercID; if ( pSoldier->bActive ) { // SANDRO - new Ranger trait reduces camo degrading, which replaces camouflage trait diff --git a/Strategic/Strategic Movement.cpp b/Strategic/Strategic Movement.cpp index 8ebeaf87..09c9ff0c 100644 --- a/Strategic/Strategic Movement.cpp +++ b/Strategic/Strategic Movement.cpp @@ -5456,9 +5456,9 @@ BOOLEAN TestForBloodcatAmbush( GROUP *pGroup ) // merc recoeds - get a point to scouts if ( fBloodCatAmbushPrevented ) { - for( UINT16 i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; i++ ) + for( SoldierID i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++i ) { - SOLDIERTYPE *pSoldier = MercPtrs[i]; + SOLDIERTYPE *pSoldier = i; if( pSoldier->bActive && pSoldier->stats.bLife && !(pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE) ) { 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 ) @@ -5939,12 +5939,10 @@ BOOLEAN ValidateGroups( GROUP *pGroup ) BOOLEAN ScoutIsPresentInSquad( INT16 ubSectorNumX, INT16 ubSectorNumY ) { BOOLEAN fScoutPresent = FALSE; - INT32 i; - // 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++ ) + for( SoldierID i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++i ) { - SOLDIERTYPE *pSoldier = MercPtrs[i]; + SOLDIERTYPE *pSoldier = i; if( pSoldier->bActive && pSoldier->stats.bLife >= OKLIFE && pSoldier->sSectorX == ubSectorNumX && @@ -5982,9 +5980,9 @@ BOOLEAN ConcealedMercInSector( INT16 ubSectorNumX, INT16 ubSectorNumY, BOOLEAN a if ( !gGameOptions.fNewTraitSystem ) return FALSE; - for ( int i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++i ) + for ( SoldierID i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++i ) { - SOLDIERTYPE *pSoldier = MercPtrs[i]; + SOLDIERTYPE *pSoldier = i; if ( pSoldier->bActive && pSoldier->stats.bLife >= OKLIFE && SPY_LOCATION( pSoldier->bAssignment ) ) { if ( pSoldier->sSectorX == ubSectorNumX && pSoldier->sSectorY == ubSectorNumY && pSoldier->bSectorZ == 10 ) diff --git a/Strategic/Strategic Town Loyalty.cpp b/Strategic/Strategic Town Loyalty.cpp index 44fc5f1f..e9fdea1b 100644 --- a/Strategic/Strategic Town Loyalty.cpp +++ b/Strategic/Strategic Town Loyalty.cpp @@ -679,7 +679,6 @@ void HandleMurderOfCivilian( SOLDIERTYPE *pSoldier, BOOLEAN fIntentional ) INT8 bTownId = 0; INT32 iLoyaltyChange = 0; INT8 bSeenState = 0; - INT32 iCounter = 0; SOLDIERTYPE *pCivSoldier = NULL; UINT32 uiChanceFalseAccusal = 0; INT8 bKillerTeam = 0; @@ -789,10 +788,10 @@ void HandleMurderOfCivilian( SOLDIERTYPE *pSoldier, BOOLEAN fIntentional ) // check if LOS between any civ, killer and killed // if so, then do not adjust - for( iCounter = gTacticalStatus.Team[ CIV_TEAM ].bFirstID; iCounter <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; iCounter++ ) + for( SoldierID iCounter = gTacticalStatus.Team[ CIV_TEAM ].bFirstID; iCounter <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; ++iCounter ) { // set current civ soldier - pCivSoldier = MercPtrs[ iCounter ]; + pCivSoldier = iCounter; if ( pCivSoldier == pSoldier ) { @@ -2129,13 +2128,12 @@ BOOLEAN DidFirstBattleTakePlaceInThisTown( INT8 bTownId ) UINT32 PlayerStrength( void ) { - UINT16 ubLoop; - SOLDIERTYPE * pSoldier; + SOLDIERTYPE *pSoldier; UINT32 uiStrength, uiTotal = 0; - for ( ubLoop = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; ubLoop <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ubLoop++ ) + for ( SoldierID ubLoop = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; ubLoop <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++ubLoop ) { - pSoldier = MercPtrs[ ubLoop ]; + pSoldier = ubLoop; if ( pSoldier->bActive ) { if ( pSoldier->bInSector || (pSoldier->flags.fBetweenSectors && SECTORX( pSoldier->ubPrevSectorID ) == gWorldSectorX && SECTORY( pSoldier->ubPrevSectorID ) == gWorldSectorY && (pSoldier->bSectorZ == gbWorldSectorZ)) ) @@ -2151,13 +2149,12 @@ UINT32 PlayerStrength( void ) UINT32 EnemyStrength( void ) { - UINT16 ubLoop; SOLDIERTYPE * pSoldier; UINT32 uiStrength, uiTotal = 0; - for ( ubLoop = gTacticalStatus.Team[ ENEMY_TEAM ].bFirstID; ubLoop <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; ubLoop++ ) + for ( SoldierID ubLoop = gTacticalStatus.Team[ ENEMY_TEAM ].bFirstID; ubLoop <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; ++ubLoop ) { - pSoldier = MercPtrs[ ubLoop ]; + pSoldier = ubLoop; if ( pSoldier->bActive && pSoldier->bInSector && !pSoldier->aiData.bNeutral ) { // count this person's strength (condition), calculated as life reduced up to half according to maxbreath diff --git a/Strategic/Strategic Transport Groups.cpp b/Strategic/Strategic Transport Groups.cpp index 5cc85f3d..e385d6b5 100644 --- a/Strategic/Strategic Transport Groups.cpp +++ b/Strategic/Strategic Transport Groups.cpp @@ -222,9 +222,9 @@ void FillMapColoursForTransportGroups(INT32(&colorMap)[MAXIMUM_VALID_Y_COORDINAT // build map of detection sectors + ranges std::map, INT8> detectionMap; std::map monitoredTowns; - for( INT16 i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; i++ ) + for( SoldierID i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++i ) { - SOLDIERTYPE *pSoldier = MercPtrs[i]; + SOLDIERTYPE *pSoldier = i; if( pSoldier->bActive && pSoldier->stats.bLife >= OKLIFE && @@ -448,8 +448,8 @@ void UpdateTransportGroupInventory() if (gGameExternalOptions.fStrategicTransportGroupsEnabled == FALSE) return; - const int firstSlot = gTacticalStatus.Team[ ENEMY_TEAM ].bFirstID; - const int lastSlot = gTacticalStatus.Team[ ENEMY_TEAM ].bLastID; + const SoldierID firstSlot = gTacticalStatus.Team[ ENEMY_TEAM ].bFirstID; + const SoldierID lastSlot = gTacticalStatus.Team[ ENEMY_TEAM ].bLastID; const UINT8 progress = CurrentPlayerProgressPercentage(); enum ItemTypes @@ -481,9 +481,9 @@ void UpdateTransportGroupInventory() { // let's be nice to the player and only drop ammo for guns their mercs have in inventory std::set playerCalibres; - for (INT16 i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; i++) + for ( SoldierID i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++i) { - SOLDIERTYPE *pSoldier = MercPtrs[i]; + SOLDIERTYPE *pSoldier = i; if (pSoldier->bActive && !(pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE)) { for (int j = 0 ; j < pSoldier->inv.size(); ++j) @@ -602,9 +602,9 @@ void UpdateTransportGroupInventory() // cache the initial jeep count of every group we find std::map cachedGroupJeepCount; - for (int slot = firstSlot; (slot <= lastSlot); ++slot) + for ( SoldierID slot = firstSlot; (slot <= lastSlot); ++slot) { - SOLDIERTYPE* pSoldier = &Menptr[slot]; + SOLDIERTYPE* pSoldier = slot; const std::map>::iterator groupIter = transportGroupIdToSoldierMap.find(pSoldier->ubGroupID); if (groupIter != transportGroupIdToSoldierMap.end()) diff --git a/Strategic/mapscreen.cpp b/Strategic/mapscreen.cpp index 0f563116..d283a09a 100644 --- a/Strategic/mapscreen.cpp +++ b/Strategic/mapscreen.cpp @@ -12864,12 +12864,12 @@ void ReBuildCharactersList( void ) gCharactersList[ sCount ].usSolID = NOBODY; } - // fills array with pressence of player controlled characters - for ( INT32 cnt=gTacticalStatus.Team[ OUR_TEAM ].bFirstID; cnt <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; cnt++) + // fills array with presence of player controlled characters + for ( SoldierID soldier = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; soldier <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++soldier ) { - if(Menptr[ cnt ].bActive == 1) + if( soldier->bActive ) { - AddCharacter( &Menptr[ cnt ] ); + AddCharacter( soldier ); } } @@ -16029,19 +16029,15 @@ void MakeMapModesSuitableForDestPlotting( INT8 bCharNumber ) BOOLEAN AnyMovableCharsInOrBetweenThisSector( INT16 sSectorX, INT16 sSectorY, INT8 bSectorZ ) { - INT32 iFirstId = 0, iLastId = 0; - INT32 iCounter = 0; SOLDIERTYPE *pSoldier = NULL; - - // to speed it up a little? - iFirstId = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; - iLastId = gTacticalStatus.Team[ OUR_TEAM ].bLastID; + SoldierID id = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; + SoldierID iLastId = gTacticalStatus.Team[ OUR_TEAM ].bLastID; - for( iCounter = iFirstId; iCounter <= iLastId; iCounter++ ) + for( ; id <= iLastId; ++id) { // get the soldier - pSoldier = &Menptr[ iCounter ]; + pSoldier = id; // is the soldier active if( pSoldier->bActive == FALSE ) @@ -17629,12 +17625,11 @@ BOOLEAN CanGiveStrategicMilitiaMoveOrder( INT16 sMapX, INT16 sMapY ) // 3. they are a radio operator in an adjacent sector // 4. they are a radio operator in a sector adjacent to the militia's town // 5. they are a radio operator in a town adjacent to the militia's sector - SOLDIERTYPE *pSoldier = NULL; - UINT32 uiCnt = 0; - UINT32 firstid = gTacticalStatus.Team[OUR_TEAM].bFirstID; - UINT32 lastid = gTacticalStatus.Team[OUR_TEAM].bLastID; - for ( uiCnt = firstid, pSoldier = MercPtrs[uiCnt]; uiCnt <= lastid; ++uiCnt, ++pSoldier ) + SoldierID id = gTacticalStatus.Team[OUR_TEAM].bFirstID; + SoldierID lastid = gTacticalStatus.Team[OUR_TEAM].bLastID; + for ( ; id <= lastid; ++id) { + SOLDIERTYPE *pSoldier = id; if ( pSoldier && pSoldier->bActive && pSoldier->stats.bLife >= OKLIFE ) { BOOLEAN fRadioOperator = pSoldier->CanUseRadio( FALSE ); diff --git a/Strategic/strategic.cpp b/Strategic/strategic.cpp index 09513662..a4f662fe 100644 --- a/Strategic/strategic.cpp +++ b/Strategic/strategic.cpp @@ -101,16 +101,16 @@ BOOLEAN HandleStrategicDeath( SOLDIERTYPE *pSoldier ) void HandleSoldierDeadComments( SOLDIERTYPE *pSoldier ) { - INT32 cnt = 0; SOLDIERTYPE *pTeamSoldier; INT8 bBuddyIndex; // IF IT'S THE SELECTED GUY, MAKE ANOTHER SELECTED! - cnt = gTacticalStatus.Team[ pSoldier->bTeam ].bFirstID; + SoldierID cnt = gTacticalStatus.Team[ pSoldier->bTeam ].bFirstID; // see if this was the friend of a living merc - for ( pTeamSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ pSoldier->bTeam ].bLastID; cnt++,pTeamSoldier++) + for ( ; cnt <= gTacticalStatus.Team[ pSoldier->bTeam ].bLastID; ++cnt ) { + pTeamSoldier = cnt; if ( pTeamSoldier->stats.bLife >= OKLIFE && pTeamSoldier->bActive ) { bBuddyIndex = WhichBuddy( pTeamSoldier->ubProfile, pSoldier->ubProfile ); diff --git a/Strategic/strategicmap.cpp b/Strategic/strategicmap.cpp index ff7e2edc..191fb0ad 100644 --- a/Strategic/strategicmap.cpp +++ b/Strategic/strategicmap.cpp @@ -2429,15 +2429,15 @@ BOOLEAN MapExists( UINT8 * szFilename ) void RemoveMercsInSector( ) { - INT32 cnt; SOLDIERTYPE *pSoldier; // IF IT'S THE SELECTED GUY, MAKE ANOTHER SELECTED! - cnt = gTacticalStatus.Team[gbPlayerNum].bFirstID; + SoldierID cnt = gTacticalStatus.Team[gbPlayerNum].bFirstID; // ATE: only for OUR guys.. the rest is taken care of in TrashWorld() when a new sector is added... - for ( pSoldier = MercPtrs[cnt]; cnt <= gTacticalStatus.Team[gbPlayerNum].bLastID; cnt++, pSoldier++ ) + for ( ; cnt <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++cnt ) { + pSoldier = cnt; if ( pSoldier->bActive ) { pSoldier->RemoveSoldierFromGridNo( ); @@ -2698,7 +2698,6 @@ void HandleQuestCodeOnSectorEntry( INT16 sNewSectorX, INT16 sNewSectorY, INT8 bN //UINT8 ubRandomMiner[RANDOM_HEAD_MINERS] = { 106, 156, 157, 158 }; //UINT8 ubMiner, ubMinersPlaced, ubMine; UINT8 ubThisMine; - UINT16 cnt; SOLDIERTYPE * pSoldier; // are we in a mine sector, on the surface? @@ -2783,13 +2782,13 @@ void HandleQuestCodeOnSectorEntry( INT16 sNewSectorX, INT16 sNewSectorY, INT8 bN // Check to see if any player merc has the Chalice; if so, // note it as stolen - cnt = gTacticalStatus.Team[gbPlayerNum].bFirstID; + SoldierID cnt = gTacticalStatus.Team[gbPlayerNum].bFirstID; - for ( pSoldier = MercPtrs[cnt]; cnt <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++cnt, pSoldier++ ) + for ( ; cnt <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++cnt ) { - if ( pSoldier->bActive ) + if ( cnt->bActive ) { - if ( FindObj( pSoldier, CHALICE ) != ITEM_NOT_FOUND ) + if ( FindObj( cnt, CHALICE ) != ITEM_NOT_FOUND ) { SetFactTrue( FACT_CHALICE_STOLEN ); } @@ -2951,7 +2950,6 @@ extern void SetLastTimePlayerWasInSector( ); // @calls SetLastTimePlayerWasInSector BOOLEAN EnterSector( INT16 sSectorX, INT16 sSectorY, INT8 bSectorZ ) { - INT32 i; UNDERGROUND_SECTORINFO *pNode = NULL; CHAR8 bFilename[50]; @@ -2968,9 +2966,9 @@ BOOLEAN EnterSector( INT16 sSectorX, INT16 sSectorY, INT8 bSectorZ ) //@@@Evaluate if ( gfWorldLoaded ) { - for ( i = gTacticalStatus.Team[CIV_TEAM].bFirstID; i <= gTacticalStatus.Team[CIV_TEAM].bLastID; i++ ) + for ( SoldierID i = gTacticalStatus.Team[CIV_TEAM].bFirstID; i <= gTacticalStatus.Team[CIV_TEAM].bLastID; ++i ) { - SOLDIERTYPE *pSoldier = MercPtrs[i]; + SOLDIERTYPE *pSoldier = i; if ( pSoldier->bActive && pSoldier->bInSector ) { SetupProfileInsertionDataForSoldier( pSoldier ); @@ -3099,7 +3097,6 @@ BOOLEAN EnterSector( INT16 sSectorX, INT16 sSectorY, INT8 bSectorZ ) void UpdateMercsInSector( INT16 sSectorX, INT16 sSectorY, INT8 bSectorZ ) { - INT32 cnt; SOLDIERTYPE *pSoldier; BOOLEAN fPOWSquadSet = FALSE; UINT8 ubPOWSquad = 0; @@ -3129,8 +3126,9 @@ void UpdateMercsInSector( INT16 sSectorX, INT16 sSectorY, INT8 bSectorZ ) //if( !(gTacticalStatus.uiFlags & LOADING_SAVED_GAME ) ) { - for ( cnt = 0, pSoldier = MercPtrs[cnt]; cnt < MAX_NUM_SOLDIERS; ++cnt, ++pSoldier ) + for ( SoldierID cnt = 0; cnt < MAX_NUM_SOLDIERS; ++cnt ) { + pSoldier = cnt; if ( gfRestoringEnemySoldiersFromTempFile && cnt >= gTacticalStatus.Team[ENEMY_TEAM].bFirstID && cnt <= gTacticalStatus.Team[CREATURE_TEAM].bLastID ) @@ -3954,7 +3952,6 @@ UINT8 GetStrategicInsertionDataFromAdjacentMoveDirection( UINT8 ubTacticalDirect void JumpIntoAdjacentSector( UINT8 ubTacticalDirection, UINT8 ubJumpCode, INT32 sAdditionalData )//dnl ch56 151009 { - INT32 cnt; SOLDIERTYPE *pSoldier; SOLDIERTYPE *pValidSoldier = NULL; GROUP *pGroup; @@ -3972,11 +3969,12 @@ void JumpIntoAdjacentSector( UINT8 ubTacticalDirection, UINT8 ubJumpCode, INT32 { // TODO: Check flags to see if we can jump! // Move controllable mercs! - cnt = gTacticalStatus.Team[gbPlayerNum].bFirstID; + SoldierID cnt = gTacticalStatus.Team[gbPlayerNum].bFirstID; // look for all mercs on the same team, - for ( pSoldier = MercPtrs[cnt]; cnt <= gTacticalStatus.Team[gbPlayerNum].bLastID; cnt++, pSoldier++ ) + for ( ; cnt <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++cnt ) { + pSoldier = cnt; // If we are controllable if ( OK_CONTROLLABLE_MERC( pSoldier ) && pSoldier->bAssignment == CurrentSquad( ) ) { @@ -4214,12 +4212,13 @@ void JumpIntoAdjacentSector( UINT8 ubTacticalDirection, UINT8 ubJumpCode, INT32 void JumpIntoEscapedSector(UINT8 ubTacticalDirection) { // Remove any incapacitated mercs from current squads and assign them to new squad - UINT32 i = gTacticalStatus.Team[gbPlayerNum].bFirstID; - UINT32 const lastID = gTacticalStatus.Team[gbPlayerNum].bLastID; + SoldierID id = gTacticalStatus.Team[gbPlayerNum].bFirstID; + SoldierID const lastID = gTacticalStatus.Team[gbPlayerNum].bLastID; INT8 currentSquad = -1; - for (SOLDIERTYPE* pSoldier = MercPtrs[i]; i <= lastID; ++i, ++pSoldier) + for ( ; id <= lastID; ++id ) { + SOLDIERTYPE *pSoldier = id; // Are we not active in sector if (!pSoldier->bActive || !pSoldier->bInSector || pSoldier->stats.bLife >= OKLIFE) { @@ -4833,7 +4832,6 @@ BOOLEAN SoldierOKForSectorExit( SOLDIERTYPE * pSoldier, INT8 bExitDirection, INT //ATE: Returns FALSE if NOBODY is close enough, 1 if ONLY selected guy is and 2 if all on squad are... BOOLEAN OKForSectorExit( INT8 bExitDirection, INT32 usAdditionalData, UINT32 *puiTraverseTimeInMinutes )//dnl ch56 151009 { - INT32 cnt; SOLDIERTYPE *pSoldier; BOOLEAN fAtLeastOneMercControllable = FALSE; BOOLEAN fOnlySelectedGuy = FALSE; @@ -4876,11 +4874,12 @@ BOOLEAN OKForSectorExit( INT8 bExitDirection, INT32 usAdditionalData, UINT32 *pu gbPotentiallyAbandonedEPCSlotID = NOBODY; // Look through all mercs and check if they are within range of east end.... - cnt = gTacticalStatus.Team[gbPlayerNum].bFirstID; + SoldierID cnt = gTacticalStatus.Team[gbPlayerNum].bFirstID; // look for all mercs on the same team, - for ( pSoldier = MercPtrs[cnt]; cnt <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++cnt, ++pSoldier ) + for ( ; cnt <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++cnt ) { + pSoldier = cnt; // If we are controllable if ( OK_CONTROLLABLE_MERC( pSoldier ) && (pSoldier->bAssignment == CurrentSquad( ) || (pSoldier->bAssignment == VEHICLE && pSoldier->iVehicleId != iHelicopterVehicleId && GetSoldierStructureForVehicle( pSoldier->iVehicleId )->bAssignment == CurrentSquad( ))) ) @@ -5157,7 +5156,7 @@ void SetSamHackStatus( INT16 sSectorX, INT16 sSectorY, INT8 sStatus ) BOOLEAN CanGoToTacticalInSector( INT16 sX, INT16 sY, UINT8 ubZ ) { - INT32 cnt; + SoldierID cnt; SOLDIERTYPE *pSoldier; // if not a valid sector @@ -5170,8 +5169,9 @@ BOOLEAN CanGoToTacticalInSector( INT16 sX, INT16 sY, UINT8 ubZ ) cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; // look for all living, fighting mercs on player's team. Robot and EPCs qualify! - for ( pSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; cnt++, pSoldier++) + for ( ; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++cnt ) { + pSoldier = cnt; // ARM: now allows loading of sector with all mercs below OKLIFE as long as they're alive if( ( pSoldier->bActive && pSoldier->stats.bLife ) && !( pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE ) && ( pSoldier->bAssignment != IN_TRANSIT ) && ( pSoldier->bAssignment != ASSIGNMENT_POW ) && ( pSoldier->bAssignment != ASSIGNMENT_MINIEVENT ) && ( pSoldier->bAssignment != ASSIGNMENT_REBELCOMMAND ) && @@ -6430,8 +6430,6 @@ BOOLEAN IsSectorRoad( INT16 sSectorX, INT16 sSectorY ) BOOLEAN HandleDefiniteUnloadingOfWorld( UINT8 ubUnloadCode ) { - INT32 i; - // clear tactical queue ClearEventQueue( ); @@ -6493,9 +6491,9 @@ BOOLEAN HandleDefiniteUnloadingOfWorld( UINT8 ubUnloadCode ) //Setup the tactical existance of the current soldier. //@@@Evaluate - for ( i = gTacticalStatus.Team[CIV_TEAM].bFirstID; i <= gTacticalStatus.Team[CIV_TEAM].bLastID; i++ ) + for ( SoldierID i = gTacticalStatus.Team[CIV_TEAM].bFirstID; i <= gTacticalStatus.Team[CIV_TEAM].bLastID; ++i ) { - SOLDIERTYPE *pSoldier = MercPtrs[i]; + SOLDIERTYPE *pSoldier = i; if ( pSoldier->bActive && pSoldier->bInSector ) { SetupProfileInsertionDataForSoldier( pSoldier ); @@ -6514,18 +6512,18 @@ BOOLEAN HandlePotentialBringUpAutoresolveToFinishBattle( int pSectorX, int pSect { //We don't have mercs in the sector. Now, we check to see if there are BOTH enemies and militia. If both //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++ ) + for ( SoldierID i = gTacticalStatus.Team[ENEMY_TEAM].bFirstID; i <= gTacticalStatus.Team[CREATURE_TEAM].bLastID; ++i ) { - SOLDIERTYPE *pEnemy = MercPtrs[i]; + SOLDIERTYPE *pEnemy = i; if ( pEnemy->bActive && pEnemy->stats.bLife ) { 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++ ) + for ( SoldierID j = gTacticalStatus.Team[MILITIA_TEAM].bFirstID; j <= gTacticalStatus.Team[MILITIA_TEAM].bLastID; ++j ) { - SOLDIERTYPE *pMilitia = MercPtrs[i]; + SOLDIERTYPE *pMilitia = j; if ( pMilitia->bActive && pMilitia->stats.bLife && pMilitia->bSide == OUR_TEAM ) { if ( pMilitia->sSectorX == pSectorX && @@ -6567,7 +6565,6 @@ BOOLEAN HandlePotentialBringUpAutoresolveToFinishBattle( int pSectorX, int pSect BOOLEAN CheckAndHandleUnloadingOfCurrentWorld( ) { - INT32 i; INT16 sBattleSectorX, sBattleSectorY, sBattleSectorZ; //Don't bother checking this if we don't have a world loaded. @@ -6592,9 +6589,9 @@ BOOLEAN CheckAndHandleUnloadingOfCurrentWorld( ) { //The user has decided to let the game autoresolve the current battle. if ( gWorldSectorX == sBattleSectorX && gWorldSectorY == sBattleSectorY && gbWorldSectorZ == sBattleSectorZ ) { - for ( i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; i++ ) + for ( SoldierID i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++i ) { //If we have a live and valid soldier - SOLDIERTYPE *pSoldier = MercPtrs[i]; + SOLDIERTYPE *pSoldier = i; if ( pSoldier->bActive && pSoldier->stats.bLife && !pSoldier->flags.fBetweenSectors && !(pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE) && !AM_A_ROBOT( pSoldier ) && !AM_AN_EPC( pSoldier ) ) { if ( pSoldier->sSectorX == gWorldSectorX && @@ -6610,9 +6607,9 @@ BOOLEAN CheckAndHandleUnloadingOfCurrentWorld( ) } else { //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++ ) + for ( SoldierID i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++i ) { //If we have a live and valid soldier - SOLDIERTYPE *pSoldier = MercPtrs[i]; + SOLDIERTYPE *pSoldier = i; if ( pSoldier->bActive && pSoldier->stats.bLife && !pSoldier->flags.fBetweenSectors && !(pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE) && !AM_A_ROBOT( pSoldier ) && !AM_AN_EPC( pSoldier ) ) { if ( pSoldier->sSectorX == gWorldSectorX && diff --git a/Tactical/Air Raid.cpp b/Tactical/Air Raid.cpp index 5066e3e0..e498c89b 100644 --- a/Tactical/Air Raid.cpp +++ b/Tactical/Air Raid.cpp @@ -187,7 +187,6 @@ void ScheduleAirRaid( AIR_RAID_DEFINITION *pAirRaidDef ) BOOLEAN BeginAirRaid( ) { - INT32 cnt=0; BOOLEAN fOK = FALSE; SOLDIERTYPE *pSoldier; gfQuoteSaid = FALSE; @@ -215,9 +214,10 @@ BOOLEAN BeginAirRaid( ) // Do we have any guys in here... DebugMsg(TOPIC_JA2,DBG_LEVEL_3,String("BeginAirRaid: check for mercs: first id = %d, last id = %d ",gTacticalStatus.Team[ gbPlayerNum ].bFirstID, gTacticalStatus.Team[ gbPlayerNum ].bLastID)); - cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; - for ( cnt = 0, 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; DebugMsg(TOPIC_JA2,DBG_LEVEL_3,String("BeginAirRaid: soldier id = %d, active = %d",pSoldier->ubID,pSoldier->bActive)); if ( pSoldier->bActive ) { @@ -309,18 +309,18 @@ INT32 PickLocationNearAnyMercInSector( ) UINT16 ubNumMercs = 0; UINT16 ubChosenMerc; SOLDIERTYPE *pTeamSoldier; - INT32 cnt=0; // Loop through all our guys and randomly say one from someone in our sector DebugMsg(TOPIC_JA2,DBG_LEVEL_3,"PickLocationNearAnyMercInSector"); // set up soldier ptr as first element in mercptrs list - cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; + SoldierID cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; // run through list DebugMsg(TOPIC_JA2,DBG_LEVEL_3,String("PickLocationNearAnyMercInSector: total guys = %d", gTacticalStatus.Team[ gbPlayerNum ].bLastID)); - 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... DebugMsg(TOPIC_JA2,DBG_LEVEL_3,String("PickLocationNearAnyMercInSector: looping %d",cnt)); if ( OK_INSECTOR_MERC( pTeamSoldier ) ) @@ -1057,9 +1057,10 @@ void HandleAirRaid( ) DebugMsg(TOPIC_JA2,DBG_LEVEL_3,String("HandleAirRaid: check for mercs: first id = %d, last id = %d ",gTacticalStatus.Team[ gbPlayerNum ].bFirstID, gTacticalStatus.Team[ gbPlayerNum ].bLastID)); SOLDIERTYPE * pSoldier; BOOLEAN fOK = FALSE; - int cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; - for ( cnt = 0, 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; DebugMsg(TOPIC_JA2,DBG_LEVEL_3,String("HandleAirRaid: soldier id = %d, active = %d",pSoldier->ubID,pSoldier->bActive)); if ( pSoldier->bActive ) { @@ -1447,12 +1448,12 @@ void EndAirRaid( ) if ( !gTacticalStatus.Team[ ENEMY_TEAM ].bTeamActive && !gTacticalStatus.Team[ CREATURE_TEAM ].bTeamActive ) { SOLDIERTYPE * pTeamSoldier; - INT32 cnt; // Loop through all militia and restore them to peaceful status - cnt = gTacticalStatus.Team[ MILITIA_TEAM ].bFirstID; - for ( pTeamSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ MILITIA_TEAM ].bLastID; cnt++,pTeamSoldier++) + SoldierID cnt = gTacticalStatus.Team[ MILITIA_TEAM ].bFirstID; + for ( ; cnt <= gTacticalStatus.Team[ MILITIA_TEAM ].bLastID; ++cnt ) { + pTeamSoldier = cnt; if ( pTeamSoldier->bActive && pTeamSoldier->bInSector ) { pTeamSoldier->aiData.bAlertStatus = STATUS_GREEN; @@ -1462,8 +1463,9 @@ void EndAirRaid( ) cnt = gTacticalStatus.Team[ CIV_TEAM ].bFirstID; // Loop through all civs and restore them to peaceful status - for ( pTeamSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; cnt++,pTeamSoldier++) + for ( ; cnt <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; ++cnt ) { + pTeamSoldier = cnt; if ( pTeamSoldier->bActive && pTeamSoldier->bInSector ) { pTeamSoldier->aiData.bAlertStatus = STATUS_GREEN; diff --git a/Tactical/Boxing.cpp b/Tactical/Boxing.cpp index b48a4447..d667d93f 100644 --- a/Tactical/Boxing.cpp +++ b/Tactical/Boxing.cpp @@ -478,8 +478,6 @@ BOOLEAN AnotherFightPossible( void ) // a player has at least OKLIFE + 5 life // and at least one fight HAS occurred - UINT16 ubLoop; - SOLDIERTYPE * pSoldier; UINT8 ubAvailable; ubAvailable = BoxersAvailable(); @@ -490,9 +488,8 @@ BOOLEAN AnotherFightPossible( void ) } // Loop through all mercs on player team - ubLoop = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; - pSoldier = MercPtrs[ ubLoop ]; - for ( ; ubLoop <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++ubLoop, pSoldier++ ) + SoldierID pSoldier = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; + for ( ; pSoldier <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++pSoldier ) { if ( pSoldier->bActive && pSoldier->bInSector && pSoldier->stats.bLife > (OKLIFE + 5) && !pSoldier->bCollapsed ) { diff --git a/Tactical/Campaign.cpp b/Tactical/Campaign.cpp index 9fa4b48e..a488fda3 100644 --- a/Tactical/Campaign.cpp +++ b/Tactical/Campaign.cpp @@ -1836,13 +1836,9 @@ void TestDumpStatChanges(void) void AwardExperienceBonusToActiveSquad( UINT8 ubExpBonusType ) { - UINT16 usXPs = 0; - UINT16 ubGuynum; - SOLDIERTYPE *pSoldier; - - Assert ( ubExpBonusType < NUM_EXP_BONUS_TYPES ); + UINT16 usXPs = 0; switch ( ubExpBonusType ) { case EXP_BONUS_MINIMUM: usXPs = 25; break; @@ -1853,9 +1849,9 @@ void AwardExperienceBonusToActiveSquad( UINT8 ubExpBonusType ) } // to do: find guys in sector on the currently active squad, those that are conscious get this amount in XPs - for ( ubGuynum = gTacticalStatus.Team[ gbPlayerNum ].bFirstID, pSoldier = MercPtrs[ ubGuynum ]; - ubGuynum <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; - ubGuynum++, pSoldier++ ) + for ( SoldierID pSoldier = gTacticalStatus.Team[ gbPlayerNum ].bFirstID ; + pSoldier <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; + ++pSoldier) { if ( pSoldier->bActive && pSoldier->bInSector && IsMercOnCurrentSquad( pSoldier ) && ( pSoldier->stats.bLife >= CONSCIOUSNESS ) && !( pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE ) && !AM_A_ROBOT( pSoldier ) ) diff --git a/Tactical/Dialogue Control.cpp b/Tactical/Dialogue Control.cpp index e6b12677..0534fb05 100644 --- a/Tactical/Dialogue Control.cpp +++ b/Tactical/Dialogue Control.cpp @@ -1759,9 +1759,10 @@ void AdditionalTacticalCharacterDialogue_AllInSector(INT16 aSectorX, INT16 aSect UINT16 usEventNr, UINT32 aData1, UINT32 aData2, UINT32 aData3, INT32 aAroundGridno, INT32 aRadius ) { SOLDIERTYPE* pSoldier; - int 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; if ( pSoldier->stats.bLife >= OKLIFE && pSoldier->bActive && pSoldier->ubProfile != ausIgnoreProfile && pSoldier->sSectorX == aSectorX && pSoldier->sSectorY == aSectorY && pSoldier->bSectorZ == aSectorZ && @@ -3122,10 +3123,10 @@ void HandleDialogueEnd( FACETYPE *pFace ) break; default: // select random enemy, who we see, who sees us and isn't deaf - for(UINT16 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 ) { - if( MercPtrs[cnt] != NULL && MercPtrs[cnt]->aiData.bOppList[pSoldier->ubID] == SEEN_CURRENTLY - && MercPtrs[pSoldier->ubID]->aiData.bOppList[cnt] == SEEN_CURRENTLY && !( MercPtrs[cnt]->bDeafenedCounter > 0 ) ) + if( cnt->aiData.bOppList[pSoldier->ubID] == SEEN_CURRENTLY + && pSoldier->ubID->aiData.bOppList[cnt] == SEEN_CURRENTLY && !( cnt->bDeafenedCounter > 0 ) ) { ubSeenEnemies[ubSeenEnemiesCnt] = cnt; ubSeenEnemiesCnt++; @@ -3297,16 +3298,16 @@ void SayQuoteFromAnyBodyInSector( UINT16 usQuoteNum ) UINT16 ubNumMercs = 0; UINT16 ubChosenMerc; SOLDIERTYPE *pTeamSoldier; - INT32 cnt; // 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 id = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; // run through list - for ( pTeamSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; cnt++,pTeamSoldier++ ) + for ( ; id <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++id ) { + pTeamSoldier = id; // Add guy if he's a candidate... if ( OK_INSECTOR_MERC( pTeamSoldier ) && !AM_AN_EPC( pTeamSoldier ) && !( pTeamSoldier->flags.uiStatusFlags & SOLDIER_GASSED ) && !(AM_A_ROBOT( pTeamSoldier )) && !pTeamSoldier->flags.fMercAsleep ) { @@ -3329,7 +3330,7 @@ void SayQuoteFromAnyBodyInSector( UINT16 usQuoteNum ) #endif } - ubMercsInSector[ ubNumMercs ] = (UINT16)cnt; + ubMercsInSector[ ubNumMercs ] = (UINT16)id; ubNumMercs++; } } @@ -3342,7 +3343,7 @@ void SayQuoteFromAnyBodyInSector( UINT16 usQuoteNum ) // If we are air raid, AND red exists somewhere... if ( usQuoteNum == QUOTE_AIR_RAID ) { - for ( cnt = 0; cnt < ubNumMercs; cnt++ ) + for ( UINT16 cnt = 0; cnt < ubNumMercs; cnt++ ) { if ( ubMercsInSector[ cnt ] == 11 ) { @@ -3366,16 +3367,16 @@ void SayQuoteFromAnyBodyInThisSector( INT16 sSectorX, INT16 sSectorY, INT8 bSect UINT16 ubNumMercs = 0; UINT16 ubChosenMerc; SOLDIERTYPE *pTeamSoldier; - INT32 cnt; // 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; if ( pTeamSoldier->bActive ) { // Add guy if he's a candidate... @@ -3419,16 +3420,16 @@ void SayQuoteFromNearbyMercInSector( INT32 sGridNo, INT8 bDistance, UINT16 usQuo UINT16 ubNumMercs = 0; UINT16 ubChosenMerc; SOLDIERTYPE *pTeamSoldier; - INT32 cnt; // 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 ) && PythSpacesAway( sGridNo, pTeamSoldier->sGridNo ) < bDistance && !AM_AN_EPC( pTeamSoldier ) && !( pTeamSoldier->flags.uiStatusFlags & SOLDIER_GASSED ) && !(AM_A_ROBOT( pTeamSoldier )) && !pTeamSoldier->flags.fMercAsleep && SoldierTo3DLocationLineOfSightTest( pTeamSoldier, sGridNo, 0, 0, TRUE ) ) @@ -3464,14 +3465,15 @@ void SayQuote58FromNearbyMercInSector( INT32 sGridNo, INT8 bDistance, UINT16 usQ UINT16 ubNumMercs = 0; UINT16 ubChosenMerc; SOLDIERTYPE *pTeamSoldier; - INT32 cnt = gTacticalStatus.Team[gbPlayerNum].bFirstID; + SoldierID cnt = gTacticalStatus.Team[gbPlayerNum].bFirstID; // Loop through all our guys and randomly say one from someone in our sector // set up soldier ptr as first element in mercptrs list // 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 ) && PythSpacesAway( sGridNo, pTeamSoldier->sGridNo ) < bDistance && !AM_AN_EPC( pTeamSoldier ) && !( pTeamSoldier->flags.uiStatusFlags & SOLDIER_GASSED ) && !(AM_A_ROBOT( pTeamSoldier )) && !pTeamSoldier->flags.fMercAsleep && SoldierTo3DLocationLineOfSightTest( pTeamSoldier, sGridNo, 0, 0, TRUE ) ) diff --git a/Tactical/DisplayCover.cpp b/Tactical/DisplayCover.cpp index 40f674f1..852375d0 100644 --- a/Tactical/DisplayCover.cpp +++ b/Tactical/DisplayCover.cpp @@ -711,9 +711,10 @@ void CalculateCover() if (gTacticalStatus.fAtLeastOneGuyOnMultiSelect) // view of selected mercs { // OK, loop through all guys who are 'multi-selected' and - INT32 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; if (pSoldier->bActive && pSoldier->bInSector) { if (pSoldier->flags.uiStatusFlags & SOLDIER_MULTI_SELECTED) diff --git a/Tactical/Drugs And Alcohol.cpp b/Tactical/Drugs And Alcohol.cpp index 60a38884..db33d4ae 100644 --- a/Tactical/Drugs And Alcohol.cpp +++ b/Tactical/Drugs And Alcohol.cpp @@ -407,16 +407,16 @@ BOOLEAN MercDrugged( SOLDIERTYPE *pSoldier ) void HourlyDrugUpdate( ) { - for ( UINT16 ubID = gTacticalStatus.Team[OUR_TEAM].bFirstID; ubID <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++ubID ) + for ( SoldierID ubID = gTacticalStatus.Team[OUR_TEAM].bFirstID; ubID <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++ubID ) { // every hour, we lower our alcohol counter - if ( MercPtrs[ubID]->newdrugs.drinkstaken > 0.0f ) + if ( ubID->newdrugs.drinkstaken > 0.0f ) { - MercPtrs[ubID]->newdrugs.drinkstaken = max( 0.0, MercPtrs[ubID]->newdrugs.drinkstaken - 0.15f ); + ubID->newdrugs.drinkstaken = max( 0.0, ubID->newdrugs.drinkstaken - 0.15f ); - if ( MercPtrs[ubID]->newdrugs.drinkstaken <= 0.0f ) + if ( ubID->newdrugs.drinkstaken <= 0.0f ) { - MercPtrs[ubID]->usSoldierFlagMask2 &= ~SOLDIER_HUNGOVER; + ubID->usSoldierFlagMask2 &= ~SOLDIER_HUNGOVER; } } } diff --git a/Tactical/DynamicDialogue.cpp b/Tactical/DynamicDialogue.cpp index 6b197ae3..62af182d 100644 --- a/Tactical/DynamicDialogue.cpp +++ b/Tactical/DynamicDialogue.cpp @@ -1632,11 +1632,11 @@ void HandleDynamicOpinionsDailyRefresh( ) RolloverDynamicOpinions( usProfileA ); } - SOLDIERTYPE* pSoldier = NULL; - UINT16 bMercID = gTacticalStatus.Team[gbPlayerNum].bFirstID; - UINT16 bLastTeamID = gTacticalStatus.Team[gbPlayerNum].bLastID; - for ( pSoldier = MercPtrs[bMercID]; bMercID <= bLastTeamID; ++bMercID, pSoldier++ ) + SoldierID bMercID = gTacticalStatus.Team[gbPlayerNum].bFirstID; + SoldierID bLastTeamID = gTacticalStatus.Team[gbPlayerNum].bLastID; + for ( ; bMercID <= bLastTeamID; ++bMercID ) { + SOLDIERTYPE* pSoldier = bMercID; if ( pSoldier->bActive && pSoldier->ubProfile != NO_PROFILE && !(pSoldier->bAssignment == IN_TRANSIT || AM_A_ROBOT(pSoldier) || pSoldier->bAssignment == ASSIGNMENT_DEAD) ) @@ -1672,11 +1672,11 @@ void RolloverDynamicOpinions( UINT8 usProfileA ) // check wether other people are friends with someone else we hate. All persons must be in Arulco void CheckForFriendsofHated( SOLDIERTYPE* pSoldier ) { - UINT16 bMercID, bOtherID, bThirdID, bLastTeamID; - INT8 bOpinion = -1; - INT8 bSecondOpinion = -1; - SOLDIERTYPE* pOtherSoldier; - SOLDIERTYPE* pThirdSoldier; + SoldierID bMercID, bOtherID, bThirdID, bLastTeamID; + INT8 bOpinion = -1; + INT8 bSecondOpinion = -1; + SOLDIERTYPE *pOtherSoldier; + SOLDIERTYPE *pThirdSoldier; // make sure we ourselves aren't in transit if ( !pSoldier->bActive || pSoldier->ubProfile == NO_PROFILE || AM_A_ROBOT(pSoldier) || pSoldier->bAssignment == IN_TRANSIT || pSoldier->bAssignment == ASSIGNMENT_DEAD ) @@ -1687,8 +1687,9 @@ void CheckForFriendsofHated( SOLDIERTYPE* pSoldier ) // loop through all other mercs bOtherID = gTacticalStatus.Team[gbPlayerNum].bFirstID; - for ( pOtherSoldier = MercPtrs[bOtherID]; bOtherID <= bLastTeamID; ++bOtherID, pOtherSoldier++ ) + for ( ; bOtherID <= bLastTeamID; ++bOtherID ) { + pOtherSoldier = bOtherID; // skip past ourselves and all inactive mercs if ( bOtherID != bMercID && pOtherSoldier->bActive && pOtherSoldier->ubProfile != NO_PROFILE && !(pOtherSoldier->bAssignment == IN_TRANSIT || @@ -1702,8 +1703,9 @@ void CheckForFriendsofHated( SOLDIERTYPE* pSoldier ) // there is someone in our team that we hate. We dislike his friends somewhat, purely because they like our foe // loop through all other mercs bThirdID = gTacticalStatus.Team[gbPlayerNum].bFirstID; - for ( pThirdSoldier = MercPtrs[bThirdID]; bThirdID <= bLastTeamID; ++bThirdID, pThirdSoldier++ ) + for ( ; bThirdID <= bLastTeamID; ++bThirdID ) { + pThirdSoldier = bThirdID; // skip past ourselves and all inactive mercs if ( bThirdID != bMercID && bThirdID != bOtherID && pThirdSoldier->bActive && pThirdSoldier->ubProfile != NO_PROFILE && !(pThirdSoldier->bAssignment == IN_TRANSIT || @@ -1843,11 +1845,11 @@ void HandleDynamicOpinionTeamDrinking( SOLDIERTYPE* pSoldier ) if ( !pSoldier || pSoldier->ubProfile == NO_PROFILE || AM_A_ROBOT(pSoldier) || pSoldier->newdrugs.drinkstaken <= 0.0 ) return; - SOLDIERTYPE* pTeamSoldier = NULL; - UINT16 bMercID = gTacticalStatus.Team[gbPlayerNum].bFirstID; - UINT16 bLastTeamID = gTacticalStatus.Team[gbPlayerNum].bLastID; - for ( pTeamSoldier = MercPtrs[bMercID]; bMercID <= bLastTeamID; ++bMercID, pTeamSoldier++ ) + SoldierID bMercID = gTacticalStatus.Team[gbPlayerNum].bFirstID; + SoldierID bLastTeamID = gTacticalStatus.Team[gbPlayerNum].bLastID; + for ( ; bMercID <= bLastTeamID; ++bMercID) { + SOLDIERTYPE* pTeamSoldier = bMercID; // everybody other merc in the same sector can get updated if they are drugged too if ( pTeamSoldier->bActive && pTeamSoldier->ubProfile != NO_PROFILE && pTeamSoldier->ubProfile != pSoldier->ubProfile && pTeamSoldier->sSectorX == pSoldier->sSectorX && pTeamSoldier->sSectorY == pSoldier->sSectorY && pTeamSoldier->bSectorZ == pSoldier->bSectorZ && @@ -1902,11 +1904,11 @@ void HandleDynamicOpinionTeaching( SOLDIERTYPE* pSoldier, UINT8 ubStat ) break; } - SOLDIERTYPE* pTeamSoldier = NULL; - UINT16 bMercID = gTacticalStatus.Team[gbPlayerNum].bFirstID; - UINT16 bLastTeamID = gTacticalStatus.Team[gbPlayerNum].bLastID; - for ( pTeamSoldier = MercPtrs[bMercID]; bMercID <= bLastTeamID; ++bMercID, pTeamSoldier++ ) + SoldierID bMercID = gTacticalStatus.Team[gbPlayerNum].bFirstID; + SoldierID bLastTeamID = gTacticalStatus.Team[gbPlayerNum].bLastID; + for ( ; bMercID <= bLastTeamID; ++bMercID) { + SOLDIERTYPE* pTeamSoldier = bMercID; // award event for every trainer in this sector if ( pTeamSoldier->bActive && pTeamSoldier->ubProfile != NO_PROFILE && pTeamSoldier->ubProfile != pSoldier->ubProfile && pTeamSoldier->sSectorX == pSoldier->sSectorX && pTeamSoldier->sSectorY == pSoldier->sSectorY && pTeamSoldier->bSectorZ == pSoldier->bSectorZ && @@ -1939,16 +1941,16 @@ UINT32 GetSoldierLeaderRating( SOLDIERTYPE* pSoldier ) } -UINT16 GetBestMercLeaderInSector( INT16 sX, INT16 sY, INT8 sZ ) +SoldierID GetBestMercLeaderInSector( INT16 sX, INT16 sY, INT8 sZ ) { - UINT32 highestrating = 0; - UINT16 bestid = NOBODY; + UINT32 highestrating = 0; + SoldierID bestid = NOBODY; + SoldierID bMercID = gTacticalStatus.Team[gbPlayerNum].bFirstID; + SoldierID bLastTeamID = gTacticalStatus.Team[gbPlayerNum].bLastID; - SOLDIERTYPE* pSoldier = NULL; - UINT16 bMercID = gTacticalStatus.Team[gbPlayerNum].bFirstID; - UINT16 bLastTeamID = gTacticalStatus.Team[gbPlayerNum].bLastID; - for ( pSoldier = MercPtrs[bMercID]; bMercID <= bLastTeamID; ++bMercID, ++pSoldier ) + for ( ; bMercID <= bLastTeamID; ++bMercID ) { + SOLDIERTYPE* pSoldier = bMercID; // everybody other merc in the same sector gets annoyed if ( pSoldier->bActive && pSoldier->ubProfile != NO_PROFILE && pSoldier->sSectorX == sX && pSoldier->sSectorY == sY && pSoldier->bSectorZ == sZ && @@ -1971,10 +1973,11 @@ UINT8 GetRandomMercInSectorNotInList( INT16 sX, INT16 sY, INT8 sZ, std::vector resultvector; SOLDIERTYPE* pTeamSoldier = NULL; - UINT16 bMercID = gTacticalStatus.Team[gbPlayerNum].bFirstID; - UINT16 bLastTeamID = gTacticalStatus.Team[gbPlayerNum].bLastID; - for ( pTeamSoldier = MercPtrs[bMercID]; bMercID <= bLastTeamID; ++bMercID, ++pTeamSoldier ) + SoldierID bMercID = gTacticalStatus.Team[gbPlayerNum].bFirstID; + SoldierID bLastTeamID = gTacticalStatus.Team[gbPlayerNum].bLastID; + for ( ; bMercID <= bLastTeamID; ++bMercID ) { + pTeamSoldier = bMercID; // everybody other merc in the same sector gets annoyed if ( pTeamSoldier->bActive && pTeamSoldier->ubProfile != NO_PROFILE && pTeamSoldier->sSectorX == sX && pTeamSoldier->sSectorY == sY && pTeamSoldier->bSectorZ == sZ && @@ -2017,10 +2020,11 @@ UINT8 GetFittingInterjectorProfile( UINT8 usEvent, UINT8 usProfileVictim, UINT8 std::vector profilevector; SOLDIERTYPE* pTeamSoldier = NULL; - UINT16 bMercID = gTacticalStatus.Team[pSoldierVictim->bTeam].bFirstID; - UINT16 bLastTeamID = gTacticalStatus.Team[pSoldierVictim->bTeam].bLastID; - for ( pTeamSoldier = MercPtrs[bMercID]; bMercID <= bLastTeamID; ++bMercID, pTeamSoldier++ ) + SoldierID bMercID = gTacticalStatus.Team[pSoldierVictim->bTeam].bFirstID; + SoldierID bLastTeamID = gTacticalStatus.Team[pSoldierVictim->bTeam].bLastID; + for ( ; bMercID <= bLastTeamID; ++bMercID ) { + pTeamSoldier = bMercID; // only people that are here if ( !pTeamSoldier->bActive || pTeamSoldier->bAssignment == IN_TRANSIT || pTeamSoldier->bAssignment == ASSIGNMENT_DEAD || pTeamSoldier->bAssignment == ASSIGNMENT_POW || pTeamSoldier->bAssignment == ASSIGNMENT_MINIEVENT || pTeamSoldier->bAssignment == ASSIGNMENT_REBELCOMMAND ) continue; @@ -2156,10 +2160,11 @@ void HandleDynamicOpinionChange( SOLDIERTYPE* pSoldier, UINT8 usEvent, BOOLEAN f UINT8 usEventUsed; // it is possible that the individual event is switched SOLDIERTYPE* pTeamSoldier = NULL; - UINT16 bMercID = gTacticalStatus.Team[gbPlayerNum].bFirstID; - UINT16 bLastTeamID = gTacticalStatus.Team[gbPlayerNum].bLastID; - for ( pTeamSoldier = MercPtrs[bMercID]; bMercID <= bLastTeamID; ++bMercID, pTeamSoldier++ ) + SoldierID bMercID = gTacticalStatus.Team[gbPlayerNum].bFirstID; + SoldierID bLastTeamID = gTacticalStatus.Team[gbPlayerNum].bLastID; + for ( ; bMercID <= bLastTeamID; ++bMercID ) { + pTeamSoldier = bMercID; // we test several conditions before we allow adding an opinion // other merc must be active, have a profile, be someone else and not be in transit or dead if ( pTeamSoldier->bActive && pTeamSoldier->ubProfile != NO_PROFILE && pTeamSoldier->ubProfile != pSoldier->ubProfile && diff --git a/Tactical/DynamicDialogue.h b/Tactical/DynamicDialogue.h index 262fde2b..92896a50 100644 --- a/Tactical/DynamicDialogue.h +++ b/Tactical/DynamicDialogue.h @@ -480,7 +480,7 @@ void HandleDynamicOpinionTeaching( SOLDIERTYPE* pSoldier, UINT8 ubStat ); // some events require a 'leader' - merc the team will regard as the one being in charge, and subsequently being praised or damned for the way things develop UINT32 GetSoldierLeaderRating( SOLDIERTYPE* pSoldier ); -UINT16 GetBestMercLeaderInSector( INT16 sX, INT16 sY, INT8 sZ ); +SoldierID GetBestMercLeaderInSector( INT16 sX, INT16 sY, INT8 sZ ); // get id of a random merc in a sector, provided one exists UINT8 GetRandomMercInSectorNotInList( INT16 sX, INT16 sY, INT8 sZ, std::vector aTaboo, BOOLEAN fImpOnly ); diff --git a/Tactical/End Game.cpp b/Tactical/End Game.cpp index 795ec9cc..919ed80b 100644 --- a/Tactical/End Game.cpp +++ b/Tactical/End Game.cpp @@ -240,15 +240,16 @@ void DoneFadeInKilledQueen( void ) void DoneFadeOutKilledQueen( void ) { - INT32 cnt; + SoldierID cnt; SOLDIERTYPE *pSoldier, *pTeamSoldier; // For one, loop through our current squad and move them over cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; // look for all mercs on the same team, - for ( pSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; cnt++,pSoldier++) + for (; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++cnt ) { + pSoldier = cnt; // Are we in this sector, On the current squad? if ( pSoldier->bActive && pSoldier->stats.bLife >= OKLIFE && pSoldier->bInSector && pSoldier->bAssignment == CurrentSquad( ) ) { @@ -272,8 +273,9 @@ void DoneFadeOutKilledQueen( void ) cnt = gTacticalStatus.Team[ ENEMY_TEAM ].bFirstID; // look for all mercs on the same team, - for ( pTeamSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ ENEMY_TEAM ].bLastID; cnt++,pTeamSoldier++) + for ( ; cnt <= gTacticalStatus.Team[ ENEMY_TEAM ].bLastID; ++cnt ) { + pSoldier = cnt; // Are we active and in sector..... if ( pTeamSoldier->bActive ) { @@ -350,7 +352,7 @@ void HandleDoneLastKilledQueenQuote( ) void EndQueenDeathEndgameBeginEndCimenatic( ) { - INT32 cnt; + SoldierID cnt; SOLDIERTYPE *pSoldier; // Start end cimimatic.... @@ -360,8 +362,9 @@ void EndQueenDeathEndgameBeginEndCimenatic( ) cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; // look for all mercs on the same team, - for ( pSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; cnt++,pSoldier++) + for ( ; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++cnt ) { + pSoldier = cnt; // Are we in this sector, On the current squad? if ( pSoldier->bActive && pSoldier->stats.bLife >= OKLIFE && !AM_AN_EPC( pSoldier ) ) { @@ -633,7 +636,7 @@ void FadeOutToLaptopOnEndGame( void ) void BeginHandleQueenBitchDeath( SOLDIERTYPE *pKillerSoldier, INT32 sGridNo, INT8 bLevel ) { SOLDIERTYPE *pTeamSoldier; - INT32 cnt; + SoldierID cnt; gpKillerSoldier = pKillerSoldier; @@ -654,8 +657,9 @@ void BeginHandleQueenBitchDeath( SOLDIERTYPE *pKillerSoldier, INT32 sGridNo, INT cnt = gTacticalStatus.Team[ CREATURE_TEAM ].bFirstID; // look for all mercs on the same team, - for ( pTeamSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ CREATURE_TEAM ].bLastID; cnt++,pTeamSoldier++) + for ( ; cnt <= gTacticalStatus.Team[ CREATURE_TEAM ].bLastID; ++cnt ) { + pTeamSoldier = cnt; // Are we active and ALIVE and in sector..... if ( pTeamSoldier->bActive && pTeamSoldier->stats.bLife > 0 ) { @@ -679,8 +683,7 @@ void BeginHandleQueenBitchDeath( SOLDIERTYPE *pKillerSoldier, INT32 sGridNo, INT void HandleQueenBitchDeath( SOLDIERTYPE *pKillerSoldier, INT32 sGridNo, INT8 bLevel ) { SOLDIERTYPE *pTeamSoldier; - INT32 cnt; - UINT16 ubKillerSoldierID = NOBODY; + SoldierID ubKillerSoldierID = NOBODY; // Start victory music here... SetMusicMode( MUSIC_TACTICAL_VICTORY ); @@ -693,13 +696,14 @@ void HandleQueenBitchDeath( SOLDIERTYPE *pKillerSoldier, INT32 sGridNo, INT8 bLe // STEP 1 ) START ALL QUOTES GOING! // OK - loop through all witnesses and see if they want to say something abou this... - 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 ) { if ( cnt != ubKillerSoldierID ) { + pTeamSoldier = cnt; if ( OK_INSECTOR_MERC( pTeamSoldier ) && !( pTeamSoldier->flags.uiStatusFlags & SOLDIER_GASSED ) && !AM_AN_EPC( pTeamSoldier ) ) { if ( QuoteExp[ pTeamSoldier->ubProfile ].QuoteExpWitnessQueenBugDeath ) diff --git a/Tactical/Enemy Soldier Save.cpp b/Tactical/Enemy Soldier Save.cpp index 2fdfa34f..2874685d 100644 --- a/Tactical/Enemy Soldier Save.cpp +++ b/Tactical/Enemy Soldier Save.cpp @@ -1395,7 +1395,6 @@ BOOLEAN NewWayOfSavingEnemyAndCivliansToTempFile( INT16 sSectorX, INT16 sSectorY { SOLDIERINITNODE *curr; SOLDIERTYPE *pSoldier; - INT32 i; INT32 slots = 0; UINT32 uiNumBytesWritten; UINT32 uiTimeStamp; @@ -1428,9 +1427,9 @@ BOOLEAN NewWayOfSavingEnemyAndCivliansToTempFile( INT16 sSectorX, INT16 sSectorY //STEP ONE: Prep the soldiers for saving... //modify the map's soldier init list to reflect the changes to the members still alive... - for( i = gTacticalStatus.Team[ ubStartID ].bFirstID; i <= gTacticalStatus.Team[ ubEndID ].bLastID; i++ ) + for( SoldierID i = gTacticalStatus.Team[ ubStartID ].bFirstID; i <= gTacticalStatus.Team[ ubEndID ].bLastID; ++i ) { - pSoldier = MercPtrs[ i ]; + pSoldier = i; //make sure the person is active, alive, in the sector, and is not a profiled person if( pSoldier && pSoldier->bActive /*&& pSoldier->bInSector*/ && pSoldier->stats.bLife && pSoldier->ubProfile == NO_PROFILE ) @@ -1584,9 +1583,9 @@ BOOLEAN NewWayOfSavingEnemyAndCivliansToTempFile( INT16 sSectorX, INT16 sSectorY return TRUE; } - for( i = gTacticalStatus.Team[ ubStartID ].bFirstID; i <= gTacticalStatus.Team[ ubEndID ].bLastID; i++ ) + for( SoldierID i = gTacticalStatus.Team[ ubStartID ].bFirstID; i <= gTacticalStatus.Team[ ubEndID ].bLastID; ++i ) { - pSoldier = MercPtrs[ i ]; + pSoldier = i; // CJC: note that bInSector is not required; the civ could be offmap! if( pSoldier->bActive /*&& pSoldier->bInSector*/ && pSoldier->stats.bLife ) { diff --git a/Tactical/Food.cpp b/Tactical/Food.cpp index 02d36567..709510f4 100644 --- a/Tactical/Food.cpp +++ b/Tactical/Food.cpp @@ -763,15 +763,16 @@ void EatFromInventory( SOLDIERTYPE *pSoldier, BOOLEAN fcanteensonly ) void HourlyFoodUpdate( void ) { - UINT16 bMercID, bLastTeamID; + SoldierID bMercID, bLastTeamID; SOLDIERTYPE * pSoldier = NULL; bMercID = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; bLastTeamID = gTacticalStatus.Team[ gbPlayerNum ].bLastID; // loop through all mercs to calculate their morale - for ( pSoldier = MercPtrs[ bMercID ]; bMercID <= bLastTeamID; ++bMercID, ++pSoldier) + for ( ; bMercID <= bLastTeamID; ++bMercID ) { + pSoldier = bMercID; //if the merc is active, and in Arulco if ( pSoldier && pSoldier->bActive && !AM_AN_EPC(pSoldier) && pSoldier->ubProfile != ROBOT && !IsVehicle(pSoldier) && !(pSoldier->bAssignment == IN_TRANSIT || pSoldier->bAssignment == ASSIGNMENT_DEAD ) ) { @@ -829,15 +830,16 @@ void SectorFillCanteens( void ) addtemperature = FOOD_WATER_POISONOUS_TEMPERATURE; // first step: fill all canteens in inventories - UINT16 bMercID, bLastTeamID; + SoldierID bMercID, bLastTeamID; SOLDIERTYPE * pSoldier = NULL; bMercID = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; bLastTeamID = gTacticalStatus.Team[ gbPlayerNum ].bLastID; // loop through all mercs - for ( pSoldier = MercPtrs[ bMercID ]; bMercID <= bLastTeamID; ++bMercID, pSoldier++) + for ( ; bMercID <= bLastTeamID; ++bMercID ) { + pSoldier = bMercID; //if the merc is in this sector if ( pSoldier->bActive && pSoldier->ubProfile != NO_PROFILE && pSoldier->bInSector && ( pSoldier->sSectorX == gWorldSectorX ) && ( pSoldier->sSectorY == gWorldSectorY ) && ( pSoldier->bSectorZ == gbWorldSectorZ) ) { @@ -903,15 +905,16 @@ void SectorFillCanteens( void ) INT32 drumsize = Food[Item[pWaterDrum->usItem].foodtype].bDrinkPoints; // first step: fill all canteens in inventories - UINT16 bMercID, bLastTeamID; + SoldierID bMercID, bLastTeamID; SOLDIERTYPE * pSoldier = NULL; bMercID = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; bLastTeamID = gTacticalStatus.Team[ gbPlayerNum ].bLastID; // loop through all mercs - for ( pSoldier = MercPtrs[ bMercID ]; bMercID <= bLastTeamID; ++bMercID, pSoldier++) + for ( ; bMercID <= bLastTeamID; ++bMercID ) { + pSoldier = bMercID; //if the merc is in this sector if ( pSoldier->bActive && pSoldier->ubProfile != NO_PROFILE && pSoldier->bInSector && ( pSoldier->sSectorX == gWorldSectorX ) && ( pSoldier->sSectorY == gWorldSectorY ) && ( pSoldier->bSectorZ == gbWorldSectorZ) ) { diff --git a/Tactical/Handle Doors.cpp b/Tactical/Handle Doors.cpp index c5b74bb1..52704cfc 100644 --- a/Tactical/Handle Doors.cpp +++ b/Tactical/Handle Doors.cpp @@ -439,9 +439,9 @@ void ProcessImplicationsOfPCMessingWithDoor( SOLDIERTYPE * pSoldier ) if ( (InARoom( pSoldier->sGridNo, &usRoom ) && IN_BROTHEL( usRoom )) || (gWorldSectorX == 5 && gWorldSectorY == MAP_ROW_D && gbWorldSectorZ == 0 && (pSoldier->sGridNo == gModSettings.iBrothelDoor1 || pSoldier->sGridNo == gModSettings.iBrothelDoor2 || pSoldier->sGridNo == gModSettings.iBrothelDoor3 ) ) )//11010,11177,11176 { // see if a kingpin goon can see us - for (UINT16 ubLoop = gTacticalStatus.Team[ CIV_TEAM ].bFirstID; ubLoop <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; ubLoop++ ) + for ( SoldierID ubLoop = gTacticalStatus.Team[ CIV_TEAM ].bFirstID; ubLoop <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; ++ubLoop ) { - pGoon = MercPtrs[ ubLoop ]; + pGoon = ubLoop; if ( pGoon->ubCivilianGroup == KINGPIN_CIV_GROUP && pGoon->bActive && pGoon->bInSector && pGoon->stats.bLife >= OKLIFE && pGoon->aiData.bOppList[ pSoldier->ubID ] == SEEN_CURRENTLY ) { MakeCivHostile(pGoon); diff --git a/Tactical/Handle Items.cpp b/Tactical/Handle Items.cpp index d95b6157..d58980fe 100644 --- a/Tactical/Handle Items.cpp +++ b/Tactical/Handle Items.cpp @@ -5389,15 +5389,16 @@ void UpdateGear() if ( (guiCurrentScreen != GAME_SCREEN && guiCurrentScreen != MSG_BOX_SCREEN) ) return; - UINT16 bMercID, bLastTeamID; + SoldierID bMercID, bLastTeamID; SOLDIERTYPE* pSoldier = NULL; bMercID = gTacticalStatus.Team[gbPlayerNum].bFirstID; bLastTeamID = gTacticalStatus.Team[gbPlayerNum].bLastID; // loop through all mercs - for ( pSoldier = MercPtrs[bMercID]; bMercID <= bLastTeamID; ++bMercID, ++pSoldier ) + for ( ; bMercID <= bLastTeamID; ++bMercID ) { + pSoldier = bMercID; //if the merc is in this sector if ( pSoldier->bActive && pSoldier->bInSector && (pSoldier->sSectorX == gWorldSectorX) && (pSoldier->sSectorY == gWorldSectorY) && (pSoldier->bSectorZ == gbWorldSectorZ) ) { @@ -6735,7 +6736,7 @@ void CheckForPickedOwnership( void ) UINT8 ubProfile; UINT8 ubCivGroup; SOLDIERTYPE * pSoldier; - UINT16 ubLoop; + SoldierID ubLoop; // LOOP THROUGH LIST TO FIND NODE WE WANT GetItemPool( gsTempGridNo, &pItemPool, gpTempSoldier->pathing.bLevel ); @@ -6762,9 +6763,9 @@ void CheckForPickedOwnership( void ) pItemPool = pItemPool->pNext; continue; } - for ( ubLoop = gTacticalStatus.Team[ CIV_TEAM ].bFirstID; ubLoop <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; ubLoop++ ) + for ( ubLoop = gTacticalStatus.Team[ CIV_TEAM ].bFirstID; ubLoop <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; ++ubLoop ) { - pSoldier = MercPtrs[ ubLoop ]; + pSoldier = ubLoop; if ( pSoldier && pSoldier->ubCivilianGroup == ubCivGroup ) { TestPotentialOwner( pSoldier ); diff --git a/Tactical/Handle UI.cpp b/Tactical/Handle UI.cpp index b53d91ba..aba46b8a 100644 --- a/Tactical/Handle UI.cpp +++ b/Tactical/Handle UI.cpp @@ -1403,15 +1403,16 @@ UINT32 UIHandleEndTurn( UI_EVENT *pUIEvent ) // WANNE: Ignore, so the game can continue ... } - INT32 tcnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; + SoldierID tcnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; SOLDIERTYPE *tS; INT16 sXOffset, sYOffset; INT32 sGridNo; UINT16 usSightLimit=0; - for ( tS = MercPtrs[ tcnt ]; tcnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++tcnt, tS++ ) + for ( ; tcnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++tcnt ) { + tS = tcnt; if ( tS->stats.bLife >= OKLIFE && tS->sGridNo != NOWHERE && tS->bInSector ) { //loop through all the gridnos that we are interested in @@ -2113,17 +2114,17 @@ UINT32 UIHandleCWait( UI_EVENT *pUIEvent ) // SelectedMercCanAffordMove UINT32 UIHandleCMoveMerc( UI_EVENT *pUIEvent ) { - INT32 usMapPos; - SOLDIERTYPE *pSoldier; - INT32 sDestGridNo; - INT32 sActionGridNo; - STRUCTURE *pStructure; - UINT8 ubDirection = 0xff; - BOOLEAN fAllMove; - UINT16 bLoop; - LEVELNODE *pIntTile; - INT32 sIntTileGridNo; - BOOLEAN fOldFastMove; + INT32 usMapPos; + SOLDIERTYPE *pSoldier; + INT32 sDestGridNo; + INT32 sActionGridNo; + STRUCTURE *pStructure; + UINT8 ubDirection = 0xff; + BOOLEAN fAllMove; + SoldierID bLoop; + LEVELNODE *pIntTile; + INT32 sIntTileGridNo; + BOOLEAN fOldFastMove; if ( gusSelectedSoldier != NOBODY ) { @@ -2144,13 +2145,14 @@ UINT32 UIHandleCMoveMerc( UI_EVENT *pUIEvent ) // Loop through all mercs and make go! // TODO: Only our squad! - for (bLoop=gTacticalStatus.Team[gbPlayerNum].bFirstID, pSoldier=MercPtrs[bLoop]; bLoop <= gTacticalStatus.Team[gbPlayerNum].bLastID; bLoop++, pSoldier++) + for (bLoop=gTacticalStatus.Team[gbPlayerNum].bFirstID; bLoop <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++bLoop ) { + pSoldier = bLoop; if ( OK_CONTROLLABLE_MERC( pSoldier ) && pSoldier->bAssignment == CurrentSquad( ) && !pSoldier->flags.fMercAsleep ) { - // If we can't be controlled, returninvalid... - if ( pSoldier->flags.uiStatusFlags & SOLDIER_ROBOT ) - { + // If we can't be controlled, returninvalid... + if ( pSoldier->flags.uiStatusFlags & SOLDIER_ROBOT ) + { if ( !pSoldier->CanRobotBeControlled( ) ) { continue;