diff --git a/Laptop/BobbyRGuns.cpp b/Laptop/BobbyRGuns.cpp index 26d2c43a..64e8281f 100644 --- a/Laptop/BobbyRGuns.cpp +++ b/Laptop/BobbyRGuns.cpp @@ -3719,26 +3719,27 @@ void OutOfStockMessageBoxCallBack( UINT8 bExitValue ) UINT8 CheckPlayersInventoryForGunMatchingGivenAmmoID( INT16 sItemID ) { UINT8 ubItemCount=0; - UINT16 ubMercCount; UINT8 ubPocketCount; - UINT16 ubFirstID = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; - UINT16 ubLastID = gTacticalStatus.Team[ OUR_TEAM ].bLastID; + SoldierID id; + SoldierID ubFirstID = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; + SoldierID ubLastID = gTacticalStatus.Team[ OUR_TEAM ].bLastID; //loop through all the mercs on the team - for( ubMercCount = ubFirstID; ubMercCount <= ubLastID; ++ubMercCount ) + for( id = ubFirstID; id <= ubLastID; ++id ) { - if( Menptr[ ubMercCount ].bActive ) + SOLDIERTYPE *pSoldier = id; + if( pSoldier->bActive ) { //loop through all the pockets on the merc - UINT8 invsize = Menptr[ ubMercCount ].inv.size(); + UINT8 invsize = pSoldier->inv.size(); for( ubPocketCount=0; ubPocketCountinv[ ubPocketCount ].usItem ].usItemClass == IC_GUN ) { //if the weapon uses the same kind of ammo as the one passed in, return true - if( Weapon[ Menptr[ ubMercCount ].inv[ ubPocketCount ].usItem ].ubCalibre == Magazine[ Item[ sItemID ].ubClassIndex ].ubCalibre ) + if( Weapon[ pSoldier->inv[ ubPocketCount ].usItem ].ubCalibre == Magazine[ Item[ sItemID ].ubClassIndex ].ubCalibre ) { ++ubItemCount; } diff --git a/Multiplayer/client.cpp b/Multiplayer/client.cpp index 8e1229d4..be5de69f 100644 --- a/Multiplayer/client.cpp +++ b/Multiplayer/client.cpp @@ -4102,7 +4102,6 @@ void recieveMISS (RPCParameters *rpcParameters) BOOLEAN check_status (void)// any 'enemies' and clients left to fight ?? { SOLDIERTYPE *pSoldier; - int cnt; int soldiers= 0 ; int numActiveSides = 0; @@ -4112,9 +4111,9 @@ BOOLEAN check_status (void)// any 'enemies' and clients left to fight ?? { soldiers=0; - for(cnt = gTacticalStatus.Team[ x ].bFirstID;cnt <= gTacticalStatus.Team[ x ].bLastID; cnt++) + for( SoldierID cnt = gTacticalStatus.Team[ x ].bFirstID;cnt <= gTacticalStatus.Team[ x ].bLastID; ++cnt) { - pSoldier = MercPtrs[ cnt ]; + pSoldier = cnt; if(pSoldier->stats.bLife >= OKLIFE && pSoldier->bActive && pSoldier->bInSector) { soldiers++; @@ -4331,14 +4330,14 @@ void null_team (RPCParameters *rpcParameters) { kickR* kick = (kickR*)rpcParameters->input; ScreenMsg( FONT_LTGREEN, MSG_INTERFACE, MPClientMessage[29],(kick->ubResult-5),client_names[kick->ubResult-6] ); - int fID = gTacticalStatus.Team[ kick->ubResult ].bFirstID; - int lID = gTacticalStatus.Team[ kick->ubResult ].bLastID; + SoldierID fID = gTacticalStatus.Team[ kick->ubResult ].bFirstID; + SoldierID lID = gTacticalStatus.Team[ kick->ubResult ].bLastID; if(kick->ubResult==netbTeam) fID=0,lID=19; - int cnt; - for ( cnt=fID ; cnt <= lID; cnt++ ) + SoldierID cnt; + for ( cnt=fID ; cnt <= lID; ++cnt ) { TacticalRemoveSoldier( cnt ); } diff --git a/Strategic/Quests.cpp b/Strategic/Quests.cpp index 3606eca6..4010cf5b 100644 --- a/Strategic/Quests.cpp +++ b/Strategic/Quests.cpp @@ -1713,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 ( SoldierID i = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; i <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++i ) + for ( SoldierID id = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; id <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++id ) { - SOLDIERTYPE *pSoldier = i; + SOLDIERTYPE *pSoldier = id; 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/Strategic Merc Handler.cpp b/Strategic/Strategic Merc Handler.cpp index 8f8a0790..e5c3daea 100644 --- a/Strategic/Strategic Merc Handler.cpp +++ b/Strategic/Strategic Merc Handler.cpp @@ -185,7 +185,7 @@ void StrategicHandlePlayerTeamMercDeath( SOLDIERTYPE *pSoldier ) void MercDailyUpdate() { SoldierID id; - SoldierID bLastTeamID; + SoldierID lastid; SOLDIERTYPE *pSoldier; //SOLDIERTYPE *pQuitList[ 21 ]; MERCPROFILESTRUCT *pProfile; @@ -218,10 +218,10 @@ void MercDailyUpdate() AddSameDayStrategicEvent( EVENT_BEGIN_CONTRACT_RENEWAL_SEQUENCE, MERC_ARRIVE_TIME_SLOT_3, 0 ); id = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; - bLastTeamID = gTacticalStatus.Team[ gbPlayerNum ].bLastID; + lastid = gTacticalStatus.Team[ gbPlayerNum ].bLastID; //loop though all the mercs - for ( ; id <= bLastTeamID; ++id) + for ( ; id <= lastid; ++id) { pSoldier = id; //if the merc is active @@ -376,7 +376,7 @@ void MercDailyUpdate() } //reset the counter - for ( id = 0; id <= bLastTeamID; ++id ) + for ( id = 0; id <= lastid; ++id ) { pSoldier = id; //if the merc is active diff --git a/Tactical/Morale.cpp b/Tactical/Morale.cpp index 6a3fcc85..3031cae1 100644 --- a/Tactical/Morale.cpp +++ b/Tactical/Morale.cpp @@ -728,9 +728,9 @@ void HandleMoraleEventForSoldier( SOLDIERTYPE * pSoldier, INT8 bMoraleEvent ) void HandleMoraleEvent( SOLDIERTYPE *pSoldier, INT8 bMoraleEvent, INT16 sMapX, INT16 sMapY, INT8 bMapZ ) { - UINT16 ubLoop; - SOLDIERTYPE * pTeamSoldier; - MERCPROFILESTRUCT * pProfile; + SoldierID id; + SOLDIERTYPE *pTeamSoldier; + MERCPROFILESTRUCT *pProfile; gfSomeoneSaidMoraleQuote = FALSE; @@ -778,9 +778,10 @@ void HandleMoraleEvent( SOLDIERTYPE *pSoldier, INT8 bMoraleEvent, INT16 sMapX, I case MORALE_BATTLE_WON: // affects everyone to varying degrees - ubLoop = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; - for ( pTeamSoldier = MercPtrs[ ubLoop ]; ubLoop <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ubLoop++, pTeamSoldier++ ) + id = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; + for ( ; id <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++id ) { + pTeamSoldier = id; if ( pTeamSoldier->bActive ) { if ( SOLDIER_IN_SECTOR( pTeamSoldier, sMapX, sMapY, bMapZ ) ) @@ -797,9 +798,10 @@ void HandleMoraleEvent( SOLDIERTYPE *pSoldier, INT8 bMoraleEvent, INT16 sMapX, I break; case MORALE_RAN_AWAY: // affects everyone to varying degrees - ubLoop = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; - for ( pTeamSoldier = MercPtrs[ ubLoop ]; ubLoop <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ubLoop++, pTeamSoldier++ ) + id = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; + for ( ; id <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++id ) { + pTeamSoldier = id; if ( pTeamSoldier->bActive ) { // CJC: adding to SOLDIER_IN_SECTOR check special stuff because the old sector values might @@ -869,9 +871,10 @@ void HandleMoraleEvent( SOLDIERTYPE *pSoldier, INT8 bMoraleEvent, INT16 sMapX, I case MORALE_MONSTER_QUEEN_KILLED: case MORALE_DEIDRANNA_KILLED: // affects everyone, everywhere - ubLoop = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; - for ( pTeamSoldier = MercPtrs[ ubLoop ]; ubLoop <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ubLoop++, pTeamSoldier++ ) + id = gTacticalStatus.Team[gbPlayerNum].bFirstID; + for ( ; id <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++id ) { + pTeamSoldier = id; if ( pTeamSoldier->bActive ) { if ( gGameOptions.fNewTraitSystem && bMoraleEvent != MORALE_DEIDRANNA_KILLED) @@ -898,9 +901,10 @@ void HandleMoraleEvent( SOLDIERTYPE *pSoldier, INT8 bMoraleEvent, INT16 sMapX, I case MORALE_GREAT_MORALE: case MORALE_AIRSTRIKE: // affects every in sector - ubLoop = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; - for ( pTeamSoldier = MercPtrs[ ubLoop ]; ubLoop <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ubLoop++, pTeamSoldier++ ) + id = gTacticalStatus.Team[gbPlayerNum].bFirstID; + for ( ; id <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++id ) { + pTeamSoldier = id; if ( pTeamSoldier->bActive && SOLDIER_IN_SECTOR( pTeamSoldier, sMapX, sMapY, bMapZ ) ) { HandleMoraleEventForSoldier( pTeamSoldier, bMoraleEvent ); @@ -913,9 +917,10 @@ void HandleMoraleEvent( SOLDIERTYPE *pSoldier, INT8 bMoraleEvent, INT16 sMapX, I Assert( pSoldier ); // affects everyone - ubLoop = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; - for ( pTeamSoldier = MercPtrs[ ubLoop ]; ubLoop <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ubLoop++, pTeamSoldier++ ) + id = gTacticalStatus.Team[gbPlayerNum].bFirstID; + for ( ; id <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++id ) { + pTeamSoldier = id; if ( pTeamSoldier->bActive ) { HandleMoraleEventForSoldier( pTeamSoldier, bMoraleEvent ); @@ -927,9 +932,10 @@ void HandleMoraleEvent( SOLDIERTYPE *pSoldier, INT8 bMoraleEvent, INT16 sMapX, I Assert( pSoldier ); // affects everyone, in sector differently than not, extra bonuses if it's a buddy or hated merc - ubLoop = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; - for ( pTeamSoldier = MercPtrs[ ubLoop ]; ubLoop <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ubLoop++, pTeamSoldier++ ) + id = gTacticalStatus.Team[gbPlayerNum].bFirstID; + for ( ; id <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++id ) { + pTeamSoldier = id; if ( pTeamSoldier->bActive && pTeamSoldier->ubProfile != NO_PROFILE) { pProfile = &(gMercProfiles[ pTeamSoldier->ubProfile ]); @@ -982,9 +988,10 @@ void HandleMoraleEvent( SOLDIERTYPE *pSoldier, INT8 bMoraleEvent, INT16 sMapX, I // female mercs get unhappy based on how sexist they are (=hate men) // gentlemen males get unhappy too - ubLoop = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; - for ( pTeamSoldier = MercPtrs[ ubLoop ]; ubLoop <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ubLoop++, pTeamSoldier++ ) + id = gTacticalStatus.Team[gbPlayerNum].bFirstID; + for ( ; id <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++id ) { + pTeamSoldier = id; if ( pTeamSoldier->bActive && pTeamSoldier->ubProfile != NO_PROFILE ) { if ( WhichHated( pTeamSoldier->ubProfile, pSoldier->ubProfile ) != -1 ) @@ -1044,9 +1051,10 @@ void HandleMoraleEvent( SOLDIERTYPE *pSoldier, INT8 bMoraleEvent, INT16 sMapX, I case MORALE_ENEMYGROUP_COWARD: // affects coward in sector - ubLoop = gTacticalStatus.Team[gbPlayerNum].bFirstID; - for ( pTeamSoldier = MercPtrs[ubLoop]; ubLoop <= gTacticalStatus.Team[gbPlayerNum].bLastID; ubLoop++, pTeamSoldier++ ) + id = gTacticalStatus.Team[gbPlayerNum].bFirstID; + for ( ; id <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++id ) { + pTeamSoldier = id; if ( pTeamSoldier->bActive && (pTeamSoldier->sSectorX == sMapX) && (pTeamSoldier->sSectorY == sMapY) && (pTeamSoldier->bSectorZ == bMapZ) ) { if ( DoesMercHavePersonality( pTeamSoldier, CHAR_TRAIT_COWARD ) ) @@ -1142,27 +1150,28 @@ void HandleMoraleEvent( SOLDIERTYPE *pSoldier, INT8 bMoraleEvent, INT16 sMapX, I void HourlyMoraleUpdate( void ) { - UINT16 bMercID, bOtherID, bLastTeamID; - INT8 bActualTeamOpinion; - INT8 bTeamMoraleModChange, bTeamMoraleModDiff; - INT8 bOpinion=-1; - INT32 iTotalOpinions; - INT8 bNumTeamMembers; - INT8 bHighestTeamLeadership = 0; - SOLDIERTYPE * pSoldier; - SOLDIERTYPE * pOtherSoldier; - MERCPROFILESTRUCT * pProfile; - BOOLEAN fSameGroupOnly; - static INT8 bStrategicMoraleUpdateCounter = 0; - BOOLEAN fFoundHated = FALSE; - INT8 bHated; + SoldierID bMercID, bOtherID, bLastTeamID; + INT8 bActualTeamOpinion; + INT8 bTeamMoraleModChange, bTeamMoraleModDiff; + INT8 bOpinion=-1; + INT32 iTotalOpinions; + INT8 bNumTeamMembers; + INT8 bHighestTeamLeadership = 0; + SOLDIERTYPE *pSoldier; + SOLDIERTYPE *pOtherSoldier; + MERCPROFILESTRUCT *pProfile; + BOOLEAN fSameGroupOnly; + static INT8 bStrategicMoraleUpdateCounter = 0; + BOOLEAN fFoundHated = FALSE; + INT8 bHated; 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, in Arulco, and conscious, not POW if ( pSoldier->bActive && pSoldier->ubProfile != NO_PROFILE && !(pSoldier->bAssignment == IN_TRANSIT || @@ -1194,8 +1203,9 @@ void HourlyMoraleUpdate( void ) // 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 || @@ -1345,13 +1355,12 @@ void HourlyMoraleUpdate( void ) void HandleSnitchCheck( void ) { - UINT16 bMercID, bOtherID; - INT8 bOpinion = -1; - UINT16 bLastTeamID; - SOLDIERTYPE* pSoldier; - SOLDIERTYPE* pOtherSoldier; - MERCPROFILESTRUCT* pProfile; - BOOLEAN fSameGroupOnly; + SoldierID bMercID, bOtherID, bLastTeamID; + INT8 bOpinion = -1; + SOLDIERTYPE *pSoldier; + SOLDIERTYPE *pOtherSoldier; + MERCPROFILESTRUCT *pProfile; + BOOLEAN fSameGroupOnly; // anv: save merc id and his negative morale event for snitches std::vector snitcheventvector; @@ -1359,8 +1368,9 @@ void HandleSnitchCheck( void ) 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, in Arulco, not POW, not a vehicle if ( pSoldier && pSoldier->bActive && pSoldier->ubProfile != NO_PROFILE && !(pSoldier->bAssignment == IN_TRANSIT || @@ -1383,8 +1393,9 @@ void HandleSnitchCheck( void ) } // 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 && pOtherSoldier->bActive && pOtherSoldier->ubProfile != NO_PROFILE && !(pOtherSoldier->bAssignment == IN_TRANSIT || @@ -1558,7 +1569,7 @@ void HandleSnitchesReports( std::vector& aVec ) void RememberSnitchableEvent( UINT8 ubTargetProfile, UINT8 ubSecondaryTargetProfile, BOOLEAN fSameGroupOnly, UINT8 ubEventType, std::vector& aVec ) { - UINT16 bSnitchID; + SoldierID bSnitchID; INT16 sSnitchingChance = 0; UINT8 ubSnitchProfile; SOLDIERTYPE * pSnitch; @@ -1570,8 +1581,9 @@ void RememberSnitchableEvent( UINT8 ubTargetProfile, UINT8 ubSecondaryTargetProf // loop through all other mercs bSnitchID = gTacticalStatus.Team[gbPlayerNum].bFirstID; - for ( pSnitch = MercPtrs[bSnitchID]; bSnitchID <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++bSnitchID, pSnitch++ ) + for ( ; bSnitchID <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++bSnitchID ) { + pSnitch = bSnitchID; ubSnitchProfile = pSnitch->ubProfile; // skip past ourselves and all inactive mercs if ( ProfileHasSkillTrait( ubSnitchProfile, SNITCH_NT ) && @@ -1703,10 +1715,10 @@ void DailyMoraleUpdate(SOLDIERTYPE *pSoldier) // Added by SANDRO BOOLEAN IsShowOffNearBy( SOLDIERTYPE * pSoldier ) { - UINT32 uiLoop; - SOLDIERTYPE * pTeammate; - BOOLEAN fOneException = FALSE; - BOOLEAN fYesHeIs = FALSE; + SoldierID uiLoop; + SOLDIERTYPE *pTeammate; + BOOLEAN fOneException = FALSE; + BOOLEAN fYesHeIs = FALSE; if (!pSoldier) { @@ -1717,9 +1729,9 @@ BOOLEAN IsShowOffNearBy( SOLDIERTYPE * pSoldier ) return( FALSE ); } - for ( uiLoop = gTacticalStatus.Team[ pSoldier->bTeam ].bFirstID; uiLoop <= gTacticalStatus.Team[ pSoldier->bTeam ].bLastID; uiLoop++) + for ( uiLoop = gTacticalStatus.Team[ pSoldier->bTeam ].bFirstID; uiLoop <= gTacticalStatus.Team[ pSoldier->bTeam ].bLastID; ++uiLoop ) { - pTeammate = MercPtrs[ uiLoop ]; + pTeammate = uiLoop; if ( pTeammate == NULL ) { continue; diff --git a/Tactical/Overhead.cpp b/Tactical/Overhead.cpp index 0b28c4e0..789a4b80 100644 --- a/Tactical/Overhead.cpp +++ b/Tactical/Overhead.cpp @@ -2276,14 +2276,13 @@ BOOLEAN HandleGotoNewGridNo( SOLDIERTYPE *pSoldier, BOOLEAN *pfKeepMoving, BOOLE // IF not in combat, stop them all if ( !( gTacticalStatus.uiFlags & INCOMBAT ) ) { - INT32 cnt2; - SOLDIERTYPE *pSoldier2; - - cnt2 = gTacticalStatus.Team[ gbPlayerNum ].bLastID; + SOLDIERTYPE *pSoldier2; + SoldierID id = gTacticalStatus.Team[ gbPlayerNum ].bLastID; // look for all mercs on the same team, - for ( pSoldier2 = MercPtrs[ cnt2 ]; cnt2 >= gTacticalStatus.Team[ gbPlayerNum ].bFirstID; cnt2-- ,pSoldier2-- ) + for ( ; id >= gTacticalStatus.Team[ gbPlayerNum ].bFirstID; --id ) { + pSoldier2 = id; if ( pSoldier2->bActive ) { pSoldier2->EVENT_StopMerc( pSoldier2->sGridNo, pSoldier2->ubDirection ); @@ -2983,14 +2982,13 @@ BOOLEAN HandleAtNewGridNo( SOLDIERTYPE *pSoldier, BOOLEAN *pfKeepMoving ) // IF not in combat, stop them all if ( !( gTacticalStatus.uiFlags & INCOMBAT ) ) { - INT32 cnt2; - SOLDIERTYPE *pSoldier2; - - cnt2 = gTacticalStatus.Team[ gbPlayerNum ].bLastID; + SOLDIERTYPE *pSoldier2; + SoldierID cnt2 = gTacticalStatus.Team[ gbPlayerNum ].bLastID; // look for all mercs on the same team, - for ( pSoldier2 = MercPtrs[ cnt2 ]; cnt2 >= gTacticalStatus.Team[ gbPlayerNum ].bFirstID; cnt2-- ,pSoldier2-- ) + for ( ; cnt2 >= gTacticalStatus.Team[ gbPlayerNum ].bFirstID; --cnt2 ) { + pSoldier2 = cnt2; if ( pSoldier2->bActive ) { pSoldier2->EVENT_StopMerc( pSoldier2->sGridNo, pSoldier2->ubDirection ); @@ -3230,17 +3228,17 @@ BOOLEAN HandleAtNewGridNo( SOLDIERTYPE *pSoldier, BOOLEAN *pfKeepMoving ) void SelectNextAvailSoldier( SOLDIERTYPE *pSoldier ) { - INT32 cnt; SOLDIERTYPE *pTeamSoldier; BOOLEAN fSoldierFound = FALSE; DebugMsg(TOPIC_JA2,DBG_LEVEL_3,String("SelectNextAvailSoldier")); // IF IT'S THE SELECTED GUY, MAKE ANOTHER SELECTED! - cnt = gTacticalStatus.Team[ pSoldier->bTeam ].bFirstID; + SoldierID id = gTacticalStatus.Team[ pSoldier->bTeam ].bFirstID; // look for all mercs on the same team, - for ( pTeamSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ pSoldier->bTeam ].bLastID; cnt++,pTeamSoldier++) + for ( ; id <= gTacticalStatus.Team[ pSoldier->bTeam ].bLastID; ++id ) { + pTeamSoldier = id; if ( OK_CONTROLLABLE_MERC( pTeamSoldier ) ) { fSoldierFound = TRUE; @@ -3251,7 +3249,7 @@ void SelectNextAvailSoldier( SOLDIERTYPE *pSoldier ) if ( fSoldierFound ) { DebugMsg(TOPIC_JA2,DBG_LEVEL_3,String("SelectNextAvailSoldier: selectsoldier")); - SelectSoldier( cnt, FALSE, FALSE ); + SelectSoldier( id, FALSE, FALSE ); } else { @@ -3604,7 +3602,7 @@ void RebuildAllSoldierShadeTables( ) void HandlePlayerTeamMemberDeath( SOLDIERTYPE *pSoldier ) { - INT32 cnt; + SoldierID cnt; SoldierID iNewSelectedSoldier; SOLDIERTYPE *pTeamSoldier; BOOLEAN fMissionFailed = TRUE; @@ -3619,8 +3617,9 @@ void HandlePlayerTeamMemberDeath( SOLDIERTYPE *pSoldier ) cnt = gTacticalStatus.Team[ pSoldier->bTeam ].bFirstID; // look for all mercs on the same team, - 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 && pTeamSoldier->bInSector ) { iNewSelectedSoldier = cnt; @@ -3643,8 +3642,9 @@ void HandlePlayerTeamMemberDeath( SOLDIERTYPE *pSoldier ) // see if this was the friend of a living merc cnt = gTacticalStatus.Team[ pSoldier->bTeam ].bFirstID; - for ( pTeamSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ pSoldier->bTeam ].bLastID; cnt++,pTeamSoldier++) + for ( ; cnt <= gTacticalStatus.Team[ pSoldier->bTeam ].bLastID; ++cnt ) { + pTeamSoldier = cnt; if ( pTeamSoldier->bActive && pTeamSoldier->bInSector && pTeamSoldier->stats.bLife >= OKLIFE ) { bBuddyIndex = WhichBuddy( pTeamSoldier->ubProfile, pSoldier->ubProfile ); @@ -4245,19 +4245,18 @@ void HandleNPCTeamMemberDeath( SOLDIERTYPE *pSoldierOld ) CheckForEndOfBattle( FALSE ); } -UINT16 LastActiveTeamMember( UINT16 ubTeam ) +SoldierID LastActiveTeamMember( UINT16 ubTeam ) { - INT32 cnt; SOLDIERTYPE *pSoldier; - - cnt = gTacticalStatus.Team[ ubTeam ].bLastID; + SoldierID cnt = gTacticalStatus.Team[ ubTeam ].bLastID; // look for all mercs on the same team, - for ( pSoldier = MercPtrs[ cnt ]; cnt >= gTacticalStatus.Team[ ubTeam ].bFirstID; cnt-- ,pSoldier--) + for ( ; cnt >= gTacticalStatus.Team[ ubTeam ].bFirstID; --cnt) { + pSoldier = cnt; if ( pSoldier->bActive ) { - return( (UINT16)cnt ); + return( cnt ); } } @@ -4479,9 +4478,10 @@ void MakeCivHostile(SOLDIERTYPE *pSoldier) // rehandle sight for everybody SOLDIERTYPE* pTeamSoldier; - UINT16 iLoop = gTacticalStatus.Team[OUR_TEAM].bFirstID; - for ( pTeamSoldier = MercPtrs[iLoop]; iLoop <= gTacticalStatus.Team[CIV_TEAM].bLastID; ++iLoop, ++pTeamSoldier ) + SoldierID iLoop = gTacticalStatus.Team[OUR_TEAM].bFirstID; + for ( ; iLoop <= gTacticalStatus.Team[CIV_TEAM].bLastID; ++iLoop ) { + pTeamSoldier = iLoop; if ( pTeamSoldier->bActive && pTeamSoldier->bInSector && pTeamSoldier->stats.bLife > 0 ) { RecalculateOppCntsDueToNoLongerNeutral( pTeamSoldier ); @@ -4522,16 +4522,16 @@ UINT8 CivilianGroupMembersChangeSidesWithinProximity( SOLDIERTYPE * pAttacked ) { SOLDIERTYPE * pSoldier; UINT8 ubFirstProfile = NO_PROFILE; - UINT16 cnt; if ( pAttacked->ubCivilianGroup == NON_CIV_GROUP ) { return( pAttacked->ubProfile ); } - cnt = gTacticalStatus.Team[ CIV_TEAM ].bFirstID; - for ( pSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; cnt++ ,pSoldier++ ) + SoldierID cnt = gTacticalStatus.Team[ CIV_TEAM ].bFirstID; + for ( ; cnt <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; ++cnt ) { + pSoldier = cnt; if ( pSoldier->bActive && pSoldier->bInSector && pSoldier->stats.bLife && pSoldier->aiData.bNeutral ) { if ( pSoldier->ubCivilianGroup == pAttacked->ubCivilianGroup && pSoldier->ubBodyType != COW ) @@ -4565,7 +4565,6 @@ SOLDIERTYPE * CivilianGroupMemberChangesSides( SOLDIERTYPE * pAttacked ) SOLDIERTYPE * pNew; SOLDIERTYPE * pNewAttacked = pAttacked; SOLDIERTYPE * pSoldier; - UINT16 cnt; UINT8 ubFirstProfile = NO_PROFILE; if ( pAttacked->ubCivilianGroup == NON_CIV_GROUP ) @@ -4575,9 +4574,10 @@ SOLDIERTYPE * CivilianGroupMemberChangesSides( SOLDIERTYPE * pAttacked ) } // remove anyone (rebels) on our team and put them back in the civ team - cnt = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; - for ( pSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; cnt++ ,pSoldier++) + SoldierID cnt = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; + for ( ; cnt <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++cnt ) { + pSoldier = cnt; if (pSoldier->bActive && pSoldier->bInSector && pSoldier->stats.bLife) { if (pSoldier->ubCivilianGroup == pAttacked->ubCivilianGroup) @@ -4658,15 +4658,15 @@ SOLDIERTYPE * CivilianGroupMemberChangesSides( SOLDIERTYPE * pAttacked ) void CivilianGroupChangesSides( UINT8 ubCivilianGroup ) { // change civ group side due to external event (wall blowing up) - INT32 cnt; SOLDIERTYPE *pSoldier; gTacticalStatus.fCivGroupHostile[ ubCivilianGroup ] = CIV_GROUP_HOSTILE; // now change sides for anyone on the civ team - cnt = gTacticalStatus.Team[ CIV_TEAM ].bFirstID; - for ( pSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; cnt++ ,pSoldier++) + SoldierID cnt = gTacticalStatus.Team[ CIV_TEAM ].bFirstID; + for ( ; cnt <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; ++cnt ) { + pSoldier = cnt; if (pSoldier->bActive && pSoldier->bInSector && pSoldier->stats.bLife && pSoldier->aiData.bNeutral) { if ( pSoldier->ubCivilianGroup == ubCivilianGroup && pSoldier->ubBodyType != COW ) @@ -4696,13 +4696,13 @@ void CivilianGroupChangesSides( UINT8 ubCivilianGroup ) void HickCowAttacked( SOLDIERTYPE * pNastyGuy, SOLDIERTYPE * pTarget ) { - INT32 cnt; - SOLDIERTYPE * pSoldier; + SOLDIERTYPE *pSoldier; // now change sides for anyone on the civ team - cnt = gTacticalStatus.Team[ CIV_TEAM ].bFirstID; - for ( pSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; cnt++ ,pSoldier++) + SoldierID cnt = gTacticalStatus.Team[ CIV_TEAM ].bFirstID; + for ( ; cnt <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; ++cnt ) { + pSoldier = cnt; if ( pSoldier->bActive && pSoldier->bInSector && pSoldier->stats.bLife && pSoldier->aiData.bNeutral && pSoldier->ubCivilianGroup == HICKS_CIV_GROUP ) { if ( SoldierToSoldierLineOfSightTest( pSoldier, pNastyGuy, TRUE ) ) @@ -4717,7 +4717,6 @@ void HickCowAttacked( SOLDIERTYPE * pNastyGuy, SOLDIERTYPE * pTarget ) void MilitiaChangesSides( ) { // make all the militia change sides - INT32 cnt; SOLDIERTYPE *pSoldier; if ( gTacticalStatus.Team[ MILITIA_TEAM ].bMenInSector == 0 ) @@ -4726,9 +4725,10 @@ void MilitiaChangesSides( ) } // remove anyone (rebels) on our team and put them back in the civ team - 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; + for ( ; cnt <= gTacticalStatus.Team[ MILITIA_TEAM ].bLastID; ++cnt ) { + pSoldier = cnt; if (pSoldier->bActive && pSoldier->bInSector && pSoldier->stats.bLife) { if ( (gWorldSectorX == 0 && gWorldSectorY == 0) || !NumNonPlayerTeamMembersInSector( gWorldSectorX, gWorldSectorY, ENEMY_TEAM ) ) @@ -4757,15 +4757,14 @@ gTacticalStatus.fCivGroupHostile[ ubLoop ] = CIV_GROUP_HOSTILE; UINT16 NumActiveAndConsciousTeamMembers( UINT8 ubTeam ) { - INT32 cnt; SOLDIERTYPE *pSoldier; UINT16 ubCount = 0; - - cnt = gTacticalStatus.Team[ ubTeam ].bFirstID; + SoldierID cnt = gTacticalStatus.Team[ ubTeam ].bFirstID; // look for all mercs on the same team, - for ( pSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ ubTeam ].bLastID; cnt++,pSoldier++) + for ( ; cnt <= gTacticalStatus.Team[ ubTeam ].bLastID; ++cnt ) { + pSoldier = cnt; if ( OK_CONTROLLABLE_MERC( pSoldier) ) { ubCount++; @@ -4778,16 +4777,14 @@ UINT16 NumActiveAndConsciousTeamMembers( UINT8 ubTeam ) SoldierID FindNextActiveAndAliveMerc( SOLDIERTYPE *pSoldier, BOOLEAN fGoodForLessOKLife, BOOLEAN fOnlyRegularMercs ) { - UINT16 bLastTeamID; - UINT16 cnt; SOLDIERTYPE *pTeamSoldier; - - cnt = pSoldier->ubID + 1; - bLastTeamID = gTacticalStatus.Team[ pSoldier->bTeam ].bLastID; + SoldierID cnt = pSoldier->ubID + 1; + SoldierID bLastTeamID = gTacticalStatus.Team[ pSoldier->bTeam ].bLastID; // look for all mercs on the same team, - for ( pTeamSoldier = MercPtrs[ cnt ]; cnt <= bLastTeamID; cnt++,pTeamSoldier++) + for ( ; cnt <= bLastTeamID; ++cnt ) { + pTeamSoldier = cnt; if ( fOnlyRegularMercs ) { if ( pTeamSoldier->bActive && ( AM_AN_EPC( pTeamSoldier ) || AM_A_ROBOT( pTeamSoldier ) ) ) @@ -4817,8 +4814,9 @@ SoldierID FindNextActiveAndAliveMerc( SOLDIERTYPE *pSoldier, BOOLEAN fGoodForLes cnt = gTacticalStatus.Team[ pSoldier->bTeam ].bFirstID; bLastTeamID = pSoldier->ubID; - for ( pTeamSoldier = MercPtrs[ cnt ]; cnt <= bLastTeamID; cnt++,pTeamSoldier++) + for ( ; cnt <= bLastTeamID; ++cnt ) { + pTeamSoldier = cnt; if ( fOnlyRegularMercs ) { if ( pTeamSoldier->bActive && ( AM_AN_EPC( pTeamSoldier ) || AM_A_ROBOT( pTeamSoldier ) ) ) @@ -4892,17 +4890,16 @@ SOLDIERTYPE *FindNextActiveSquad( SOLDIERTYPE *pSoldier ) SoldierID FindPrevActiveAndAliveMerc( SOLDIERTYPE *pSoldier, BOOLEAN fGoodForLessOKLife, BOOLEAN fOnlyRegularMercs ) { - UINT16 bLastTeamID; - INT32 cnt; SOLDIERTYPE *pTeamSoldier; // loop back - bLastTeamID = gTacticalStatus.Team[ pSoldier->bTeam ].bFirstID; - cnt = pSoldier->ubID - 1; + SoldierID bLastTeamID = gTacticalStatus.Team[ pSoldier->bTeam ].bFirstID; + SoldierID cnt = pSoldier->ubID - 1; - for ( pTeamSoldier = MercPtrs[ cnt ]; cnt >= bLastTeamID; cnt--,pTeamSoldier-- ) + for ( ; cnt >= bLastTeamID; --cnt ) { + pTeamSoldier = cnt; if ( fOnlyRegularMercs ) { if ( AM_AN_EPC( pTeamSoldier ) || AM_A_ROBOT( pTeamSoldier ) ) @@ -4932,8 +4929,9 @@ SoldierID FindPrevActiveAndAliveMerc( SOLDIERTYPE *pSoldier, BOOLEAN fGoodForLes cnt = gTacticalStatus.Team[ pSoldier->bTeam ].bLastID; // look for all mercs on the same team, - for ( pTeamSoldier = MercPtrs[ cnt ]; cnt >= bLastTeamID; cnt--,pTeamSoldier-- ) + for ( ; cnt >= bLastTeamID; --cnt ) { + pTeamSoldier = cnt; if ( fOnlyRegularMercs ) { if ( AM_AN_EPC( pTeamSoldier ) || AM_A_ROBOT( pTeamSoldier ) ) @@ -4966,16 +4964,16 @@ SoldierID FindPrevActiveAndAliveMerc( SOLDIERTYPE *pSoldier, BOOLEAN fGoodForLes BOOLEAN CheckForPlayerTeamInMissionExit( ) { - INT32 cnt; SOLDIERTYPE *pSoldier; UINT16 bGuysIn = 0; // End the turn of player charactors - 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 ( pSoldier->bActive && pSoldier->stats.bLife >= OKLIFE ) { if ( pSoldier->flags.fInMissionExitNode ) @@ -5420,23 +5418,23 @@ BOOLEAN IsLocationSittableExcludingPeople( INT32 iMapIndex, BOOLEAN fOnRoof ) } -BOOLEAN TeamMemberNear(INT8 bTeam, INT32 sGridNo, INT32 iRange) +BOOLEAN TeamMemberNear( INT8 bTeam, INT32 sGridNo, INT32 iRange ) { - UINT16 bLoop; - SOLDIERTYPE * pSoldier; + SOLDIERTYPE *pSoldier; - for (bLoop=gTacticalStatus.Team[bTeam].bFirstID, pSoldier=MercPtrs[bLoop]; bLoop <= gTacticalStatus.Team[bTeam].bLastID; ++bLoop, pSoldier++) - { - if (pSoldier->bActive && pSoldier->bInSector && (pSoldier->stats.bLife >= OKLIFE) && !( pSoldier->flags.uiStatusFlags & SOLDIER_GASSED ) ) - { - if (PythSpacesAway(pSoldier->sGridNo,sGridNo) <= iRange) - { - return(TRUE); - } - } - } + for ( SoldierID bLoop = gTacticalStatus.Team[bTeam].bFirstID; bLoop <= gTacticalStatus.Team[bTeam].bLastID; ++bLoop ) + { + pSoldier = bLoop; + if ( pSoldier->bActive && pSoldier->bInSector && (pSoldier->stats.bLife >= OKLIFE) && !(pSoldier->flags.uiStatusFlags & SOLDIER_GASSED) ) + { + if ( PythSpacesAway( pSoldier->sGridNo, sGridNo ) <= iRange ) + { + return(TRUE); + } + } + } - return(FALSE); + return(FALSE); } INT32 FindAdjacentGridEx( SOLDIERTYPE *pSoldier, INT32 sGridNo, UINT8 *pubDirection, INT32 *psAdjustedGridNo, BOOLEAN fForceToPerson, BOOLEAN fDoor, bool allow_diagonal ) @@ -6198,7 +6196,6 @@ BOOLEAN UIOKMoveDestination( SOLDIERTYPE *pSoldier, INT32 usMapPos ) void HandleTeamServices( UINT8 ubTeamNum ) { - INT32 cnt; SOLDIERTYPE *pTeamSoldier, *pTargetSoldier; UINT32 uiPointsUsed; SoldierID usSoldierIndex; @@ -6207,11 +6204,12 @@ void HandleTeamServices( UINT8 ubTeamNum ) BOOLEAN fDone; // IF IT'S THE SELECTED GUY, MAKE ANOTHER SELECTED! - cnt = gTacticalStatus.Team[ ubTeamNum ].bFirstID; + SoldierID cnt = gTacticalStatus.Team[ ubTeamNum ].bFirstID; // look for all mercs on the same team, - for ( pTeamSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ ubTeamNum ].bLastID; ++cnt, pTeamSoldier++) + for ( ; cnt <= gTacticalStatus.Team[ ubTeamNum ].bLastID; ++cnt ) { + pTeamSoldier = cnt; if ( pTeamSoldier->stats.bLife >= OKLIFE && pTeamSoldier->bActive && pTeamSoldier->bInSector ) { fDone = FALSE; @@ -6502,7 +6500,6 @@ void CommonEnterCombatModeCode( ) void EnterCombatMode( UINT8 ubStartingTeam ) { - UINT32 cnt; SOLDIERTYPE *pTeamSoldier; DebugMsg (TOPIC_JA2,DBG_LEVEL_3,"EnterCombatMode"); @@ -6547,8 +6544,9 @@ void EnterCombatMode( UINT8 ubStartingTeam ) { DebugMsg (TOPIC_JA2,DBG_LEVEL_3,"EnterCombatMode continuing... nobody selected"); // OK, look through and find one.... - for ( cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID, pTeamSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++cnt, pTeamSoldier++ ) + for ( SoldierID cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++cnt ) { + pTeamSoldier = cnt; if ( OK_CONTROLLABLE_MERC( pTeamSoldier ) && pTeamSoldier->aiData.bOppCnt > 0 ) { DebugMsg (TOPIC_JA2,DBG_LEVEL_3,"EnterCombatMode continuing... select soldier"); @@ -6755,9 +6753,8 @@ extern SoldierID gfLastMercTalkedAboutKillingID; BOOLEAN SoldierHasSeenEnemiesLastFewTurns( SOLDIERTYPE *pTeamSoldier ) { - INT32 cnt2; - SOLDIERTYPE *pSoldier; - INT32 cnt; + SOLDIERTYPE *pSoldier; + INT32 cnt; for ( cnt = 0; cnt < MAXTEAMS; cnt++ ) { @@ -6766,9 +6763,10 @@ BOOLEAN SoldierHasSeenEnemiesLastFewTurns( SOLDIERTYPE *pTeamSoldier ) { // check this team for possible enemies - cnt2 = gTacticalStatus.Team[ cnt ].bFirstID; - for ( pSoldier = MercPtrs[ cnt2 ]; cnt2 <= gTacticalStatus.Team[ cnt ].bLastID; cnt2++, pSoldier++ ) + SoldierID cnt2 = gTacticalStatus.Team[ cnt ].bFirstID; + for ( ; cnt2 <= gTacticalStatus.Team[ cnt ].bLastID; ++cnt2 ) { + pSoldier = cnt2; if ( pSoldier->bActive && pSoldier->bInSector && ( pSoldier->bTeam == gbPlayerNum || pSoldier->stats.bLife >= OKLIFE ) ) { if ( !CONSIDERED_NEUTRAL( pTeamSoldier, pSoldier ) && ( pTeamSoldier->bSide != pSoldier->bSide ) ) @@ -6867,16 +6865,16 @@ void SayBattleSoundFromAnyBodyInSector( INT32 iBattleSnd ) 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 ) && !AM_AN_EPC( pTeamSoldier ) && !( pTeamSoldier->flags.uiStatusFlags & SOLDIER_GASSED ) && !(AM_A_ROBOT( pTeamSoldier )) && !pTeamSoldier->flags.fMercAsleep ) { @@ -6888,11 +6886,10 @@ void SayBattleSoundFromAnyBodyInSector( INT32 iBattleSnd ) // If we are > 0 if ( ubNumMercs > 0 ) { - ubChosenMerc = (UINT16)Random( ubNumMercs ); + ubChosenMerc = ubMercsInSector[ (UINT16)Random( ubNumMercs ) ]; MercPtrs[ ubChosenMerc ]->DoMercBattleSound( (UINT8)iBattleSnd ); } - } @@ -7514,12 +7511,13 @@ BOOLEAN CheckForEndOfBattle( BOOLEAN fAnEnemyRetreated ) if (fBattleLost) { // sevenfm: count alive/dead/not covert mercs in sector/retreating from sector - UINT16 ubLoop = gTacticalStatus.Team[gbPlayerNum].bFirstID; + SoldierID ubLoop = gTacticalStatus.Team[gbPlayerNum].bFirstID; BOOLEAN fFoundNotCovertMerc = FALSE; BOOLEAN fFoundAliveMerc = FALSE; BOOLEAN fFoundDeadMerc = FALSE; - for (pTeamSoldier = MercPtrs[ubLoop]; ubLoop <= gTacticalStatus.Team[gbPlayerNum].bLastID; ubLoop++, pTeamSoldier++) + for (; ubLoop <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++ubLoop ) { + pTeamSoldier = ubLoop; if (pTeamSoldier->bActive) { if (pTeamSoldier->bInSector || @@ -7833,9 +7831,10 @@ BOOLEAN CheckForEndOfBattle( BOOLEAN fAnEnemyRetreated ) // 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; @@ -7865,8 +7864,9 @@ BOOLEAN CheckForEndOfBattle( BOOLEAN fAnEnemyRetreated ) // Loop through all civs and restore them to peaceful status cnt = gTacticalStatus.Team[ CIV_TEAM ].bFirstID; - 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; @@ -8172,12 +8172,12 @@ void CycleVisibleEnemiesBackward( SOLDIERTYPE *pSrcSoldier ) UINT32 CountNonVehiclesOnPlayerTeam( ) { - UINT32 cnt; - SOLDIERTYPE *pSoldier; - UINT32 bNumber = 0; + SOLDIERTYPE *pSoldier; + UINT32 bNumber = 0; - for ( cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID, pSoldier = MercPtrs[ cnt ]; cnt <= (UINT32)( gTacticalStatus.Team[ gbPlayerNum ].bLastID ); cnt++, pSoldier++ ) + for ( SoldierID cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++cnt ) { + pSoldier = cnt; if ( pSoldier->bActive && !(pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE ) ) { bNumber++; @@ -8185,7 +8185,6 @@ UINT32 CountNonVehiclesOnPlayerTeam( ) } return( bNumber ); - } @@ -8415,18 +8414,18 @@ UINT16 NumCapableEnemyInSector( ) BOOLEAN CheckForLosingEndOfBattle( ) { SOLDIERTYPE *pTeamSoldier; - INT32 cnt = 0; - UINT16 bNumDead = 0, bNumNotOK = 0, bNumInBattle = 0, bNumNotOKRealMercs = 0; - BOOLEAN fMadeCorpse; - BOOLEAN fDoCapture = FALSE; - BOOLEAN fOnlyEPCsLeft = TRUE; - BOOLEAN fMilitiaInSector = FALSE; + UINT16 bNumDead = 0, bNumNotOK = 0, bNumInBattle = 0, bNumNotOKRealMercs = 0; + BOOLEAN fMadeCorpse; + BOOLEAN fDoCapture = FALSE; + BOOLEAN fOnlyEPCsLeft = TRUE; + BOOLEAN fMilitiaInSector = FALSE; // ATE: Check for MILITIA - we won't lose if we have some..... - 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->bSide == gbPlayerNum ) { if ( pTeamSoldier->stats.bLife >= OKLIFE ) @@ -8443,8 +8442,9 @@ BOOLEAN CheckForLosingEndOfBattle( ) cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; // look for all mercs on the same team, - for ( pTeamSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; cnt++,pTeamSoldier++) + for ( ; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++cnt ) { + pTeamSoldier = cnt; // Are we active and in sector..... if ( pTeamSoldier->bActive && pTeamSoldier->bInSector && !( pTeamSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE ) ) { @@ -8529,8 +8529,9 @@ BOOLEAN CheckForLosingEndOfBattle( ) // IF IT'S THE SELECTED GUY, MAKE ANOTHER SELECTED! cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; - for ( pTeamSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; cnt++,pTeamSoldier++) + for ( ; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++cnt ) { + pTeamSoldier = cnt; // Are we active and in sector..... if ( pTeamSoldier->bActive && pTeamSoldier->bInSector ) { @@ -9555,7 +9556,6 @@ SOLDIERTYPE *InternalReduceAttackBusyCount( ) SOLDIERTYPE *pSoldier; SOLDIERTYPE *pTarget; BOOLEAN fEnterCombat = FALSE; - UINT32 cnt; SoldierID ubID; @@ -9604,14 +9604,13 @@ SOLDIERTYPE *InternalReduceAttackBusyCount( ) } else { - for (cnt = gTacticalStatus.Team[ gTacticalStatus.ubCurrentTeam ].bFirstID; - cnt <= gTacticalStatus.Team[ gTacticalStatus.ubCurrentTeam ].bLastID; - cnt++) + for ( SoldierID id = gTacticalStatus.Team[ gTacticalStatus.ubCurrentTeam ].bFirstID; + id <= gTacticalStatus.Team[ gTacticalStatus.ubCurrentTeam ].bLastID; + ++id) { - if (MercPtrs[ cnt ] && - MercPtrs[ cnt ]->flags.uiStatusFlags & SOLDIER_UNDERAICONTROL) + if (id != NOBODY && id->flags.uiStatusFlags & SOLDIER_UNDERAICONTROL) { - pSoldier = MercPtrs[ cnt ]; + pSoldier = id; break; } } @@ -9712,14 +9711,12 @@ SOLDIERTYPE *InternalReduceAttackBusyCount( ) { // Loop through our team, make guys who can see this fly away.... { - UINT32 cnt; - SOLDIERTYPE *pTeamSoldier; - UINT8 ubTeam; + SOLDIERTYPE *pTeamSoldier; + UINT8 ubTeam = pTarget->bTeam; - ubTeam = pTarget->bTeam; - - for ( cnt = gTacticalStatus.Team[ ubTeam ].bFirstID, pTeamSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ ubTeam ].bLastID; cnt++, pTeamSoldier++ ) + for ( SoldierID cnt = gTacticalStatus.Team[ ubTeam ].bFirstID; cnt <= gTacticalStatus.Team[ ubTeam ].bLastID; ++cnt ) { + pTeamSoldier = cnt; if ( pTeamSoldier->bActive && pTeamSoldier->bInSector ) { if ( pTeamSoldier->ubBodyType == CROW ) @@ -9859,15 +9856,16 @@ SOLDIERTYPE *InternalReduceAttackBusyCount( ) if ( gTacticalStatus.uiFlags & CHECK_SIGHT_AT_END_OF_ATTACK ) { - UINT16 ubLoop; + SoldierID ubLoop; SOLDIERTYPE * pSightSoldier; AllTeamsLookForAll( FALSE ); // call fov code ubLoop = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; - for ( pSightSoldier = MercPtrs[ ubLoop ]; ubLoop <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ubLoop++, pSightSoldier++ ) + for ( ; ubLoop <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++ubLoop ) { + pSightSoldier = ubLoop; if ( pSightSoldier->bActive && pSightSoldier->bInSector ) { RevealRoofsAndItems( pSightSoldier, TRUE, FALSE, pSightSoldier->pathing.bLevel, FALSE ); @@ -9936,7 +9934,7 @@ SOLDIERTYPE *InternalReduceAttackBusyCount( ) //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Reset various flags and values that should be 0 once the action is overwith - for (cnt = 0; cnt < guiNumMercSlots; cnt++) + for (UINT32 cnt = 0; cnt < guiNumMercSlots; cnt++) { pSoldier = MercSlots[ cnt ]; if ( pSoldier ) @@ -10241,9 +10239,9 @@ void EndBattleWithUnconsciousGuysCallback( UINT8 bExitValue ) void InitializeTacticalStatusAtBattleStart( ) { - INT8 bLoop; - INT32 cnt; - SOLDIERTYPE * pSoldier; + INT8 bLoop; + SoldierID cnt; + SOLDIERTYPE *pSoldier; gTacticalStatus.ubArmyGuysKilled = 0; gTacticalStatus.bOriginalSizeOfEnemyForce = 0; @@ -10257,10 +10255,10 @@ void InitializeTacticalStatusAtBattleStart( ) gTacticalStatus.ubPanicTolerance[ bLoop ] = 0; } - for( cnt = 0; cnt < MAXTEAMS; cnt++ ) + for( bLoop = 0; bLoop < MAXTEAMS; bLoop++ ) { - gTacticalStatus.Team[ cnt ].ubLastMercToRadio = NOBODY; - gTacticalStatus.Team[ cnt ].bAwareOfOpposition = FALSE; + gTacticalStatus.Team[ bLoop ].ubLastMercToRadio = NOBODY; + gTacticalStatus.Team[ bLoop ].bAwareOfOpposition = FALSE; } gTacticalStatus.ubTheChosenOne = NOBODY; @@ -10268,19 +10266,18 @@ void InitializeTacticalStatusAtBattleStart( ) ClearIntList(); // make sure none of our guys have leftover shock values etc - for ( cnt = gTacticalStatus.Team[ 0 ].bFirstID; cnt <= gTacticalStatus.Team[ 0 ].bLastID; cnt++ ) + for ( cnt = gTacticalStatus.Team[ 0 ].bFirstID; cnt <= gTacticalStatus.Team[ 0 ].bLastID; ++cnt ) { - pSoldier = MercPtrs[ cnt ]; + pSoldier = cnt; pSoldier->aiData.bShock = 0; pSoldier->bTilesMoved = 0; } // loop through everyone; clear misc flags - for ( cnt = 0; cnt <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; cnt++ ) + for ( cnt = 0; cnt <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; ++cnt ) { - MercPtrs[ cnt ]->ubMiscSoldierFlags = 0; + cnt->ubMiscSoldierFlags = 0; } - } @@ -10329,16 +10326,15 @@ void CaptureTimerCallback( ) void DoPOWPathChecks( ) { - INT32 iLoop; SOLDIERTYPE *pSoldier; BOOLEAN is_this_tixa = (gWorldSectorX == gModSettings.ubTixaPrisonSectorX && gWorldSectorY == gModSettings.ubTixaPrisonSectorY); // loop through all mercs on our team and if they are POWs in sector, do POW path check and // put on a squad if available - for ( iLoop = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; iLoop <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; iLoop++ ) + for ( SoldierID iLoop = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; iLoop <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++iLoop ) { - pSoldier = MercPtrs[ iLoop ]; + pSoldier = iLoop; if ( pSoldier->bActive && pSoldier->bInSector && pSoldier->bAssignment == ASSIGNMENT_POW ) { @@ -10378,7 +10374,6 @@ void DoPOWPathChecks( ) BOOLEAN HostileCiviliansPresent( ) { - INT32 iLoop; SOLDIERTYPE * pSoldier; if ( gTacticalStatus.Team[ CIV_TEAM ].bTeamActive == FALSE ) @@ -10386,9 +10381,9 @@ BOOLEAN HostileCiviliansPresent( ) return( FALSE ); } - for ( iLoop = gTacticalStatus.Team[ CIV_TEAM ].bFirstID; iLoop <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; iLoop++ ) + for ( SoldierID iLoop = gTacticalStatus.Team[ CIV_TEAM ].bFirstID; iLoop <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; ++iLoop ) { - pSoldier = MercPtrs[ iLoop ]; + pSoldier = iLoop; if ( pSoldier->bActive && pSoldier->bInSector && pSoldier->stats.bLife > 0 && !pSoldier->aiData.bNeutral ) { @@ -10401,17 +10396,16 @@ BOOLEAN HostileCiviliansPresent( ) BOOLEAN HostileCiviliansWithGunsPresent( ) { - INT32 iLoop; - SOLDIERTYPE * pSoldier; + SOLDIERTYPE *pSoldier; if ( gTacticalStatus.Team[ CIV_TEAM ].bTeamActive == FALSE ) { return( FALSE ); } - for ( iLoop = gTacticalStatus.Team[ CIV_TEAM ].bFirstID; iLoop <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; iLoop++ ) + for ( SoldierID iLoop = gTacticalStatus.Team[ CIV_TEAM ].bFirstID; iLoop <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; ++iLoop ) { - pSoldier = MercPtrs[ iLoop ]; + pSoldier = iLoop; if ( pSoldier->bActive && pSoldier->bInSector && pSoldier->stats.bLife > 0 && !pSoldier->aiData.bNeutral ) { @@ -10428,17 +10422,16 @@ BOOLEAN HostileCiviliansWithGunsPresent( ) BOOLEAN HostileBloodcatsPresent( ) { - INT32 iLoop; - SOLDIERTYPE * pSoldier; + SOLDIERTYPE *pSoldier; if ( gTacticalStatus.Team[ CREATURE_TEAM ].bTeamActive == FALSE ) { return( FALSE ); } - for ( iLoop = gTacticalStatus.Team[ CREATURE_TEAM ].bFirstID; iLoop <= gTacticalStatus.Team[ CREATURE_TEAM ].bLastID; iLoop++ ) + for ( SoldierID iLoop = gTacticalStatus.Team[ CREATURE_TEAM ].bFirstID; iLoop <= gTacticalStatus.Team[ CREATURE_TEAM ].bLastID; ++iLoop ) { - pSoldier = MercPtrs[ iLoop ]; + pSoldier = iLoop; //KM : Aug 11, 1999 -- Patch fix: Removed the check for bNeutral. Bloodcats automatically become hostile // on site. Because the check used to be there, it was possible to get into a 2nd battle elsewhere @@ -10454,17 +10447,16 @@ BOOLEAN HostileBloodcatsPresent( ) BOOLEAN HostileZombiesPresent( ) { - INT32 iLoop; - SOLDIERTYPE * pSoldier; + SOLDIERTYPE *pSoldier; if ( gTacticalStatus.Team[ CREATURE_TEAM ].bTeamActive == FALSE ) { return( FALSE ); } - for ( iLoop = gTacticalStatus.Team[ CREATURE_TEAM ].bFirstID; iLoop <= gTacticalStatus.Team[ CREATURE_TEAM ].bLastID; ++iLoop ) + for ( SoldierID iLoop = gTacticalStatus.Team[ CREATURE_TEAM ].bFirstID; iLoop <= gTacticalStatus.Team[ CREATURE_TEAM ].bLastID; ++iLoop ) { - pSoldier = MercPtrs[ iLoop ]; + pSoldier = iLoop; if ( pSoldier && pSoldier->bActive && pSoldier->bInSector && pSoldier->stats.bLife > 0 && pSoldier->IsZombie( ) ) { @@ -10484,9 +10476,9 @@ BOOLEAN HostileCreaturesPresent() return( FALSE ); } - for ( INT32 iLoop = gTacticalStatus.Team[CREATURE_TEAM].bFirstID; iLoop <= gTacticalStatus.Team[CREATURE_TEAM].bLastID; ++iLoop ) + for ( SoldierID iLoop = gTacticalStatus.Team[CREATURE_TEAM].bFirstID; iLoop <= gTacticalStatus.Team[CREATURE_TEAM].bLastID; ++iLoop ) { - pSoldier = MercPtrs[iLoop]; + pSoldier = iLoop; if ( pSoldier && pSoldier->bActive && pSoldier->bInSector && pSoldier->stats.bLife > 0 ) { @@ -10505,7 +10497,6 @@ void HandleCreatureTenseQuote( ) UINT16 ubNumMercs = 0; UINT16 ubChosenMerc; SOLDIERTYPE *pTeamSoldier; - INT32 cnt; INT32 uiTime; @@ -10523,11 +10514,12 @@ void HandleCreatureTenseQuote( ) gTacticalStatus.uiCreatureTenseQuoteLastUpdate = uiTime; // 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 ) && !AM_AN_EPC( pTeamSoldier ) && !( pTeamSoldier->flags.uiStatusFlags & SOLDIER_GASSED ) && !(AM_A_ROBOT( pTeamSoldier )) && !pTeamSoldier->flags.fMercAsleep ) { @@ -10652,9 +10644,9 @@ INT8 CheckStatusNearbyFriendlies( SOLDIERTYPE *pSoldier ) INT8 bLevelDifference = 0; // Run through each friendly. - for ( UINT16 iCounter = gTacticalStatus.Team[ pSoldier->bTeam ].bFirstID ; iCounter <= gTacticalStatus.Team[ pSoldier->bTeam ].bLastID ; iCounter ++ ) + for ( SoldierID iCounter = gTacticalStatus.Team[ pSoldier->bTeam ].bFirstID ; iCounter <= gTacticalStatus.Team[ pSoldier->bTeam ].bLastID ; ++iCounter ) { - pLeader = MercPtrs[ iCounter ]; + pLeader = iCounter; // Make sure that character is alive, not too shocked, and conscious, and of higher experience level // than the character being suppressed. if (pLeader != pSoldier && pLeader->bActive && pLeader->aiData.bShock < pLeader->stats.bLeadership/5 && @@ -10744,9 +10736,9 @@ INT8 CheckStatusNearbyFriendliesSimple(SOLDIERTYPE *pSoldier) } // Run through each friendly. - for (UINT16 ubFriend = gTacticalStatus.Team[ pSoldier->bTeam ].bFirstID ; ubFriend <= gTacticalStatus.Team[ pSoldier->bTeam ].bLastID ; ubFriend ++) + for ( SoldierID ubFriend = gTacticalStatus.Team[ pSoldier->bTeam ].bFirstID ; ubFriend <= gTacticalStatus.Team[ pSoldier->bTeam ].bLastID ; ++ubFriend) { - pFriend = MercPtrs[ ubFriend ]; + pFriend = ubFriend; // Make sure that character is alive and active if (pFriend && @@ -11065,10 +11057,11 @@ void AttemptToCapturePlayerSoldiers() BeginCaptureSquence(); const UINT8 currentPOWs = gStrategicStatus.ubNumCapturedForRescue; // Do capture - UINT32 i = gTacticalStatus.Team[gbPlayerNum].bFirstID; - UINT32 const lastID = gTacticalStatus.Team[gbPlayerNum].bLastID; - for (SOLDIERTYPE* pSoldier = MercPtrs[i]; i <= lastID; ++i, ++pSoldier) + SoldierID i = gTacticalStatus.Team[gbPlayerNum].bFirstID; + SoldierID const lastID = gTacticalStatus.Team[gbPlayerNum].bLastID; + for ( ; i <= lastID; ++i ) { + SOLDIERTYPE *pSoldier = i; // Are we active and in sector if (pSoldier->bActive && pSoldier->bInSector && pSoldier->bAssignment != ASSIGNMENT_POW) { @@ -11100,10 +11093,11 @@ void AttemptToCapturePlayerSoldiers() // If we have any remaining active mercs in sector after capture, give them a chance to escape from the clutches of Deidranna's soldiers! bool activeMercs = false; - UINT32 i = gTacticalStatus.Team[gbPlayerNum].bFirstID; - UINT32 lastId = gTacticalStatus.Team[gbPlayerNum].bLastID; - for (SOLDIERTYPE* pSoldier = MercPtrs[i]; i <= lastId; ++i, ++pSoldier) + SoldierID i = gTacticalStatus.Team[gbPlayerNum].bFirstID; + SoldierID lastId = gTacticalStatus.Team[gbPlayerNum].bLastID; + for ( ; i <= lastId; ++i ) { + SOLDIERTYPE *pSoldier = i; // Are we active and in sector const bool inSector = (pSoldier->sSectorX == gWorldSectorX && pSoldier->sSectorY == gWorldSectorY && pSoldier->bSectorZ == gbWorldSectorZ); if (pSoldier->bActive && inSector && pSoldier->stats.bLife >= OKLIFE && pSoldier->bAssignment != ASSIGNMENT_POW) @@ -11126,7 +11120,6 @@ void AttemptToCapturePlayerSoldiers() void PrisonerSurrenderMessageBoxCallBack( UINT8 ubExitValue ) { SOLDIERTYPE *pSoldier = NULL; - UINT32 uiCnt=0; BOOLEAN success = FALSE; if ( ubExitValue == 1 ) @@ -11148,10 +11141,11 @@ void PrisonerSurrenderMessageBoxCallBack( UINT8 ubExitValue ) UINT32 enemysidestrength = 0; // player team - UINT32 firstid = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; - UINT32 lastid = gTacticalStatus.Team[ gbPlayerNum ].bLastID; - for ( uiCnt = firstid, pSoldier = MercPtrs[ uiCnt ]; uiCnt <= lastid; ++uiCnt, ++pSoldier) + SoldierID id = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; + SoldierID lastid = gTacticalStatus.Team[ gbPlayerNum ].bLastID; + for ( ; id <= lastid; ++id ) { + pSoldier = id; if( pSoldier->bActive && ( pSoldier->sSectorX == gWorldSectorX ) && ( pSoldier->sSectorY == gWorldSectorY ) && ( pSoldier->bSectorZ == gbWorldSectorZ) ) { // if we are disguised as a civilian, the enemy does not take us into the equation - he does not consider us @@ -11167,10 +11161,11 @@ void PrisonerSurrenderMessageBoxCallBack( UINT8 ubExitValue ) } // militia team - firstid = gTacticalStatus.Team[ MILITIA_TEAM ].bFirstID; + id = gTacticalStatus.Team[ MILITIA_TEAM ].bFirstID; lastid = gTacticalStatus.Team[ MILITIA_TEAM ].bLastID; - for ( uiCnt = firstid, pSoldier = MercPtrs[ uiCnt ]; uiCnt <= lastid; ++uiCnt, ++pSoldier) + for ( ; id <= lastid; ++id ) { + pSoldier = id; if( pSoldier->bActive && ( pSoldier->sSectorX == gWorldSectorX ) && ( pSoldier->sSectorY == gWorldSectorY ) && ( pSoldier->bSectorZ == gbWorldSectorZ) ) { playersidestrength += pSoldier->GetSurrenderStrength(); @@ -11190,10 +11185,12 @@ void PrisonerSurrenderMessageBoxCallBack( UINT8 ubExitValue ) BOOLEAN fNoSurrender = FALSE; // shadooow: rewritten to only check soldiers from the same team - firstid = gTacticalStatus.Team[pSoldierToSurrender->bTeam].bFirstID; + SoldierID firstid = gTacticalStatus.Team[pSoldierToSurrender->bTeam].bFirstID; lastid = gTacticalStatus.Team[pSoldierToSurrender->bTeam].bLastID; - for (uiCnt = firstid, pSoldier = MercPtrs[uiCnt]; uiCnt <= lastid; ++uiCnt, ++pSoldier) + + for (SoldierID id = firstid; id <= lastid; ++id ) { + pSoldier = id; if (pSoldier->bActive && (pSoldier->sSectorX == gWorldSectorX) && (pSoldier->sSectorY == gWorldSectorY) && (pSoldier->bSectorZ == gbWorldSectorZ)) { if (pSoldierToSurrender->bTeam == CIV_TEAM) @@ -11233,8 +11230,9 @@ void PrisonerSurrenderMessageBoxCallBack( UINT8 ubExitValue ) if ( !fNoSurrender && playersidestrength >= gGameExternalOptions.fSurrenderMultiplier * enemysidestrength ) { // it is enough to simply set all soldiers to captured - for ( uiCnt = firstid, pSoldier = MercPtrs[ uiCnt ]; uiCnt <= lastid; ++uiCnt, ++pSoldier) + for ( SoldierID id = firstid; id <= lastid; ++id ) { + pSoldier = id; if( pSoldier->bActive && ( pSoldier->sSectorX == gWorldSectorX ) && ( pSoldier->sSectorY == gWorldSectorY ) && ( pSoldier->bSectorZ == gbWorldSectorZ) ) { // can this guy be captured? @@ -11355,9 +11353,9 @@ void CheckChatPartners() SOLDIERTYPE* pSoldier = NULL; - for ( int 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 && pSoldier->bVisible && pSoldier->usChatPartnerID != NOBODY && pSoldier->usChatPartnerID->bVisible ) { @@ -11448,11 +11446,11 @@ void TeamDropAll(UINT8 bTeam, BOOLEAN fForce) #endif SOLDIERTYPE *pSoldier; - UINT32 uiCnt = 0; - UINT32 firstid = gTacticalStatus.Team[ bTeam ].bFirstID; - UINT32 lastid = gTacticalStatus.Team[ bTeam ].bLastID; - for ( uiCnt = firstid, pSoldier = MercPtrs[ uiCnt ]; uiCnt <= lastid; ++uiCnt, ++pSoldier) + SoldierID id = gTacticalStatus.Team[ bTeam ].bFirstID; + SoldierID lastid = gTacticalStatus.Team[ bTeam ].bLastID; + for ( ; id <= lastid; ++id ) { + pSoldier = id; // if soldier is in the current sector, drop all equipment (that has the TAKEN_BY_MILITIA-flag set) if( pSoldier->bActive && ( pSoldier->sSectorX == gWorldSectorX ) && ( pSoldier->sSectorY == gWorldSectorY ) && ( pSoldier->bSectorZ == gbWorldSectorZ) ) { @@ -11479,11 +11477,11 @@ void TeamRestock(UINT8 bTeam) #endif SOLDIERTYPE *pSoldier; - UINT32 uiCnt = 0; - UINT32 firstid = gTacticalStatus.Team[ bTeam ].bFirstID; - UINT32 lastid = gTacticalStatus.Team[ bTeam ].bLastID; - for ( uiCnt = firstid, pSoldier = MercPtrs[ uiCnt ]; uiCnt <= lastid; ++uiCnt, ++pSoldier) + SoldierID id = gTacticalStatus.Team[ bTeam ].bFirstID; + SoldierID lastid = gTacticalStatus.Team[ bTeam ].bLastID; + for ( ; id <= lastid; ++id ) { + pSoldier = id; if( pSoldier->bActive && ( pSoldier->sSectorX == gWorldSectorX ) && ( pSoldier->sSectorY == gWorldSectorY ) && ( pSoldier->bSectorZ == gbWorldSectorZ) ) { // the function fills a createstruct, so create one @@ -11539,9 +11537,9 @@ BOOLEAN IsProfileInUse(UINT8 usTeam, INT8 aType, UINT16 aNr) } SOLDIERTYPE* pSoldier = NULL; - for( INT32 i = gTacticalStatus.Team[ usTeam ].bFirstID; i <= gTacticalStatus.Team[ usTeam ].bLastID; ++i ) + for( SoldierID i = gTacticalStatus.Team[ usTeam ].bFirstID; i <= gTacticalStatus.Team[ usTeam ].bLastID; ++i ) { - pSoldier = MercPtrs[ i ]; + pSoldier = i; if ( pSoldier && pSoldier->ubSoldierClass == searchedclass && pSoldier->usSoldierProfile == aNr ) return TRUE; @@ -11665,13 +11663,13 @@ INT8 CalcEffectiveShockLevel( SOLDIERTYPE * pSoldier ) // Flugente: count number of enemy officers UINT16 HighestEnemyOfficersInSector( UINT8& aType ) { - SOLDIERTYPE* pSoldier; - INT32 cnt = 0; - UINT16 num = 0; - UINT8 type = OFFICER_NONE; + SOLDIERTYPE *pSoldier; + UINT16 num = 0; + UINT8 type = OFFICER_NONE; - for ( cnt = gTacticalStatus.Team[ ENEMY_TEAM ].bFirstID, pSoldier = MercPtrs[cnt]; cnt <= gTacticalStatus.Team[ ENEMY_TEAM ].bLastID; pSoldier++, ++cnt ) + for ( SoldierID cnt = gTacticalStatus.Team[ ENEMY_TEAM ].bFirstID; cnt <= gTacticalStatus.Team[ ENEMY_TEAM ].bLastID; ++cnt ) { + pSoldier = cnt; if ( pSoldier->bActive && pSoldier->bInSector && pSoldier->stats.bLife > 0 ) { // count officers, but do not count those that we have already captured @@ -11691,12 +11689,12 @@ UINT16 HighestEnemyOfficersInSector( UINT8& aType ) // count all soldiers in the current sector that have a specific flag set UINT16 NumSoldiersWithFlagInSector( UINT8 aTeam, UINT32 aFlag ) { - SOLDIERTYPE* pSoldier; - INT32 cnt = 0; - UINT16 num = 0; + SOLDIERTYPE *pSoldier; + UINT16 num = 0; - for ( cnt = gTacticalStatus.Team[aTeam].bFirstID, pSoldier = MercPtrs[cnt]; cnt <= gTacticalStatus.Team[aTeam].bLastID; pSoldier++, ++cnt ) + for ( SoldierID cnt = gTacticalStatus.Team[aTeam].bFirstID; cnt <= gTacticalStatus.Team[aTeam].bLastID; ++cnt ) { + pSoldier = cnt; if ( pSoldier->bActive && pSoldier->bInSector && pSoldier->stats.bLife > 0 ) { if ( pSoldier->usSoldierFlagMask & aFlag ) @@ -11711,12 +11709,12 @@ UINT16 NumSoldiersWithFlagInSector( UINT8 aTeam, UINT32 aFlag ) UINT16 NumSoldiersofClassWithFlag2InSector( UINT8 aTeam, UINT8 aSoldierClass, UINT32 aFlag ) { - SOLDIERTYPE* pSoldier; - INT32 cnt = 0; - UINT16 num = 0; + SOLDIERTYPE *pSoldier; + UINT16 num = 0; - for ( cnt = gTacticalStatus.Team[aTeam].bFirstID, pSoldier = MercPtrs[cnt]; cnt <= gTacticalStatus.Team[aTeam].bLastID; pSoldier++, ++cnt ) + for ( SoldierID cnt = gTacticalStatus.Team[aTeam].bFirstID; cnt <= gTacticalStatus.Team[aTeam].bLastID; ++cnt ) { + pSoldier = cnt; if ( pSoldier->bActive && pSoldier->bInSector && pSoldier->stats.bLife > 0 ) { if ( (pSoldier->usSoldierFlagMask2 & aFlag) @@ -12002,11 +12000,12 @@ BOOLEAN IsCivFactionMemberAliveInSector( UINT8 usCivilianGroup ) SOLDIERTYPE *pSoldier = NULL; // IF IT'S THE SELECTED GUY, MAKE ANOTHER SELECTED! - UINT16 cnt = gTacticalStatus.Team[CIV_TEAM].bFirstID; + SoldierID cnt = gTacticalStatus.Team[CIV_TEAM].bFirstID; // look for all mercs on the same team, - for ( pSoldier = MercPtrs[cnt]; cnt <= gTacticalStatus.Team[CIV_TEAM].bLastID; ++cnt, ++pSoldier ) + for ( ; cnt <= gTacticalStatus.Team[CIV_TEAM].bLastID; ++cnt ) { + pSoldier = cnt; if ( pSoldier->bActive && (pSoldier->sSectorX == gWorldSectorX) && (pSoldier->sSectorY == gWorldSectorY) && (pSoldier->bSectorZ == gbWorldSectorZ) ) { if ( pSoldier->ubCivilianGroup == usCivilianGroup && pSoldier->stats.bLife > 0 ) @@ -12017,15 +12016,15 @@ BOOLEAN IsCivFactionMemberAliveInSector( UINT8 usCivilianGroup ) return FALSE; } -BOOLEAN IsFreeSlotAvailable( int aTeam ) +BOOLEAN IsFreeSlotAvailable( int aTeam ) { SOLDIERTYPE *pSoldier; - INT32 cnt = gTacticalStatus.Team[aTeam].bFirstID; + SoldierID cnt = gTacticalStatus.Team[aTeam].bFirstID; // run through list - for ( pSoldier = MercPtrs[cnt]; cnt <= gTacticalStatus.Team[aTeam].bLastID; ++cnt, ++pSoldier ) + for ( ; cnt <= gTacticalStatus.Team[aTeam].bLastID; ++cnt ) { - if ( !pSoldier->bActive ) + if ( !cnt->bActive ) { return TRUE; } diff --git a/Tactical/Overhead.h b/Tactical/Overhead.h index 87b5034a..f611474b 100644 --- a/Tactical/Overhead.h +++ b/Tactical/Overhead.h @@ -238,7 +238,7 @@ void SlideToLocation( INT32 sDestGridNo ); void RebuildAllSoldierShadeTables( ); void HandlePlayerTeamMemberDeath( SOLDIERTYPE *pSoldier ); -UINT16 LastActiveTeamMember( UINT16 ubTeam ); +SoldierID LastActiveTeamMember( UINT16 ubTeam ); BOOLEAN SoldierOnVisibleWorldTile( SOLDIERTYPE *pSoldier ); SoldierID FindNextActiveAndAliveMerc( SOLDIERTYPE *pSoldier, BOOLEAN fGoodForLessOKLife, BOOLEAN fOnlyRegularMercs ); diff --git a/Tactical/Real Time Input.cpp b/Tactical/Real Time Input.cpp index 02141ace..4c97f6b2 100644 --- a/Tactical/Real Time Input.cpp +++ b/Tactical/Real Time Input.cpp @@ -2143,55 +2143,57 @@ void HandleMouseRTX1Button( UINT32 *puiNewEvent ) void HandleMouseRTX2Button( UINT32 *puiNewEvent ) { - if ( _KeyDown( ALT ) ) - AutoReload( gusSelectedSoldier ); - else - // Toggle squad's stealth mode..... - // For each guy on squad... + if ( _KeyDown( ALT ) ) + AutoReload( gusSelectedSoldier ); + else + // Toggle squad's stealth mode..... + // For each guy on squad... + { + SOLDIERTYPE *pTeamSoldier; + SoldierID bLoop; + BOOLEAN fStealthOn = FALSE; + + // Check if at least one guy is on stealth.... + for ( bLoop = gTacticalStatus.Team[gbPlayerNum].bFirstID; bLoop <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++bLoop ) + { + pTeamSoldier = bLoop; + if ( OK_CONTROLLABLE_MERC( pTeamSoldier ) && pTeamSoldier->bAssignment == CurrentSquad() ) { - SOLDIERTYPE *pTeamSoldier; - INT16 bLoop; - BOOLEAN fStealthOn = FALSE; - - // Check if at least one guy is on stealth.... - for (bLoop=gTacticalStatus.Team[gbPlayerNum].bFirstID, pTeamSoldier=MercPtrs[bLoop]; bLoop <= gTacticalStatus.Team[gbPlayerNum].bLastID; bLoop++, pTeamSoldier++) + if ( pTeamSoldier->bStealthMode ) { - if ( OK_CONTROLLABLE_MERC( pTeamSoldier ) && pTeamSoldier->bAssignment == CurrentSquad( ) ) - { - if ( pTeamSoldier->bStealthMode ) - { - fStealthOn = TRUE; - } - } - } - - fStealthOn = !fStealthOn; - - for (bLoop=gTacticalStatus.Team[gbPlayerNum].bFirstID, pTeamSoldier=MercPtrs[bLoop]; bLoop <= gTacticalStatus.Team[gbPlayerNum].bLastID; bLoop++, pTeamSoldier++) - { - if ( OK_CONTROLLABLE_MERC( pTeamSoldier ) && pTeamSoldier->bAssignment == CurrentSquad( ) && !AM_A_ROBOT( pTeamSoldier ) ) - { - if ( gpSMCurrentMerc != NULL && bLoop == gpSMCurrentMerc->ubID ) - { - gfUIStanceDifferent = TRUE; - } - - pTeamSoldier->bStealthMode = fStealthOn; - } - } - - fInterfacePanelDirty = DIRTYLEVEL2; - - // OK, display message - if ( fStealthOn ) - { - ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, pMessageStrings[ MSG_SQUAD_ON_STEALTHMODE ] ); - } - else - { - ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, pMessageStrings[ MSG_SQUAD_OFF_STEALTHMODE ] ); + fStealthOn = TRUE; } } + } + + fStealthOn = !fStealthOn; + + for ( bLoop = gTacticalStatus.Team[gbPlayerNum].bFirstID; bLoop <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++bLoop ) + { + pTeamSoldier = bLoop; + if ( OK_CONTROLLABLE_MERC( pTeamSoldier ) && pTeamSoldier->bAssignment == CurrentSquad() && !AM_A_ROBOT( pTeamSoldier ) ) + { + if ( gpSMCurrentMerc != NULL && bLoop == gpSMCurrentMerc->ubID ) + { + gfUIStanceDifferent = TRUE; + } + + pTeamSoldier->bStealthMode = fStealthOn; + } + } + + fInterfacePanelDirty = DIRTYLEVEL2; + + // OK, display message + if ( fStealthOn ) + { + ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, pMessageStrings[MSG_SQUAD_ON_STEALTHMODE] ); + } + else + { + ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, pMessageStrings[MSG_SQUAD_OFF_STEALTHMODE] ); + } + } } // sevenfm: common functionality diff --git a/Tactical/Rotting Corpses.cpp b/Tactical/Rotting Corpses.cpp index 7749051f..c6c3ce0b 100644 --- a/Tactical/Rotting Corpses.cpp +++ b/Tactical/Rotting Corpses.cpp @@ -1272,11 +1272,11 @@ void HandleRottingCorpses( ) // ATE: Check for multiple crows..... // Couint how many we have now... { - UINT16 bLoop; SOLDIERTYPE * pSoldier; - for ( bLoop=gTacticalStatus.Team[ CIV_TEAM ].bFirstID, pSoldier=MercPtrs[bLoop]; bLoop <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; bLoop++, pSoldier++) + for ( SoldierID bLoop=gTacticalStatus.Team[ CIV_TEAM ].bFirstID; bLoop <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; ++bLoop ) { + pSoldier = bLoop; if (pSoldier->bActive && pSoldier->bInSector && (pSoldier->stats.bLife >= OKLIFE) && !( pSoldier->flags.uiStatusFlags & SOLDIER_GASSED ) ) { if ( pSoldier->ubBodyType == CROW ) @@ -1344,8 +1344,7 @@ void MakeCorpseVisible( SOLDIERTYPE *pSoldier, ROTTING_CORPSE *pCorpse ) void AllMercsOnTeamLookForCorpse( ROTTING_CORPSE *pCorpse, INT8 bTeam ) { - INT32 cnt; - SOLDIERTYPE *pSoldier; + SOLDIERTYPE *pSoldier; INT32 sGridNo; // If this cump is already visible, return @@ -1360,13 +1359,14 @@ void AllMercsOnTeamLookForCorpse( ROTTING_CORPSE *pCorpse, INT8 bTeam ) } // IF IT'S THE SELECTED GUY, MAKE ANOTHER SELECTED! - cnt = gTacticalStatus.Team[ bTeam ].bFirstID; + SoldierID cnt = gTacticalStatus.Team[ bTeam ].bFirstID; sGridNo = pCorpse->def.sGridNo; // look for all mercs on the same team, - for ( pSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ bTeam ].bLastID; cnt++,pSoldier++ ) + for ( ; cnt <= gTacticalStatus.Team[ bTeam ].bLastID; ++cnt ) { + pSoldier = cnt; // ATE: Ok, lets check for some basic things here! if ( pSoldier->stats.bLife >= OKLIFE && !TileIsOutOfBounds(pSoldier->sGridNo) && pSoldier->bActive && pSoldier->bInSector ) { @@ -2526,7 +2526,6 @@ void LookForAndMayCommentOnSeeingCorpse( SOLDIERTYPE *pSoldier, INT32 sGridNo, U { ROTTING_CORPSE *pCorpse; INT8 bToleranceThreshold = 0; - INT32 cnt; SOLDIERTYPE *pTeamSoldier; if ( QuoteExp[ pSoldier->ubProfile ].QuoteExpHeadShotOnly == 1 ) @@ -2567,11 +2566,12 @@ void LookForAndMayCommentOnSeeingCorpse( SOLDIERTYPE *pSoldier, INT32 sGridNo, U if ( Random( 2 ) == 1 ) { // IF IT'S THE SELECTED GUY, MAKE ANOTHER SELECTED! - cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; + SoldierID cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; // look for all mercs on the same team, - for ( pTeamSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; cnt++,pTeamSoldier++ ) + for ( ; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++cnt ) { + pTeamSoldier = cnt; // ATE: Ok, lets check for some basic things here! if ( pTeamSoldier->stats.bLife >= OKLIFE && !TileIsOutOfBounds(pTeamSoldier->sGridNo) && pTeamSoldier->bActive && pTeamSoldier->bInSector ) { diff --git a/Tactical/ShopKeeper Interface.cpp b/Tactical/ShopKeeper Interface.cpp index 1986893f..17f255b5 100644 --- a/Tactical/ShopKeeper Interface.cpp +++ b/Tactical/ShopKeeper Interface.cpp @@ -759,7 +759,6 @@ UINT32 ShopKeeperScreenShutdown() BOOLEAN EnterShopKeeperInterface() { VOBJECT_DESC VObjectDesc; - UINT16 ubCnt; CHAR8 zTemp[32]; VSURFACE_DESC vs_desc; @@ -886,9 +885,9 @@ BOOLEAN EnterShopKeeperInterface() //Create an array of all mercs (anywhere!) currently in the player's employ, and load their small faces // This is to support showing of repair item owner's faces even when they're not in the sector, as long as they still work for player gubNumberMercsInArray = 0; - for( ubCnt = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; ubCnt <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++ubCnt ) + for( SoldierID ubCnt = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; ubCnt <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++ubCnt ) { - pSoldier = MercPtrs[ ubCnt ]; + pSoldier = ubCnt; if( pSoldier->bActive && ( pSoldier->ubProfile != NO_PROFILE ) && !(pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE ) && !AM_A_ROBOT( pSoldier ) ) diff --git a/Tactical/SkillCheck.cpp b/Tactical/SkillCheck.cpp index cff7ad4e..30773c78 100644 --- a/Tactical/SkillCheck.cpp +++ b/Tactical/SkillCheck.cpp @@ -339,7 +339,6 @@ INT32 SkillCheck( SOLDIERTYPE * pSoldier, INT8 bReason, INT8 bChanceMod ) INT32 iSkill; INT32 iChance, iReportChance; INT32 iRoll, iMadeItBy; - INT32 iLoop; SOLDIERTYPE * pTeamSoldier; INT8 bBuddyIndex; BOOLEAN fForceDamnSound = FALSE; @@ -946,9 +945,10 @@ INT32 SkillCheck( SOLDIERTYPE * pSoldier, INT8 bReason, INT8 bChanceMod ) if (iRoll < iChance) { // If a buddy of this merc is standing around nearby, they'll make a positive comment. - iLoop = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; - for ( pTeamSoldier = MercPtrs[ iLoop ]; iLoop <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; iLoop++,pTeamSoldier++ ) + SoldierID iLoop = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; + for ( ; iLoop <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++iLoop ) { + pTeamSoldier = iLoop; if ( OK_INSECTOR_MERC( pTeamSoldier ) ) { if ( SpacesAway( pSoldier->sGridNo, pTeamSoldier->sGridNo ) < 15 ) diff --git a/Tactical/SkillMenu.cpp b/Tactical/SkillMenu.cpp index 0b4cdaf7..18a175ae 100644 --- a/Tactical/SkillMenu.cpp +++ b/Tactical/SkillMenu.cpp @@ -784,17 +784,17 @@ SoldierSelection::Setup( UINT32 aVal ) // pretty simple: we find every soldier in a radius around the target position and add him to the list // loop through all soldiers around - for ( UINT32 cnt = gTacticalStatus.Team[ OUR_TEAM ].bFirstID ; cnt <= gTacticalStatus.Team[ CIV_TEAM ].bLastID ; ++cnt ) + for ( SoldierID id = gTacticalStatus.Team[ OUR_TEAM ].bFirstID ; id <= gTacticalStatus.Team[ CIV_TEAM ].bLastID ; ++id ) { - INT32 iRange = GetRangeInCellCoordsFromGridNoDiff( sTraitsMenuTargetGridNo, MercPtrs[ cnt ]->sGridNo ); + INT32 iRange = GetRangeInCellCoordsFromGridNoDiff( sTraitsMenuTargetGridNo, id->sGridNo ); if ( iRange < 100 ) { - if ( cnt != pSoldier->ubID ) + if ( id != pSoldier->ubID ) { - swprintf( pStr, L"%s", MercPtrs[ cnt ]->GetName() ); + swprintf( pStr, L"%s", id->GetName() ); - pOption = new POPUP_OPTION(&std::wstring( pStr ), new popupCallbackFunction( &Wrapper_Function_SoldierSelection, cnt ) ); + pOption = new POPUP_OPTION(&std::wstring( pStr ), new popupCallbackFunction( &Wrapper_Function_SoldierSelection, id ) ); // grey out if no artillery can be called from this sector if ( 0 ) @@ -865,11 +865,11 @@ DragSelection::Setup( UINT32 aVal ) // pretty simple: we find every soldier in a radius around the target position and add him to the list // loop through all soldiers around - for ( UINT32 cnt = gTacticalStatus.Team[OUR_TEAM].bFirstID; cnt <= gTacticalStatus.Team[CIV_TEAM].bLastID; ++cnt ) + for ( SoldierID cnt = gTacticalStatus.Team[OUR_TEAM].bFirstID; cnt <= gTacticalStatus.Team[CIV_TEAM].bLastID; ++cnt ) { if ( cnt != pSoldier->ubID && pSoldier->CanDragPerson(cnt) ) { - swprintf( pStr, L"%s", MercPtrs[cnt]->GetName( ) ); + swprintf( pStr, L"%s", cnt->GetName( ) ); pOption = new POPUP_OPTION( &std::wstring( pStr ), new popupCallbackFunction( &Wrapper_Function_DragSelection, cnt ) ); diff --git a/Tactical/Soldier Add.cpp b/Tactical/Soldier Add.cpp index 61e4494c..ac65d912 100644 --- a/Tactical/Soldier Add.cpp +++ b/Tactical/Soldier Add.cpp @@ -1761,16 +1761,14 @@ void AddSoldierToSectorGridNo( SOLDIERTYPE *pSoldier, INT32 sGridNo, UINT8 ubDir // IsMercOnTeam() checks to see if the passed in Merc Profile ID is currently on the player's team BOOLEAN IsMercOnTeam(UINT8 ubMercID, BOOLEAN aAlreadyInCountry, BOOLEAN aAlive) { - UINT16 cnt; - UINT16 ubLastTeamID; SOLDIERTYPE *pTeamSoldier; - - cnt = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; - ubLastTeamID = gTacticalStatus.Team[ OUR_TEAM ].bLastID; + SoldierID cnt = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; + SoldierID ubLastTeamID = gTacticalStatus.Team[ OUR_TEAM ].bLastID; // look for all mercs on the same team, - for ( pTeamSoldier = MercPtrs[ cnt ]; cnt <= ubLastTeamID; ++cnt, pTeamSoldier++) + for ( ; cnt <= ubLastTeamID; ++cnt ) { + pTeamSoldier = cnt; if ( pTeamSoldier->ubProfile == ubMercID && pTeamSoldier->bActive ) { if ( aAlreadyInCountry && pTeamSoldier->bAssignment == IN_TRANSIT ) @@ -1791,12 +1789,12 @@ BOOLEAN IsMercOnTeam(UINT8 ubMercID, BOOLEAN aAlreadyInCountry, BOOLEAN aAlive) SoldierID GetSoldierIDFromMercID(UINT8 ubMercID) { SOLDIERTYPE *pTeamSoldier = NULL; - - UINT16 cnt = gTacticalStatus.Team[OUR_TEAM].bFirstID; + SoldierID cnt = gTacticalStatus.Team[OUR_TEAM].bFirstID; // look for all mercs on the same team, - for ( pTeamSoldier = MercPtrs[cnt]; cnt <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++cnt, ++pTeamSoldier ) + for ( ; cnt <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++cnt ) { + pTeamSoldier = cnt; if ( pTeamSoldier->ubProfile == ubMercID ) { if( pTeamSoldier->bActive ) diff --git a/Tactical/Soldier Ani.cpp b/Tactical/Soldier Ani.cpp index 2ef15f57..be1e866d 100644 --- a/Tactical/Soldier Ani.cpp +++ b/Tactical/Soldier Ani.cpp @@ -3559,7 +3559,6 @@ void SayBuddyWitnessedQuoteFromKill( SOLDIERTYPE *pKillerSoldier, INT32 sGridNo, UINT16 ubNumMercs = 0; UINT16 ubChosenMerc; SOLDIERTYPE *pTeamSoldier; - INT32 cnt; UINT16 usQuoteNum; BOOLEAN buddyquoteused = FALSE; @@ -3570,11 +3569,12 @@ void SayBuddyWitnessedQuoteFromKill( SOLDIERTYPE *pKillerSoldier, INT32 sGridNo, return; // 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 ) && !AM_AN_EPC( pTeamSoldier ) && !( pTeamSoldier->flags.uiStatusFlags & SOLDIER_GASSED ) && !(AM_A_ROBOT( pTeamSoldier )) && !pTeamSoldier->flags.fMercAsleep && !TileIsOutOfBounds(pTeamSoldier->sGridNo) && pTeamSoldier->ubProfile != pKillerSoldier->ubProfile ) @@ -3709,8 +3709,9 @@ void SayBuddyWitnessedQuoteFromKill( SOLDIERTYPE *pKillerSoldier, INT32 sGridNo, { cnt = gTacticalStatus.Team[gbPlayerNum].bFirstID; - for ( pTeamSoldier = MercPtrs[cnt]; cnt <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++cnt, ++pTeamSoldier ) + for ( ; cnt <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++cnt ) { + pTeamSoldier = cnt; // we do not exclude the buddies from above. If we get to this point, it might have been a buddy that already said his line. In that case additional dialogue might play other ones // Add guy if he's a candidate... @@ -3742,7 +3743,6 @@ void SayBuddyWitnessedQuoteFromKill( SOLDIERTYPE *pKillerSoldier, INT32 sGridNo, void HandleKilledQuote( SOLDIERTYPE *pKilledSoldier, SOLDIERTYPE *pKillerSoldier, INT32 sGridNo, INT8 bLevel ) { SOLDIERTYPE *pTeamSoldier; - INT32 cnt; // WDS - make number of mercenaries, etc. be configurable std::vector ubMercsInSector (CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS, 0); UINT16 ubNumMercs = 0; @@ -3802,11 +3802,12 @@ void HandleKilledQuote( SOLDIERTYPE *pKilledSoldier, SOLDIERTYPE *pKillerSoldier if ( fDoSomeoneElse ) { // Check if a person is here that has this quote.... - 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 ( cnt != pKillerSoldier->ubID ) { if ( OK_INSECTOR_MERC( pTeamSoldier ) && !( pTeamSoldier->flags.uiStatusFlags & SOLDIER_GASSED ) && !AM_AN_EPC( pTeamSoldier ) ) diff --git a/Tactical/Soldier Control.cpp b/Tactical/Soldier Control.cpp index bffbc8eb..8235157c 100644 --- a/Tactical/Soldier Control.cpp +++ b/Tactical/Soldier Control.cpp @@ -2836,7 +2836,6 @@ BOOLEAN SOLDIERTYPE::ChangeSoldierState( UINT16 usNewState, UINT16 usStartingAni // This function reevaluates the stance if the guy sees us! BOOLEAN ReevaluateEnemyStance( SOLDIERTYPE *pSoldier, UINT16 usAnimState ) { - INT32 cnt; SoldierID iClosestEnemy = NOBODY; INT16 sTargetXPos, sTargetYPos; BOOLEAN fReturnVal = FALSE; @@ -2871,7 +2870,7 @@ BOOLEAN ReevaluateEnemyStance( SOLDIERTYPE *pSoldier, UINT16 usAnimState ) if ( pSoldier->aiData.bOppCnt > 0 ) { // Pick a guy this buddy sees and turn towards them! - for ( 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 ) { if ( pSoldier->aiData.bOppList[cnt] == SEEN_CURRENTLY ) { @@ -12260,16 +12259,13 @@ BOOLEAN SOLDIERTYPE::MercInHighWater( void ) void RevivePlayerTeam( ) { - INT32 cnt; - SOLDIERTYPE *pSoldier; - // End the turn of player charactors - cnt = gTacticalStatus.Team[gbPlayerNum].bFirstID; + SoldierID id = gTacticalStatus.Team[gbPlayerNum].bFirstID; // look for all mercs on the same team, - for ( pSoldier = MercPtrs[cnt]; cnt <= gTacticalStatus.Team[gbPlayerNum].bLastID; cnt++, pSoldier++ ) + for ( ; id <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++id ) { - pSoldier->ReviveSoldier( ); + id->ReviveSoldier( ); } } @@ -15221,10 +15217,11 @@ BOOLEAN SOLDIERTYPE::IsFeedingExternal( SoldierID * pubId1, UINT16* pGunSlot1, INT32 nextGridNoinSight = NewGridNo( this->sGridNo, DirectionInc( this->ubDirection ) ); SOLDIERTYPE* pTeamSoldier = NULL; - INT32 cnt = gTacticalStatus.Team[this->bTeam].bFirstID; - INT32 lastid = gTacticalStatus.Team[this->bTeam].bLastID; - for ( pTeamSoldier = MercPtrs[cnt]; cnt < lastid; ++cnt, ++pTeamSoldier ) + SoldierID cnt = gTacticalStatus.Team[this->bTeam].bFirstID; + SoldierID lastid = gTacticalStatus.Team[this->bTeam].bLastID; + for ( ; cnt < lastid; ++cnt ) { + pTeamSoldier = cnt; // check if teamsoldier exists in this sector if ( !pTeamSoldier || !pTeamSoldier->bActive || !pTeamSoldier->bInSector || pTeamSoldier->sSectorX != this->sSectorX || pTeamSoldier->sSectorY != this->sSectorY || pTeamSoldier->bSectorZ != this->bSectorZ ) continue; @@ -16234,9 +16231,10 @@ void SOLDIERTYPE::LooseDisguise( void ) // rehandle sight for everybody SOLDIERTYPE* pSoldier; - UINT16 iLoop = gTacticalStatus.Team[OUR_TEAM].bFirstID; - for ( pSoldier = MercPtrs[iLoop]; iLoop <= gTacticalStatus.Team[CIV_TEAM].bLastID; ++iLoop, ++pSoldier ) + SoldierID iLoop = gTacticalStatus.Team[OUR_TEAM].bFirstID; + for ( ; iLoop <= gTacticalStatus.Team[CIV_TEAM].bLastID; ++iLoop ) { + pSoldier = iLoop; if ( pSoldier->bActive && pSoldier->bInSector && pSoldier->stats.bLife > 0 ) { RecalculateOppCntsDueToNoLongerNeutral( pSoldier ); @@ -18880,10 +18878,11 @@ BOOLEAN SOLDIERTYPE::OrderArtilleryStrike( UINT32 usSectorNr, INT32 sTargetGridN UINT16 mortararray[maxFiringMortarsAmount] = { 0 }; SOLDIERTYPE* pSoldier = NULL; - INT32 cnt = gTacticalStatus.Team[bTeam].bFirstID; - INT32 lastid = gTacticalStatus.Team[bTeam].bLastID; - for ( pSoldier = MercPtrs[cnt]; (cnt < lastid) && (mortaritemcnt < maxFiringMortarsAmount); ++cnt, ++pSoldier ) + SoldierID cnt = gTacticalStatus.Team[bTeam].bFirstID; + SoldierID lastid = gTacticalStatus.Team[bTeam].bLastID; + for ( ; (cnt < lastid) && (mortaritemcnt < maxFiringMortarsAmount); ++cnt ) { + pSoldier = cnt; // check if soldier exists in this sector if ( !pSoldier || !pSoldier->bActive || pSoldier->sSectorX != sSectorX || pSoldier->sSectorY != sSectorY || pSoldier->bSectorZ != bSectorZ || pSoldier->bAssignment > ON_DUTY ) continue; @@ -18924,8 +18923,9 @@ BOOLEAN SOLDIERTYPE::OrderArtilleryStrike( UINT32 usSectorNr, INT32 sTargetGridN // second loop: check for all mortar shells and 'fire' them cnt = gTacticalStatus.Team[bTeam].bFirstID; - for ( pSoldier = MercPtrs[cnt]; cnt < lastid; ++cnt, ++pSoldier ) + for ( ; cnt < lastid; ++cnt ) { + pSoldier = cnt; // check if soldier exists in this sector if ( !pSoldier || !pSoldier->bActive || pSoldier->sSectorX != sSectorX || pSoldier->sSectorY != sSectorY || pSoldier->bSectorZ != bSectorZ || pSoldier->bAssignment > ON_DUTY ) continue; @@ -21602,15 +21602,16 @@ BOOLEAN SOLDIERTYPE::OrderTurnCoatToSwitchSides( SoldierID usID ) void SOLDIERTYPE::OrderAllTurnCoatToSwitchSides() { SOLDIERTYPE *pSoldier; - INT32 cnt = gTacticalStatus.Team[ENEMY_TEAM].bFirstID; + SoldierID cnt = gTacticalStatus.Team[ENEMY_TEAM].bFirstID; // rftr: force the player to enter turn-based combat. this function already includes a check to see if we're already in combat, so no harm calling this. // this also prevents a hang when activating a sector with 100% turncoats EnterCombatMode(OUR_TEAM); // run through list - for ( pSoldier = MercPtrs[cnt]; cnt <= gTacticalStatus.Team[ENEMY_TEAM].bLastID; ++cnt, ++pSoldier ) + for ( ; cnt <= gTacticalStatus.Team[ENEMY_TEAM].bLastID; ++cnt ) { + pSoldier = cnt; if ( pSoldier->bActive && pSoldier->bInSector ) { if ( pSoldier->usSoldierFlagMask2 & SOLDIER_TURNCOAT ) @@ -23687,16 +23688,15 @@ void SOLDIERTYPE::UpdateRobotControllerGivenRobot( void ) //the original function passed in pRobot, not pSoldier SOLDIERTYPE *pRobot = this; SOLDIERTYPE *pTeamSoldier; - INT32 cnt = 0; - // Loop through guys and look for a controller! // 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++ ) + // Loop through guys and look for a controller! + for ( ; cnt <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++cnt ) { + pTeamSoldier = cnt; if ( pTeamSoldier->bActive ) { if ( pTeamSoldier->ControllingRobot( ) ) @@ -23714,7 +23714,6 @@ void SOLDIERTYPE::UpdateRobotControllerGivenRobot( void ) void SOLDIERTYPE::UpdateRobotControllerGivenController( void ) { SOLDIERTYPE *pTeamSoldier; - INT32 cnt = 0; // First see if are still controlling the robot if ( !this->ControllingRobot( ) ) @@ -23723,11 +23722,12 @@ void SOLDIERTYPE::UpdateRobotControllerGivenController( void ) } // set up soldier ptr as first element in mercptrs list - cnt = gTacticalStatus.Team[gbPlayerNum].bFirstID; + SoldierID cnt = gTacticalStatus.Team[gbPlayerNum].bFirstID; // Loop through guys to find the robot.... - for ( pTeamSoldier = MercPtrs[cnt]; cnt <= gTacticalStatus.Team[gbPlayerNum].bLastID; cnt++, pTeamSoldier++ ) + for ( ; cnt <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++cnt ) { + pTeamSoldier = cnt; if ( pTeamSoldier->bActive && (pTeamSoldier->flags.uiStatusFlags & SOLDIER_ROBOT) ) { pTeamSoldier->ubRobotRemoteHolderID = this->ubID; @@ -23923,11 +23923,11 @@ void PlayStealthySoldierFootstepSound( SOLDIERTYPE *pSoldier ) void CrowsFlyAway( UINT8 ubTeam ) { - UINT32 cnt; SOLDIERTYPE *pTeamSoldier; - for ( cnt = gTacticalStatus.Team[ubTeam].bFirstID, pTeamSoldier = MercPtrs[cnt]; cnt <= gTacticalStatus.Team[ubTeam].bLastID; cnt++, pTeamSoldier++ ) + for ( SoldierID cnt = gTacticalStatus.Team[ubTeam].bFirstID; cnt <= gTacticalStatus.Team[ubTeam].bLastID; ++cnt ) { + pTeamSoldier = cnt; if ( pTeamSoldier->bActive && pTeamSoldier->bInSector ) { if ( pTeamSoldier->ubBodyType == CROW && pTeamSoldier->usAnimState != CROW_FLY ) @@ -23943,7 +23943,6 @@ void CrowsFlyAway( UINT8 ubTeam ) #ifdef JA2BETAVERSION void DebugValidateSoldierData( ) { - UINT32 cnt; SOLDIERTYPE *pSoldier; CHAR16 sString[1024]; BOOLEAN fProblemDetected = FALSE; @@ -23960,9 +23959,10 @@ void DebugValidateSoldierData( ) uiFrameCount = 0; // Loop through our team... - cnt = gTacticalStatus.Team[gbPlayerNum].bFirstID; - for ( pSoldier = MercPtrs[cnt]; cnt <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++cnt, pSoldier++ ) + SoldierID cnt = gTacticalStatus.Team[gbPlayerNum].bFirstID; + for ( ; cnt <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++cnt ) { + pSoldier = cnt; if ( pSoldier->bActive ) { // OK, first check for alive people @@ -24048,7 +24048,6 @@ void SOLDIERTYPE::BeginTyingToFall( void ) void SOLDIERTYPE::SetSoldierAsUnderAiControl( void ) { SOLDIERTYPE *pSoldier = NULL; - INT32 cnt; //this is silly, but left over from when pSoldierToSet was passed in as a parameter if ( this == NULL ) @@ -24057,9 +24056,10 @@ void SOLDIERTYPE::SetSoldierAsUnderAiControl( void ) } // Loop through ALL teams... - cnt = gTacticalStatus.Team[OUR_TEAM].bFirstID; - for ( pSoldier = MercPtrs[cnt]; cnt <= gTacticalStatus.Team[LAST_TEAM].bLastID; cnt++, pSoldier++ ) + SoldierID cnt = gTacticalStatus.Team[OUR_TEAM].bFirstID; + for ( ; cnt <= gTacticalStatus.Team[LAST_TEAM].bLastID; ++cnt ) { + pSoldier = cnt; if ( pSoldier->bActive ) { pSoldier->flags.uiStatusFlags &= ~SOLDIER_UNDERAICONTROL; @@ -24096,12 +24096,12 @@ void HandlePlayerTogglingLightEffects( BOOLEAN fToggleValue ) void EnableDisableSoldierLightEffects( BOOLEAN fEnableLights ) { SOLDIERTYPE *pSoldier = NULL; - INT32 cnt; // Loop through player teams... - cnt = gTacticalStatus.Team[OUR_TEAM].bFirstID; - for ( pSoldier = MercPtrs[cnt]; cnt <= gTacticalStatus.Team[OUR_TEAM].bLastID; cnt++, pSoldier++ ) + SoldierID cnt = gTacticalStatus.Team[OUR_TEAM].bFirstID; + for ( ; cnt <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++cnt ) { + pSoldier = cnt; //if the soldier is in the sector if ( pSoldier->bActive && pSoldier->bInSector && pSoldier->stats.bLife >= OKLIFE ) { @@ -24248,11 +24248,11 @@ BOOLEAN SOLDIERTYPE::CanStartDrag(void) if (!TileIsOutOfBounds(sNewGridNo) && sNewGridNo != this->sGridNo) { // soldiers - for (UINT32 cnt = gTacticalStatus.Team[OUR_TEAM].bFirstID; cnt <= gTacticalStatus.Team[CIV_TEAM].bLastID; ++cnt) + for ( SoldierID cnt = gTacticalStatus.Team[OUR_TEAM].bFirstID; cnt <= gTacticalStatus.Team[CIV_TEAM].bLastID; ++cnt) { if (cnt != this->ubID && cnt != NOBODY && - MercPtrs[cnt]->sGridNo == sNewGridNo && + cnt->sGridNo == sNewGridNo && this->CanDragPerson(cnt)) { return TRUE; @@ -24312,11 +24312,11 @@ void SOLDIERTYPE::StartDrag(void) if (!TileIsOutOfBounds(sNewGridNo) && sNewGridNo != this->sGridNo) { // soldiers - for (UINT32 cnt = gTacticalStatus.Team[OUR_TEAM].bFirstID; cnt <= gTacticalStatus.Team[CIV_TEAM].bLastID; ++cnt) + for ( SoldierID cnt = gTacticalStatus.Team[OUR_TEAM].bFirstID; cnt <= gTacticalStatus.Team[CIV_TEAM].bLastID; ++cnt) { if (cnt != this->ubID && - MercPtrs[cnt] && - MercPtrs[cnt]->sGridNo == sNewGridNo && + cnt != NOBODY && + cnt->sGridNo == sNewGridNo && this->CanDragPerson(cnt)) { SetDragOrderPerson(cnt); @@ -24488,13 +24488,12 @@ INT8 NUM_SKILL_TRAITS( SOLDIERTYPE * pSoldier, UINT8 uiSkillTraitNumber ) UINT8 GetSquadleadersCountInVicinity( SOLDIERTYPE * pSoldier, BOOLEAN fWithHigherLevel, BOOLEAN fDontCheckDistance ) { - UINT16 cnt = 0; UINT8 ubNumberSL = 0; // loop through all soldiers around - for ( cnt = gTacticalStatus.Team[pSoldier->bTeam].bFirstID; cnt <= gTacticalStatus.Team[pSoldier->bTeam].bLastID; cnt++ ) + for ( SoldierID cnt = gTacticalStatus.Team[pSoldier->bTeam].bFirstID; cnt <= gTacticalStatus.Team[pSoldier->bTeam].bLastID; ++cnt ) { - SOLDIERTYPE *pSquadLeader = MercPtrs[cnt]; + SOLDIERTYPE *pSquadLeader = cnt; // Get active conscious soldier if ( pSquadLeader != pSoldier && pSquadLeader->bActive && //MercPtrs[ cnt ]->aiData.bShock < 20 && pSquadLeader->stats.bLife >= OKLIFE && HAS_SKILL_TRAIT( pSquadLeader, SQUADLEADER_NT ) ) @@ -24531,9 +24530,9 @@ UINT8 GetSquadleadersCountInVicinity( SOLDIERTYPE * pSoldier, BOOLEAN fWithHighe // special loop for militia - they can get a bonus from our mercs if ( pSoldier->bTeam == MILITIA_TEAM && ubNumberSL < gSkillTraitValues.ubSLMaxBonuses ) { - for ( 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 *pSquadLeader = MercPtrs[cnt]; + SOLDIERTYPE *pSquadLeader = cnt; // Get active conscious soldier if ( pSquadLeader != pSoldier && pSquadLeader->bActive && //MercPtrs[ cnt ]->aiData.bShock < 20 && pSquadLeader->stats.bLife >= OKLIFE && HAS_SKILL_TRAIT( pSquadLeader, SQUADLEADER_NT ) ) @@ -24981,7 +24980,7 @@ BOOLEAN ResolvePendingInterrupt( SOLDIERTYPE * pSoldier, UINT8 ubInterruptType ) if ( gGameExternalOptions.fAllowCollectiveInterrupts ) { SOLDIERTYPE *pTeammate; - UINT16 uCnt2 = 0, usColIntChance = 0; + UINT16 usColIntChance = 0; UINT8 ubOriginalInterruptersCount = ubInterruptersFound, uCnt3 = 0; BOOLEAN fAlreadyIn; @@ -24989,9 +24988,10 @@ BOOLEAN ResolvePendingInterrupt( SOLDIERTYPE * pSoldier, UINT8 ubInterruptType ) { pInterrupter = MercPtrs[ubaInterruptersList[uCnt]]; - uCnt2 = gTacticalStatus.Team[pInterrupter->bTeam].bFirstID; - for ( pTeammate = MercPtrs[uCnt2]; uCnt2 <= gTacticalStatus.Team[pInterrupter->bTeam].bLastID; uCnt2++, pTeammate++ ) + SoldierID uCnt2 = gTacticalStatus.Team[pInterrupter->bTeam].bFirstID; + for ( ; uCnt2 <= gTacticalStatus.Team[pInterrupter->bTeam].bLastID; ++uCnt2 ) { + pTeammate = uCnt2; if ( pTeammate == NULL ) continue; // not valid if ( pTeammate->bTeam != pInterrupter->bTeam ) @@ -25236,10 +25236,11 @@ BOOLEAN GetRadioOperatorSignal( SoldierID usOwner, INT32* psTargetGridNo ) bTeam = ENEMY_TEAM; SOLDIERTYPE* pSoldier = NULL; - INT32 cnt = gTacticalStatus.Team[bTeam].bFirstID; - INT32 lastid = gTacticalStatus.Team[bTeam].bLastID; - for ( pSoldier = MercPtrs[cnt]; cnt < lastid; ++cnt, ++pSoldier ) + SoldierID cnt = gTacticalStatus.Team[bTeam].bFirstID; + SoldierID lastid = gTacticalStatus.Team[bTeam].bLastID; + for ( ; cnt < lastid; ++cnt ) { + pSoldier = cnt; if ( pSoldier && pSoldier->CanUseRadio( FALSE ) && pSoldier->bActive && pSoldier->bInSector && (pSoldier->sSectorX == gWorldSectorX) && (pSoldier->sSectorY == gWorldSectorY) && (pSoldier->bSectorZ == gbWorldSectorZ) ) { *psTargetGridNo = pSoldier->sGridNo; @@ -25306,10 +25307,11 @@ BOOLEAN IsValidArtilleryOrderSector( INT16 sSectorX, INT16 sSectorY, INT8 bSecto BOOLEAN activeradio = FALSE; BOOLEAN mortarfound = FALSE; SOLDIERTYPE* pSoldier = NULL; - INT32 cnt = gTacticalStatus.Team[bTeam].bFirstID; - INT32 lastid = gTacticalStatus.Team[bTeam].bLastID; - for ( pSoldier = MercPtrs[cnt]; cnt < lastid; ++cnt, ++pSoldier ) + SoldierID cnt = gTacticalStatus.Team[bTeam].bFirstID; + SoldierID lastid = gTacticalStatus.Team[bTeam].bLastID; + for ( ; cnt < lastid; ++cnt ) { + pSoldier = cnt; // check if soldier exists in this sector, and is on duty if ( !pSoldier || !pSoldier->bActive || pSoldier->sSectorX != sSectorX || pSoldier->sSectorY != sSectorY || pSoldier->bSectorZ != bSectorZ || pSoldier->bAssignment > ON_DUTY ) continue; @@ -25332,10 +25334,11 @@ BOOLEAN SectorJammed( ) { // check every soldier: are we jamming frequencies? SOLDIERTYPE* pSoldier = NULL; - INT32 cnt = gTacticalStatus.Team[OUR_TEAM].bFirstID; - INT32 lastid = MAX_NUM_SOLDIERS; - for ( pSoldier = MercPtrs[cnt]; cnt < lastid; ++cnt, ++pSoldier ) + SoldierID cnt = gTacticalStatus.Team[OUR_TEAM].bFirstID; + SoldierID lastid = MAX_NUM_SOLDIERS; + for ( ; cnt < lastid; ++cnt ) { + pSoldier = cnt; if ( pSoldier->sSectorX == gWorldSectorX && pSoldier->sSectorY == gWorldSectorY && pSoldier->bSectorZ == gbWorldSectorZ && pSoldier->stats.bLife > 0 && pSoldier->IsJamming( ) ) return TRUE; } @@ -25347,10 +25350,11 @@ BOOLEAN PlayerTeamIsScanning( ) { // check every soldier: are we jamming frequencies? SOLDIERTYPE* pSoldier = NULL; - INT32 cnt = gTacticalStatus.Team[OUR_TEAM].bFirstID; - INT32 lastid = gTacticalStatus.Team[OUR_TEAM].bLastID; - for ( pSoldier = MercPtrs[cnt]; cnt < lastid; ++cnt, ++pSoldier ) + SoldierID cnt = gTacticalStatus.Team[OUR_TEAM].bFirstID; + SoldierID lastid = gTacticalStatus.Team[OUR_TEAM].bLastID; + for ( ; cnt < lastid; ++cnt ) { + pSoldier = cnt; if ( pSoldier->sSectorX == gWorldSectorX && pSoldier->sSectorY == gWorldSectorY && pSoldier->bSectorZ == gbWorldSectorZ && pSoldier->stats.bLife > 0 && pSoldier->IsScanning( ) ) return TRUE; } @@ -25364,10 +25368,11 @@ UINT16 GridNoSpotterCTHBonus( SOLDIERTYPE* pSniper, INT32 sGridNo, INT8 bTeam ) UINT16 bestvalue = 0; SOLDIERTYPE* pSoldier = NULL; - INT32 cnt = gTacticalStatus.Team[bTeam].bFirstID; - INT32 lastid = gTacticalStatus.Team[bTeam].bLastID; - for ( pSoldier = MercPtrs[cnt]; cnt < lastid; ++cnt, ++pSoldier ) + SoldierID cnt = gTacticalStatus.Team[bTeam].bFirstID; + SoldierID lastid = gTacticalStatus.Team[bTeam].bLastID; + for ( ; cnt < lastid; ++cnt ) { + pSoldier = cnt; if ( pSoldier != pSniper && pSoldier->sSectorX == gWorldSectorX && pSoldier->sSectorY == gWorldSectorY && pSoldier->bSectorZ == gbWorldSectorZ && pSoldier->IsSpotting( ) && PythSpacesAway( pSoldier->sGridNo, pSniper->sGridNo ) <= gGameExternalOptions.usSpotterRange diff --git a/Tactical/Soldier Create.cpp b/Tactical/Soldier Create.cpp index 1a2be1a6..4d84b470 100644 --- a/Tactical/Soldier Create.cpp +++ b/Tactical/Soldier Create.cpp @@ -574,7 +574,6 @@ INT16 gsStrategicDiseaseOriginSector = -1; SOLDIERTYPE* TacticalCreateSoldier( SOLDIERCREATE_STRUCT *pCreateStruct, SoldierID *pubID ) { SOLDIERTYPE Soldier; - INT32 cnt; SOLDIERTYPE *pTeamSoldier; BOOLEAN fGuyAvail = FALSE; UINT16 bLastTeamID; @@ -761,7 +760,7 @@ SOLDIERTYPE* TacticalCreateSoldier( SOLDIERCREATE_STRUCT *pCreateStruct, Soldier if( guiCurrentScreen != AUTORESOLVE_SCREEN ) { - cnt = gTacticalStatus.Team[ Soldier.bTeam ].bFirstID; + SoldierID cnt = gTacticalStatus.Team[ Soldier.bTeam ].bFirstID; // ATE: If we are a vehicle, and a player, start at a different slot ( 2 - max ) if( Soldier.ubBodyType == HUMVEE || @@ -778,8 +777,9 @@ SOLDIERTYPE* TacticalCreateSoldier( SOLDIERCREATE_STRUCT *pCreateStruct, Soldier bLastTeamID = gTacticalStatus.Team[ Soldier.bTeam ].bLastID; // look for all mercs on the same team, - for ( pTeamSoldier = MercPtrs[ cnt ]; cnt <= bLastTeamID; cnt++,pTeamSoldier++) + for ( ; cnt <= bLastTeamID; ++cnt ) { + pTeamSoldier = cnt; if ( !pTeamSoldier->bActive ) { fGuyAvail = TRUE; @@ -794,7 +794,7 @@ SOLDIERTYPE* TacticalCreateSoldier( SOLDIERCREATE_STRUCT *pCreateStruct, Soldier } // OK, set ID - Soldier.ubID = (UINT16)cnt; + Soldier.ubID = cnt; *pubID = Soldier.ubID; } @@ -3031,7 +3031,7 @@ void ForceSoldierProfileID( SOLDIERTYPE *pSoldier, UINT8 ubProfileID ) SOLDIERTYPE* ReserveTacticalSoldierForAutoresolve( UINT8 ubSoldierClass ) { - INT32 i, iStart, iEnd; + SoldierID i, iStart, iEnd; SOLDIERTYPE *pSoldier; //This code looks for a soldier of specified type that currently exists in tactical and //returns the pointer to that soldier. This is used when copying the exact status of @@ -3049,13 +3049,13 @@ SOLDIERTYPE* ReserveTacticalSoldierForAutoresolve( UINT8 ubSoldierClass ) iEnd = gTacticalStatus.Team[ CREATURE_TEAM ].bLastID; } for( i = iStart; i <= iEnd; ++i ) - { - if( MercPtrs[ i ]->bActive && MercPtrs[ i ]->bInSector && MercPtrs[ i ]->stats.bLife && !TileIsOutOfBounds(MercPtrs[ i ]->sGridNo)) + { + if( i->bActive && i->bInSector && i->stats.bLife && !TileIsOutOfBounds(i->sGridNo)) { - if( MercPtrs[ i ]->ubSoldierClass == ubSoldierClass ) + if( i->ubSoldierClass == ubSoldierClass ) { //reserve this soldier - MercPtrs[ i ]->sGridNo = NOWHERE; + i->sGridNo = NOWHERE; //Allocate and copy the soldier pSoldier = new SOLDIERTYPE(*MercPtrs[i]); //(SOLDIERTYPE*)MemAlloc( SIZEOF_SOLDIERTYPE ); @@ -3348,7 +3348,7 @@ SOLDIERTYPE* TacticalCreateZombie() SOLDIERTYPE* ReserveTacticalMilitiaSoldierForAutoresolve( UINT8 ubSoldierClass ) { - INT32 i, iStart, iEnd; + SoldierID i, iStart, iEnd; SOLDIERTYPE *pSoldier; // For description look original ReserveTacticalSoldierForAutoresolve() @@ -3356,14 +3356,14 @@ SOLDIERTYPE* ReserveTacticalMilitiaSoldierForAutoresolve( UINT8 ubSoldierClass ) iStart = gTacticalStatus.Team[ MILITIA_TEAM ].bFirstID; iEnd = gTacticalStatus.Team[ MILITIA_TEAM ].bLastID; - for( i = iStart; i <= iEnd; i++ ) + for( i = iStart; i <= iEnd; ++i ) { - if( MercPtrs[ i ]->bActive && MercPtrs[ i ]->bInSector && MercPtrs[ i ]->stats.bLife && !TileIsOutOfBounds(MercPtrs[ i ]->sGridNo)) + if( i->bActive && i->bInSector && i->stats.bLife && !TileIsOutOfBounds(i->sGridNo)) { - if( MercPtrs[ i ]->ubSoldierClass == ubSoldierClass ) + if( i->ubSoldierClass == ubSoldierClass ) { //reserve this soldier - MercPtrs[ i ]->sGridNo = NOWHERE; + i->sGridNo = NOWHERE; //Allocate and copy the soldier pSoldier = new SOLDIERTYPE(*MercPtrs[i]); //(SOLDIERTYPE*)MemAlloc( SIZEOF_SOLDIERTYPE ); diff --git a/Tactical/Soldier Init List.cpp b/Tactical/Soldier Init List.cpp index 9568210e..e0a02013 100644 --- a/Tactical/Soldier Init List.cpp +++ b/Tactical/Soldier Init List.cpp @@ -1891,9 +1891,9 @@ void AddSoldierInitListMilitia( UINT16 ubNumGreen, UINT16 ubNumRegs, UINT16 ubNu { // determine how many militia have already been created in this sector (this can also have happened in another function), so count all active ones UINT16 tacticalmilitia = 0; - for ( UINT16 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 ) { - if ( MercPtrs[i]->bInSector && MercPtrs[i]->bActive ) + if ( i->bInSector && i->bActive ) ++tacticalmilitia; } @@ -3205,10 +3205,11 @@ void SectorAddAssassins( INT16 sMapX, INT16 sMapY, INT16 sMapZ ) // count current number of civilians UINT16 numberofcivs = 0; SOLDIERTYPE* pTeamSoldier = NULL; - INT32 cnt = gTacticalStatus.Team[ CIV_TEAM ].bFirstID; - INT32 lastid = gTacticalStatus.Team[ CIV_TEAM ].bLastID; - for ( pTeamSoldier = MercPtrs[ cnt ]; cnt < lastid; ++cnt, ++pTeamSoldier) + SoldierID cnt = gTacticalStatus.Team[ CIV_TEAM ].bFirstID; + SoldierID lastid = gTacticalStatus.Team[ CIV_TEAM ].bLastID; + for ( ; cnt < lastid; ++cnt ) { + pTeamSoldier = cnt; // check if teamsoldier exists in this sector if ( pTeamSoldier && pTeamSoldier->bActive && pTeamSoldier->bInSector && pTeamSoldier->sSectorX == sMapX && pTeamSoldier->sSectorY == sMapY && pTeamSoldier->bSectorZ == sMapZ ) ++numberofcivs; @@ -3276,10 +3277,11 @@ void SectorAddPrisonersofWar( INT16 sMapX, INT16 sMapY, INT16 sMapZ ) UINT16 numberofcivs = 0; UINT16 numberofpows = 0; SOLDIERTYPE* pTeamSoldier = NULL; - INT32 cnt = gTacticalStatus.Team[ CIV_TEAM ].bFirstID; - INT32 lastid = gTacticalStatus.Team[ CIV_TEAM ].bLastID; - for ( pTeamSoldier = MercPtrs[ cnt ]; cnt < lastid; ++cnt, ++pTeamSoldier) + SoldierID cnt = gTacticalStatus.Team[ CIV_TEAM ].bFirstID; + SoldierID lastid = gTacticalStatus.Team[ CIV_TEAM ].bLastID; + for ( ; cnt < lastid; ++cnt ) { + pTeamSoldier = cnt; // check if teamsoldier exists in this sector if ( pTeamSoldier && pTeamSoldier->bActive && pTeamSoldier->bInSector && pTeamSoldier->sSectorX == sMapX && pTeamSoldier->sSectorY == sMapY && pTeamSoldier->bSectorZ == sMapZ ) ++numberofcivs; diff --git a/Tactical/Soldier Profile.cpp b/Tactical/Soldier Profile.cpp index f5d9a379..f1afe93f 100644 --- a/Tactical/Soldier Profile.cpp +++ b/Tactical/Soldier Profile.cpp @@ -2717,11 +2717,10 @@ void OverwriteMercOpinionsWithXMLData( UINT32 uiLoop ) // SANDRO - added function INT8 CheckMercsNearForCharTraits( UINT8 ubProfileID, INT8 bCharTraitID ) { - INT8 bNumber = 0; - UINT32 uiLoop; - SOLDIERTYPE * pSoldier; - SOLDIERTYPE * pTeammate; - BOOLEAN fOnlyOneException = FALSE; + INT8 bNumber = 0; + SOLDIERTYPE * pSoldier; + SOLDIERTYPE *pTeammate; + BOOLEAN fOnlyOneException = FALSE; pSoldier = FindSoldierByProfileID( ubProfileID, FALSE ); if (!pSoldier || !( pSoldier->bActive ) || !( pSoldier->bInSector ) ) @@ -2729,9 +2728,9 @@ INT8 CheckMercsNearForCharTraits( UINT8 ubProfileID, INT8 bCharTraitID ) return( -1 ); } - for ( uiLoop = gTacticalStatus.Team[ pSoldier->bTeam ].bFirstID; uiLoop <= gTacticalStatus.Team[ pSoldier->bTeam ].bLastID; uiLoop++) + for ( SoldierID uiLoop = gTacticalStatus.Team[ pSoldier->bTeam ].bFirstID; uiLoop <= gTacticalStatus.Team[ pSoldier->bTeam ].bLastID; ++uiLoop ) { - pTeammate = MercPtrs[ uiLoop ]; + pTeammate = uiLoop; if ( pTeammate == NULL ) { continue; diff --git a/Tactical/Strategic Exit GUI.cpp b/Tactical/Strategic Exit GUI.cpp index eb8192fc..d87eb3b7 100644 --- a/Tactical/Strategic Exit GUI.cpp +++ b/Tactical/Strategic Exit GUI.cpp @@ -397,17 +397,17 @@ void DoneFadeInWarp( void ) void DoneFadeOutWarpCallback( void ) { - INT32 cnt; SOLDIERTYPE *pSoldier; // Warp! // Set insertion data... - 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; // Are we in this sector, On the current squad? if ( pSoldier->bActive && pSoldier->stats.bLife >= OKLIFE && pSoldier->bInSector ) { diff --git a/Tactical/Tactical Save.cpp b/Tactical/Tactical Save.cpp index 852032d0..9efc1edf 100644 --- a/Tactical/Tactical Save.cpp +++ b/Tactical/Tactical Save.cpp @@ -119,7 +119,7 @@ void SaveNPCInformationToProfileStruct( ); BOOLEAN DoesTempFileExistsForMap( UINT32 uiType, INT16 sMapX, INT16 sMapY, INT8 bMapZ ); -INT16 GetSoldierIDFromAnyMercID(UINT8 ubMercID); +SoldierID GetSoldierIDFromAnyMercID(UINT8 ubMercID); BOOLEAN SetUnderGroundSectorFlag( INT16 sSectorX, INT16 sSectorY, UINT8 ubSectorZ, UINT32 uiFlagToSet ); @@ -1131,7 +1131,6 @@ BOOLEAN SaveCurrentSectorsInformationToTempItemFile( ) void HandleAllReachAbleItemsInTheSector( INT16 sSectorX, INT16 sSectorY, INT8 bSectorZ ) { // find out which items in the list are reachable - UINT32 uiCounter = 0; UINT8 ubDir, ubMovementCost; BOOLEAN fReachable = FALSE; INT32 sGridNo = NOWHERE, sGridNo2 = NOWHERE; @@ -1179,9 +1178,9 @@ void HandleAllReachAbleItemsInTheSector( INT16 sSectorX, INT16 sSectorY, INT8 bS { sGridNo2 = gMapInformation.sIsolatedGridNo; - for( uiCounter = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; uiCounter <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++uiCounter ) + for( SoldierID uiCounter = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; uiCounter <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++uiCounter ) { - pSoldier = MercPtrs[ uiCounter ]; + pSoldier = uiCounter; if ( pSoldier && pSoldier->bActive && pSoldier->stats.bLife > 0 && pSoldier->sSectorX == sSectorX && pSoldier->sSectorY == sSectorY && pSoldier->bSectorZ == bSectorZ ) { if ( FindBestPath( pSoldier, sGridNo2, pSoldier->pathing.bLevel, WALKING, NO_COPYROUTE, 0 ) ) @@ -1200,7 +1199,7 @@ void HandleAllReachAbleItemsInTheSector( INT16 sSectorX, INT16 sSectorY, INT8 bS GlobalItemsReachableTest( sGridNo, sGridNo2 ); - for( uiCounter = 0; uiCounter < guiNumWorldItems; ++uiCounter ) + for( UINT32 uiCounter = 0; uiCounter < guiNumWorldItems; ++uiCounter ) { // reset reachablity fReachable = FALSE; @@ -2130,29 +2129,26 @@ BOOLEAN DoesTempFileExistsForMap( UINT32 uiType, INT16 sMapX, INT16 sMapY, INT8 } -INT16 GetSoldierIDFromAnyMercID(UINT8 ubMercID) +SoldierID GetSoldierIDFromAnyMercID(UINT8 ubMercID) { - UINT16 cnt; - UINT16 ubLastTeamID; SOLDIERTYPE *pTeamSoldier; + SoldierID cnt = gTacticalStatus.Team[OUR_TEAM].bFirstID; + SoldierID ubLastTeamID = TOTAL_SOLDIERS; - cnt = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; - - ubLastTeamID = TOTAL_SOLDIERS; - - // look for all mercs on the same team, - for ( pTeamSoldier = MercPtrs[ cnt ]; cnt <= ubLastTeamID; cnt++,pTeamSoldier++) + // look for all mercs on the same team, + for ( ; cnt <= ubLastTeamID; ++cnt ) { - if( pTeamSoldier->bActive ) + pTeamSoldier = cnt; + if ( pTeamSoldier->bActive ) { if ( pTeamSoldier->ubProfile == ubMercID ) { - return( cnt ); + return(cnt); } } } - return( -1 ); + return(NOBODY); } @@ -2554,9 +2550,9 @@ BOOLEAN SetSectorFlag( INT16 sMapX, INT16 sMapY, UINT8 bMapZ, UINT32 uiFlagToSet UpdateLastDayOfPlayerActivity( (UINT16) GetWorldDay() ); } - for ( UINT16 i = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; i <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; i++ ) + for ( SoldierID id = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; id <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++id ) { - SOLDIERTYPE *pSoldier = MercPtrs[i]; + SOLDIERTYPE *pSoldier = id; if( pSoldier->bActive && pSoldier->stats.bLife && !(pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE) && pSoldier->ubProfile != NO_PROFILE && pSoldier->sSectorX == sMapX && pSoldier->sSectorY == sMapY && pSoldier->bSectorZ == bMapZ && !pSoldier->flags.fBetweenSectors && diff --git a/Tactical/Tactical Turns.cpp b/Tactical/Tactical Turns.cpp index 98f33558..38ec44fa 100644 --- a/Tactical/Tactical Turns.cpp +++ b/Tactical/Tactical Turns.cpp @@ -46,7 +46,6 @@ void HandleRPCDescription( ) UINT16 ubNumMercs = 0; UINT16 ubChosenMerc = 0; SOLDIERTYPE *pTeamSoldier; - INT32 cnt2; BOOLEAN fSAMSite = FALSE; @@ -97,12 +96,13 @@ void HandleRPCDescription( ) // OK, count how many rpc guys we have.... // set up soldier ptr as first element in mercptrs list - cnt2 = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; + SoldierID cnt2 = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; if (gTacticalStatus.ubGuideDescriptionToUse != 100) { // run through list - for ( pTeamSoldier = MercPtrs[cnt2]; cnt2 <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++cnt2, pTeamSoldier++ ) + for ( ; cnt2 <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++cnt2 ) { + pTeamSoldier = cnt2; // Add guy if he's a candidate... if ( RPC_RECRUITED( pTeamSoldier ) ) { @@ -137,8 +137,9 @@ void HandleRPCDescription( ) { // run through list cnt2 = gTacticalStatus.Team[gbPlayerNum].bFirstID; - for ( pTeamSoldier = MercPtrs[cnt2]; cnt2 <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++cnt2, pTeamSoldier++ ) + for ( ; cnt2 <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++cnt2 ) { + pTeamSoldier = cnt2; if ( pTeamSoldier->stats.bLife >= OKLIFE && pTeamSoldier->bActive && pTeamSoldier->sSectorX == gTacticalStatus.bGuideDescriptionSectorX && pTeamSoldier->sSectorY == gTacticalStatus.bGuideDescriptionSectorY && pTeamSoldier->bSectorZ == gbWorldSectorZ && @@ -154,7 +155,6 @@ void HandleRPCDescription( ) void HandleTacticalEndTurn( ) { - UINT32 cnt; SOLDIERTYPE *pSoldier; UINT32 uiTime; static UINT32 uiTimeSinceLastStrategicUpdate = 0; @@ -239,9 +239,10 @@ void HandleTacticalEndTurn( ) BeginLoggingForBleedMeToos( TRUE ); - 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->stats.bLife > 0 && !( pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE ) ) { // Handle everything from getting breath back, to bleeding, etc @@ -275,7 +276,7 @@ void HandleTacticalEndTurn( ) // OK, loop through the mercs to perform 'end turn' events on each... // We're looping through only mercs in tactical engine, ignoring our mercs // because they were done earilier... - for ( cnt = 0; cnt < guiNumMercSlots; cnt++ ) + for ( UINT32 cnt = 0; cnt < guiNumMercSlots; cnt++ ) { pSoldier = MercSlots[ cnt ]; diff --git a/Tactical/TeamTurns.cpp b/Tactical/TeamTurns.cpp index 964bbdf4..efac8945 100644 --- a/Tactical/TeamTurns.cpp +++ b/Tactical/TeamTurns.cpp @@ -136,8 +136,7 @@ void ClearIntList( void ) BOOLEAN BloodcatsPresent( void ) { - INT32 iLoop; - SOLDIERTYPE * pSoldier; + SOLDIERTYPE *pSoldier; DebugMsg (TOPIC_JA2INTERRUPT,DBG_LEVEL_3,"BloodcatsPresent"); if ( gTacticalStatus.Team[ CREATURE_TEAM ].bTeamActive == FALSE ) @@ -145,9 +144,9 @@ BOOLEAN BloodcatsPresent( void ) return( FALSE ); } - for ( iLoop = gTacticalStatus.Team[ CREATURE_TEAM ].bFirstID; iLoop <= gTacticalStatus.Team[ CREATURE_TEAM ].bLastID; iLoop++ ) + for ( SoldierID iLoop = gTacticalStatus.Team[ CREATURE_TEAM ].bFirstID; iLoop <= gTacticalStatus.Team[ CREATURE_TEAM ].bLastID; ++iLoop ) { - pSoldier = MercPtrs[ iLoop ]; + pSoldier = iLoop; if ( pSoldier->bActive && pSoldier->bInSector && pSoldier->stats.bLife > 0 && pSoldier->ubBodyType == BLOODCAT ) { @@ -160,7 +159,6 @@ BOOLEAN BloodcatsPresent( void ) void StartPlayerTeamTurn( BOOLEAN fDoBattleSnd, BOOLEAN fEnteringCombatMode ) { - INT32 cnt; DebugMsg (TOPIC_JA2INTERRUPT,DBG_LEVEL_3,"StartPlayerTeamTurn"); // SOLDIERTYPE *pSoldier; // EV_S_BEGINTURN SBeginTurn; @@ -178,8 +176,6 @@ void StartPlayerTeamTurn( BOOLEAN fDoBattleSnd, BOOLEAN fEnteringCombatMode ) // make sure set properly in gTacticalStatus: gTacticalStatus.ubCurrentTeam = OUR_TEAM; - cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; - InitPlayerUIBar( FALSE ); if ( gTacticalStatus.uiFlags & TURNBASED ) @@ -197,6 +193,7 @@ void StartPlayerTeamTurn( BOOLEAN fDoBattleSnd, BOOLEAN fEnteringCombatMode ) // ATE: Commented out - looks like this message is called earlier for our team // look for all mercs on the same team, + //SoldierID cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; //for ( pSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; cnt++,pSoldier++) //{ // if ( pSoldier->bActive && pSoldier->stats.bLife > 0 ) @@ -302,7 +299,6 @@ void EndTurn( UINT8 ubNextTeam ) { DebugMsg (TOPIC_JA2INTERRUPT,DBG_LEVEL_3,"EndTurn"); SOLDIERTYPE * pSoldier; - INT32 cnt; //Check for enemy pooling (add enemies if there happens to be more than the max in the //current battle. If one or more slots have freed up, we can add them now. @@ -344,9 +340,10 @@ void EndTurn( UINT8 ubNextTeam ) FreezeInterfaceForEnemyTurn(); // Loop through all mercs and set to moved - cnt = gTacticalStatus.Team[ gTacticalStatus.ubCurrentTeam ].bFirstID; - for ( pSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ gTacticalStatus.ubCurrentTeam ].bLastID; cnt++,pSoldier++) + SoldierID cnt = gTacticalStatus.Team[ gTacticalStatus.ubCurrentTeam ].bFirstID; + for ( ; cnt <= gTacticalStatus.Team[ gTacticalStatus.ubCurrentTeam ].bLastID; ++cnt ) { + pSoldier = cnt; if ( pSoldier->bActive ) { pSoldier->aiData.bMoved = TRUE; @@ -380,7 +377,6 @@ void EndAITurn( void ) { DebugMsg (TOPIC_JA2INTERRUPT,DBG_LEVEL_3,"EndAITurn"); SOLDIERTYPE * pSoldier; - INT32 cnt; // Remove any deadlock message EndDeadlockMsg( ); @@ -395,9 +391,10 @@ void EndAITurn( void ) } else { - cnt = gTacticalStatus.Team[ gTacticalStatus.ubCurrentTeam ].bFirstID; - for ( pSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ gTacticalStatus.ubCurrentTeam ].bLastID; cnt++,pSoldier++) + SoldierID cnt = gTacticalStatus.Team[ gTacticalStatus.ubCurrentTeam ].bFirstID; + for ( ; cnt <= gTacticalStatus.Team[ gTacticalStatus.ubCurrentTeam ].bLastID; ++cnt ) { + pSoldier = cnt; if ( pSoldier->bActive ) { pSoldier->aiData.bMoved = TRUE; @@ -417,7 +414,6 @@ void EndAllAITurns( void ) DebugMsg (TOPIC_JA2INTERRUPT,DBG_LEVEL_3,"EndAllAITurns"); // warp turn to the player's turn SOLDIERTYPE * pSoldier; - INT32 cnt; // Remove any deadlock message EndDeadlockMsg( ); @@ -428,9 +424,10 @@ void EndAllAITurns( void ) if ( gTacticalStatus.ubCurrentTeam != gbPlayerNum ) { - cnt = gTacticalStatus.Team[ gTacticalStatus.ubCurrentTeam ].bFirstID; - for ( pSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ gTacticalStatus.ubCurrentTeam ].bLastID; cnt++,pSoldier++) + SoldierID id = gTacticalStatus.Team[ gTacticalStatus.ubCurrentTeam ].bFirstID; + for ( ; id <= gTacticalStatus.Team[ gTacticalStatus.ubCurrentTeam ].bLastID; ++id ) { + pSoldier = id; if ( pSoldier->bActive ) { pSoldier->aiData.bMoved = TRUE; @@ -463,9 +460,10 @@ void EndTurnEvents( void ) DecaySmokeEffects( GetWorldTotalSeconds( ) ); SOLDIERTYPE* pSoldier = NULL; - UINT32 cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; - for ( pSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++cnt, ++pSoldier) + SoldierID id = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; + for ( ; id <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++id ) { + pSoldier = id; if ( pSoldier->bActive && pSoldier->stats.bLife > 0 )//&& !( pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE ) && !( AM_A_ROBOT( pSoldier ) ) ) { // Flugente: update multi-turn actions @@ -505,8 +503,6 @@ BOOLEAN LightningEndOfTurn( UINT8 ubTeam ); void BeginTeamTurn( UINT8 ubTeam ) { DebugMsg (TOPIC_JA2INTERRUPT,DBG_LEVEL_3,"BeginTeamTurn"); - INT32 cnt; - SoldierID ubID; SOLDIERTYPE *pSoldier; //rain @@ -573,9 +569,10 @@ void BeginTeamTurn( UINT8 ubTeam ) // decay team's public opplist DecayPublicOpplist( ubTeam ); - cnt = gTacticalStatus.Team[ ubTeam ].bFirstID; - for ( pSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ ubTeam ].bLastID; cnt++,pSoldier++) + SoldierID id = gTacticalStatus.Team[ ubTeam ].bFirstID; + for ( ; id <= gTacticalStatus.Team[ ubTeam ].bLastID; ++id ) { + pSoldier = id; if ( pSoldier->bActive && pSoldier->stats.bLife > 0) { // decay personal opplist, and refresh APs and BPs @@ -644,7 +641,7 @@ void BeginTeamTurn( UINT8 ubTeam ) if ( BuildAIListForTeam( ubTeam ) ) { - ubID = RemoveFirstAIListEntry(); + SoldierID ubID = RemoveFirstAIListEntry(); if (ubID != NOBODY) { // Dirty panel interface! @@ -810,12 +807,12 @@ BOOLEAN EveryoneInInterruptListOnSameTeam( void ) void StartInterrupt( void ) { - UINT16 ubFirstInterrupter; - INT8 bTeam; - SOLDIERTYPE * pSoldier; - SOLDIERTYPE * pTempSoldier; - UINT16 ubInterrupter; - INT32 cnt; + INT8 bTeam; + SOLDIERTYPE *pSoldier; + SOLDIERTYPE *pTempSoldier; + SoldierID ubFirstInterrupter; + SoldierID ubInterrupter; + INT32 cnt; DebugMsg (TOPIC_JA2INTERRUPT,DBG_LEVEL_3,"StartInterrupt"); ubFirstInterrupter = LATEST_INTERRUPT_GUY; @@ -837,9 +834,9 @@ void StartInterrupt( void ) gTacticalStatus.fInterruptOccurred = TRUE; - cnt = 0; - for ( pTempSoldier = MercPtrs[ cnt ]; cnt < MAX_NUM_SOLDIERS; cnt++,pTempSoldier++) + for ( SoldierID id = 0; id < MAX_NUM_SOLDIERS; ++id ) { + pTempSoldier = id; if ( pTempSoldier->bActive ) { pTempSoldier->bMovedPriorToInterrupt = pTempSoldier->aiData.bMoved; @@ -862,7 +859,7 @@ void StartInterrupt( void ) //while( 1 ) for( iCounter = 0; iCounter < MAX_NUM_SOLDIERS; iCounter++ ) { - MercPtrs[ubInterrupter]->aiData.bMoved = FALSE; + ubInterrupter->aiData.bMoved = FALSE; DebugMsg( TOPIC_JA2INTERRUPT, DBG_LEVEL_3, String("INTERRUPT: popping %d off of the interrupt queue", ubInterrupter ) ); REMOVE_LATEST_INTERRUPT_GUY(); @@ -873,7 +870,7 @@ void StartInterrupt( void ) { continue; } - else if (MercPtrs[ubInterrupter]->bTeam != bTeam) + else if (ubInterrupter->bTeam != bTeam) { break; } @@ -891,7 +888,7 @@ void StartInterrupt( void ) handleInterrupt = FALSE; // build string in separate loop here, want to linearly process squads... - SOLDIERTYPE *pInterruptedSoldier = MercPtrs[ubInterrupter]; + SOLDIERTYPE *pInterruptedSoldier = ubInterrupter; for ( iSquad = 0; iSquad < NUMBER_OF_SQUADS; iSquad++ ) { for ( iCounter = 0; iCounter < NUMBER_OF_SOLDIERS_PER_SQUAD; iCounter++ ) @@ -981,9 +978,9 @@ void StartInterrupt( void ) PlayJA2Sample( ENDTURN_1, RATE_11025, MIDVOLUME, 1, MIDDLEPAN ); // report any close call quotes for us here - for ( iCounter = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; iCounter <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; iCounter++ ) + for ( SoldierID id = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; id <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++id ) { - SOLDIERTYPE *pSoldier = MercPtrs[iCounter]; + SOLDIERTYPE *pSoldier = id; if ( OK_INSECTOR_MERC( pSoldier ) ) { @@ -1022,7 +1019,7 @@ void StartInterrupt( void ) UINT16 usCounter; for( usCounter = 0; usCounter < MAX_NUM_SOLDIERS; usCounter++ ) { - MercPtrs[ubInterrupter]->aiData.bMoved = FALSE; + ubInterrupter->aiData.bMoved = FALSE; DebugMsg( TOPIC_JA2INTERRUPT, DBG_LEVEL_3, String("INTERRUPT: popping %d off of the interrupt queue", ubInterrupter ) ); @@ -1033,7 +1030,7 @@ void StartInterrupt( void ) { continue; } - else if (MercPtrs[ubInterrupter]->bTeam != bTeam) + else if (ubInterrupter->bTeam != bTeam) { break; } @@ -1047,12 +1044,12 @@ void StartInterrupt( void ) BuildAIListForTeam( bTeam ); // set to the new first interrupter - cnt = RemoveFirstAIListEntry(); + SoldierID id = RemoveFirstAIListEntry(); // sevenfm: RemoveFirstAIListEntry() can return NOBODY - if( cnt != NOBODY ) + if( id != NOBODY ) { - pTempSoldier = MercPtrs[ cnt ]; + pTempSoldier = id; // sevenfm: don't do anything if pTempSoldier is NULL if( pTempSoldier != NULL ) @@ -1117,16 +1114,15 @@ void StartInterrupt( void ) void EndInterrupt( BOOLEAN fMarkInterruptOccurred ) { - UINT16 ubInterruptedSoldier; - SOLDIERTYPE * pSoldier; - SOLDIERTYPE * pTempSoldier; - INT32 cnt; - BOOLEAN fFound; - INT16 ubMinAPsToAttack; + SoldierID ubInterruptedSoldier; + SOLDIERTYPE *pSoldier; + SOLDIERTYPE *pTempSoldier; + BOOLEAN fFound; + INT16 ubMinAPsToAttack; DebugMsg (TOPIC_JA2INTERRUPT,DBG_LEVEL_3,"EndInterrupt"); - for ( cnt = gubOutOfTurnPersons; cnt > 0; cnt-- ) + for ( UINT16 cnt = gubOutOfTurnPersons; cnt > 0; cnt-- ) { DebugMsg( TOPIC_JA2INTERRUPT, DBG_LEVEL_3, String("ENDINT: Q position %d: %d", cnt, gubOutOfTurnOrder[ cnt ] ) ); } @@ -1144,9 +1140,10 @@ void EndInterrupt( BOOLEAN fMarkInterruptOccurred ) } // Loop through all mercs and see if any passed on this interrupt - cnt = gTacticalStatus.Team[ gTacticalStatus.ubCurrentTeam ].bFirstID; - for ( pTempSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ gTacticalStatus.ubCurrentTeam ].bLastID; cnt++,pTempSoldier++) + SoldierID id = gTacticalStatus.Team[ gTacticalStatus.ubCurrentTeam ].bFirstID; + for ( ; id <= gTacticalStatus.Team[ gTacticalStatus.ubCurrentTeam ].bLastID; ++id ) { + pTempSoldier = id; if ( pTempSoldier->bActive && pTempSoldier->bInSector && !pTempSoldier->aiData.bMoved && (pTempSoldier->bActionPoints == pTempSoldier->aiData.bIntStartAPs)) { ubMinAPsToAttack = MinAPsToAttack( pTempSoldier, pTempSoldier->sLastTarget, FALSE, 0 ); @@ -1163,58 +1160,58 @@ void EndInterrupt( BOOLEAN fMarkInterruptOccurred ) // resume interrupted interrupt //hayden - if (!is_networked) + if ( !is_networked ) { StartInterrupt(); - } - else + } + else { - UINT16 nubFirstInterrupter; - INT8 nbTeam; - SOLDIERTYPE * npSoldier; - + SoldierID nubFirstInterrupter; + INT8 nbTeam; + SOLDIERTYPE *npSoldier; + nubFirstInterrupter = LATEST_INTERRUPT_GUY; - npSoldier = MercPtrs[nubFirstInterrupter]; + npSoldier = nubFirstInterrupter; nbTeam = npSoldier->bTeam; - + //pSoldier is interrupted //but its not available //needs calculating //npSoldier,nbTeam is interruptor //hayden #ifdef BETAVERSION - ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"unchecked interrupt call area:(resume interrupted interrupt)..."); + ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"unchecked interrupt call area:(resume interrupted interrupt)..." ); #endif - - if ((nbTeam > 0) && (nbTeam <6 ) && is_server) // AI interrupt resume and im server + + if ( (nbTeam > 0) && (nbTeam < 6) && is_server ) // AI interrupt resume and im server { send_interrupt( npSoldier ); StartInterrupt(); - ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"Continuing interrupt with %s and AI", TeamNameStrings[npSoldier->bTeam]);//tried to use pSoldier, but its not available. find another way to get correct team + ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"Continuing interrupt with %s and AI", TeamNameStrings[npSoldier->bTeam] );//tried to use pSoldier, but its not available. find another way to get correct team } - else if(is_server && gTacticalStatus.ubCurrentTeam == 1)// resume AI interrupted and im server + else if ( is_server && gTacticalStatus.ubCurrentTeam == 1 )// resume AI interrupted and im server { //hayden send_interrupt( npSoldier ); - if(nbTeam !=0) - intAI(npSoldier); - else - StartInterrupt(); - - ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"Continuing interrupt of AI by %s", TeamNameStrings[npSoldier->bTeam]); + if ( nbTeam != 0 ) + intAI( npSoldier ); + else + StartInterrupt(); + + ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"Continuing interrupt of AI by %s", TeamNameStrings[npSoldier->bTeam] ); } - + #ifdef INTERRUPT_MP_DEADLOCK_FIX //its our turn//else// pure client awarding interrupt resume //its our turn - else if(gTacticalStatus.ubCurrentTeam == 0) + else if ( gTacticalStatus.ubCurrentTeam == 0 ) #else // pure client awarding interrupt resume else #endif { - ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"Continuing interrupt with %s", TeamNameStrings[npSoldier->bTeam]);//this can be simplified if above comment is implemented + ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, L"Continuing interrupt with %s", TeamNameStrings[npSoldier->bTeam] );//this can be simplified if above comment is implemented //ClearIntList(); //hayden//may need more work. StartInterrupt(); @@ -1228,11 +1225,11 @@ void EndInterrupt( BOOLEAN fMarkInterruptOccurred ) DebugMsg( TOPIC_JA2INTERRUPT, DBG_LEVEL_3, String("INTERRUPT: interrupt over, %d's team regains control", ubInterruptedSoldier ) ); - pSoldier = MercPtrs[ubInterruptedSoldier]; + pSoldier = ubInterruptedSoldier; - cnt = 0; - for ( pTempSoldier = MercPtrs[ cnt ]; cnt < MAX_NUM_SOLDIERS; cnt++,pTempSoldier++) + for ( SoldierID id = 0; id < MAX_NUM_SOLDIERS; ++id) { + pTempSoldier = id; if ( pTempSoldier->bActive ) { // AI guys only here... @@ -1371,9 +1368,10 @@ void EndInterrupt( BOOLEAN fMarkInterruptOccurred ) fFound = FALSE; // rebuild list for this team if anyone on the team is still available - cnt = gTacticalStatus.Team[ ENEMY_TEAM ].bFirstID; - for ( pTempSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ gTacticalStatus.ubCurrentTeam ].bLastID; cnt++,pTempSoldier++) + SoldierID id = gTacticalStatus.Team[ ENEMY_TEAM ].bFirstID; + for ( ; id <= gTacticalStatus.Team[ gTacticalStatus.ubCurrentTeam ].bLastID; ++id ) { + pTempSoldier = id; if ( pTempSoldier->bActive && pTempSoldier->bInSector && pTempSoldier->stats.bLife >= OKLIFE ) { fFound = TRUE; @@ -1390,16 +1388,16 @@ void EndInterrupt( BOOLEAN fMarkInterruptOccurred ) { // now bubble up everyone left in the interrupt queue, starting // at the front of the array - for (cnt = 1; cnt <= gubOutOfTurnPersons; cnt++) + for (UINT16 cnt = 1; cnt <= gubOutOfTurnPersons; cnt++) { MoveToFrontOfAIList( gubOutOfTurnOrder[ cnt ] ); } - cnt = RemoveFirstAIListEntry(); - if (cnt != NOBODY) + SoldierID id = RemoveFirstAIListEntry(); + if (id != NOBODY) { fFound = TRUE; - StartNPCAI( MercPtrs[ cnt ] ); + StartNPCAI( id ); } } @@ -2382,7 +2380,7 @@ void ResolveInterruptsVs( SOLDIERTYPE * pSoldier, UINT8 ubInterruptType) { DebugMsg (TOPIC_JA2INTERRUPT,DBG_LEVEL_3,String("ResolveInterruptsVs: Soldier ID = %d, APs = %d (interrupt type = %d)",pSoldier->ubID,pSoldier->bActionPoints, ubInterruptType)); UINT8 ubTeam; - UINT16 ubOpp; + SoldierID ubOpp; UINT16 ubIntCnt; UINT16 ubIntList[MAXMERCS]; UINT8 ubIntDiff[MAXMERCS]; @@ -2404,9 +2402,9 @@ void ResolveInterruptsVs( SOLDIERTYPE * pSoldier, UINT8 ubInterruptType) // WDS fix broken interrupts (I hope...) if (/*gTacticalStatus.Team[ubTeam].bTeamActive &&*/ (gTacticalStatus.Team[ubTeam].bSide != pSoldier->bSide) && ubTeam != CIV_TEAM) { - for ( ubOpp = gTacticalStatus.Team[ ubTeam ].bFirstID; ubOpp <= gTacticalStatus.Team[ ubTeam ].bLastID; ubOpp++) + for ( ubOpp = gTacticalStatus.Team[ ubTeam ].bFirstID; ubOpp <= gTacticalStatus.Team[ ubTeam ].bLastID; ++ubOpp) { - pOpponent = MercPtrs[ubOpp]; + pOpponent = ubOpp; AssertNotNIL(pOpponent); if ( pOpponent->bActive && pOpponent->bInSector && (pOpponent->stats.bLife >= OKLIFE) && (pOpponent->bBreath >= OKBREATH) && !(pOpponent->bCollapsed) ) { @@ -2519,17 +2517,16 @@ void ResolveInterruptsVs( SOLDIERTYPE * pSoldier, UINT8 ubInterruptType) { // if anyone on this team is under AI control, remove // their AI control flag and put them on the queue instead of this guy - for ( ubLoop = gTacticalStatus.Team[ gTacticalStatus.ubCurrentTeam ].bFirstID; ubLoop <= gTacticalStatus.Team[ gTacticalStatus.ubCurrentTeam ].bLastID; ubLoop++ ) + for ( SoldierID id = gTacticalStatus.Team[ gTacticalStatus.ubCurrentTeam ].bFirstID; id <= gTacticalStatus.Team[ gTacticalStatus.ubCurrentTeam ].bLastID; ++id) { - if ( (MercPtrs[ ubLoop ]->flags.uiStatusFlags & SOLDIER_UNDERAICONTROL) ) + if ( id->flags.uiStatusFlags & SOLDIER_UNDERAICONTROL) { // this guy lost control - MercPtrs[ ubLoop ]->flags.uiStatusFlags &= (~SOLDIER_UNDERAICONTROL); - AddToIntList( ubLoop, FALSE, TRUE); + id->flags.uiStatusFlags &= (~SOLDIER_UNDERAICONTROL); + AddToIntList( id, FALSE, TRUE); break; } } - } else { diff --git a/Tactical/Turn Based Input.cpp b/Tactical/Turn Based Input.cpp index f4c6c575..4a3a2b37 100644 --- a/Tactical/Turn Based Input.cpp +++ b/Tactical/Turn Based Input.cpp @@ -2209,9 +2209,10 @@ void GetKeyboardInput( UINT32 *puiNewEvent ) // sevenfm: unready weapon for all selected if (!fFound) { - UINT16 cnt = gTacticalStatus.Team[gbPlayerNum].bFirstID; - for (SOLDIERTYPE *pSoldier = MercPtrs[cnt]; cnt <= gTacticalStatus.Team[gbPlayerNum].bLastID; cnt++, pSoldier++) + SoldierID cnt = gTacticalStatus.Team[gbPlayerNum].bFirstID; + for (; cnt <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++cnt ) { + SOLDIERTYPE *pSoldier = cnt; if (pSoldier->bActive && pSoldier->bInSector && pSoldier->flags.uiStatusFlags & SOLDIER_MULTI_SELECTED && WeaponReady(pSoldier)) { pSoldier->InternalSoldierReadyWeapon(pSoldier->ubDirection, TRUE, FALSE); @@ -4125,14 +4126,16 @@ void GetKeyboardInput( UINT32 *puiNewEvent ) // swap sungoggles and nightgoggles / put on gas masks case 'N': - SOLDIERTYPE *pTeamSoldier; - UINT16 bLoop; + { + SOLDIERTYPE *pTeamSoldier; + SoldierID id; // emergency command: everybody in this sector puts on gasmasks if ( fAlt ) { - for ( bLoop = gTacticalStatus.Team[gbPlayerNum].bFirstID, pTeamSoldier = MercPtrs[bLoop]; bLoop <= gTacticalStatus.Team[gbPlayerNum].bLastID; bLoop++, pTeamSoldier++ ) + for ( id = gTacticalStatus.Team[gbPlayerNum].bFirstID; id <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++id ) { + pTeamSoldier = id; if ( !AM_A_ROBOT( pTeamSoldier ) && pTeamSoldier->stats.bLife >= OKLIFE && (pTeamSoldier->sSectorX == gWorldSectorX) && (pTeamSoldier->sSectorY == gWorldSectorY) && (pTeamSoldier->bSectorZ == gbWorldSectorZ) ) { WearGasMaskIfAvailable( pTeamSoldier ); @@ -4149,37 +4152,39 @@ void GetKeyboardInput( UINT32 *puiNewEvent ) { BOOLEAN fToNightVision; - for (bLoop=gTacticalStatus.Team[gbPlayerNum].bFirstID, pTeamSoldier=MercPtrs[bLoop]; bLoop <= gTacticalStatus.Team[gbPlayerNum].bLastID; bLoop++, pTeamSoldier++) + for ( id = gTacticalStatus.Team[gbPlayerNum].bFirstID; id <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++id ) { - if ( OK_CONTROLLABLE_MERC( pTeamSoldier ) && pTeamSoldier->bAssignment == CurrentSquad( ) && !AM_A_ROBOT( pTeamSoldier ) ) + pTeamSoldier = id; + if ( OK_CONTROLLABLE_MERC( pTeamSoldier ) && pTeamSoldier->bAssignment == CurrentSquad() && !AM_A_ROBOT( pTeamSoldier ) ) { if ( pTeamSoldier->inv[HEAD1POS].exists() || pTeamSoldier->inv[HEAD2POS].exists() ) { - fToNightVision = ( Item[pTeamSoldier->inv[HEAD1POS].usItem].brightlightvisionrangebonus > 0 || Item[pTeamSoldier->inv[HEAD2POS].usItem].brightlightvisionrangebonus > 0 ); + fToNightVision = (Item[pTeamSoldier->inv[HEAD1POS].usItem].brightlightvisionrangebonus > 0 || Item[pTeamSoldier->inv[HEAD2POS].usItem].brightlightvisionrangebonus > 0); break; } - if ( bLoop == gTacticalStatus.Team[gbPlayerNum].bLastID ) + if ( id == gTacticalStatus.Team[gbPlayerNum].bLastID ) { // Default to night or day based on game hour fToNightVision = NightTime(); } } } - for (bLoop=gTacticalStatus.Team[gbPlayerNum].bFirstID, pTeamSoldier=MercPtrs[bLoop]; bLoop <= gTacticalStatus.Team[gbPlayerNum].bLastID; bLoop++, pTeamSoldier++) + for ( id = gTacticalStatus.Team[gbPlayerNum].bFirstID; id <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++id ) { + pTeamSoldier = id; // HEADROCK HAM 3.5: When this INI setting is enabled, ALL mercs in the current sector will do a goggle swap. - if (gGameExternalOptions.fGoggleSwapAffectsAllMercsInSector) + if ( gGameExternalOptions.fGoggleSwapAffectsAllMercsInSector ) { if ( OK_CONTROLLABLE_MERC( pTeamSoldier ) && pTeamSoldier->sSectorX == gWorldSectorX && pTeamSoldier->sSectorY == gWorldSectorY && pTeamSoldier->bSectorZ == gbWorldSectorZ && !AM_A_ROBOT( pTeamSoldier ) ) { - SwapGogglesUniformly(pTeamSoldier, fToNightVision); + SwapGogglesUniformly( pTeamSoldier, fToNightVision ); } } else { - if ( OK_CONTROLLABLE_MERC( pTeamSoldier ) && pTeamSoldier->bAssignment == CurrentSquad( ) && !AM_A_ROBOT( pTeamSoldier ) ) + if ( OK_CONTROLLABLE_MERC( pTeamSoldier ) && pTeamSoldier->bAssignment == CurrentSquad() && !AM_A_ROBOT( pTeamSoldier ) ) { - SwapGogglesUniformly(pTeamSoldier, fToNightVision); + SwapGogglesUniformly( pTeamSoldier, fToNightVision ); } } } @@ -4189,7 +4194,7 @@ void GetKeyboardInput( UINT32 *puiNewEvent ) HandleTBSwapGoogles(); } break; - + } case 'n': if ( !AreInMeanwhile() ) { @@ -6271,7 +6276,6 @@ void HandleSelectMercSlot( UINT8 ubPanelSlot, INT8 bCode ) void TestMeanWhile( INT32 iID ) { MEANWHILE_DEFINITION MeanwhileDef; - INT32 cnt; SOLDIERTYPE *pSoldier; MeanwhileDef.sSectorX = gModSettings.ubMeanwhilePalaceSectorX; //3 @@ -6288,10 +6292,11 @@ void TestMeanWhile( INT32 iID ) // Loop through our mercs and set gridnos once some found..... // look for all mercs on the same team, - 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 ) { + pSoldier = cnt; // Are we a POW in this sector? if ( pSoldier->bActive && pSoldier->bInSector ) { @@ -6363,16 +6368,16 @@ void HandleStanceChangeFromUIKeys( UINT8 ubAnimHeight ) { // If we have multiple guys selected, make all change stance! SOLDIERTYPE * pSoldier; - INT32 cnt; if ( gTacticalStatus.fAtLeastOneGuyOnMultiSelect && !( gTacticalStatus.uiFlags & INCOMBAT ) ) { // OK, loop through all guys who are 'multi-selected' and // check if our currently selected guy is amoung the // lucky few.. if not, change to a guy who is... - 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 ) @@ -6485,16 +6490,16 @@ void HandleStealthChangeFromUIKeys( ) { // If we have multiple guys selected, make all change stance! SOLDIERTYPE * pSoldier; - INT32 cnt; if ( gTacticalStatus.fAtLeastOneGuyOnMultiSelect && !( gTacticalStatus.uiFlags & INCOMBAT ) ) { // OK, loop through all guys who are 'multi-selected' and // check if our currently selected guy is amoung the // lucky few.. if not, change to a guy who is... - 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 && !AM_A_ROBOT( pSoldier ) && pSoldier->bInSector ) { if ( pSoldier->flags.uiStatusFlags & SOLDIER_MULTI_SELECTED ) @@ -7682,12 +7687,13 @@ void HandleTBToggleStealthAll( void ) // Toggle squad's stealth mode..... // For each guy on squad... SOLDIERTYPE *pTeamSoldier; - UINT16 bLoop; + SoldierID bLoop; BOOLEAN fStealthOn = FALSE; // Check if at least one guy is on stealth.... - for (bLoop=gTacticalStatus.Team[gbPlayerNum].bFirstID, pTeamSoldier=MercPtrs[bLoop]; bLoop <= gTacticalStatus.Team[gbPlayerNum].bLastID; bLoop++, pTeamSoldier++) + for (bLoop=gTacticalStatus.Team[gbPlayerNum].bFirstID; bLoop <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++bLoop ) { + pTeamSoldier = bLoop; if ( OK_CONTROLLABLE_MERC( pTeamSoldier ) && pTeamSoldier->bAssignment == CurrentSquad( ) ) { if ( pTeamSoldier->bStealthMode ) @@ -7697,8 +7703,9 @@ void HandleTBToggleStealthAll( void ) fStealthOn = !fStealthOn; - for (bLoop=gTacticalStatus.Team[gbPlayerNum].bFirstID, pTeamSoldier=MercPtrs[bLoop]; bLoop <= gTacticalStatus.Team[gbPlayerNum].bLastID; bLoop++, pTeamSoldier++) + for (bLoop=gTacticalStatus.Team[gbPlayerNum].bFirstID; bLoop <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++bLoop ) { + pTeamSoldier = bLoop; if ( OK_CONTROLLABLE_MERC( pTeamSoldier ) && pTeamSoldier->bAssignment == CurrentSquad( ) && !AM_A_ROBOT( pTeamSoldier ) ) { if ( gpSMCurrentMerc != NULL && bLoop == gpSMCurrentMerc->ubID ) @@ -7715,6 +7722,7 @@ void HandleTBToggleStealthAll( void ) else ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, pMessageStrings[ MSG_SQUAD_OFF_STEALTHMODE ] ); } + void HandleTBToggleFireMode( void ) { // toggle fire mode @@ -7722,23 +7730,23 @@ void HandleTBToggleFireMode( void ) ( ( gsCurInterfacePanel != SM_PANEL ) || ( ButtonList[ iSMPanelButtons[ BURSTMODE_BUTTON ] ]->uiFlags & BUTTON_ENABLED ) ) ) SetBurstMode(); } + void HandleTBSelectAllMercs( void ) { - SOLDIERTYPE * pSoldier; - INT32 cnt; - - cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; - for ( pSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; cnt++, pSoldier++ ) - { - + SOLDIERTYPE *pSoldier; + SoldierID cnt = gTacticalStatus.Team[gbPlayerNum].bFirstID; + for ( ; cnt <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++cnt ) + { + pSoldier = cnt; // Check if this guy is OK to control.... - if ( OK_CONTROLLABLE_MERC( pSoldier ) && !( pSoldier->flags.uiStatusFlags & ( SOLDIER_VEHICLE | SOLDIER_PASSENGER | SOLDIER_DRIVER ) ) ) + if ( OK_CONTROLLABLE_MERC( pSoldier ) && !(pSoldier->flags.uiStatusFlags & (SOLDIER_VEHICLE | SOLDIER_PASSENGER | SOLDIER_DRIVER)) ) { pSoldier->flags.uiStatusFlags |= SOLDIER_MULTI_SELECTED; - } - } + } + } EndMultiSoldierSelection( TRUE ); } + void HandleTBCycleThroughKnownEnemies( void ) { if ( gTacticalStatus.uiFlags & TURNBASED && (gTacticalStatus.uiFlags & INCOMBAT) ) @@ -7747,6 +7755,7 @@ void HandleTBCycleThroughKnownEnemies( void ) CycleThroughKnownEnemies( ); } } + void HandleTBCycleThroughKnownEnemiesBackward( void ) { if ( gTacticalStatus.uiFlags & TURNBASED && (gTacticalStatus.uiFlags & INCOMBAT) ) @@ -7755,6 +7764,7 @@ void HandleTBCycleThroughKnownEnemiesBackward( void ) CycleThroughKnownEnemies( TRUE ); } } + void HandleTBCycleThroughVisibleEnemies( void ) { SOLDIERTYPE *pSoldier; @@ -7848,10 +7858,10 @@ void HandleTBSwapSidearm( void ) void HandleTBSwapGoogles( void ) { SOLDIERTYPE *pTeamSoldier; - UINT16 bLoop; - for (bLoop=gTacticalStatus.Team[gbPlayerNum].bFirstID, pTeamSoldier=MercPtrs[bLoop]; bLoop <= gTacticalStatus.Team[gbPlayerNum].bLastID; bLoop++, pTeamSoldier++) + for ( SoldierID bLoop=gTacticalStatus.Team[gbPlayerNum].bFirstID; bLoop <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++bLoop ) { + pTeamSoldier = bLoop; // HEADROCK HAM 3.5: When this INI setting is enabled, ALL mercs in the current sector will do a goggle swap. if (gGameExternalOptions.fGoggleSwapAffectsAllMercsInSector) { @@ -7945,270 +7955,270 @@ void HandleTBReload( void ) } void HandleTBReloadAll( void ) { - if (! ( gTacticalStatus.fEnemyInSector ) ) + if ( !(gTacticalStatus.fEnemyInSector) ) + { + SOLDIERTYPE *pTeamSoldier; + SoldierID bLoop; + UINT16 bullets; + OBJECTTYPE *pGun, *pAmmo, *pAmmoMags; + + // Search for soldier + for ( bLoop = gTacticalStatus.Team[gbPlayerNum].bFirstID; bLoop <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++bLoop ) + { + pTeamSoldier = bLoop; + if ( OK_CONTROLLABLE_MERC( pTeamSoldier ) && pTeamSoldier->bAssignment == CurrentSquad() && !AM_A_ROBOT( pTeamSoldier ) ) + { + // Search for gun in soldier inventory + UINT32 invsize = pTeamSoldier->inv.size(); + for ( UINT32 bLoop2 = 0; bLoop2 < invsize; ++bLoop2 ) { - SOLDIERTYPE *pTeamSoldier; - UINT16 bLoop; - UINT16 bullets; - OBJECTTYPE *pGun, *pAmmo, *pAmmoMags; - - // Search for soldier - for (bLoop=gTacticalStatus.Team[gbPlayerNum].bFirstID, pTeamSoldier=MercPtrs[bLoop]; bLoop <= gTacticalStatus.Team[gbPlayerNum].bLastID; bLoop++, pTeamSoldier++) + if ( (Item[pTeamSoldier->inv[bLoop2].usItem].usItemClass & (IC_GUN | IC_LAUNCHER)) ) { - if ( OK_CONTROLLABLE_MERC( pTeamSoldier ) && pTeamSoldier->bAssignment == CurrentSquad( ) && !AM_A_ROBOT( pTeamSoldier ) ) + pGun = &(pTeamSoldier->inv[bLoop2]); + + UINT16 gunmagsize = GetMagSize( pGun ); + + //if magazine is not full + if ( (*pGun)[0]->data.gun.ubGunShotsLeft < gunmagsize ) { - // Search for gun in soldier inventory - UINT32 invsize = pTeamSoldier->inv.size(); - for (UINT32 bLoop2 = 0; bLoop2 < invsize; ++bLoop2) + // Search for ammo in sector + for ( UINT32 uiLoop = 0; uiLoop < guiNumWorldItems; ++uiLoop ) { - if ( (Item[pTeamSoldier->inv[bLoop2].usItem].usItemClass & (IC_GUN | IC_LAUNCHER)) ) + if ( (gWorldItems[uiLoop].bVisible == TRUE) && (gWorldItems[uiLoop].fExists) && (gWorldItems[uiLoop].usFlags & WORLD_ITEM_REACHABLE) && !(gWorldItems[uiLoop].usFlags & WORLD_ITEM_ARMED_BOMB) )//item exists, is reachable, is visible and is not trapped { - pGun = &(pTeamSoldier->inv[bLoop2]); - - UINT16 gunmagsize = GetMagSize( pGun ); - - //if magazine is not full - if ( (*pGun)[0]->data.gun.ubGunShotsLeft < gunmagsize ) + if ( (Item[gWorldItems[uiLoop].object.usItem].usItemClass & IC_AMMO) ) // the item is ammo { - // Search for ammo in sector - for ( UINT32 uiLoop = 0; uiLoop < guiNumWorldItems; ++uiLoop ) + pAmmo = &(gWorldItems[uiLoop].object); + + if ( CompatibleAmmoForGun( pAmmo, pGun ) ) // can use the ammo with this gun { - if ( (gWorldItems[ uiLoop ].bVisible == TRUE) && (gWorldItems[ uiLoop ].fExists) && (gWorldItems[ uiLoop ].usFlags & WORLD_ITEM_REACHABLE) && !(gWorldItems[ uiLoop ].usFlags & WORLD_ITEM_ARMED_BOMB) )//item exists, is reachable, is visible and is not trapped + // same ammo type in gun and magazine + if ( Magazine[Item[(*pGun)[0]->data.gun.usGunAmmoItem].ubClassIndex].ubAmmoType == Magazine[Item[pAmmo->usItem].ubClassIndex].ubAmmoType ) { - if ( ( Item[ gWorldItems[ uiLoop ].object.usItem ].usItemClass & IC_AMMO ) ) // the item is ammo - { - pAmmo = &( gWorldItems[ uiLoop ].object ); - - if ( CompatibleAmmoForGun( pAmmo, pGun ) ) // can use the ammo with this gun - { - // same ammo type in gun and magazine - if ( Magazine[Item[(*pGun)[0]->data.gun.usGunAmmoItem].ubClassIndex].ubAmmoType == Magazine[Item[pAmmo->usItem].ubClassIndex].ubAmmoType ) - { - ReloadGun( pTeamSoldier, pGun, pAmmo ); - } - - if ((*pAmmo)[0]->data.ubShotsLeft == 0) - { - RemoveItemFromPool( gWorldItems[ uiLoop ].sGridNo, uiLoop, gWorldItems[ uiLoop ].ubLevel ); - } - - // if gun is full, we can stop this - if ( (*pGun)[0]->data.gun.ubGunShotsLeft >= gunmagsize ) - break; - } - } + ReloadGun( pTeamSoldier, pGun, pAmmo ); } + + if ( (*pAmmo)[0]->data.ubShotsLeft == 0 ) + { + RemoveItemFromPool( gWorldItems[uiLoop].sGridNo, uiLoop, gWorldItems[uiLoop].ubLevel ); + } + + // if gun is full, we can stop this + if ( (*pGun)[0]->data.gun.ubGunShotsLeft >= gunmagsize ) + break; } } - //CHRISL: if not enough ammo in sector, reload using ammo carried in inventory - if ( (*pGun)[0]->data.gun.ubGunShotsLeft < gunmagsize ) - { - AutoReload( pTeamSoldier ); - } } } } - } - - //MM: loop thru the soldiers again (lazy copy/paste :p). could do it all at once, but then there may not be enough ammo from the world items to fill everyone's guns first - for (bLoop=gTacticalStatus.Team[gbPlayerNum].bFirstID, pTeamSoldier=MercPtrs[bLoop]; bLoop <= gTacticalStatus.Team[gbPlayerNum].bLastID; bLoop++, pTeamSoldier++) - { - if ( OK_CONTROLLABLE_MERC( pTeamSoldier ) && pTeamSoldier->bAssignment == CurrentSquad( ) && !AM_A_ROBOT( pTeamSoldier ) ) + //CHRISL: if not enough ammo in sector, reload using ammo carried in inventory + if ( (*pGun)[0]->data.gun.ubGunShotsLeft < gunmagsize ) { - // Search for ammo in soldier inventory - UINT32 invsize = pTeamSoldier->inv.size(); - for (UINT32 bLoop2 = 0; bLoop2 < invsize; ++bLoop2) - { - if ( Item[pTeamSoldier->inv[bLoop2].usItem].usItemClass & IC_AMMO ) - { - pAmmoMags = &(pTeamSoldier->inv[bLoop2]); - - for ( UINT16 stackMag = 0; stackMag < (*pAmmoMags).ubNumberOfObjects; stackMag++ ) - { - if ( (*pAmmoMags)[stackMag]->data.ubShotsLeft < Magazine[Item[pAmmoMags->usItem].ubClassIndex].ubMagSize ) - { - // Search for ammo in sector - for ( UINT32 uiLoop = 0; uiLoop < guiNumWorldItems; ++uiLoop ) - { - if ( (gWorldItems[ uiLoop ].bVisible == TRUE) && (gWorldItems[ uiLoop ].fExists) && (gWorldItems[ uiLoop ].usFlags & WORLD_ITEM_REACHABLE) && !(gWorldItems[ uiLoop ].usFlags & WORLD_ITEM_ARMED_BOMB) )//item exists, is reachable, is visible and is not trapped - { - if ( ( Item[ gWorldItems[ uiLoop ].object.usItem ].usItemClass & IC_AMMO ) ) // the item is ammo - { - pAmmo = &( gWorldItems[ uiLoop ].object ); - - if ( Magazine[Item[pAmmoMags->usItem].ubClassIndex].ubCalibre == Magazine[Item[pAmmo->usItem].ubClassIndex].ubCalibre ) // same calibre - { - // same ammo type - if ( Magazine[Item[pAmmoMags->usItem].ubClassIndex].ubAmmoType == Magazine[Item[pAmmo->usItem].ubClassIndex].ubAmmoType ) - { - bullets = Magazine[Item[pAmmoMags->usItem].ubClassIndex].ubMagSize - (*pAmmoMags)[stackMag]->data.ubShotsLeft; - - if ((*pAmmo)[0]->data.ubShotsLeft < bullets) - bullets = (*pAmmo)[0]->data.ubShotsLeft; - - (*pAmmoMags)[stackMag]->data.ubShotsLeft += bullets; - (*pAmmo)[0]->data.ubShotsLeft -= bullets; - - fCharacterInfoPanelDirty = TRUE; - fInterfacePanelDirty = DIRTYLEVEL2; - } - - if ((*pAmmo)[0]->data.ubShotsLeft == 0) - { - RemoveItemFromPool( gWorldItems[ uiLoop ].sGridNo, uiLoop, gWorldItems[ uiLoop ].ubLevel ); - } - } - } - } - } - - //MM: if magazines still are partly empty, look through inventory for boxes and crates - if ( (*pAmmoMags)[stackMag]->data.ubShotsLeft < Magazine[Item[pAmmoMags->usItem].ubClassIndex].ubMagSize ) - { - UINT32 invsize = pTeamSoldier->inv.size(); - for (UINT32 uiLoop = 0; uiLoop < invsize; ++uiLoop) - { - if ( (Item[pTeamSoldier->inv[uiLoop].usItem].usItemClass & IC_AMMO) && Magazine[Item[pTeamSoldier->inv[uiLoop].usItem].ubClassIndex].ubMagType >= AMMO_BOX ) - { - pAmmo = &(pTeamSoldier->inv[uiLoop]); - - if ( Magazine[Item[pAmmoMags->usItem].ubClassIndex].ubCalibre == Magazine[Item[pAmmo->usItem].ubClassIndex].ubCalibre ) // same calibre - { - // same ammo type - if ( Magazine[Item[pAmmoMags->usItem].ubClassIndex].ubAmmoType == Magazine[Item[pAmmo->usItem].ubClassIndex].ubAmmoType ) - { - bullets = Magazine[Item[pAmmoMags->usItem].ubClassIndex].ubMagSize - (*pAmmoMags)[stackMag]->data.ubShotsLeft; - - if ((*pAmmo)[0]->data.ubShotsLeft < bullets) - bullets = (*pAmmo)[0]->data.ubShotsLeft; - - (*pAmmoMags)[stackMag]->data.ubShotsLeft += bullets; - (*pAmmo)[0]->data.ubShotsLeft -= bullets; - - fCharacterInfoPanelDirty = TRUE; - fInterfacePanelDirty = DIRTYLEVEL2; - } - - if ((*pAmmo)[0]->data.ubShotsLeft == 0) - DeleteObj(pAmmo); - } - } - } - } - } - } - - if (IsWeaponAttached(pGun, IC_GUN)) - { - OBJECTTYPE *pGun2 = FindAttachedWeapon(pGun, IC_GUN); - - UINT16 gunmagsize2 = GetMagSize( pGun2 ); - - if ( (*pGun2)[0]->data.gun.ubGunShotsLeft < gunmagsize2 ) - { - // Search for ammo in sector - for ( UINT32 uiLoop = 0; uiLoop < guiNumWorldItems; ++uiLoop ) - { - if ( (gWorldItems[ uiLoop ].bVisible == TRUE) && (gWorldItems[ uiLoop ].fExists) && (gWorldItems[ uiLoop ].usFlags & WORLD_ITEM_REACHABLE) && !(gWorldItems[ uiLoop ].usFlags & WORLD_ITEM_ARMED_BOMB) )//item exists, is reachable, is visible and is not trapped - { - if ( ( Item[ gWorldItems[ uiLoop ].object.usItem ].usItemClass & IC_AMMO ) ) // the item is ammo - { - pAmmo = &( gWorldItems[ uiLoop ].object ); - - if ( CompatibleAmmoForGun( pAmmo, pGun2 ) ) // can use the ammo with this gun - { - // same ammo type in gun and magazine - if ( Magazine[Item[(*pGun2)[0]->data.gun.usGunAmmoItem].ubClassIndex].ubAmmoType == Magazine[Item[pAmmo->usItem].ubClassIndex].ubAmmoType ) - { - ReloadGun( pTeamSoldier, pGun2, pAmmo ); - } - - if ((*pAmmo)[0]->data.ubShotsLeft == 0) - { - RemoveItemFromPool( gWorldItems[ uiLoop ].sGridNo, uiLoop, gWorldItems[ uiLoop ].ubLevel ); - } - - // if gun is full, we can stop this - if ( (*pGun2)[0]->data.gun.ubGunShotsLeft >= gunmagsize2 ) - break; - } - } - } - } - } - - //CHRISL: if not enough ammo in sector, reload using ammo carried in inventory - if ( (*pGun2)[0]->data.gun.ubGunShotsLeft < gunmagsize2 ) - { - AutoReload( pTeamSoldier ); - } - } - } - } + AutoReload( pTeamSoldier ); } } } - else + } + } + + //MM: loop thru the soldiers again (lazy copy/paste :p). could do it all at once, but then there may not be enough ammo from the world items to fill everyone's guns first + for ( bLoop = gTacticalStatus.Team[gbPlayerNum].bFirstID; bLoop <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++bLoop ) + { + pTeamSoldier = bLoop; + if ( OK_CONTROLLABLE_MERC( pTeamSoldier ) && pTeamSoldier->bAssignment == CurrentSquad() && !AM_A_ROBOT( pTeamSoldier ) ) + { + // Search for ammo in soldier inventory + UINT32 invsize = pTeamSoldier->inv.size(); + for ( UINT32 bLoop2 = 0; bLoop2 < invsize; ++bLoop2 ) { - SOLDIERTYPE *pTeamSoldier; - UINT16 bLoop; - OBJECTTYPE *pGun, *pAmmo; - - for (bLoop=gTacticalStatus.Team[gbPlayerNum].bFirstID, pTeamSoldier=MercPtrs[bLoop]; bLoop <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++bLoop, pTeamSoldier++) + if ( Item[pTeamSoldier->inv[bLoop2].usItem].usItemClass & IC_AMMO ) { - if ( OK_CONTROLLABLE_MERC( pTeamSoldier ) && pTeamSoldier->bAssignment == CurrentSquad( ) && !AM_A_ROBOT( pTeamSoldier ) ) - { - if ( (Item[pTeamSoldier->inv[HANDPOS].usItem].usItemClass & (IC_GUN | IC_LAUNCHER) ) ) - { - if ( ( gTacticalStatus.uiFlags & INCOMBAT ) ) - { - // Flugente: check for underbarrel weapons and use that object if necessary - pGun = pTeamSoldier->GetUsedWeapon( &(pTeamSoldier->inv[HANDPOS]) ); + pAmmoMags = &(pTeamSoldier->inv[bLoop2]); - //magazine is not full - if ( (*pGun)[0]->data.gun.ubGunShotsLeft < GetMagSize( pGun ) ) + for ( UINT16 stackMag = 0; stackMag < (*pAmmoMags).ubNumberOfObjects; stackMag++ ) + { + if ( (*pAmmoMags)[stackMag]->data.ubShotsLeft < Magazine[Item[pAmmoMags->usItem].ubClassIndex].ubMagSize ) + { + // Search for ammo in sector + for ( UINT32 uiLoop = 0; uiLoop < guiNumWorldItems; ++uiLoop ) + { + if ( (gWorldItems[uiLoop].bVisible == TRUE) && (gWorldItems[uiLoop].fExists) && (gWorldItems[uiLoop].usFlags & WORLD_ITEM_REACHABLE) && !(gWorldItems[uiLoop].usFlags & WORLD_ITEM_ARMED_BOMB) )//item exists, is reachable, is visible and is not trapped { - AutoReload( pTeamSoldier ); + if ( (Item[gWorldItems[uiLoop].object.usItem].usItemClass & IC_AMMO) ) // the item is ammo + { + pAmmo = &(gWorldItems[uiLoop].object); + + if ( Magazine[Item[pAmmoMags->usItem].ubClassIndex].ubCalibre == Magazine[Item[pAmmo->usItem].ubClassIndex].ubCalibre ) // same calibre + { + // same ammo type + if ( Magazine[Item[pAmmoMags->usItem].ubClassIndex].ubAmmoType == Magazine[Item[pAmmo->usItem].ubClassIndex].ubAmmoType ) + { + bullets = Magazine[Item[pAmmoMags->usItem].ubClassIndex].ubMagSize - (*pAmmoMags)[stackMag]->data.ubShotsLeft; + + if ( (*pAmmo)[0]->data.ubShotsLeft < bullets ) + bullets = (*pAmmo)[0]->data.ubShotsLeft; + + (*pAmmoMags)[stackMag]->data.ubShotsLeft += bullets; + (*pAmmo)[0]->data.ubShotsLeft -= bullets; + + fCharacterInfoPanelDirty = TRUE; + fInterfacePanelDirty = DIRTYLEVEL2; + } + + if ( (*pAmmo)[0]->data.ubShotsLeft == 0 ) + { + RemoveItemFromPool( gWorldItems[uiLoop].sGridNo, uiLoop, gWorldItems[uiLoop].ubLevel ); + } + } + } } } - else + + //MM: if magazines still are partly empty, look through inventory for boxes and crates + if ( (*pAmmoMags)[stackMag]->data.ubShotsLeft < Magazine[Item[pAmmoMags->usItem].ubClassIndex].ubMagSize ) { - // Search for gun in soldier inventory UINT32 invsize = pTeamSoldier->inv.size(); - for (UINT32 bLoop2 = 0; bLoop2 < invsize; ++bLoop2) + for ( UINT32 uiLoop = 0; uiLoop < invsize; ++uiLoop ) { - if ( (Item[pTeamSoldier->inv[bLoop2].usItem].usItemClass & (IC_GUN | IC_LAUNCHER)) ) + if ( (Item[pTeamSoldier->inv[uiLoop].usItem].usItemClass & IC_AMMO) && Magazine[Item[pTeamSoldier->inv[uiLoop].usItem].ubClassIndex].ubMagType >= AMMO_BOX ) { - pGun = &(pTeamSoldier->inv[bLoop2]); + pAmmo = &(pTeamSoldier->inv[uiLoop]); - UINT16 gunmagsize = GetMagSize( pGun ); - - //if magazine is not full - if ( (*pGun)[0]->data.gun.ubGunShotsLeft < gunmagsize ) + if ( Magazine[Item[pAmmoMags->usItem].ubClassIndex].ubCalibre == Magazine[Item[pAmmo->usItem].ubClassIndex].ubCalibre ) // same calibre { - // Search for ammo in soldier inventory - for ( UINT32 uiLoop = 0; uiLoop < invsize; ++uiLoop ) + // same ammo type + if ( Magazine[Item[pAmmoMags->usItem].ubClassIndex].ubAmmoType == Magazine[Item[pAmmo->usItem].ubClassIndex].ubAmmoType ) { - if ( (Item[pTeamSoldier->inv[uiLoop].usItem].usItemClass & IC_AMMO ) ) // the item is ammo - { - pAmmo = &(pTeamSoldier->inv[uiLoop]); + bullets = Magazine[Item[pAmmoMags->usItem].ubClassIndex].ubMagSize - (*pAmmoMags)[stackMag]->data.ubShotsLeft; - if ( CompatibleAmmoForGun( pAmmo, pGun ) ) // can use the ammo with this gun - { - // same ammo type in gun and magazine - if ( Magazine[Item[(*pGun)[0]->data.gun.usGunAmmoItem].ubClassIndex].ubAmmoType == Magazine[Item[pAmmo->usItem].ubClassIndex].ubAmmoType ) - { - ReloadGun( pTeamSoldier, pGun, pAmmo ); + if ( (*pAmmo)[0]->data.ubShotsLeft < bullets ) + bullets = (*pAmmo)[0]->data.ubShotsLeft; - fCharacterInfoPanelDirty = TRUE; - fInterfacePanelDirty = DIRTYLEVEL2; + (*pAmmoMags)[stackMag]->data.ubShotsLeft += bullets; + (*pAmmo)[0]->data.ubShotsLeft -= bullets; - // if gun is full, we can stop this - if ( (*pGun)[0]->data.gun.ubGunShotsLeft >= gunmagsize ) - break; - } - } - } + fCharacterInfoPanelDirty = TRUE; + fInterfacePanelDirty = DIRTYLEVEL2; + } + + if ( (*pAmmo)[0]->data.ubShotsLeft == 0 ) + DeleteObj( pAmmo ); + } + } + } + } + } + } + + if ( IsWeaponAttached( pGun, IC_GUN ) ) + { + OBJECTTYPE *pGun2 = FindAttachedWeapon( pGun, IC_GUN ); + + UINT16 gunmagsize2 = GetMagSize( pGun2 ); + + if ( (*pGun2)[0]->data.gun.ubGunShotsLeft < gunmagsize2 ) + { + // Search for ammo in sector + for ( UINT32 uiLoop = 0; uiLoop < guiNumWorldItems; ++uiLoop ) + { + if ( (gWorldItems[uiLoop].bVisible == TRUE) && (gWorldItems[uiLoop].fExists) && (gWorldItems[uiLoop].usFlags & WORLD_ITEM_REACHABLE) && !(gWorldItems[uiLoop].usFlags & WORLD_ITEM_ARMED_BOMB) )//item exists, is reachable, is visible and is not trapped + { + if ( (Item[gWorldItems[uiLoop].object.usItem].usItemClass & IC_AMMO) ) // the item is ammo + { + pAmmo = &(gWorldItems[uiLoop].object); + + if ( CompatibleAmmoForGun( pAmmo, pGun2 ) ) // can use the ammo with this gun + { + // same ammo type in gun and magazine + if ( Magazine[Item[(*pGun2)[0]->data.gun.usGunAmmoItem].ubClassIndex].ubAmmoType == Magazine[Item[pAmmo->usItem].ubClassIndex].ubAmmoType ) + { + ReloadGun( pTeamSoldier, pGun2, pAmmo ); + } + + if ( (*pAmmo)[0]->data.ubShotsLeft == 0 ) + { + RemoveItemFromPool( gWorldItems[uiLoop].sGridNo, uiLoop, gWorldItems[uiLoop].ubLevel ); + } + + // if gun is full, we can stop this + if ( (*pGun2)[0]->data.gun.ubGunShotsLeft >= gunmagsize2 ) + break; + } + } + } + } + } + + //CHRISL: if not enough ammo in sector, reload using ammo carried in inventory + if ( (*pGun2)[0]->data.gun.ubGunShotsLeft < gunmagsize2 ) + { + AutoReload( pTeamSoldier ); + } + } + } + } + } + } + } + else + { + SOLDIERTYPE *pTeamSoldier; + SoldierID bLoop; + OBJECTTYPE *pGun, *pAmmo; + + for ( bLoop = gTacticalStatus.Team[gbPlayerNum].bFirstID; bLoop <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++bLoop ) + { + pTeamSoldier = bLoop; + if ( OK_CONTROLLABLE_MERC( pTeamSoldier ) && pTeamSoldier->bAssignment == CurrentSquad() && !AM_A_ROBOT( pTeamSoldier ) ) + { + if ( (Item[pTeamSoldier->inv[HANDPOS].usItem].usItemClass & (IC_GUN | IC_LAUNCHER)) ) + { + if ( (gTacticalStatus.uiFlags & INCOMBAT) ) + { + // Flugente: check for underbarrel weapons and use that object if necessary + pGun = pTeamSoldier->GetUsedWeapon( &(pTeamSoldier->inv[HANDPOS]) ); + + //magazine is not full + if ( (*pGun)[0]->data.gun.ubGunShotsLeft < GetMagSize( pGun ) ) + { + AutoReload( pTeamSoldier ); + } + } + else + { + // Search for gun in soldier inventory + UINT32 invsize = pTeamSoldier->inv.size(); + for ( UINT32 bLoop2 = 0; bLoop2 < invsize; ++bLoop2 ) + { + if ( (Item[pTeamSoldier->inv[bLoop2].usItem].usItemClass & (IC_GUN | IC_LAUNCHER)) ) + { + pGun = &(pTeamSoldier->inv[bLoop2]); + + UINT16 gunmagsize = GetMagSize( pGun ); + + //if magazine is not full + if ( (*pGun)[0]->data.gun.ubGunShotsLeft < gunmagsize ) + { + // Search for ammo in soldier inventory + for ( UINT32 uiLoop = 0; uiLoop < invsize; ++uiLoop ) + { + if ( (Item[pTeamSoldier->inv[uiLoop].usItem].usItemClass & IC_AMMO) ) // the item is ammo + { + pAmmo = &(pTeamSoldier->inv[uiLoop]); + + if ( CompatibleAmmoForGun( pAmmo, pGun ) ) // can use the ammo with this gun + { + // same ammo type in gun and magazine + if ( Magazine[Item[(*pGun)[0]->data.gun.usGunAmmoItem].ubClassIndex].ubAmmoType == Magazine[Item[pAmmo->usItem].ubClassIndex].ubAmmoType ) + { + ReloadGun( pTeamSoldier, pGun, pAmmo ); + + fCharacterInfoPanelDirty = TRUE; + fInterfacePanelDirty = DIRTYLEVEL2; + + // if gun is full, we can stop this + if ( (*pGun)[0]->data.gun.ubGunShotsLeft >= gunmagsize ) + break; } } } @@ -8218,6 +8228,9 @@ void HandleTBReloadAll( void ) } } } + } + } + } } void HandleTBShowCover( void ) @@ -8311,9 +8324,9 @@ void HandleTBBackpacks(void) bool backpackDropped = false; SOLDIERTYPE* pTeamSoldier; - for (UINT16 ubLoop = gTacticalStatus.Team[gbPlayerNum].bFirstID; ubLoop <= gTacticalStatus.Team[gbPlayerNum].bLastID; ubLoop++) + for ( SoldierID ubLoop = gTacticalStatus.Team[gbPlayerNum].bFirstID; ubLoop <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++ubLoop ) { - pTeamSoldier = MercPtrs[ubLoop]; + pTeamSoldier = ubLoop; if (OK_CONTROLLABLE_MERC(pTeamSoldier) && pTeamSoldier->flags.DropPackFlag) { @@ -8336,31 +8349,30 @@ void HandleTBBackpacks(void) void HandleTBDropBackpacks( void ) { //if( UsingNewInventorySystem() && gusSelectedSoldier != NOBODY ) - if( UsingNewInventorySystem() ) + if ( UsingNewInventorySystem() ) { //SOLDIERTYPE *pSoldier = gusSelectedSoldier; - SOLDIERTYPE *pTeamSoldier; - UINT16 ubLoop; + SOLDIERTYPE *pTeamSoldier; INT16 sAPCost = APBPConstants[AP_BACK_PACK]; INT32 iBPCost = APBPConstants[BP_BACK_PACK]; - 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 ) { - pTeamSoldier=MercPtrs[ ubLoop ]; + pTeamSoldier = ubLoop; - if( OK_CONTROLLABLE_MERC( pTeamSoldier ) && + if ( OK_CONTROLLABLE_MERC( pTeamSoldier ) && OK_INTERRUPT_MERC( pTeamSoldier ) && !AM_A_ROBOT( pTeamSoldier ) && - EnoughPoints(pTeamSoldier, sAPCost, iBPCost, FALSE) && + EnoughPoints( pTeamSoldier, sAPCost, iBPCost, FALSE ) && //pTeamSoldier->bAssignment == pSoldier->bAssignment && pTeamSoldier->bAssignment < ON_DUTY && pTeamSoldier->inv[BPACKPOCKPOS].exists() && !pTeamSoldier->flags.DropPackFlag ) - { - if( ChangeDropPackStatus(pTeamSoldier, TRUE) ) + { + if ( ChangeDropPackStatus( pTeamSoldier, TRUE ) ) { - ScreenMsg(FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, NewInvMessage[NIV_SOLDIER_DROP], pTeamSoldier->GetName()); + ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, NewInvMessage[NIV_SOLDIER_DROP], pTeamSoldier->GetName() ); } } } @@ -8378,14 +8390,13 @@ void HandleTBPickUpBackpacks( void ) { //SOLDIERTYPE *pSoldier = gusSelectedSoldier; SOLDIERTYPE *pTeamSoldier; - UINT16 ubLoop; INT16 sAPCost = APBPConstants[AP_BACK_PACK]; INT32 iBPCost = APBPConstants[BP_BACK_PACK]; - 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 ) { - pTeamSoldier=MercPtrs[ubLoop]; + pTeamSoldier = ubLoop; if( OK_CONTROLLABLE_MERC( pTeamSoldier ) && OK_INTERRUPT_MERC( pTeamSoldier ) && @@ -9602,7 +9613,6 @@ void HandleTBPickUpBackpacks(BOOLEAN fAll) { SOLDIERTYPE* pSoldier = NULL; SOLDIERTYPE* pTeamSoldier; - UINT16 ubLoop; if (gusSelectedSoldier != NOBODY) { @@ -9612,9 +9622,9 @@ void HandleTBPickUpBackpacks(BOOLEAN fAll) INT16 sAPCost = APBPConstants[AP_BACK_PACK]; INT32 iBPCost = APBPConstants[BP_BACK_PACK]; - 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 ) { - pTeamSoldier = MercPtrs[ubLoop]; + pTeamSoldier = ubLoop; if (pTeamSoldier && OK_CONTROLLABLE_MERC(pTeamSoldier) && diff --git a/Tactical/Vehicles.cpp b/Tactical/Vehicles.cpp index b4e6ad96..14aa0e10 100644 --- a/Tactical/Vehicles.cpp +++ b/Tactical/Vehicles.cpp @@ -1718,15 +1718,15 @@ BOOLEAN EnterVehicle( SOLDIERTYPE *pVehicle, SOLDIERTYPE *pSoldier, UINT8 ubSeat SOLDIERTYPE *GetVehicleSoldierPointerFromPassenger( SOLDIERTYPE *pSrcSoldier ) { - UINT32 cnt; - SOLDIERTYPE *pSoldier; + SOLDIERTYPE *pSoldier; // End the turn of player charactors - 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 ( pSoldier->bActive && pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE ) { // Check ubID.... @@ -2906,14 +2906,12 @@ BOOLEAN SoldierMustDriveVehicle( SOLDIERTYPE *pSoldier, INT32 iVehicleId, BOOLEA BOOLEAN OnlythisCanDriveVehicle( SOLDIERTYPE *pthis, INT32 iVehicleId ) { - INT32 iCounter = 0; SOLDIERTYPE *pSoldier = NULL; - - 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 current soldier - pSoldier = &Menptr[ iCounter ]; + pSoldier = id; // skip checking THIS soldier, we wanna know about everyone else if ( pSoldier == pthis ) diff --git a/Tactical/opplist.cpp b/Tactical/opplist.cpp index 3a880361..b528e648 100644 --- a/Tactical/opplist.cpp +++ b/Tactical/opplist.cpp @@ -989,61 +989,61 @@ void HandleSight(SOLDIERTYPE *pSoldier, UINT8 ubSightFlags) void OurTeamRadiosRandomlyAbout(UINT16 ubAbout) { - INT32 iLoop; - // WDS - make number of mercenaries, etc. be configurable -INT16 radioCnt = 0,radioMan[CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS]; - SOLDIERTYPE *pSoldier; + // WDS - make number of mercenaries, etc. be configurable + INT16 radioCnt = 0,radioMan[CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS]; + SOLDIERTYPE *pSoldier; -// Temporary for opplist synching - disable random order radioing + // Temporary for opplist synching - disable random order radioing #ifdef RECORDOPPLIST - for (iLoop = Status.team[Net.pnum].guystart,ourPtr = MercPtrs[iLoop]; iLoop < Status.team[Net.pnum].guyend; iLoop++,ourPtr++) + for (iLoop = Status.team[Net.pnum].guystart,ourPtr = MercPtrs[iLoop]; iLoop < Status.team[Net.pnum].guyend; iLoop++,ourPtr++) { - // if this merc is active, in this sector, and well enough to look - if (pSoldier->active && pSoldier->bInSector && (pSoldier->stats.bLife >= OKLIFE)) - { - RadioSightings(pSoldier,ubAbout,pSoldier->bTeam); - pSoldier->bNewOppCnt = 0; - } + // if this merc is active, in this sector, and well enough to look + if (pSoldier->active && pSoldier->bInSector && (pSoldier->stats.bLife >= OKLIFE)) + { + RadioSightings(pSoldier,ubAbout,pSoldier->bTeam); + pSoldier->bNewOppCnt = 0; + } } - return; + return; #endif - // All mercs on our local team check if they should radio about him - iLoop = gTacticalStatus.Team[gbPlayerNum].bFirstID; + // All mercs on our local team check if they should radio about him + SoldierID id = gTacticalStatus.Team[gbPlayerNum].bFirstID; - // make a list of all of our team's mercs - for (pSoldier = MercPtrs[iLoop]; iLoop <= gTacticalStatus.Team[gbPlayerNum].bLastID; iLoop++,pSoldier++) + // make a list of all of our team's mercs + for ( ; id <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++id ) { - // if this merc is active, in this sector, and well enough to look - if (pSoldier->bActive && pSoldier->bInSector && (pSoldier->stats.bLife >= OKLIFE)) - // put him on our list, and increment the counter - radioMan[radioCnt++] = (INT16)iLoop; + pSoldier = id; + // if this merc is active, in this sector, and well enough to look + if (pSoldier->bActive && pSoldier->bInSector && (pSoldier->stats.bLife >= OKLIFE)) + // put him on our list, and increment the counter + radioMan[radioCnt++] = (INT16)id; } - // now RANDOMLY handle each of the mercs on our list, until none remain - // (this is all being done ONLY so that the mercs in the earliest merc - // slots do not arbitrarily get the bulk of the sighting speech quote - // action, while the later ones almost never pipe up, and is NOT - // strictly necessary, but a nice improvement over original JA) - while (radioCnt) + // now RANDOMLY handle each of the mercs on our list, until none remain + // (this is all being done ONLY so that the mercs in the earliest merc + // slots do not arbitrarily get the bulk of the sighting speech quote + // action, while the later ones almost never pipe up, and is NOT + // strictly necessary, but a nice improvement over original JA) + while (radioCnt) { - // pick a merc from one of the remaining slots at random - iLoop = Random(radioCnt); + // pick a merc from one of the remaining slots at random + INT16 iLoop = Random(radioCnt); - // handle radioing for that merc - RadioSightings(MercPtrs[radioMan[iLoop]],ubAbout,MercPtrs[radioMan[iLoop]]->bTeam); - Menptr[radioMan[iLoop]].bNewOppCnt = 0; + // handle radioing for that merc + RadioSightings( MercPtrs[radioMan[iLoop]], ubAbout, MercPtrs[radioMan[iLoop]]->bTeam ); + Menptr[radioMan[iLoop]].bNewOppCnt = 0; - // unless it WAS the last used slot that we happened to pick - if (iLoop != (radioCnt - 1)) - // move the contents of the last slot into the one just handled - radioMan[iLoop] = radioMan[radioCnt - 1]; + // unless it WAS the last used slot that we happened to pick + if (iLoop != (radioCnt - 1)) + // move the contents of the last slot into the one just handled + radioMan[iLoop] = radioMan[radioCnt - 1]; - radioCnt--; + radioCnt--; } } @@ -1058,71 +1058,69 @@ INT16 radioCnt = 0,radioMan[CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS]; INT16 TeamNoLongerSeesMan( UINT8 ubTeam, SOLDIERTYPE *pOpponent, UINT16 ubExcludeID, INT8 bIteration ) { - UINT16 bLoop; SOLDIERTYPE *pMate; - - - bLoop = gTacticalStatus.Team[ubTeam].bFirstID; + SoldierID bLoop = gTacticalStatus.Team[ubTeam].bFirstID; // look for all mercs on the same team, check opplists for this soldier - for (pMate = MercPtrs[bLoop]; bLoop <= gTacticalStatus.Team[ubTeam].bLastID; ++bLoop,pMate++) + for ( ; bLoop <= gTacticalStatus.Team[ubTeam].bLastID; ++bLoop ) { + pMate = bLoop; // if this "teammate" is me, myself, or I (whom we want to exclude) - if (bLoop == ubExcludeID) - continue; // skip to next teammate, I KNOW I don't see him... + if ( bLoop == ubExcludeID ) + continue; // skip to next teammate, I KNOW I don't see him... - // if this merc is not on the same team - if (pMate->bTeam != ubTeam) - continue; // skip him, he's no teammate at all! + // if this merc is not on the same team + if ( pMate->bTeam != ubTeam ) + continue; // skip him, he's no teammate at all! - // if this merc is not active, at base, on assignment, dead, unconscious - if (!pMate->bActive || !pMate->bInSector || (pMate->stats.bLife < OKLIFE)) - continue; // next merc + // if this merc is not active, at base, on assignment, dead, unconscious + if ( !pMate->bActive || !pMate->bInSector || (pMate->stats.bLife < OKLIFE) ) + continue; // next merc - // if this teammate currently sees this opponent - if (pMate->aiData.bOppList[pOpponent->ubID] == SEEN_CURRENTLY) - return(FALSE); // that's all I need to know, get out of here + // if this teammate currently sees this opponent + if ( pMate->aiData.bOppList[pOpponent->ubID] == SEEN_CURRENTLY ) + return(FALSE); // that's all I need to know, get out of here } -/* comm by ddd -#ifdef WE_SEE_WHAT_MILITIA_SEES_AND_VICE_VERSA - if ( bIteration == 0 ) + /* comm by ddd + #ifdef WE_SEE_WHAT_MILITIA_SEES_AND_VICE_VERSA + if ( bIteration == 0 ) + { + if ( ubTeam == gbPlayerNum && gTacticalStatus.Team[ MILITIA_TEAM ].bTeamActive ) + { + // check militia team as well + return( TeamNoLongerSeesMan( MILITIA_TEAM, pOpponent, ubExcludeID, 1 ) ); + } + else if ( ubTeam == MILITIA_TEAM && gTacticalStatus.Team[ gbPlayerNum ].bTeamActive ) + { + // check player team as well + return( TeamNoLongerSeesMan( gbPlayerNum, pOpponent, ubExcludeID, 1 ) ); + } + } + #endif + */ + //ddd + if ( gGameExternalOptions.bWeSeeWhatMilitiaSeesAndViceVersa ) { - if ( ubTeam == gbPlayerNum && gTacticalStatus.Team[ MILITIA_TEAM ].bTeamActive ) + if ( bIteration == 0 ) { - // check militia team as well - return( TeamNoLongerSeesMan( MILITIA_TEAM, pOpponent, ubExcludeID, 1 ) ); + if ( ubTeam == gbPlayerNum && gTacticalStatus.Team[MILITIA_TEAM].bTeamActive ) + { + // check militia team as well + return(TeamNoLongerSeesMan( MILITIA_TEAM, pOpponent, ubExcludeID, 1 )); + } + else if ( ubTeam == MILITIA_TEAM && gTacticalStatus.Team[gbPlayerNum].bTeamActive ) + { + // check player team as well + return(TeamNoLongerSeesMan( gbPlayerNum, pOpponent, ubExcludeID, 1 )); + } } - else if ( ubTeam == MILITIA_TEAM && gTacticalStatus.Team[ gbPlayerNum ].bTeamActive ) - { - // check player team as well - return( TeamNoLongerSeesMan( gbPlayerNum, pOpponent, ubExcludeID, 1 ) ); - } - } -#endif -*/ -//ddd -if(gGameExternalOptions.bWeSeeWhatMilitiaSeesAndViceVersa) -{ - if ( bIteration == 0 ) - { - if ( ubTeam == gbPlayerNum && gTacticalStatus.Team[ MILITIA_TEAM ].bTeamActive ) - { - // check militia team as well - return( TeamNoLongerSeesMan( MILITIA_TEAM, pOpponent, ubExcludeID, 1 ) ); - } - else if ( ubTeam == MILITIA_TEAM && gTacticalStatus.Team[ gbPlayerNum ].bTeamActive ) - { - // check player team as well - return( TeamNoLongerSeesMan( gbPlayerNum, pOpponent, ubExcludeID, 1 ) ); - } - } -} -//ddd + } + //ddd - // none of my friends is currently seeing the guy, so return success - return(TRUE); + // none of my friends is currently seeing the guy, so return success + return(TRUE); } INT16 DistanceSmellable( SOLDIERTYPE *pSoldier, SOLDIERTYPE * pSubject ) @@ -1524,12 +1522,11 @@ void TurnOffEveryonesMuzzleFlashes( void ) void TurnOffTeamsMuzzleFlashes( UINT8 ubTeam ) { - UINT16 ubLoop; SOLDIERTYPE * pSoldier; - for (ubLoop = gTacticalStatus.Team[ ubTeam ].bFirstID; ubLoop <= gTacticalStatus.Team[ ubTeam ].bLastID; ubLoop++) + for ( SoldierID ubLoop = gTacticalStatus.Team[ ubTeam ].bFirstID; ubLoop <= gTacticalStatus.Team[ ubTeam ].bLastID; ++ubLoop ) { - pSoldier = MercPtrs[ ubLoop ]; + pSoldier = ubLoop; if ( pSoldier->flags.fMuzzleFlash ) { @@ -1638,15 +1635,14 @@ void InitOpplistForDoorOpening( void ) void AllTeamsLookForAll(UINT8 ubAllowInterrupts) { - UINT32 uiLoop; - SOLDIERTYPE *pSoldier; + SOLDIERTYPE *pSoldier; - if( ( gTacticalStatus.uiFlags & LOADING_SAVED_GAME ) ) + if ( (gTacticalStatus.uiFlags & LOADING_SAVED_GAME) ) { return; } - if (ubAllowInterrupts || !(gTacticalStatus.uiFlags & INCOMBAT) ) + if ( ubAllowInterrupts || !(gTacticalStatus.uiFlags & INCOMBAT) ) { gubBestToMakeSightingSize = BEST_SIGHTING_ARRAY_SIZE_ALL_TEAMS_LOOK_FOR_ALL; if ( gfDelayResolvingBestSightingDueToDoor ) @@ -1661,20 +1657,20 @@ void AllTeamsLookForAll(UINT8 ubAllowInterrupts) } } - for (uiLoop = 0; uiLoop < guiNumMercSlots; uiLoop++) + for ( UINT16 uiLoop = 0; uiLoop < guiNumMercSlots; ++uiLoop ) { - pSoldier = MercSlots[ uiLoop ]; + pSoldier = MercSlots[uiLoop]; if ( pSoldier != NULL && pSoldier->stats.bLife >= OKLIFE ) { - HandleSight(pSoldier,SIGHT_LOOK); // no radio or interrupts yet + HandleSight( pSoldier, SIGHT_LOOK ); // no radio or interrupts yet } } // the player team now radios about all sightings - for ( uiLoop = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; uiLoop <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; uiLoop++ ) + for ( SoldierID uiLoop = gTacticalStatus.Team[gbPlayerNum].bFirstID; uiLoop <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++uiLoop ) { - HandleSight( MercPtrs[ uiLoop ], SIGHT_RADIO ); // looking was done above + HandleSight( uiLoop, SIGHT_RADIO ); // looking was done above } if ( !(gTacticalStatus.uiFlags & INCOMBAT) ) @@ -1698,52 +1694,52 @@ void AllTeamsLookForAll(UINT8 ubAllowInterrupts) gubBestToMakeSightingSize = BEST_SIGHTING_ARRAY_SIZE_INCOMBAT; } - /* + /* - // do this here as well as in overhead so the looks/interrupts are combined! + // do this here as well as in overhead so the looks/interrupts are combined! - // if a door was recently opened/closed (doesn't matter if we could see it) - // this is done here so we can first handle everyone looking through the - // door, and deal with the resulting opplist changes, interrupts, etc. - if ( !TileIsOutOfBounds(Status.doorCreakedGridno)) - { - // opening/closing a door makes a bit of noise (constant volume) - MakeNoise(Status.doorCreakedGuynum,Status.doorCreakedGridno,TTypeList[Grid[Status.doorCreakedGridno].land],DOOR_NOISE_VOLUME,NOISE_CREAKING,EXPECTED_NOSEND); + // if a door was recently opened/closed (doesn't matter if we could see it) + // this is done here so we can first handle everyone looking through the + // door, and deal with the resulting opplist changes, interrupts, etc. + if ( !TileIsOutOfBounds(Status.doorCreakedGridno)) + { + // opening/closing a door makes a bit of noise (constant volume) + MakeNoise(Status.doorCreakedGuynum,Status.doorCreakedGridno,TTypeList[Grid[Status.doorCreakedGridno].land],DOOR_NOISE_VOLUME,NOISE_CREAKING,EXPECTED_NOSEND); - Status.doorCreakedGridno = NOWHERE; - Status.doorCreakedGuynum = NOBODY; - } + Status.doorCreakedGridno = NOWHERE; + Status.doorCreakedGuynum = NOBODY; + } - // all soldiers now radio their findings (NO interrupts permitted this early!) - // NEW: our entire team must radio first, so that they radio about EVERYBODY - // rather radioing about individuals one a a time (repeats see 1 enemy quote) - for (cnt = Status.team[Net.pnum].guystart,ptr = MercPtrs[cnt]; cnt < Status.team[Net.pnum].guyend; cnt++,ptr++) - { - if (ptr->active && ptr->in_sector && (ptr->life >= OKLIFE)) - HandleSight(ptr,SIGHT_RADIO); // looking was done above - } + // all soldiers now radio their findings (NO interrupts permitted this early!) + // NEW: our entire team must radio first, so that they radio about EVERYBODY + // rather radioing about individuals one a a time (repeats see 1 enemy quote) + for (cnt = Status.team[Net.pnum].guystart,ptr = MercPtrs[cnt]; cnt < Status.team[Net.pnum].guyend; cnt++,ptr++) + { + if (ptr->active && ptr->in_sector && (ptr->life >= OKLIFE)) + HandleSight(ptr,SIGHT_RADIO); // looking was done above + } - for (cnt = 0,ptr = Menptr; cnt < MAXMERCS; cnt++,ptr++) - { - if (ptr->active && ptr->in_sector && (ptr->life >= OKLIFE) && !PTR_OURTEAM) - HandleSight(ptr,SIGHT_RADIO); // looking was done above - } + for (cnt = 0,ptr = Menptr; cnt < MAXMERCS; cnt++,ptr++) + { + if (ptr->active && ptr->in_sector && (ptr->life >= OKLIFE) && !PTR_OURTEAM) + HandleSight(ptr,SIGHT_RADIO); // looking was done above + } - // if interrupts were allowed - if (allowInterrupts) - // resolve interrupts against the selected character (others disallowed) - HandleSight(MercPtrs[Status.allLookCharacter],SIGHT_INTERRUPT); + // if interrupts were allowed + if (allowInterrupts) + // resolve interrupts against the selected character (others disallowed) + HandleSight(MercPtrs[Status.allLookCharacter],SIGHT_INTERRUPT); - // revert to normal interrupt operation - InterruptOnlyGuynum = NOBODY; - InterruptsAllowed = TRUE; - */ + // revert to normal interrupt operation + InterruptOnlyGuynum = NOBODY; + InterruptsAllowed = TRUE; + */ - // reset interrupt only guynum which may have been used - gubInterruptProvoker = NOBODY; + // reset interrupt only guynum which may have been used + gubInterruptProvoker = NOBODY; } @@ -3115,7 +3111,7 @@ void RemoveManAsTarget(SOLDIERTYPE *pSoldier) void UpdatePublic(UINT8 ubTeam, SoldierID ubID, INT8 bNewOpplist, INT32 sGridNo, INT8 bLevel) { - INT32 cnt; + SoldierID cnt; UINT8 ubTeamMustLookAgain = FALSE, ubMadeDifference = FALSE; SOLDIERTYPE *pSoldier; INT8* pbPublOL = &(gbPublicOpplist[ubTeam][ubID]); @@ -3143,8 +3139,9 @@ void UpdatePublic(UINT8 ubTeam, SoldierID ubID, INT8 bNewOpplist, INT32 sGridNo, // then everyone on team who's not aware of guynum must look for him cnt = gTacticalStatus.Team[ubTeam].bFirstID; - for (pSoldier = MercPtrs[cnt]; cnt <= gTacticalStatus.Team[ubTeam].bLastID; ++cnt, pSoldier++) + for ( ; cnt <= gTacticalStatus.Team[ubTeam].bLastID; ++cnt ) { + pSoldier = cnt; // if this soldier is active, in this sector, and well enough to look if (pSoldier->bActive && pSoldier->bInSector && (pSoldier->stats.bLife >= OKLIFE) && !( pSoldier->flags.uiStatusFlags & SOLDIER_GASSED ) ) { @@ -5719,7 +5716,6 @@ void TheirNoise( SoldierID ubNoiseMaker, INT32 sGridNo, INT8 bLevel, UINT8 ubTer void ProcessNoise( SoldierID ubNoiseMaker, INT32 sGridNo, INT8 bLevel, UINT8 ubTerrType, UINT8 ubBaseVolume, UINT8 ubNoiseType, STR16 zNoiseMessage ) { SOLDIERTYPE *pSoldier; - UINT16 bLoop; UINT8 bTeam; UINT8 ubLoudestEffVolume, ubEffVolume; // UINT8 ubPlayVolume; @@ -5923,8 +5919,9 @@ void ProcessNoise( SoldierID ubNoiseMaker, INT32 sGridNo, INT8 bLevel, UINT8 ubT ubHeardLoudestBy = NOBODY; // All mercs on this team check if they are eligible to hear this noise - for (bLoop = gTacticalStatus.Team[bTeam].bFirstID,pSoldier = Menptr + bLoop; bLoop <= gTacticalStatus.Team[bTeam].bLastID; bLoop++,pSoldier++) + for ( SoldierID bLoop = gTacticalStatus.Team[bTeam].bFirstID; bLoop <= gTacticalStatus.Team[bTeam].bLastID; ++bLoop ) { + pSoldier = bLoop; // if this "listener" is inactive, or in no condition to care if (!pSoldier->bActive || !pSoldier->bInSector || pSoldier->flags.uiStatusFlags & SOLDIER_DEAD || (pSoldier->stats.bLife < OKLIFE) || pSoldier->ubBodyType == LARVAE_MONSTER) { @@ -7439,15 +7436,15 @@ void NoticeUnseenAttacker( SOLDIERTYPE * pAttacker, SOLDIERTYPE * pDefender, INT void CheckForAlertWhenEnemyDies( SOLDIERTYPE * pDyingSoldier ) { - UINT16 ubID; + SoldierID ubID; SOLDIERTYPE * pSoldier; INT8 bDir; INT16 sDistAway, sDistVisible; - for ( ubID = gTacticalStatus.Team[ pDyingSoldier->bTeam ].bFirstID; ubID <= gTacticalStatus.Team[ pDyingSoldier->bTeam ].bLastID; ubID++ ) + for ( ubID = gTacticalStatus.Team[ pDyingSoldier->bTeam ].bFirstID; ubID <= gTacticalStatus.Team[ pDyingSoldier->bTeam ].bLastID; ++ubID ) { - pSoldier = MercPtrs[ ubID ]; + pSoldier = ubID; if ( pSoldier->bActive && pSoldier->bInSector && (pSoldier != pDyingSoldier) && (pSoldier->stats.bLife >= OKLIFE) && (pSoldier->aiData.bAlertStatus < STATUS_RED ) ) { @@ -7470,22 +7467,20 @@ void CheckForAlertWhenEnemyDies( SOLDIERTYPE * pDyingSoldier ) } } } - } - } BOOLEAN ArmyKnowsOfPlayersPresence( void ) { - UINT16 ubID; + SoldierID ubID; SOLDIERTYPE * pSoldier; // if anyone is still left... if (gTacticalStatus.Team[ ENEMY_TEAM ].bTeamActive && gTacticalStatus.Team[ ENEMY_TEAM ].bMenInSector > 0 ) { - for ( ubID = gTacticalStatus.Team[ ENEMY_TEAM ].bFirstID; ubID <= gTacticalStatus.Team[ ENEMY_TEAM ].bLastID; ubID++ ) + for ( ubID = gTacticalStatus.Team[ ENEMY_TEAM ].bFirstID; ubID <= gTacticalStatus.Team[ ENEMY_TEAM ].bLastID; ++ubID ) { - pSoldier = MercPtrs[ ubID ]; + pSoldier = ubID; if ( pSoldier->bActive && pSoldier->bInSector && (pSoldier->stats.bLife >= OKLIFE) && (pSoldier->aiData.bAlertStatus >= STATUS_RED ) ) { @@ -7498,19 +7493,19 @@ BOOLEAN ArmyKnowsOfPlayersPresence( void ) BOOLEAN MercSeesCreature( SOLDIERTYPE * pSoldier ) { - UINT16 ubID; + SoldierID ubID; - if (pSoldier->aiData.bOppCnt > 0) + if ( pSoldier->aiData.bOppCnt > 0 ) { - for ( ubID = gTacticalStatus.Team[ CREATURE_TEAM ].bFirstID; ubID <= gTacticalStatus.Team[ CREATURE_TEAM ].bLastID; ubID++ ) + for ( ubID = gTacticalStatus.Team[CREATURE_TEAM].bFirstID; ubID <= gTacticalStatus.Team[CREATURE_TEAM].bLastID; ++ubID ) { - if ( (pSoldier->aiData.bOppList[ ubID ] == SEEN_CURRENTLY) && (MercPtrs[ ubID ]->flags.uiStatusFlags & SOLDIER_MONSTER) ) + if ( (pSoldier->aiData.bOppList[ubID] == SEEN_CURRENTLY) && (ubID->flags.uiStatusFlags & SOLDIER_MONSTER) ) { - return( TRUE ); + return(TRUE); } } } - return( FALSE ); + return(FALSE); } @@ -7626,14 +7621,14 @@ INT8 GetHighestWatchedLocPoints( UINT16 ubID ) void CommunicateWatchedLoc( SoldierID ubID, INT32 sGridNo, INT8 bLevel, UINT8 ubPoints ) { - UINT16 ubLoop; + SoldierID ubLoop; INT8 bTeam, bLoopPoint, bPoint; bTeam = ubID->bTeam; - for ( ubLoop = gTacticalStatus.Team[ bTeam ].bFirstID; ubLoop <= gTacticalStatus.Team[ bTeam ].bLastID; ubLoop++ ) + for ( ubLoop = gTacticalStatus.Team[ bTeam ].bFirstID; ubLoop <= gTacticalStatus.Team[ bTeam ].bLastID; ++ubLoop ) { - SOLDIERTYPE *pSoldier = MercPtrs[ubLoop]; + SOLDIERTYPE *pSoldier = ubLoop; if ( ubLoop == ubID || pSoldier->bActive == FALSE || pSoldier->bInSector == FALSE || pSoldier->stats.bLife < OKLIFE ) { continue; @@ -7784,13 +7779,13 @@ void DecayWatchedLocs( INT8 bTeam ) void MakeBloodcatsHostile( void ) { - INT32 iLoop; - SOLDIERTYPE * pSoldier; + SOLDIERTYPE *pSoldier; + SoldierID id = gTacticalStatus.Team[ CREATURE_TEAM ].bFirstID; - iLoop = gTacticalStatus.Team[ CREATURE_TEAM ].bFirstID; - - for (pSoldier = MercPtrs[iLoop]; iLoop <= gTacticalStatus.Team[ CREATURE_TEAM ].bLastID; ++iLoop, ++pSoldier ) + for ( ; id <= gTacticalStatus.Team[ CREATURE_TEAM ].bLastID; ++id ) { + pSoldier = id; + if ( pSoldier->ubBodyType == BLOODCAT && pSoldier->bActive && pSoldier->bInSector && pSoldier->stats.bLife > 0 ) { SetSoldierNonNeutral( pSoldier ); diff --git a/TacticalAI/AIMain.cpp b/TacticalAI/AIMain.cpp index 90e7024b..51ea4558 100644 --- a/TacticalAI/AIMain.cpp +++ b/TacticalAI/AIMain.cpp @@ -874,8 +874,6 @@ void HandleSoldierAI( SOLDIERTYPE *pSoldier ) // FIXME - this function is named void EndAIGuysTurn( SOLDIERTYPE *pSoldier ) { - UINT16 ubID; - if (gfTurnBasedAI) { if (gTacticalStatus.uiFlags & PLAYER_TEAM_DEAD) @@ -885,9 +883,9 @@ void EndAIGuysTurn( SOLDIERTYPE *pSoldier ) } // search for any player merc to say close call quote - for ( ubID = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; ubID <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++ubID ) + for ( SoldierID ubID = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; ubID <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++ubID ) { - SOLDIERTYPE *pMerc = MercPtrs[ubID]; + SOLDIERTYPE *pMerc = ubID; if ( OK_INSECTOR_MERC( pMerc ) ) { @@ -941,10 +939,10 @@ void EndAIGuysTurn( SOLDIERTYPE *pSoldier ) #endif // find the next AI guy - ubID = RemoveFirstAIListEntry(); + SoldierID ubID = RemoveFirstAIListEntry(); if (ubID != NOBODY) { - StartNPCAI( MercPtrs[ ubID ] ); + StartNPCAI( ubID ); return; } @@ -1119,14 +1117,13 @@ void StartNPCAI(SOLDIERTYPE *pSoldier) BOOLEAN DestNotSpokenFor(SOLDIERTYPE *pSoldier, INT32 sGridNo) { - INT32 cnt; SOLDIERTYPE *pOurTeam; - - cnt = gTacticalStatus.Team[pSoldier->bTeam].bFirstID; + SoldierID cnt = gTacticalStatus.Team[pSoldier->bTeam].bFirstID; // make a list of all of our team's mercs - for (pOurTeam = MercPtrs[cnt]; cnt <= gTacticalStatus.Team[pSoldier->bTeam].bLastID; cnt++,pOurTeam++) + for ( ; cnt <= gTacticalStatus.Team[pSoldier->bTeam].bLastID; ++cnt ) { + pOurTeam = cnt; if ( pOurTeam->bActive ) { if (pOurTeam->sGridNo == sGridNo || pOurTeam->aiData.usActionData == sGridNo) diff --git a/TacticalAI/AIUtils.cpp b/TacticalAI/AIUtils.cpp index 8e1b8968..5ed40f53 100644 --- a/TacticalAI/AIUtils.cpp +++ b/TacticalAI/AIUtils.cpp @@ -1703,18 +1703,17 @@ INT32 ClosestPC( SOLDIERTYPE *pSoldier, INT32 * psDistance ) // NOTE: skips EPCs! - UINT16 ubLoop; SOLDIERTYPE *pTargetSoldier; INT32 sMinDist = WORLD_MAX; INT32 sDist; INT32 sGridNo = NOWHERE; // Loop through all mercs on player team - ubLoop = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; + SoldierID ubLoop = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; - for ( ; ubLoop <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ubLoop++) + for ( ; ubLoop <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++ubLoop) { - pTargetSoldier = Menptr + ubLoop; + pTargetSoldier = ubLoop; if (!pTargetSoldier->bActive || !pTargetSoldier->bInSector) { @@ -1762,17 +1761,16 @@ INT32 ClosestUnDisguisedPC( SOLDIERTYPE *pSoldier, INT32 * psDistance ) // used by NPCs... find the closest PC // NOTE: skips EPCs! - UINT16 ubLoop; SOLDIERTYPE *pTargetSoldier; INT32 sMinDist = WORLD_MAX; INT32 sDist; INT32 sGridNo = NOWHERE; // Loop through all mercs on player team - ubLoop = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; - for ( ; ubLoop <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ubLoop++) + SoldierID ubLoop = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; + for ( ; ubLoop <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++ubLoop ) { - pTargetSoldier = Menptr + ubLoop; + pTargetSoldier = ubLoop; if (!pTargetSoldier->bActive || !pTargetSoldier->bInSector) continue; @@ -2021,7 +2019,6 @@ INT16 EstimatePathCostToLocation( SOLDIERTYPE * pSoldier, INT32 sDestGridNo, INT BOOLEAN GuySawEnemy( SOLDIERTYPE * pSoldier, UINT8 ubMax ) { UINT8 ubTeamLoop; - UINT16 ubIDLoop; SOLDIERTYPE *pOpponent; for ( ubTeamLoop = 0; ubTeamLoop < MAXTEAMS; ++ubTeamLoop ) @@ -2032,9 +2029,9 @@ BOOLEAN GuySawEnemy( SOLDIERTYPE * pSoldier, UINT8 ubMax ) if ( gTacticalStatus.Team[ ubTeamLoop ].bSide != pSoldier->bSide ) { // consider guys in this team, which isn't on our side - for ( ubIDLoop = gTacticalStatus.Team[ ubTeamLoop ].bFirstID; ubIDLoop <= gTacticalStatus.Team[ ubTeamLoop ].bLastID; ++ubIDLoop ) + for ( SoldierID ubIDLoop = gTacticalStatus.Team[ ubTeamLoop ].bFirstID; ubIDLoop <= gTacticalStatus.Team[ ubTeamLoop ].bLastID; ++ubIDLoop ) { - pOpponent = MercPtrs[ubIDLoop]; + pOpponent = ubIDLoop; // if this merc is inactive, at base, on assignment, or dead if (!pOpponent) @@ -2174,15 +2171,14 @@ INT32 ClosestReachableFriendInTrouble(SOLDIERTYPE *pSoldier, BOOLEAN * pfClimbin INT16 DistanceToClosestFriend( SOLDIERTYPE * pSoldier ) { // find the distance to the closest person on the same team - UINT16 ubLoop; SOLDIERTYPE *pTargetSoldier; INT16 sMinDist = 1000; INT16 sDist; // Loop through all mercs on player team - ubLoop = gTacticalStatus.Team[ pSoldier->bTeam ].bFirstID; + SoldierID ubLoop = gTacticalStatus.Team[ pSoldier->bTeam ].bFirstID; - for ( ; ubLoop <= gTacticalStatus.Team[ pSoldier->bTeam ].bLastID; ubLoop++ ) + for ( ; ubLoop <= gTacticalStatus.Team[ pSoldier->bTeam ].bLastID; ++ubLoop ) { if (ubLoop == pSoldier->ubID) { @@ -2190,7 +2186,7 @@ INT16 DistanceToClosestFriend( SOLDIERTYPE * pSoldier ) continue; } - pTargetSoldier = Menptr + ubLoop; + pTargetSoldier = ubLoop; if ( pSoldier->bActive && pSoldier->bInSector ) { @@ -3167,12 +3163,11 @@ INT32 RangeChangeDesire( SOLDIERTYPE * pSoldier ) BOOLEAN ArmySeesOpponents( void ) { - INT32 cnt; SOLDIERTYPE * pSoldier; - for ( cnt = gTacticalStatus.Team[ ENEMY_TEAM ].bFirstID; cnt <= gTacticalStatus.Team[ ENEMY_TEAM ].bLastID; cnt++ ) + for ( SoldierID cnt = gTacticalStatus.Team[ ENEMY_TEAM ].bFirstID; cnt <= gTacticalStatus.Team[ ENEMY_TEAM ].bLastID; ++cnt ) { - pSoldier = MercPtrs[ cnt ]; + pSoldier = cnt; if ( pSoldier->bActive && pSoldier->bInSector && pSoldier->stats.bLife >= OKLIFE && pSoldier->aiData.bOppCnt > 0 ) { @@ -3306,7 +3301,7 @@ INT16 AssessTacticalSituation( INT8 bTeam ) BOOLEAN TeamSeesOpponent( INT8 bTeam, SOLDIERTYPE * pOpponent ) { SOLDIERTYPE * pSoldier; - UINT16 cnt; + SoldierID cnt; // This assertion can be safely removed, assuming the program does what it should. It simply checks // whether the "opponent" is on the same team being checked. That should be avoided when calling this @@ -3316,9 +3311,9 @@ BOOLEAN TeamSeesOpponent( INT8 bTeam, SOLDIERTYPE * pOpponent ) // We're checking Merc/Militia visibility if (bTeam == OUR_TEAM || bTeam == MILITIA_TEAM ) { - for ( cnt = gTacticalStatus.Team[ MILITIA_TEAM ].bFirstID; cnt <= gTacticalStatus.Team[ MILITIA_TEAM ].bLastID; cnt++ ) + for ( cnt = gTacticalStatus.Team[ MILITIA_TEAM ].bFirstID; cnt <= gTacticalStatus.Team[ MILITIA_TEAM ].bLastID; ++cnt ) { - pSoldier = MercPtrs[ cnt ]; + pSoldier = cnt; if (pSoldier->bActive && pSoldier->bInSector && pSoldier->stats.bLife >= OKLIFE) { @@ -3328,9 +3323,9 @@ BOOLEAN TeamSeesOpponent( INT8 bTeam, SOLDIERTYPE * pOpponent ) return ( TRUE ); } } - for ( cnt = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; cnt <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; cnt++ ) + for ( cnt = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; cnt <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++cnt ) { - pSoldier = MercPtrs[ cnt ]; + pSoldier = cnt; if (pSoldier->bActive && pSoldier->bInSector && pSoldier->stats.bLife >= OKLIFE) { @@ -3349,9 +3344,9 @@ BOOLEAN TeamSeesOpponent( INT8 bTeam, SOLDIERTYPE * pOpponent ) // Check enemy visibility else if (bTeam == ENEMY_TEAM) { - for ( cnt = gTacticalStatus.Team[ ENEMY_TEAM ].bFirstID; cnt <= gTacticalStatus.Team[ ENEMY_TEAM ].bLastID; cnt++ ) + for ( cnt = gTacticalStatus.Team[ ENEMY_TEAM ].bFirstID; cnt <= gTacticalStatus.Team[ ENEMY_TEAM ].bLastID; ++cnt ) { - pSoldier = MercPtrs[ cnt ]; + pSoldier = cnt; if (pSoldier->bActive && pSoldier->bInSector && pSoldier->stats.bLife >= OKLIFE) { @@ -3448,14 +3443,13 @@ INT32 CalcStraightThreatValue( SOLDIERTYPE *pEnemy ) SoldierID GetClosestFlaggedSoldierID( SOLDIERTYPE * pSoldier, INT16 aRange, UINT8 auTeam, UINT32 aFlag, BOOLEAN fCheckSight ) { SoldierID id = NOBODY; - UINT32 uiLoop; SOLDIERTYPE * pFriend; INT16 range = aRange; // go through each soldier, looking for "friends" (soldiers on same team) - for (uiLoop = gTacticalStatus.Team[ auTeam ].bFirstID; uiLoop <= gTacticalStatus.Team[ auTeam ].bLastID; ++uiLoop) + for ( SoldierID uiLoop = gTacticalStatus.Team[ auTeam ].bFirstID; uiLoop <= gTacticalStatus.Team[ auTeam ].bLastID; ++uiLoop) { - pFriend = MercPtrs[ uiLoop ]; + pFriend = uiLoop; // if this merc is inactive, not in sector, or dead if (!pFriend) @@ -3501,14 +3495,13 @@ SoldierID GetClosestFlaggedSoldierID( SOLDIERTYPE * pSoldier, INT16 aRange, UINT SoldierID GetClosestWoundedSoldierID( SOLDIERTYPE * pSoldier, INT16 aRange, UINT8 auTeam ) { SoldierID id = NOBODY; - UINT32 uiLoop; SOLDIERTYPE * pFriend; INT16 range = aRange; // go through each soldier, looking for "friends" (soldiers on same team) - for (uiLoop = gTacticalStatus.Team[ auTeam ].bFirstID; uiLoop <= gTacticalStatus.Team[ auTeam ].bLastID; ++uiLoop) + for ( SoldierID uiLoop = gTacticalStatus.Team[ auTeam ].bFirstID; uiLoop <= gTacticalStatus.Team[ auTeam ].bLastID; ++uiLoop) { - pFriend = MercPtrs[ uiLoop ]; + pFriend = uiLoop; // if this merc is inactive, not in sector, or dead if (!pFriend) @@ -3550,14 +3543,13 @@ SoldierID GetClosestWoundedSoldierID( SOLDIERTYPE * pSoldier, INT16 aRange, UINT SoldierID GetClosestMedicSoldierID( SOLDIERTYPE * pSoldier, INT16 aRange, UINT8 auTeam ) { SoldierID id = NOBODY; - UINT32 uiLoop; SOLDIERTYPE * pFriend; INT16 range = aRange; // go through each soldier, looking for "friends" (soldiers on same team) - for (uiLoop = gTacticalStatus.Team[ auTeam ].bFirstID; uiLoop <= gTacticalStatus.Team[ auTeam ].bLastID; ++uiLoop) + for ( SoldierID uiLoop = gTacticalStatus.Team[ auTeam ].bFirstID; uiLoop <= gTacticalStatus.Team[ auTeam ].bLastID; ++uiLoop) { - pFriend = MercPtrs[ uiLoop ]; + pFriend = uiLoop; // if this merc is inactive, not in sector, or dead if (!pFriend) @@ -3622,9 +3614,9 @@ UINT16 CountFriendsInDirection( SOLDIERTYPE *pSoldier, INT32 sTargetGridNo ) ubMyDir = GetDirectionFromCenterCellXYGridNo(sTargetGridNo, pSoldier->sGridNo); // Run through each friendly. - for ( UINT16 iCounter = gTacticalStatus.Team[ pSoldier->bTeam ].bFirstID ; iCounter <= gTacticalStatus.Team[ pSoldier->bTeam ].bLastID ; iCounter ++ ) + for ( SoldierID iCounter = gTacticalStatus.Team[ pSoldier->bTeam ].bFirstID ; iCounter <= gTacticalStatus.Team[ pSoldier->bTeam ].bLastID ; ++iCounter ) { - pFriend = MercPtrs[ iCounter ]; + pFriend = iCounter; ubFriendDir = GetDirectionFromCenterCellXYGridNo(sTargetGridNo, pFriend->sGridNo); if (pFriend != pSoldier && @@ -3654,9 +3646,9 @@ UINT16 CountNearbyFriends( SOLDIERTYPE *pSoldier, INT32 sGridNo, UINT8 ubDistanc return 0; // Run through each friendly. - for ( UINT16 iCounter = gTacticalStatus.Team[ pSoldier->bTeam ].bFirstID ; iCounter <= gTacticalStatus.Team[ pSoldier->bTeam ].bLastID ; iCounter ++ ) + for ( SoldierID iCounter = gTacticalStatus.Team[ pSoldier->bTeam ].bFirstID ; iCounter <= gTacticalStatus.Team[ pSoldier->bTeam ].bLastID ; ++iCounter ) { - pFriend = MercPtrs[ iCounter ]; + pFriend = iCounter; // Make sure that character is alive, not too shocked, and conscious, and of higher experience level // than the character being suppressed. if (pFriend != pSoldier && pFriend->bActive && pFriend->stats.bLife >= OKLIFE && @@ -3963,9 +3955,9 @@ BOOLEAN WeAttack(INT8 bTeam) SOLDIERTYPE * pFriend; // Run through each friendly. - for (UINT16 iCounter = gTacticalStatus.Team[bTeam].bFirstID; iCounter <= gTacticalStatus.Team[bTeam].bLastID; iCounter++) + for ( SoldierID iCounter = gTacticalStatus.Team[bTeam].bFirstID; iCounter <= gTacticalStatus.Team[bTeam].bLastID; ++iCounter ) { - pFriend = MercPtrs[iCounter]; + pFriend = iCounter; if (pFriend && pFriend->bActive && @@ -3987,9 +3979,9 @@ UINT8 CountNearbyFriendsLastAttackHit( SOLDIERTYPE *pSoldier, INT32 sGridNo, UIN UINT8 ubFriendCount = 0; // Run through each friendly. - for ( UINT16 iCounter = gTacticalStatus.Team[ pSoldier->bTeam ].bFirstID ; iCounter <= gTacticalStatus.Team[ pSoldier->bTeam ].bLastID ; iCounter ++ ) + for ( SoldierID iCounter = gTacticalStatus.Team[ pSoldier->bTeam ].bFirstID ; iCounter <= gTacticalStatus.Team[ pSoldier->bTeam ].bLastID ; ++iCounter ) { - pFriend = MercPtrs[ iCounter ]; + pFriend = iCounter; if (pFriend != pSoldier && pFriend->bActive && @@ -4027,9 +4019,9 @@ UINT8 CountFriendsFlankSameSpot(SOLDIERTYPE *pSoldier, INT32 sSpot) } // Run through each friendly. - for (UINT16 iCounter = gTacticalStatus.Team[pSoldier->bTeam].bFirstID; iCounter <= gTacticalStatus.Team[pSoldier->bTeam].bLastID; iCounter++) + for ( SoldierID iCounter = gTacticalStatus.Team[pSoldier->bTeam].bFirstID; iCounter <= gTacticalStatus.Team[pSoldier->bTeam].bLastID; ++iCounter ) { - pFriend = MercPtrs[iCounter]; + pFriend = iCounter; if (pFriend && pFriend != pSoldier && @@ -4109,9 +4101,9 @@ UINT8 CountFriendsBlack( SOLDIERTYPE *pSoldier, INT32 sClosestOpponent ) } // Run through each friendly. - for ( UINT16 iCounter = gTacticalStatus.Team[ pSoldier->bTeam ].bFirstID ; iCounter <= gTacticalStatus.Team[ pSoldier->bTeam ].bLastID ; iCounter ++ ) + for ( SoldierID iCounter = gTacticalStatus.Team[ pSoldier->bTeam ].bFirstID ; iCounter <= gTacticalStatus.Team[ pSoldier->bTeam ].bLastID ; ++iCounter ) { - pFriend = MercPtrs[ iCounter ]; + pFriend = iCounter; // Make sure that character is alive, not too shocked, and conscious if (pFriend != pSoldier && @@ -4148,9 +4140,9 @@ UINT16 CountTeamUnderAttack(INT8 bTeam, INT32 sGridNo, INT16 sDistance) return 0; // Run through each friendly. - for (UINT16 iCounter = gTacticalStatus.Team[bTeam].bFirstID; iCounter <= gTacticalStatus.Team[bTeam].bLastID; iCounter++) + for ( SoldierID iCounter = gTacticalStatus.Team[bTeam].bFirstID; iCounter <= gTacticalStatus.Team[bTeam].bLastID; ++iCounter ) { - pFriend = MercPtrs[iCounter]; + pFriend = iCounter; if (pFriend && pFriend->bActive && @@ -4400,9 +4392,9 @@ UINT16 CountTeamSeeSoldier( INT8 bTeam, SOLDIERTYPE *pSoldier ) if ( bTeam >= MAXTEAMS ) return 0; - for ( UINT16 cnt = gTacticalStatus.Team[bTeam].bFirstID; cnt <= gTacticalStatus.Team[bTeam].bLastID; ++cnt ) + for ( SoldierID cnt = gTacticalStatus.Team[bTeam].bFirstID; cnt <= gTacticalStatus.Team[bTeam].bLastID; ++cnt ) { - pFriend = MercPtrs[cnt]; + pFriend = cnt; if ( pFriend->bActive && pFriend->bInSector && @@ -4844,7 +4836,6 @@ UINT16 CountSeenEnemiesLastTurn( SOLDIERTYPE* pSoldier ) CHECKF(pSoldier); UINT8 ubTeamLoop; - UINT16 ubIDLoop; UINT16 cnt = 0; for( ubTeamLoop = 0; ubTeamLoop < MAXTEAMS; ubTeamLoop++ ) @@ -4855,7 +4846,7 @@ UINT16 CountSeenEnemiesLastTurn( SOLDIERTYPE* pSoldier ) if( gTacticalStatus.Team[ ubTeamLoop ].bSide != pSoldier->bSide ) { // consider guys in this team, which isn't on our side - for( ubIDLoop = gTacticalStatus.Team[ ubTeamLoop ].bFirstID; ubIDLoop <= gTacticalStatus.Team[ ubTeamLoop ].bLastID; ubIDLoop++ ) + for( SoldierID ubIDLoop = gTacticalStatus.Team[ ubTeamLoop ].bFirstID; ubIDLoop <= gTacticalStatus.Team[ ubTeamLoop ].bLastID; ++ubIDLoop ) { // if this guy SAW an enemy recently... if( pSoldier->aiData.bOppList[ ubIDLoop ] >= SEEN_CURRENTLY && diff --git a/TacticalAI/Attacks.cpp b/TacticalAI/Attacks.cpp index 481c1f0a..74bc3548 100644 --- a/TacticalAI/Attacks.cpp +++ b/TacticalAI/Attacks.cpp @@ -3903,9 +3903,9 @@ void CheckTossFriendSmoke(SOLDIERTYPE *pSoldier, ATTACKTYPE *pBestThrow) UINT8 ubDirection; // Run through each friendly. - for (UINT16 iCounter = gTacticalStatus.Team[pSoldier->bTeam].bFirstID; iCounter <= gTacticalStatus.Team[pSoldier->bTeam].bLastID; iCounter++) + for ( SoldierID iCounter = gTacticalStatus.Team[pSoldier->bTeam].bFirstID; iCounter <= gTacticalStatus.Team[pSoldier->bTeam].bLastID; ++iCounter) { - pFriend = MercPtrs[iCounter]; + pFriend = iCounter; // check that friend is alive and needs cover if (pFriend && diff --git a/TacticalAI/CreatureDecideAction.cpp b/TacticalAI/CreatureDecideAction.cpp index 9e01ff8e..ec03cc31 100644 --- a/TacticalAI/CreatureDecideAction.cpp +++ b/TacticalAI/CreatureDecideAction.cpp @@ -66,11 +66,11 @@ INT8 gbHuntCallPriority[NUM_CREATURE_CALLS] = void CreatureCall( SOLDIERTYPE * pCaller ) { UINT8 ubCallerType=0; - UINT16 ubReceiver; - INT8 bFullPriority; - INT8 bPriority; - SOLDIERTYPE * pReceiver; - UINT16 usDistToCaller; + SoldierID ubReceiver; + INT8 bFullPriority; + INT8 bPriority; + SOLDIERTYPE *pReceiver; + UINT16 usDistToCaller; // communicate call to all creatures on map through ultrasonics gTacticalStatus.Team[pCaller->bTeam].bAwareOfOpposition = TRUE; @@ -121,9 +121,9 @@ void CreatureCall( SOLDIERTYPE * pCaller ) } - for (ubReceiver = gTacticalStatus.Team[ pCaller->bTeam ].bFirstID; ubReceiver <= gTacticalStatus.Team[ pCaller->bTeam ].bLastID; ubReceiver++) + for (ubReceiver = gTacticalStatus.Team[ pCaller->bTeam ].bFirstID; ubReceiver <= gTacticalStatus.Team[ pCaller->bTeam ].bLastID; ++ubReceiver ) { - pReceiver = MercPtrs[ubReceiver]; + pReceiver = ubReceiver; if (pReceiver->bActive && pReceiver->bInSector && (pReceiver->stats.bLife >= OKLIFE) && (pReceiver != pCaller) && (pReceiver->aiData.bAlertStatus < STATUS_BLACK)) { if (pReceiver->ubBodyType != LARVAE_MONSTER && pReceiver->ubBodyType != INFANT_MONSTER && pReceiver->ubBodyType != QUEENMONSTER) diff --git a/TacticalAI/DecideAction.cpp b/TacticalAI/DecideAction.cpp index 578bfa29..ddddd888 100644 --- a/TacticalAI/DecideAction.cpp +++ b/TacticalAI/DecideAction.cpp @@ -754,9 +754,9 @@ INT8 DecideActionGreen(SOLDIERTYPE *pSoldier) { // WANNE: This should fix the bug if any merc are still under PC control. This could happen after boxing in SAN MONA. SOLDIERTYPE *pTeamSoldier; - for (UINT16 bLoop=gTacticalStatus.Team[gbPlayerNum].bFirstID; bLoop <= gTacticalStatus.Team[gbPlayerNum].bLastID; bLoop++) + for ( SoldierID bLoop=gTacticalStatus.Team[gbPlayerNum].bFirstID; bLoop <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++bLoop ) { - pTeamSoldier=MercPtrs[bLoop]; + pTeamSoldier = bLoop; if (pTeamSoldier->flags.uiStatusFlags & SOLDIER_PCUNDERAICONTROL) pTeamSoldier->flags.uiStatusFlags &= (~SOLDIER_PCUNDERAICONTROL); diff --git a/TacticalAI/Knowledge.cpp b/TacticalAI/Knowledge.cpp index 74fafb00..06739f4b 100644 --- a/TacticalAI/Knowledge.cpp +++ b/TacticalAI/Knowledge.cpp @@ -21,7 +21,6 @@ void CallAvailableEnemiesTo( INT32 sGridNo ) void CallAvailableTeamEnemiesTo( INT32 sGridNo, INT8 bTeam ) { - INT32 iLoop2; SOLDIERTYPE * pSoldier; // All enemy teams become aware of a very important "noise" coming from here! @@ -36,9 +35,10 @@ void CallAvailableTeamEnemiesTo( INT32 sGridNo, INT8 bTeam ) gubPublicNoiseVolume[bTeam] = MAX_MISC_NOISE_DURATION; // new situation for everyone; - iLoop2 = gTacticalStatus.Team[ bTeam ].bFirstID; - for ( pSoldier = MercPtrs[iLoop2]; iLoop2 <= gTacticalStatus.Team[ bTeam ].bLastID; iLoop2++, pSoldier++ ) + SoldierID iLoop2 = gTacticalStatus.Team[ bTeam ].bFirstID; + for ( ; iLoop2 <= gTacticalStatus.Team[ bTeam ].bLastID; ++iLoop2 ) { + pSoldier = iLoop2; if (pSoldier->bActive && pSoldier->bInSector && pSoldier->stats.bLife >= OKLIFE) { SetNewSituation( pSoldier ); @@ -54,7 +54,6 @@ void CallAvailableKingpinMenTo( INT32 sGridNo ) // like call all enemies, but only affects civgroup KINGPIN guys with // NO PROFILE - INT32 iLoop2; SOLDIERTYPE * pSoldier; // All enemy teams become aware of a very important "noise" coming from here! @@ -67,9 +66,10 @@ void CallAvailableKingpinMenTo( INT32 sGridNo ) // new situation for everyone... - iLoop2 = gTacticalStatus.Team[ CIV_TEAM ].bFirstID; - for ( pSoldier = MercPtrs[iLoop2]; iLoop2 <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; iLoop2++, pSoldier++ ) + SoldierID iLoop2 = gTacticalStatus.Team[ CIV_TEAM ].bFirstID; + for ( ; iLoop2 <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; ++iLoop2 ) { + pSoldier = iLoop2; if (pSoldier->bActive && pSoldier->bInSector && pSoldier->stats.bLife >= OKLIFE && pSoldier->ubCivilianGroup == KINGPIN_CIV_GROUP && pSoldier->ubProfile == NO_PROFILE) { SetNewSituation( pSoldier ); diff --git a/TacticalAI/Medical.cpp b/TacticalAI/Medical.cpp index 35c2a334..56a5b202 100644 --- a/TacticalAI/Medical.cpp +++ b/TacticalAI/Medical.cpp @@ -72,7 +72,6 @@ BOOLEAN FindAutobandageClimbPoint( INT32 sDesiredGridNo, BOOLEAN fClimbUp ) BOOLEAN FullPatientCheck( SOLDIERTYPE * pPatient ) { - UINT16 cnt; SOLDIERTYPE * pSoldier; if ( CanCharacterAutoBandageTeammate( pPatient ) ) @@ -90,9 +89,10 @@ BOOLEAN FullPatientCheck( SOLDIERTYPE * pPatient ) else { // run though the list of chars on team - cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; - for ( pSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; cnt++,pSoldier++) + SoldierID cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; + for ( ; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++cnt ) { + pSoldier = cnt; // can this character help out? if ( CanCharacterAutoBandageTeammate( pSoldier ) == TRUE ) { @@ -119,17 +119,16 @@ BOOLEAN FullPatientCheck( SOLDIERTYPE * pPatient ) BOOLEAN CanAutoBandage( BOOLEAN fDoFullCheck ) { // returns false if we should stop being in auto-bandage mode - UINT16 cnt; UINT16 ubMedics = 0, ubPatients = 0; SOLDIERTYPE * pSoldier; static SoldierID ubIDForFullCheck = NOBODY; // run though the list of chars on team - cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; - for ( pSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; cnt++,pSoldier++) + SoldierID cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; + for ( ; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++cnt) { // can this character help out? - if( CanCharacterAutoBandageTeammate( pSoldier ) == TRUE ) + if( CanCharacterAutoBandageTeammate( cnt ) == TRUE ) { // yep, up the number of medics in sector ubMedics++; @@ -143,8 +142,9 @@ BOOLEAN CanAutoBandage( BOOLEAN fDoFullCheck ) } cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; - for ( pSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; cnt++,pSoldier++) + for ( ; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++cnt ) { + pSoldier = cnt; // can this character be helped out by a teammate? if ( CanCharacterBeAutoBandagedByTeammate( pSoldier ) == TRUE ) { @@ -227,7 +227,6 @@ BOOLEAN CanCharacterBeAutoBandagedByTeammate( SOLDIERTYPE *pSoldier ) INT8 FindBestPatient( SOLDIERTYPE * pSoldier, BOOLEAN * pfDoClimb ) { - UINT16 cnt; UINT8 cnt2; INT32 bBestPriority = 0, sBestAdjGridNo = NOWHERE; INT32 sPatientGridNo = NOWHERE, sBestPatientGridNo = NOWHERE; @@ -244,9 +243,10 @@ INT8 FindBestPatient( SOLDIERTYPE * pSoldier, BOOLEAN * pfDoClimb ) gubGlobalPathFlags = PATH_THROUGH_PEOPLE; // search for someone who needs aid - cnt = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; - for ( pPatient = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; cnt++,pPatient++) + SoldierID cnt = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; + for ( ; cnt <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++cnt ) { + pPatient = cnt; if ( !(pPatient->bActive) || !(pPatient->bInSector) ) { continue; // NEXT!!! @@ -475,13 +475,13 @@ INT8 DecideAutoBandage( SOLDIERTYPE * pSoldier ) BOOLEAN DoctorIsPresent( SOLDIERTYPE * pPatient, BOOLEAN fOnDoctorAssignmentCheck ) { SOLDIERTYPE * pMedic = NULL; - UINT16 cnt; INT8 bSlot; BOOLEAN fDoctorHasBeenFound = FALSE; - cnt = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; - for ( pMedic = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; cnt++,pMedic++) + SoldierID cnt = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; + for ( ; cnt <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++cnt ) { + pMedic = cnt; if ( !(pMedic->bActive) || !(pMedic->bInSector) || ( pMedic->flags.uiStatusFlags & SOLDIER_VEHICLE ) || (pMedic->bAssignment == VEHICLE ) ) { // is nowhere around! diff --git a/TacticalAI/NPC.cpp b/TacticalAI/NPC.cpp index 727d0e83..fe48412c 100644 --- a/TacticalAI/NPC.cpp +++ b/TacticalAI/NPC.cpp @@ -2913,7 +2913,6 @@ void TriggerClosestMercWhoCanSeeNPC( UINT8 ubNPC, NPCQuoteInfo *pQuotePtr ) UINT16 ubNumMercs = 0; UINT16 ubChosenMerc; SOLDIERTYPE *pTeamSoldier, *pSoldier; - INT32 cnt; // First get pointer to NPC pSoldier = FindSoldierByProfileID( ubNPC, FALSE ); @@ -2921,11 +2920,12 @@ void TriggerClosestMercWhoCanSeeNPC( UINT8 ubNPC, NPCQuoteInfo *pQuotePtr ) // Loop through all our guys and randomly say one from someone in our sector // set up soldier ptr as first element in mercptrs list - cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; + SoldierID cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; // run through list - for ( pTeamSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; cnt++,pTeamSoldier++ ) + for ( ; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++cnt ) { + pTeamSoldier = cnt; // Add guy if he's a candidate... if ( OK_INSECTOR_MERC( pTeamSoldier ) && pTeamSoldier->aiData.bOppList[ pSoldier->ubID ] == SEEN_CURRENTLY ) { @@ -3649,7 +3649,6 @@ void TriggerFriendWithHostileQuote( UINT8 ubNPC ) UINT16 ubNumMercsAvailable = 0, ubChosenMerc; SOLDIERTYPE * pTeamSoldier; SOLDIERTYPE * pSoldier; - INT32 cnt; INT8 bTeam; // First get pointer to NPC @@ -3663,11 +3662,12 @@ void TriggerFriendWithHostileQuote( UINT8 ubNPC ) // Loop through all our guys and find one to yell // set up soldier ptr as first element in mercptrs list - cnt = gTacticalStatus.Team[ bTeam ].bFirstID; + SoldierID cnt = gTacticalStatus.Team[ bTeam ].bFirstID; // run through list - for ( pTeamSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ bTeam ].bLastID; cnt++,pTeamSoldier++ ) + for ( ; cnt <= gTacticalStatus.Team[ bTeam ].bLastID; ++cnt ) { + pTeamSoldier = cnt; // Add guy if he's a candidate... if ( pTeamSoldier->bActive && pSoldier->bInSector && pTeamSoldier->stats.bLife >= OKLIFE && pTeamSoldier->bBreath >= OKBREATH && pTeamSoldier->aiData.bOppCnt > 0 && pTeamSoldier->ubProfile != NO_PROFILE ) { diff --git a/TileEngine/Explosion Control.cpp b/TileEngine/Explosion Control.cpp index e8f6cc3e..d64a7526 100644 --- a/TileEngine/Explosion Control.cpp +++ b/TileEngine/Explosion Control.cpp @@ -3283,13 +3283,12 @@ void BillyBlocksDoorCallback( void ) BOOLEAN HookerInRoom( UINT16 usRoom ) { //DBrot: More Rooms - UINT16 ubLoop;//, ubTempRoom; UINT16 usTempRoom; SOLDIERTYPE * pSoldier; - for ( 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 ) { - pSoldier = MercPtrs[ ubLoop ]; + pSoldier = ubLoop; if ( pSoldier->bActive && pSoldier->bInSector && pSoldier->stats.bLife >= OKLIFE && pSoldier->aiData.bNeutral && pSoldier->ubBodyType == MINICIV ) { @@ -4292,7 +4291,7 @@ void HandleExplosionQueue( void ) if (gfExplosionQueueMayHaveChangedSight) { - UINT16 ubLoop; + SoldierID ubLoop; SOLDIERTYPE * pTeamSoldier; // set variable so we may at least have someone to resolve interrupts vs @@ -4301,8 +4300,9 @@ void HandleExplosionQueue( void ) // call fov code ubLoop = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; - for ( pTeamSoldier = MercPtrs[ ubLoop ]; ubLoop <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ubLoop++, pTeamSoldier++ ) + for ( ; ubLoop <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++ubLoop ) { + pTeamSoldier = ubLoop; if ( pTeamSoldier->bActive && pTeamSoldier->bInSector ) { RevealRoofsAndItems( pTeamSoldier, TRUE, FALSE, pTeamSoldier->pathing.bLevel, FALSE ); @@ -4442,17 +4442,17 @@ void HandleExplosionWarningAnimations( ) // soldiers if (!fShow) { - for (UINT32 ubID = gTacticalStatus.Team[OUR_TEAM].bFirstID; ubID <= gTacticalStatus.Team[CIV_TEAM].bLastID; ++ubID) + for ( SoldierID ubID = gTacticalStatus.Team[OUR_TEAM].bFirstID; ubID <= gTacticalStatus.Team[CIV_TEAM].bLastID; ++ubID) { if (ubID != pSoldier->ubID && - MercPtrs[ubID] && - MercPtrs[ubID]->sGridNo == sSpot && - MercPtrs[ubID]->bVisible == TRUE && - MercPtrs[ubID]->pathing.bLevel == bLevel && - gAnimControl[MercPtrs[ubID]->usAnimState].ubEndHeight == ANIM_PRONE && - !Water(MercPtrs[ubID]->sGridNo, MercPtrs[ubID]->pathing.bLevel) && + ubID != NOBODY && + ubID->sGridNo == sSpot && + ubID->bVisible == TRUE && + ubID->pathing.bLevel == bLevel && + gAnimControl[ubID->usAnimState].ubEndHeight == ANIM_PRONE && + !Water(ubID->sGridNo, ubID->pathing.bLevel) && pSoldier->ubBodyType <= REGFEMALE && - (MercPtrs[ubID]->bTeam == pSoldier->bTeam || MercPtrs[ubID]->IsUnconscious() || MercPtrs[ubID]->stats.bLife < OKLIFE)) + (ubID->bTeam == pSoldier->bTeam || ubID->IsUnconscious() || ubID->stats.bLife < OKLIFE)) { fShow = TRUE; } @@ -5308,7 +5308,6 @@ void UpdateSAMDoneRepair( INT16 sSectorX, INT16 sSectorY, INT16 sSectorZ ) void HandleBuldingDestruction( INT32 sGridNo, SoldierID ubOwner ) { SOLDIERTYPE * pSoldier; - UINT16 cnt; if ( ubOwner == NOBODY ) { @@ -5324,9 +5323,10 @@ void HandleBuldingDestruction( INT32 sGridNo, SoldierID ubOwner ) if ( sGridNo == NOWHERE || !InARoom( sGridNo, NULL ) ) return; - cnt = gTacticalStatus.Team[ CIV_TEAM ].bFirstID; - for ( pSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; cnt++ ,pSoldier++ ) + SoldierID cnt = gTacticalStatus.Team[ CIV_TEAM ].bFirstID; + for ( ; cnt <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; ++cnt ) { + pSoldier = cnt; if ( pSoldier->bActive && pSoldier->bInSector && pSoldier->stats.bLife && pSoldier->aiData.bNeutral ) { if ( pSoldier->ubProfile != NO_PROFILE ) diff --git a/TileEngine/Isometric Utils.cpp b/TileEngine/Isometric Utils.cpp index 51d8a986..82bf2859 100644 --- a/TileEngine/Isometric Utils.cpp +++ b/TileEngine/Isometric Utils.cpp @@ -1336,10 +1336,11 @@ INT32 RandomGridNo() BOOLEAN GridNoNearPlayerMercs( INT32 sGridNo, INT16 sRadius ) { SOLDIERTYPE* pTeamSoldier = NULL; - INT32 cnt = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; - INT32 lastid = gTacticalStatus.Team[ OUR_TEAM ].bLastID; - for ( pTeamSoldier = MercPtrs[ cnt ]; cnt < lastid; ++cnt, ++pTeamSoldier) + SoldierID cnt = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; + SoldierID lastid = gTacticalStatus.Team[ OUR_TEAM ].bLastID; + for ( ; cnt < lastid; ++cnt ) { + pTeamSoldier = cnt; if ( pTeamSoldier && pTeamSoldier->bActive && pTeamSoldier->bInSector ) { if ( PythSpacesAway(sGridNo, pTeamSoldier->sGridNo) < sRadius ) diff --git a/TileEngine/Tactical Placement GUI.cpp b/TileEngine/Tactical Placement GUI.cpp index 3c4fe0bd..0735de88 100644 --- a/TileEngine/Tactical Placement GUI.cpp +++ b/TileEngine/Tactical Placement GUI.cpp @@ -227,7 +227,7 @@ void InitTacticalPlacementGUI() { islocked=0;//hayden VOBJECT_DESC VObjectDesc; - INT32 i, xp, yp; + INT32 xp, yp; UINT8 ubFaceIndex; gfTacticalPlacementGUIActive = TRUE; gfTacticalPlacementGUIDirty = TRUE; @@ -325,9 +325,9 @@ void InitTacticalPlacementGUI() //First pass: Count the number of mercs that are going to be placed by the player. // This determines the size of the array we will allocate. giPlacements = 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->flags.fBetweenSectors && CurrentBattleSectorIs( pSoldier->sSectorX, pSoldier->sSectorY, pSoldier->bSectorZ ) && !( pSoldier->flags.uiStatusFlags & ( SOLDIER_VEHICLE ) ) && // ATE Ignore vehicles @@ -345,9 +345,9 @@ void InitTacticalPlacementGUI() Assert( gMercPlacement ); //Second pass: Assign the mercs to their respective slots. giPlacements = 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.fBetweenSectors && CurrentBattleSectorIs( pSoldier->sSectorX, pSoldier->sSectorY, pSoldier->bSectorZ ) && pSoldier->bAssignment != ASSIGNMENT_POW && @@ -426,7 +426,7 @@ void InitTacticalPlacementGUI() } //add all the faces now - for( i = 0; i < giPlacements; ++i ) + for( INT32 i = 0; i < giPlacements; ++i ) { VObjectDesc.fCreateFlags = VOBJECT_CREATE_FROMFILE; @@ -483,7 +483,7 @@ void InitTacticalPlacementGUI() { ButtonList[ iTPButtons[ GROUP_BUTTON ] ]->uiFlags |= BUTTON_CLICKED_ON; - for( i = 0; i < giPlacements; ++i ) + for( INT32 i = 0; i < giPlacements; ++i ) { //go from the currently selected soldier to the end if( !gMercPlacement[ i ].fPlaced ) { //Found an unplaced merc. Select him.