Use SoldierID

This commit is contained in:
Asdow
2024-11-30 23:47:00 +02:00
parent 79b57c326e
commit de56f653ec
38 changed files with 454 additions and 461 deletions
+18 -15
View File
@@ -18407,12 +18407,12 @@ BOOLEAN HandleSelectedMercsBeingPutAsleep( BOOLEAN fWakeUp, BOOLEAN fDisplayWarn
BOOLEAN IsAnyOneOnPlayersTeamOnThisAssignment( INT8 bAssignment )
{
SOLDIERTYPE *pSoldier = NULL;
for( INT32 iCounter = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; iCounter <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++iCounter )
SoldierID id = gTacticalStatus.Team[OUR_TEAM].bFirstID;
SoldierID lastid = gTacticalStatus.Team[OUR_TEAM].bLastID;
for( ; id <= lastid; ++id)
{
// get the current soldier
pSoldier = &Menptr[ iCounter ];
SOLDIERTYPE *pSoldier = id;
// active?
if( pSoldier->bActive == FALSE )
@@ -18443,7 +18443,6 @@ void RebuildAssignmentsBox( void )
void BandageBleedingDyingPatientsBeingTreated( )
{
INT32 iCounter = 0;
SOLDIERTYPE *pSoldier = NULL;
SOLDIERTYPE *pDoctor = NULL;
INT32 iKitSlot;
@@ -18452,10 +18451,10 @@ void BandageBleedingDyingPatientsBeingTreated( )
UINT32 uiKitPtsUsed;
BOOLEAN fSomeoneStillBleedingDying = FALSE;
for( iCounter = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; iCounter <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; iCounter++ )
for( SoldierID id = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; id <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++id )
{
// get the soldier
pSoldier = &Menptr[ iCounter ];
pSoldier = id;
// check if the soldier is currently active?
if( pSoldier->bActive == FALSE )
@@ -19601,9 +19600,11 @@ void RepairItemsOnOthers( SOLDIERTYPE *pSoldier, UINT8 *pubRepairPtsLeft )
fSomethingWasRepairedThisPass = FALSE;
// look for jammed guns on other soldiers in sector and unjam them
for( bLoop = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; bLoop <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++bLoop )
SoldierID id = gTacticalStatus.Team[gbPlayerNum].bFirstID;
const SoldierID lastid = gTacticalStatus.Team[gbPlayerNum].bLastID;
for ( ; id <= lastid; ++id )
{
pOtherSoldier = MercPtrs[ bLoop ];
pOtherSoldier = id;
// check character is valid, alive, same sector, not between, has inventory, etc.
if ( CanCharacterRepairAnotherSoldiersStuff( pSoldier, pOtherSoldier ) )
@@ -19621,9 +19622,11 @@ void RepairItemsOnOthers( SOLDIERTYPE *pSoldier, UINT8 *pubRepairPtsLeft )
pBestOtherSoldier = NULL;
// now look for items to repair on other mercs
for( bLoop = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; bLoop <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++bLoop )
SoldierID id = gTacticalStatus.Team[gbPlayerNum].bFirstID;
const SoldierID lastid = gTacticalStatus.Team[gbPlayerNum].bLastID;
for ( ; id <= lastid; ++id )
{
pOtherSoldier = MercPtrs[ bLoop ];
pOtherSoldier = id;
// check character is valid, alive, same sector, not between, has inventory, etc.
if ( CanCharacterRepairAnotherSoldiersStuff( pSoldier, pOtherSoldier ) )
@@ -22806,11 +22809,11 @@ BOOLEAN MercStaffsMilitaryHQ()
return TRUE;
SOLDIERTYPE *pSoldier = NULL;
UINT32 uiCnt = 0;
UINT32 firstid = gTacticalStatus.Team[ OUR_TEAM ].bFirstID;
UINT32 lastid = gTacticalStatus.Team[ OUR_TEAM ].bLastID;
for ( uiCnt = firstid, pSoldier = MercPtrs[ uiCnt ]; uiCnt <= lastid; ++uiCnt, ++pSoldier)
SoldierID id = gTacticalStatus.Team[ OUR_TEAM ].bFirstID;
SoldierID lastid = gTacticalStatus.Team[ OUR_TEAM ].bLastID;
for ( ; id <= lastid; ++id)
{
pSoldier = id;
if( pSoldier && pSoldier->bAssignment == FACILITY_STRATEGIC_MILITIA_MOVEMENT && pSoldier->flags.fMercAsleep == FALSE )
{
return TRUE;
+18 -12
View File
@@ -1852,11 +1852,14 @@ void RenderAutoResolve()
case BATTLE_SURRENDERED:
case BATTLE_CAPTURED:
for( i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; i++ )
{
SoldierID id = gTacticalStatus.Team[OUR_TEAM].bFirstID;
const SoldierID lastid = gTacticalStatus.Team[OUR_TEAM].bLastID;
for ( ; id <= lastid; ++id )
{
SOLDIERTYPE *pSoldier = MercPtrs[i];
SOLDIERTYPE *pSoldier = id;
if( pSoldier->bActive && pSoldier->stats.bLife && !(pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE) && !AM_A_ROBOT( pSoldier ) )
if ( pSoldier->bActive && pSoldier->stats.bLife && !(pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE) && !AM_A_ROBOT( pSoldier ) )
{ //Merc is active and alive, and not a vehicle or robot
if ( PlayerMercInvolvedInThisCombat( pSoldier ) )
{
@@ -1866,17 +1869,18 @@ void RenderAutoResolve()
}
}
HandleMoraleEvent( NULL, MORALE_HEARD_BATTLE_LOST, gpAR->ubSectorX, gpAR->ubSectorY, 0 );
if( ProcessLoyalty() )HandleGlobalLoyaltyEvent( GLOBAL_LOYALTY_BATTLE_LOST, gpAR->ubSectorX, gpAR->ubSectorY, 0 );
#ifdef NEWMUSIC
GlobalSoundID = MusicSoundValues[ SECTOR( gpAR->ubSectorX, gpAR->ubSectorY ) ].SoundTacticalDeath[0];
if ( MusicSoundValues[ SECTOR( gpAR->ubSectorX, gpAR->ubSectorY ) ].SoundTacticalDeath[0] != -1 )
SetMusicModeID( MUSIC_TACTICAL_DEATH, MusicSoundValues[ SECTOR( gpAR->ubSectorX, gpAR->ubSectorY ) ].SoundTacticalDeath[0] );
if ( ProcessLoyalty() )HandleGlobalLoyaltyEvent( GLOBAL_LOYALTY_BATTLE_LOST, gpAR->ubSectorX, gpAR->ubSectorY, 0 );
#ifdef NEWMUSIC
GlobalSoundID = MusicSoundValues[SECTOR( gpAR->ubSectorX, gpAR->ubSectorY )].SoundTacticalDeath[0];
if ( MusicSoundValues[SECTOR( gpAR->ubSectorX, gpAR->ubSectorY )].SoundTacticalDeath[0] != -1 )
SetMusicModeID( MUSIC_TACTICAL_DEATH, MusicSoundValues[SECTOR( gpAR->ubSectorX, gpAR->ubSectorY )].SoundTacticalDeath[0] );
else
#endif
SetMusicMode( MUSIC_TACTICAL_DEATH );
#endif
SetMusicMode( MUSIC_TACTICAL_DEATH );
gsEnemyGainedControlOfSectorID = (INT16)SECTOR( gpAR->ubSectorX, gpAR->ubSectorY );
break;
}
case BATTLE_DEFEAT:
HandleMoraleEvent( NULL, MORALE_HEARD_BATTLE_LOST, gpAR->ubSectorX, gpAR->ubSectorY, 0 );
@@ -5959,9 +5963,11 @@ void CheckForSoldiersWhoRetreatedIntoMilitiaHeldSectors()
(!gTacticalStatus.fEnemyInSector))
{
unsigned mercCnt = 0;
for( int i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++i )
SoldierID id = gTacticalStatus.Team[OUR_TEAM].bFirstID;
const SoldierID lastid = gTacticalStatus.Team[OUR_TEAM].bLastID;
for ( ; id <= lastid; ++id )
{
SOLDIERTYPE *pSoldier = MercPtrs[i];
SOLDIERTYPE *pSoldier = id;
if( pSoldier->bActive && pSoldier->stats.bLife && !(pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE) && !AM_A_ROBOT( pSoldier ) )
{
+6 -7
View File
@@ -1676,9 +1676,9 @@ void DetermineCreatureTownCompositionBasedOnTacticalInformation( UINT16 *pubNumC
*pubNumCreatures = 0;
pSector->ubNumCreatures = 0;
pSector->ubCreaturesInBattle = 0;
for( INT32 i = gTacticalStatus.Team[ CREATURE_TEAM ].bFirstID; i <= gTacticalStatus.Team[ CREATURE_TEAM ].bLastID; ++i )
for( SoldierID i = gTacticalStatus.Team[ CREATURE_TEAM ].bFirstID; i <= gTacticalStatus.Team[ CREATURE_TEAM ].bLastID; ++i )
{
pSoldier = MercPtrs[ i ];
pSoldier = i;
if( pSoldier->bActive && pSoldier->bInSector && pSoldier->stats.bLife )
{
switch( pSoldier->ubBodyType )
@@ -1712,9 +1712,9 @@ void DetermineOtherCreatureTownCompositionBasedOnTacticalInformation( UINT16* pu
*pubNumCreatures = 0;
pSector->ubNumCreatures = 0;
pSector->ubCreaturesInBattle = 0;
for ( INT32 i = gTacticalStatus.Team[CREATURE_TEAM].bFirstID; i <= gTacticalStatus.Team[CREATURE_TEAM].bLastID; ++i )
for ( SoldierID i = gTacticalStatus.Team[CREATURE_TEAM].bFirstID; i <= gTacticalStatus.Team[CREATURE_TEAM].bLastID; ++i )
{
pSoldier = MercPtrs[i];
pSoldier = i;
if ( pSoldier->bActive && pSoldier->bInSector && pSoldier->stats.bLife )
{
if ( pSoldier->IsZombie() )
@@ -2243,7 +2243,6 @@ BOOLEAN PlayerGroupIsInACreatureInfestedMine()
{
CREATURE_DIRECTIVE *curr;
SOLDIERTYPE *pSoldier;
INT32 i;
INT16 sSectorX, sSectorY;
INT8 bSectorZ;
@@ -2261,9 +2260,9 @@ BOOLEAN PlayerGroupIsInACreatureInfestedMine()
bSectorZ = (INT8)curr->pLevel->ubSectorZ;
//Loop through all the creature directives (mine sectors that are infectible) and
//see if players are there.
for( i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; i++ )
for( SoldierID i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++i )
{
pSoldier = MercPtrs[ i ];
pSoldier = i;
if( pSoldier->bActive && pSoldier->stats.bLife &&
pSoldier->sSectorX == sSectorX &&
pSoldier->sSectorY == sSectorY &&
+5 -10
View File
@@ -842,19 +842,14 @@ fFirstTimeInMapScreen = TRUE;
BOOLEAN AnyMercsHired( )
{
INT32 cnt;
SOLDIERTYPE *pTeamSoldier;
INT16 bLastTeamID;
// Find first guy availible in team
cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
bLastTeamID = gTacticalStatus.Team[ gbPlayerNum ].bLastID;
// Find first guy available in team
SoldierID id = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
SoldierID bLastTeamID = gTacticalStatus.Team[ gbPlayerNum ].bLastID;
// look for all mercs on the same team,
for ( pTeamSoldier = MercPtrs[ cnt ]; cnt <= bLastTeamID; cnt++,pTeamSoldier++)
for ( ; id <= bLastTeamID; ++id)
{
if ( pTeamSoldier->bActive )
if ( id->bActive )
{
return( TRUE );
}
+24 -24
View File
@@ -361,18 +361,18 @@ UINT16 LarryItems[ NUM_LARRY_ITEMS ][ 3 ] =
void HourlyLarryUpdate()
{
SOLDIERTYPE * pSoldier = NULL;
SOLDIERTYPE * pOtherSoldier = NULL;
INT8 bSlot = NO_SLOT, bBoozeSlot;
UINT16 usTemptation = 0;
UINT16 usCashAmount;
BOOLEAN fBar = FALSE;
OBJECTTYPE* pObj = NULL;
BOOLEAN fTookDrugs = FALSE;
SOLDIERTYPE *pSoldier = NULL;
SOLDIERTYPE *pOtherSoldier = NULL;
INT8 bSlot = NO_SLOT, bBoozeSlot;
UINT16 usTemptation = 0;
UINT16 usCashAmount;
BOOLEAN fBar = FALSE;
OBJECTTYPE* pObj = NULL;
BOOLEAN fTookDrugs = FALSE;
for( UINT32 cnt = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; cnt <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++cnt )
for( SoldierID id = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; id <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++id )
{
pSoldier = MercPtrs[ cnt ];
pSoldier = id;
if ( pSoldier && pSoldier->bActive && !pSoldier->flags.fMercAsleep && ( pSoldier->ubProfile == LARRY_NORMAL || pSoldier->ubProfile == LARRY_DRUNK || pSoldier->HasBackgroundFlag( BACKGROUND_DRUGUSE ) ) )
{
@@ -484,9 +484,9 @@ void HourlyLarryUpdate()
{
// anv: snitches stop mercs from getting wasted
BOOLEAN fSnitchStoppedBehaviour = FALSE;
for( INT32 cnt2 = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; cnt2 <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++cnt2 )
for( SoldierID id2 = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; id2 <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++id2 )
{
pOtherSoldier = MercPtrs[ cnt2 ];
pOtherSoldier = id2;
// note - snitches stop others, but can get wasted themselves (if they have drug use specifically set in background...)
if( pOtherSoldier && !pOtherSoldier->flags.fBetweenSectors && pOtherSoldier->bActive && !pOtherSoldier->flags.fMercAsleep && pSoldier->ubProfile != pOtherSoldier->ubProfile )
{
@@ -612,12 +612,12 @@ void HourlyLarryUpdate()
// Flugente: mercs that are smokers occasionally consume smokes if they have some in their inventory
void HourlySmokerUpdate( )
{
SOLDIERTYPE * pSoldier = NULL;
OBJECTTYPE* pObj = NULL;
SOLDIERTYPE *pSoldier = NULL;
OBJECTTYPE *pObj = NULL;
for ( UINT32 cnt = gTacticalStatus.Team[OUR_TEAM].bFirstID; cnt <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++cnt )
for ( SoldierID id = gTacticalStatus.Team[OUR_TEAM].bFirstID; id <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++id )
{
pSoldier = MercPtrs[cnt];
pSoldier = id;
if ( pSoldier && pSoldier->bActive && !pSoldier->flags.fMercAsleep )
{
@@ -647,9 +647,9 @@ void HourlyDisabilityUpdate( )
SOLDIERTYPE* pSoldier = NULL;
SOLDIERTYPE* pOtherSoldier = NULL;
for ( UINT32 cnt = gTacticalStatus.Team[OUR_TEAM].bFirstID; cnt <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++cnt )
for ( SoldierID id = gTacticalStatus.Team[OUR_TEAM].bFirstID; id <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++id )
{
pSoldier = MercPtrs[cnt];
pSoldier = id;
if ( pSoldier && pSoldier->bActive )
{
@@ -664,9 +664,9 @@ void HourlyDisabilityUpdate( )
{
// anv: snitches stop mercs from getting wasted
BOOLEAN fSnitchStoppedBehaviour = FALSE;
for ( INT32 cnt2 = gTacticalStatus.Team[OUR_TEAM].bFirstID; cnt2 <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++cnt2 )
for ( SoldierID id2 = gTacticalStatus.Team[OUR_TEAM].bFirstID; id2 <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++id2 )
{
pOtherSoldier = MercPtrs[cnt2];
pOtherSoldier = id2;
// note - snitches stop others, but can get wasted themselves (if they have drug use specifically set in background...)
if ( pOtherSoldier && !pOtherSoldier->flags.fBetweenSectors && pOtherSoldier->bActive && !pOtherSoldier->flags.fMercAsleep && pSoldier->ubProfile != pOtherSoldier->ubProfile )
@@ -760,9 +760,9 @@ void HourlyStealUpdate()
SOLDIERTYPE * pSoldier = NULL;
SOLDIERTYPE * pOtherSoldier = NULL;
for( INT32 cnt = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; cnt <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++cnt )
for( SoldierID cnt = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; cnt <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++cnt )
{
pSoldier = MercPtrs[ cnt ];
pSoldier = cnt;
// merc must be alive, not travelling and awake. If he is in the currently loaded sector, we may not be in tactical (we would see an item suddenly disappearing) and not in combat
if ( pSoldier
@@ -794,9 +794,9 @@ void HourlyStealUpdate()
// anv: snitches prevent scrounging in the same sector
BOOLEAN fSnitchStoppedBehaviour = FALSE;
for ( UINT32 cnt2 = gTacticalStatus.Team[OUR_TEAM].bFirstID; cnt2 <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++cnt2 )
for ( SoldierID cnt2 = gTacticalStatus.Team[OUR_TEAM].bFirstID; cnt2 <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++cnt2 )
{
pOtherSoldier = MercPtrs[cnt2];
pOtherSoldier = cnt2;
// note - snitches stop others, but can scrounge themselves (if they have scrounging specifically set in background...)
if ( pOtherSoldier
+10 -13
View File
@@ -2953,17 +2953,14 @@ SOLDIERTYPE * FindSoldierByProfileID_( UINT8 ubProfileID )
SOLDIERTYPE * FindSoldierByProfileID2( UINT8 ubProfileID, BOOLEAN fPlayerMercsOnly )
{
UINT16 cnt2, ubLoopLimit;
SOLDIERTYPE * pSoldier;
SoldierID soldier = gTacticalStatus.Team[ CIV_TEAM ].bFirstID;
SoldierID lastid = gTacticalStatus.Team[CIV_TEAM].bLastID;
ubLoopLimit = gTacticalStatus.Team[CIV_TEAM].bLastID;
cnt2 = gTacticalStatus.Team[ CIV_TEAM ].bFirstID;
for ( pSoldier = MercPtrs[ cnt2 ]; cnt2 <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; cnt2++ ,pSoldier++)
for ( ; soldier <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; ++soldier)
{
if ( pSoldier->bActive && pSoldier->bInSector )
if ( soldier->bActive && soldier->bInSector )
{
return( pSoldier );
return( soldier );
}
}
return( NULL );
@@ -5977,7 +5974,6 @@ return 0;
static int l_ActionInProgress(lua_State *L)
{
UINT16 cnt2;
SOLDIERTYPE * pSoldier;
if (lua_gettop(L) >= 2)
@@ -5995,9 +5991,10 @@ static int l_ActionInProgress(lua_State *L)
}
else
{
cnt2 = gTacticalStatus.Team[CIV_TEAM].bFirstID;
for (pSoldier = MercPtrs[cnt2]; cnt2 <= gTacticalStatus.Team[CIV_TEAM].bLastID; cnt2++, pSoldier++)
SoldierID cnt2 = gTacticalStatus.Team[CIV_TEAM].bFirstID;
for ( ; cnt2 <= gTacticalStatus.Team[CIV_TEAM].bLastID; ++cnt2)
{
pSoldier = cnt2;
if (pSoldier->bActive && pSoldier->bInSector && pSoldier->ubProfile == NO_PROFILE)
{
pSoldier->aiData.bActionInProgress = ExecuteAction(pSoldier);
@@ -7623,9 +7620,9 @@ static int l_SetEnterCombatMode (lua_State *L)
return 0;
SOLDIERTYPE* pGoon = NULL;
for ( UINT16 ubLoop = gTacticalStatus.Team[ CIV_TEAM ].bFirstID; ubLoop <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; ubLoop++ )
for ( SoldierID ubLoop = gTacticalStatus.Team[ CIV_TEAM ].bFirstID; ubLoop <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; ++ubLoop)
{
pGoon = MercPtrs[ ubLoop ];
pGoon = ubLoop;
if ( pGoon->ubCivilianGroup == group && pGoon->bActive && pGoon->bInSector && pGoon->stats.bLife >= OKLIFE && pGoon->aiData.bOppList[ ubID ] == SEEN_CURRENTLY )
{
MakeCivHostile(pGoon);
+4 -8
View File
@@ -6948,19 +6948,15 @@ UINT32 WhatPlayerKnowsAboutEnemiesInSector( INT16 sSectorX, INT16 sSectorY )
BOOLEAN CanMercsScoutThisSector( INT16 sSectorX, INT16 sSectorY, INT8 bSectorZ )
{
INT32 iFirstId = 0, iLastId = 0;
INT32 iCounter = 0;
SOLDIERTYPE *pSoldier = NULL;
// to speed it up a little?
iFirstId = gTacticalStatus.Team[ OUR_TEAM ].bFirstID;
iLastId = gTacticalStatus.Team[ OUR_TEAM ].bLastID;
for( iCounter = iFirstId; iCounter <= iLastId; iCounter++ )
SoldierID id = gTacticalStatus.Team[ OUR_TEAM ].bFirstID;
const SoldierID iLastId = gTacticalStatus.Team[ OUR_TEAM ].bLastID;
for( ; id <= iLastId; ++id )
{
// get the soldier
pSoldier = &Menptr[ iCounter ];
pSoldier = id;
// is the soldier active
if( pSoldier->bActive == FALSE )
+3 -2
View File
@@ -6173,7 +6173,7 @@ BOOLEAN CanCharacterMoveInStrategic( SOLDIERTYPE *pSoldier, INT8 *pbErrorNumber
( !pSoldier->flags.fBetweenSectors ) && gMercProfiles[ ELDIN ].bMercStatus != MERC_IS_DEAD )
{
//DBrot: More Rooms
UINT16 /*ubRoom,*/ cnt;
SoldierID /*ubRoom,*/ cnt;
UINT16 usRoom;
SOLDIERTYPE * pSoldier2;
@@ -6181,8 +6181,9 @@ BOOLEAN CanCharacterMoveInStrategic( SOLDIERTYPE *pSoldier, INT8 *pbErrorNumber
{
cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
for ( pSoldier2 = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; cnt++,pSoldier2++)
for ( ; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++cnt)
{
pSoldier2 = cnt;
if ( pSoldier2->bActive )
{
if ( FindObj( pSoldier2, CHALICE ) != ITEM_NOT_FOUND )
+4 -8
View File
@@ -742,16 +742,12 @@ BOOLEAN WillMercRenew( SOLDIERTYPE *pSoldier, BOOLEAN fSayQuote )
void HandleBuddiesReactionToFiringMerc(SOLDIERTYPE *pFiredSoldier, INT8 bMoraleEvent )
{
UINT16 bMercID;
UINT16 bLastTeamID;
SOLDIERTYPE * pSoldier;
bMercID = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
bLastTeamID = gTacticalStatus.Team[ gbPlayerNum ].bLastID;
SoldierID bMercID = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
SoldierID bLastTeamID = gTacticalStatus.Team[ gbPlayerNum ].bLastID;
// loop through all mercs to find buddies
for ( pSoldier = MercPtrs[ bMercID ]; bMercID <= bLastTeamID; bMercID++,pSoldier++)
for ( ; bMercID <= bLastTeamID; ++bMercID)
{
SOLDIERTYPE *pSoldier = bMercID;
//if the merc is active, in Arulco, not POW and is a buddy
if ( WhichBuddy(pSoldier->ubProfile,pFiredSoldier->ubProfile) != (-1) &&
pSoldier->bActive && pSoldier->ubProfile != NO_PROFILE &&
+19 -18
View File
@@ -282,9 +282,9 @@ void UpdateMilitia( MILITIA aMilitia )
SOLDIERTYPE* GetUsedSoldierToIndividualMilitia( UINT32 aMilitiaId )
{
for ( UINT32 cnt = gTacticalStatus.Team[MILITIA_TEAM].bFirstID; cnt <= gTacticalStatus.Team[MILITIA_TEAM].bLastID; ++cnt )
for ( SoldierID cnt = gTacticalStatus.Team[MILITIA_TEAM].bFirstID; cnt <= gTacticalStatus.Team[MILITIA_TEAM].bLastID; ++cnt )
{
SOLDIERTYPE *pSoldier = MercPtrs[cnt];
SOLDIERTYPE *pSoldier = cnt;
if ( pSoldier && pSoldier->bActive && pSoldier->usIndividualMilitiaID == aMilitiaId )
{
return pSoldier;
@@ -300,11 +300,11 @@ void ApplyTacticalLifeRatioToMilitia()
if ( !gGameExternalOptions.fIndividualMilitia )
return;
SOLDIERTYPE* pSoldier;
UINT32 cnt = gTacticalStatus.Team[MILITIA_TEAM].bFirstID;
INT32 lastid = gTacticalStatus.Team[MILITIA_TEAM].bLastID;
for ( pSoldier = MercPtrs[cnt]; cnt < lastid; ++cnt, ++pSoldier )
SoldierID cnt = gTacticalStatus.Team[MILITIA_TEAM].bFirstID;
SoldierID lastid = gTacticalStatus.Team[MILITIA_TEAM].bLastID;
for ( ; cnt < lastid; ++cnt )
{
SOLDIERTYPE *pSoldier = cnt;
MILITIA militia;
if ( pSoldier && pSoldier->bActive && pSoldier->stats.bLifeMax && GetMilitia( pSoldier->usIndividualMilitiaID, &militia ) )
{
@@ -326,11 +326,11 @@ void ApplyMilitiaHealthRatioToTactical()
if ( !gGameExternalOptions.fIndividualMilitia || !gGameExternalOptions.fIndividualMilitia_ManageHealth )
return;
SOLDIERTYPE* pSoldier;
UINT32 cnt = gTacticalStatus.Team[MILITIA_TEAM].bFirstID;
INT32 lastid = gTacticalStatus.Team[MILITIA_TEAM].bLastID;
for ( pSoldier = MercPtrs[cnt]; cnt < lastid; ++cnt, ++pSoldier )
SoldierID cnt = gTacticalStatus.Team[MILITIA_TEAM].bFirstID;
SoldierID lastid = gTacticalStatus.Team[MILITIA_TEAM].bLastID;
for ( ; cnt < lastid; ++cnt )
{
SOLDIERTYPE *pSoldier = cnt;
MILITIA militia;
if ( pSoldier && pSoldier->bActive && pSoldier->stats.bLifeMax && GetMilitia( pSoldier->usIndividualMilitiaID, &militia ) )
{
@@ -696,12 +696,12 @@ UINT32 GetIdOfUnusedIndividualMilitia( UINT8 aSoldierClass, UINT8 aSector )
// fitting data found - now we have to make sure this one isn't already in use
BOOLEAN found = FALSE;
SOLDIERTYPE* pSoldier;
INT32 cnt = gTacticalStatus.Team[MILITIA_TEAM].bFirstID;
INT32 lastid = gTacticalStatus.Team[MILITIA_TEAM].bLastID;
for ( pSoldier = MercPtrs[cnt]; cnt < lastid; ++cnt, ++pSoldier )
SoldierID cnt = gTacticalStatus.Team[MILITIA_TEAM].bFirstID;
SoldierID lastid = gTacticalStatus.Team[MILITIA_TEAM].bLastID;
for ( ; cnt < lastid; ++cnt )
{
SOLDIERTYPE *pSoldier = cnt;
if ( pSoldier && pSoldier->bActive && ( *it ).id == pSoldier->usIndividualMilitiaID && IsLegalMilitiaId( pSoldier->usIndividualMilitiaID ) )
{
found = TRUE;
@@ -853,10 +853,11 @@ FLOAT PromoteIndividualMilitiaInSector( UINT8 aSector, FLOAT aPointsToAdd )
{
BOOLEAN changesnecessary = FALSE;
SOLDIERTYPE* pSoldier = NULL;
int cnt = gTacticalStatus.Team[MILITIA_TEAM].bFirstID;
for ( pSoldier = MercPtrs[cnt]; cnt <= gTacticalStatus.Team[MILITIA_TEAM].bLastID; ++cnt, ++pSoldier )
SoldierID cnt = gTacticalStatus.Team[MILITIA_TEAM].bFirstID;
SoldierID lastid = gTacticalStatus.Team[MILITIA_TEAM].bLastID;
for ( ; cnt < lastid; ++cnt )
{
SOLDIERTYPE *pSoldier = cnt;
MILITIA militia;
if ( pSoldier && GetMilitia( pSoldier->usIndividualMilitiaID, &militia ) )
+8 -8
View File
@@ -1089,9 +1089,9 @@ namespace MiniEventHelpers
INT16 x = 0;
INT16 y = 0;
INT8 z = 0;
for (UINT32 i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++i)
for (SoldierID i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++i)
{
const SOLDIERTYPE* merc = MercPtrs[i];
const SOLDIERTYPE* merc = i;
if (merc && merc->ubProfile == profileId)
{
x = merc->sSectorX;
@@ -1519,9 +1519,9 @@ void MiniEventsLua(UINT32 eventId)
gAllMercs.clear();
// get all mercs eligible to get a mini event
for (UINT32 cnt = gTacticalStatus.Team[OUR_TEAM].bFirstID; cnt <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++cnt)
for (SoldierID cnt = gTacticalStatus.Team[OUR_TEAM].bFirstID; cnt <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++cnt)
{
SOLDIERTYPE* pSoldier = MercPtrs[ cnt ];
SOLDIERTYPE* pSoldier = cnt;
if (pSoldier && pSoldier->bActive
&& pSoldier->stats.bLife > 0
@@ -1542,9 +1542,9 @@ void MiniEventsLua(UINT32 eventId)
// second param: a table containing basic info about all of the player's mercs ({ nickname = profileid })
f.TableOpen();
for (UINT32 i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++i)
for (SoldierID i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++i)
{
const SOLDIERTYPE* merc = MercPtrs[i];
const SOLDIERTYPE* merc = i;
if (merc && merc->bActive && merc->bAssignment != IN_TRANSIT && !(merc->flags.uiStatusFlags & SOLDIER_VEHICLE) && !(AM_A_ROBOT(merc)))
{
std::wstring ws(gMercProfiles[merc->ubProfile].zNickname);
@@ -1561,9 +1561,9 @@ void MiniEventsLua(UINT32 eventId)
LuaFunction f = LuaFunction(gLS, "BeginRandomEvent");
// first param: a table containing basic info about all of the player's mercs ({ nickname = profileid })
f.TableOpen();
for (UINT32 i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++i)
for ( SoldierID i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++i)
{
const SOLDIERTYPE* merc = MercPtrs[i];
const SOLDIERTYPE* merc = i;
if (merc && merc->bActive && merc->bAssignment != IN_TRANSIT && !(merc->flags.uiStatusFlags & SOLDIER_VEHICLE) && !(AM_A_ROBOT(merc)))
{
std::wstring ws(gMercProfiles[merc->ubProfile].zNickname);
+12 -15
View File
@@ -296,7 +296,6 @@ FLOAT gAmbushRadiusModifier = 1.0f;
void InitPreBattleInterface( GROUP *pBattleGroup, BOOLEAN fPersistantPBI )
{
VOBJECT_DESC VObjectDesc;
INT32 i;
UINT8 ubGroupID = 0;
UINT16 ubNumStationaryEnemies = 0;
UINT16 ubNumMobileEnemies = 0;
@@ -600,9 +599,9 @@ void InitPreBattleInterface( GROUP *pBattleGroup, BOOLEAN fPersistantPBI )
//Count the number of players involved or not involved in this battle
guiNumUninvolved = 0;
guiNumInvolved = 0;
for( i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++i )
for( SoldierID i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++i )
{
SOLDIERTYPE *pSoldier = MercPtrs[i];
SOLDIERTYPE *pSoldier = i;
if( pSoldier->bActive && pSoldier->stats.bLife && !(pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE) )
{
if ( PlayerMercInvolvedInThisCombat( pSoldier ) )
@@ -889,9 +888,9 @@ void InitPreBattleInterface( GROUP *pBattleGroup, BOOLEAN fPersistantPBI )
// SANDRO - merc records - ambush experienced
if ( GetEnemyEncounterCode() == ENEMY_AMBUSH_CODE || GetEnemyEncounterCode() == BLOODCAT_AMBUSH_CODE || GetEnemyEncounterCode() == ENEMY_AMBUSH_DEPLOYMENT_CODE || fAmbushPrevented )
{
for( i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++i )
for( SoldierID i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++i )
{
SOLDIERTYPE *pSoldier = MercPtrs[i];
SOLDIERTYPE *pSoldier = i;
if( pSoldier->bActive && pSoldier->stats.bLife && !(pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE) )
{
if ( PlayerMercInvolvedInThisCombat( pSoldier ) && pSoldier->ubProfile != NO_PROFILE )
@@ -1577,9 +1576,9 @@ void RenderPreBattleInterface()
// | NAME | ASSIGN | COND | HP | BP |
line = 0;
y = TOP_Y + TOP_Y_TEXT_BUFFER - bListOffset;
for( i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; i++)
for( SoldierID id = gTacticalStatus.Team[OUR_TEAM].bFirstID; id <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++id)
{
SOLDIERTYPE *pSoldier = MercPtrs[i];
SOLDIERTYPE *pSoldier = id;
if( pSoldier->bActive && pSoldier->stats.bLife && !(pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE) )
{
if( PlayerMercInvolvedInThisCombat( pSoldier ) )
@@ -1623,9 +1622,9 @@ void RenderPreBattleInterface()
{
pGroup = gpGroupList;
y = TOP_Y + TOP_Y_TEXT_BUFFER + ubUninvolvedStartY + UNINVOLVED_RELEVANT_HEIGHT - bListOffset;
for( i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; i++ )
for( SoldierID id = gTacticalStatus.Team[OUR_TEAM].bFirstID; id <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++id )
{
SOLDIERTYPE *pSoldier = MercPtrs[i];
SOLDIERTYPE *pSoldier = id;
if( pSoldier->bActive && pSoldier->stats.bLife && !(pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE) )
{
if( !PlayerMercInvolvedInThisCombat(pSoldier) )
@@ -1816,9 +1815,9 @@ void RetreatMercsCallback( GUI_BUTTON *btn, INT32 reason )
{
/////////////////////////////////////////////////////////////////////////////////
// SANDRO - merc records - times retreated counter
for( UINT16 i = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; i <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; i++ )
for( SoldierID i = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; i <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++i )
{
SOLDIERTYPE *pSoldier = MercPtrs[i];
SOLDIERTYPE *pSoldier = i;
if ( pSoldier->bActive && pSoldier->stats.bLife >= OKLIFE )
{
if ( PlayerMercInvolvedInThisCombat( pSoldier ) && pSoldier->ubProfile != NO_PROFILE )
@@ -2558,12 +2557,10 @@ BOOLEAN CurrentBattleSectorIs( INT16 sSectorX, INT16 sSectorY, INT16 sSectorZ )
void CheckForRobotAndIfItsControlled( void )
{
INT32 i;
// search for the robot on player's team
for( i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; i++ )
for( SoldierID i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++i )
{
SOLDIERTYPE *pSoldier = MercPtrs[i];
SOLDIERTYPE *pSoldier = i;
if( pSoldier->bActive && pSoldier->stats.bLife && AM_A_ROBOT( pSoldier ))
{
// check whether it has a valid controller with it. This sets its ubRobotRemoteHolderID field.
+30 -30
View File
@@ -103,13 +103,13 @@ void ValidateEnemiesHaveWeapons()
{
#ifdef JA2BETAVERSION
SGPRect CenteringRect= {0 + xResOffset, 0, SCREEN_WIDTH - xResOffset, SCREEN_HEIGHT };
INT32 i, iErrorDialog;
INT32 iErrorDialog;
SOLDIERTYPE *pSoldier;
INT32 iNumInvalid = 0;
for( i = gTacticalStatus.Team[ ENEMY_TEAM ].bFirstID; i <= gTacticalStatus.Team[ ENEMY_TEAM ].bLastID; ++i )
for( SoldierID i = gTacticalStatus.Team[ ENEMY_TEAM ].bFirstID; i <= gTacticalStatus.Team[ ENEMY_TEAM ].bLastID; ++i )
{
pSoldier = MercPtrs[ i ];
pSoldier = i;
if( !pSoldier->bActive || !pSoldier->bInSector )
{
continue;
@@ -287,11 +287,12 @@ UINT16 NumPlayerTeamMembersInSector( INT16 sSectorX, INT16 sSectorY, INT8 sSecto
{
UINT16 teammemberspresent = 0;
SOLDIERTYPE* pTeamSoldier = NULL;
UINT16 bMercID = gTacticalStatus.Team[gbPlayerNum].bFirstID;
UINT16 bLastTeamID = gTacticalStatus.Team[gbPlayerNum].bLastID;
for ( pTeamSoldier = MercPtrs[bMercID]; bMercID <= bLastTeamID; ++bMercID, pTeamSoldier++ )
SOLDIERTYPE *pTeamSoldier = NULL;
SoldierID bMercID = gTacticalStatus.Team[gbPlayerNum].bFirstID;
SoldierID bLastTeamID = gTacticalStatus.Team[gbPlayerNum].bLastID;
for ( ; bMercID <= bLastTeamID; ++bMercID )
{
pTeamSoldier = bMercID;
// we test several conditions before we allow adding an opinion
// other merc must be active, have a profile, be someone else and not be in transit or dead
if ( pTeamSoldier->bActive && !pTeamSoldier->flags.fBetweenSectors && pTeamSoldier->stats.bLife > 0 && !(pTeamSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE) &&
@@ -505,7 +506,6 @@ void GetNumberOfEnemiesInSector( INT16 sSectorX, INT16 sSectorY, UINT16 *pubNumA
void EndTacticalBattleForEnemy()
{
GROUP *pGroup;
INT32 i;
//Clear enemies in battle for all stationary groups in the sector.
if( gbWorldSectorZ > 0 )
@@ -558,15 +558,15 @@ void EndTacticalBattleForEnemy()
//Check to see if any of our mercs have abandoned the militia during a battle. This is cause for a rather
//severe loyalty blow.
for( i = gTacticalStatus.Team[ MILITIA_TEAM ].bFirstID; i <= gTacticalStatus.Team[ MILITIA_TEAM ].bLastID; ++i )
for( SoldierID i = gTacticalStatus.Team[ MILITIA_TEAM ].bFirstID; i <= gTacticalStatus.Team[ MILITIA_TEAM ].bLastID; ++i )
{
SOLDIERTYPE *pSoldier = MercPtrs[i];
SOLDIERTYPE *pSoldier = i;
if( pSoldier->bActive && pSoldier->bInSector && pSoldier->stats.bLife >= OKLIFE )
{ //found one live militia, so look for any enemies/creatures.
// NOTE: this is relying on ENEMY_TEAM being immediately followed by CREATURE_TEAM
for(UINT16 j = gTacticalStatus.Team[ ENEMY_TEAM ].bFirstID; j <= gTacticalStatus.Team[ CREATURE_TEAM ].bLastID; ++i )
for( SoldierID j = gTacticalStatus.Team[ ENEMY_TEAM ].bFirstID; j <= gTacticalStatus.Team[ CREATURE_TEAM ].bLastID; ++j )
{
SOLDIERTYPE *pEnemy = MercPtrs[j];
SOLDIERTYPE *pEnemy = j;
if( pEnemy->bActive && pEnemy->bInSector && pEnemy->stats.bLife >= OKLIFE )
{ //confirmed at least one enemy here, so do the loyalty penalty.
HandleGlobalLoyaltyEvent( GLOBAL_LOYALTY_ABANDON_MILITIA, gWorldSectorX, gWorldSectorY, 0 );
@@ -583,9 +583,9 @@ UINT16 NumFreeSlots( UINT8 ubTeam )
UINT16 ubNumFreeSlots = 0;
//Count the number of free enemy slots. It is possible to have multiple groups exceed the maximum.
for ( INT32 i = gTacticalStatus.Team[ubTeam].bFirstID; i <= gTacticalStatus.Team[ubTeam].bLastID; ++i )
for ( SoldierID i = gTacticalStatus.Team[ubTeam].bFirstID; i <= gTacticalStatus.Team[ubTeam].bLastID; ++i )
{
if ( !Menptr[i].bActive )
if ( !i->bActive )
++ubNumFreeSlots;
}
@@ -2106,14 +2106,14 @@ void AddPossiblePendingEnemiesToBattle()
void NotifyPlayersOfNewEnemies()
{
INT32 iSoldiers, iChosenSoldier, i;
INT32 iSoldiers, iChosenSoldier;
SOLDIERTYPE *pSoldier;
BOOLEAN fIgnoreBreath = FALSE;
iSoldiers = 0;
for( i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; i++ )
for( SoldierID i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++i )
{ //find a merc that is aware.
pSoldier = MercPtrs[ i ];
pSoldier = i;
if( pSoldier->bInSector && pSoldier->bActive && pSoldier->stats.bLife >= OKLIFE && pSoldier->bBreath >= OKBREATH )
{
iSoldiers++;
@@ -2123,9 +2123,9 @@ void NotifyPlayersOfNewEnemies()
{ // look for an out of breath merc.
fIgnoreBreath = TRUE;
for( i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; i++ )
for( SoldierID i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++i )
{ //find a merc that is aware.
pSoldier = MercPtrs[ i ];
pSoldier = i;
if( pSoldier->bInSector && pSoldier->bActive && pSoldier->stats.bLife >= OKLIFE )
{
iSoldiers++;
@@ -2135,9 +2135,9 @@ void NotifyPlayersOfNewEnemies()
if( iSoldiers )
{
iChosenSoldier = Random( iSoldiers );
for( i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; i++ )
for( SoldierID i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++i )
{ //find a merc that is aware.
pSoldier = MercPtrs[ i ];
pSoldier = i;
if( pSoldier->bInSector && pSoldier->bActive && pSoldier->stats.bLife >= OKLIFE &&
( ( pSoldier->bBreath >= OKBREATH ) || fIgnoreBreath ) )
{
@@ -2969,13 +2969,13 @@ BOOLEAN PlayerSectorDefended( UINT8 ubSectorID )
BOOLEAN OnlyHostileCivsInSector()
{
SOLDIERTYPE *pSoldier;
INT32 i;
SoldierID i;
BOOLEAN fHostileCivs = FALSE;
//Look for any hostile civs.
for( i = gTacticalStatus.Team[ CIV_TEAM ].bFirstID; i <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; i++ )
for( i = gTacticalStatus.Team[ CIV_TEAM ].bFirstID; i <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; ++i )
{
pSoldier = MercPtrs[ i ];
pSoldier = i;
if( pSoldier->bActive && pSoldier->bInSector && pSoldier->stats.bLife )
{
if( !pSoldier->aiData.bNeutral )
@@ -2990,9 +2990,9 @@ BOOLEAN OnlyHostileCivsInSector()
return FALSE;
}
//Look for anybody else hostile. If found, return FALSE immediately.
for( i = gTacticalStatus.Team[ ENEMY_TEAM ].bFirstID; i <= gTacticalStatus.Team[ ENEMY_TEAM ].bLastID; i++ )
for( i = gTacticalStatus.Team[ ENEMY_TEAM ].bFirstID; i <= gTacticalStatus.Team[ ENEMY_TEAM ].bLastID; ++i )
{
pSoldier = MercPtrs[ i ];
pSoldier = i;
if( pSoldier->bActive && pSoldier->bInSector && pSoldier->stats.bLife )
{
if( !pSoldier->aiData.bNeutral )
@@ -3001,9 +3001,9 @@ BOOLEAN OnlyHostileCivsInSector()
}
}
}
for( i = gTacticalStatus.Team[ CREATURE_TEAM ].bFirstID; i <= gTacticalStatus.Team[ CREATURE_TEAM ].bLastID; i++ )
for( i = gTacticalStatus.Team[ CREATURE_TEAM ].bFirstID; i <= gTacticalStatus.Team[ CREATURE_TEAM ].bLastID; ++i )
{
pSoldier = MercPtrs[ i ];
pSoldier = i;
if( pSoldier->bActive && pSoldier->bInSector && pSoldier->stats.bLife )
{
if( !pSoldier->aiData.bNeutral )
@@ -3012,9 +3012,9 @@ BOOLEAN OnlyHostileCivsInSector()
}
}
}
for( i = gTacticalStatus.Team[ MILITIA_TEAM ].bFirstID; i <= gTacticalStatus.Team[ MILITIA_TEAM ].bLastID; i++ )
for( i = gTacticalStatus.Team[ MILITIA_TEAM ].bFirstID; i <= gTacticalStatus.Team[ MILITIA_TEAM ].bLastID; ++i )
{
pSoldier = MercPtrs[ i ];
pSoldier = i;
if( pSoldier->bActive && pSoldier->bInSector && pSoldier->stats.bLife )
{
if( !pSoldier->aiData.bNeutral )
+7 -8
View File
@@ -394,7 +394,7 @@ BOOLEAN PCInSameRoom( UINT8 ubProfileID )
//DBrot: More Rooms
//UINT8 ubRoom;
UINT16 usRoom;
UINT16 bLoop;
SoldierID bLoop;
SOLDIERTYPE * pSoldier;
pNPC = FindSoldierByProfileID( ubProfileID, FALSE );
@@ -404,9 +404,9 @@ BOOLEAN PCInSameRoom( UINT8 ubProfileID )
}
usRoom = gusWorldRoomInfo[ pNPC->sGridNo ];
for ( bLoop = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; bLoop <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; bLoop++ )
for ( bLoop = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; bLoop <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++bLoop )
{
pSoldier = MercPtrs[ bLoop ];
pSoldier = bLoop;
if ( pSoldier && pSoldier->bActive && pSoldier->bInSector )
{
if ( gusWorldRoomInfo[ pSoldier->sGridNo ] == usRoom )
@@ -536,12 +536,11 @@ BOOLEAN FemalePresent( UINT8 ubProfileID )
BOOLEAN CheckPlayerHasHead( void )
{
UINT16 bLoop;
SOLDIERTYPE * pSoldier;
for ( bLoop = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; bLoop <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; bLoop++ )
for ( SoldierID bLoop = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; bLoop <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++bLoop )
{
pSoldier = MercPtrs[ bLoop ];
pSoldier = bLoop;
if ( pSoldier->bActive && pSoldier->stats.bLife > 0 )
{
@@ -1714,9 +1713,9 @@ void GiveQuestRewardPoint( INT16 sQuestSectorX, INT16 sQuestsSectorY, INT8 bExpR
{
ScreenMsg( FONT_MCOLOR_LTBLUE, MSG_TESTVERSION, L"QUEST COMPLETED - Adding to merc records and awarding experiences (%d).", (bExpReward * gGameExternalOptions.usAwardSpecialExpForQuests) );
for ( UINT16 i = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; i <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; i++ )
for ( SoldierID i = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; i <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++i )
{
SOLDIERTYPE *pSoldier = MercPtrs[i];
SOLDIERTYPE *pSoldier = i;
if( pSoldier->bActive && pSoldier->stats.bLife >= CONSCIOUSNESS && !(pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE) && pSoldier->ubProfile != NO_PROFILE &&
pSoldier->sSectorX == sQuestSectorX && pSoldier->sSectorY == sQuestsSectorY && !pSoldier->flags.fBetweenSectors && pSoldier->bTeam == gbPlayerNum &&
pSoldier->bAssignment != IN_TRANSIT && pSoldier->bAssignment != ASSIGNMENT_DEAD && gMercProfiles[ pSoldier->ubProfile ].ubBodyType != 21 ) // != ROBOTNOWEAPON )
+14 -14
View File
@@ -2178,9 +2178,9 @@ BOOLEAN SetupMissionAgentBox(UINT16 x, UINT16 y, INT8 index)
// temp/fixme
std::vector<SOLDIERTYPE*> mercs;
for (UINT16 i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++i)
for ( SoldierID i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++i)
{
SOLDIERTYPE* pSoldier = MercPtrs[i];
SOLDIERTYPE* pSoldier = i;
if (pSoldier && pSoldier->bActive
&& !(pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE)
@@ -2823,9 +2823,9 @@ void PrepareMission(INT8 index)
// confirmation popup
std::vector<SOLDIERTYPE*> mercs;
for (UINT16 i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++i)
for ( SoldierID i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++i)
{
SOLDIERTYPE* pSoldier = MercPtrs[i];
SOLDIERTYPE* pSoldier = i;
if (pSoldier && pSoldier->bActive
&& !(pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE)
@@ -2988,9 +2988,9 @@ void PrepareMission(INT8 index)
if (!evt.sentGenericRebelAgent)
{
for (UINT16 i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++i)
for ( SoldierID i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++i)
{
SOLDIERTYPE* pSoldier = MercPtrs[i];
SOLDIERTYPE* pSoldier = i;
if (pSoldier->ubProfile == evt.mercProfileId)
{
TakeSoldierOutOfVehicle(pSoldier);
@@ -4908,9 +4908,9 @@ void HandleStrategicEvent(const UINT32 eventParam)
// make sure the merc's still on our team
BOOLEAN foundMerc = FALSE;
for (UINT16 i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++i)
for ( SoldierID i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++i)
{
const SOLDIERTYPE* pSoldier = MercPtrs[i];
const SOLDIERTYPE* pSoldier = i;
if (pSoldier->ubProfile == evt1.mercProfileId && pSoldier->bActive)
{
@@ -4979,9 +4979,9 @@ void HandleStrategicEvent(const UINT32 eventParam)
if (!evt1.sentGenericRebelAgent)
{
for (UINT16 i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++i)
for ( SoldierID i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++i)
{
SOLDIERTYPE* pSoldier = MercPtrs[i];
SOLDIERTYPE* pSoldier = i;
if (pSoldier->ubProfile == evt1.mercProfileId)
{
if (mission == RCAM_FORGE_TRANSPORT_ORDERS)
@@ -5006,9 +5006,9 @@ void HandleStrategicEvent(const UINT32 eventParam)
{
if (!evt1.sentGenericRebelAgent && foundMerc)
{
for (UINT16 i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++i)
for ( SoldierID i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++i)
{
SOLDIERTYPE* pSoldier = MercPtrs[i];
SOLDIERTYPE* pSoldier = i;
if (pSoldier->ubProfile == evt1.mercProfileId)
{
// mission failed! we tried, give some pity exp
@@ -5028,9 +5028,9 @@ void HandleStrategicEvent(const UINT32 eventParam)
if (!evt1.sentGenericRebelAgent && foundMerc)
{
for (UINT16 i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++i)
for ( SoldierID i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++i)
{
SOLDIERTYPE* pSoldier = MercPtrs[i];
SOLDIERTYPE* pSoldier = i;
if (pSoldier->ubProfile == evt1.mercProfileId)
{
// merc ready for reassignment
+5 -7
View File
@@ -912,7 +912,6 @@ void RemovePlayersFromAllMismatchGroups( SOLDIERTYPE *pSoldier )
#ifdef JA2BETAVERSION
void ValidatePlayersAreInOneGroupOnly()
{
INT32 i;
INT32 iGroups;
INT32 iMismatches;
INT32 iNumErrors;
@@ -923,10 +922,10 @@ void ValidatePlayersAreInOneGroupOnly()
UINT8 ubGroupID;
//Go through each merc slot in the player team
iNumErrors = 0;
for( i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; i++ )
for( SoldierID i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++i )
{ //check to see if the merc has a group ID
pSoldier = MercPtrs[ i ];
pSoldier = i;
if( !pSoldier || !pSoldier->bActive || !pSoldier->stats.bLife || !pSoldier->ubGroupID )
{ //non-existant, dead, or in no group (don't care, skip to next merc)
@@ -4107,13 +4106,12 @@ BOOLEAN LoadStrategicAI( HWFILE hFile )
}
else
{ //We are in the basement sector, relocate queen to proper position.
INT32 i;
for( i = gTacticalStatus.Team[ CIV_TEAM ].bFirstID; i <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; i++ )
for( SoldierID i = gTacticalStatus.Team[ CIV_TEAM ].bFirstID; i <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; ++i )
{
if( MercPtrs[ i ]->ubProfile == QUEEN )
if( i->ubProfile == QUEEN )
{ //Found queen, relocate her to 16866
BumpAnyExistingMerc( 16866 );
TeleportSoldier( MercPtrs[ i ], 16866, TRUE );
TeleportSoldier( i, 16866, TRUE );
break;
}
}
+17 -15
View File
@@ -184,8 +184,8 @@ void StrategicHandlePlayerTeamMercDeath( SOLDIERTYPE *pSoldier )
// MercDailyUpdate() gets called every day at midnight. If something is to happen to a merc that day, add an event for it.
void MercDailyUpdate()
{
INT32 cnt;
UINT16 bLastTeamID;
SoldierID id;
SoldierID bLastTeamID;
SOLDIERTYPE *pSoldier;
//SOLDIERTYPE *pQuitList[ 21 ];
MERCPROFILESTRUCT *pProfile;
@@ -217,12 +217,13 @@ void MercDailyUpdate()
AddSameDayStrategicEvent( EVENT_BEGIN_CONTRACT_RENEWAL_SEQUENCE, MERC_ARRIVE_TIME_SLOT_2, 0 );
AddSameDayStrategicEvent( EVENT_BEGIN_CONTRACT_RENEWAL_SEQUENCE, MERC_ARRIVE_TIME_SLOT_3, 0 );
cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
id = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
bLastTeamID = gTacticalStatus.Team[ gbPlayerNum ].bLastID;
//loop though all the mercs
for ( pSoldier = MercPtrs[ cnt ]; cnt <= bLastTeamID; ++cnt,++pSoldier)
for ( ; id <= bLastTeamID; ++id)
{
pSoldier = id;
//if the merc is active
if ( ( pSoldier->bActive )&&( pSoldier->bAssignment != ASSIGNMENT_POW ) && ( pSoldier->bAssignment != IN_TRANSIT ) )
{
@@ -374,11 +375,10 @@ void MercDailyUpdate()
}
}
//r eset the counter
cnt = 0;
for ( pSoldier = MercPtrs[ cnt ]; cnt <= bLastTeamID; cnt++,pSoldier++)
//reset the counter
for ( id = 0; id <= bLastTeamID; ++id )
{
pSoldier = id;
//if the merc is active
if ( ( pSoldier->bActive )&&( pSoldier->bAssignment != ASSIGNMENT_POW ) && ( pSoldier->bAssignment != IN_TRANSIT ) )
{
@@ -402,7 +402,7 @@ void MercDailyUpdate()
// WANNE: Only send mails from the original 1.13 merc, and not from the wildfire merc,
// otherwise we get wrong mails cause of hardcoded Email.edt structure!!!!!
UINT16 numOriginalProfiles = 255;
for( cnt = 0; cnt < numOriginalProfiles; ++cnt)
for( UINT16 cnt = 0; cnt < numOriginalProfiles; ++cnt)
{
pProfile = &(gMercProfiles[ cnt ]);
@@ -900,7 +900,7 @@ void MercComplainAboutEquipment( UINT8 ubProfile )
void UpdateBuddyAndHatedCounters( void )
{
UINT16 bMercID, bOtherID, bLastTeamID;
SoldierID bMercID, bOtherID, bLastTeamID;
INT32 iLoop;
UINT8 ubOtherProfileID;
SOLDIERTYPE *pSoldier;
@@ -913,8 +913,9 @@ void UpdateBuddyAndHatedCounters( void )
bLastTeamID = gTacticalStatus.Team[ gbPlayerNum ].bLastID;
//loop though all the mercs
for ( pSoldier = MercPtrs[ bMercID ]; bMercID <= bLastTeamID; bMercID++,pSoldier++)
for ( ; bMercID <= bLastTeamID; ++bMercID )
{
pSoldier = bMercID;
fSameGroupOnly = FALSE;
//if the merc is active and on a combat assignment
@@ -931,9 +932,9 @@ void UpdateBuddyAndHatedCounters( void )
fUpdatedTimeTillNextHatedComplaint = FALSE;
bOtherID = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
for ( pOtherSoldier = MercPtrs[ bOtherID ]; bOtherID <= bLastTeamID; bOtherID++, pOtherSoldier++)
for ( ; bOtherID <= bLastTeamID; ++bOtherID )
{
pOtherSoldier = bOtherID;
// is this guy in the same sector and on active duty (or in the same moving group)
if (bOtherID != bMercID && pOtherSoldier->bActive && pOtherSoldier->bAssignment < ON_DUTY )
@@ -1248,15 +1249,16 @@ void UpdateBuddyAndHatedCounters( void )
void HourlyCamouflageUpdate( void )
{
UINT16 bMercID, bLastTeamID;
SoldierID bMercID, bLastTeamID;
SOLDIERTYPE * pSoldier;
BOOLEAN camoWoreOff = FALSE;
bMercID = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
bLastTeamID = gTacticalStatus.Team[ gbPlayerNum ].bLastID;
// loop through all mercs
for ( pSoldier = MercPtrs[ bMercID ]; bMercID <= bLastTeamID; bMercID++,pSoldier++)
for ( ; bMercID <= bLastTeamID; ++bMercID )
{
pSoldier = bMercID;
if ( pSoldier->bActive )
{
// SANDRO - new Ranger trait reduces camo degrading, which replaces camouflage trait
+6 -8
View File
@@ -5456,9 +5456,9 @@ BOOLEAN TestForBloodcatAmbush( GROUP *pGroup )
// merc recoeds - get a point to scouts
if ( fBloodCatAmbushPrevented )
{
for( UINT16 i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; i++ )
for( SoldierID i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++i )
{
SOLDIERTYPE *pSoldier = MercPtrs[i];
SOLDIERTYPE *pSoldier = i;
if( pSoldier->bActive && pSoldier->stats.bLife && !(pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE) )
{
if ( pSoldier->sSectorX == pGroup->ubSectorX && pSoldier->sSectorY == pGroup->ubSectorY && pSoldier->bAssignment != ASSIGNMENT_POW && pSoldier->bAssignment != ASSIGNMENT_MINIEVENT && pSoldier->bAssignment != ASSIGNMENT_REBELCOMMAND && pSoldier->stats.bLife >= OKLIFE )
@@ -5939,12 +5939,10 @@ BOOLEAN ValidateGroups( GROUP *pGroup )
BOOLEAN ScoutIsPresentInSquad( INT16 ubSectorNumX, INT16 ubSectorNumY )
{
BOOLEAN fScoutPresent = FALSE;
INT32 i;
// sevenfm: scout should not be sleeping, in vehicle or on assignment
for( i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; i++ )
for( SoldierID i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++i )
{
SOLDIERTYPE *pSoldier = MercPtrs[i];
SOLDIERTYPE *pSoldier = i;
if( pSoldier->bActive &&
pSoldier->stats.bLife >= OKLIFE &&
pSoldier->sSectorX == ubSectorNumX &&
@@ -5982,9 +5980,9 @@ BOOLEAN ConcealedMercInSector( INT16 ubSectorNumX, INT16 ubSectorNumY, BOOLEAN a
if ( !gGameOptions.fNewTraitSystem )
return FALSE;
for ( int i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++i )
for ( SoldierID i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++i )
{
SOLDIERTYPE *pSoldier = MercPtrs[i];
SOLDIERTYPE *pSoldier = i;
if ( pSoldier->bActive && pSoldier->stats.bLife >= OKLIFE && SPY_LOCATION( pSoldier->bAssignment ) )
{
if ( pSoldier->sSectorX == ubSectorNumX && pSoldier->sSectorY == ubSectorNumY && pSoldier->bSectorZ == 10 )
+7 -10
View File
@@ -679,7 +679,6 @@ void HandleMurderOfCivilian( SOLDIERTYPE *pSoldier, BOOLEAN fIntentional )
INT8 bTownId = 0;
INT32 iLoyaltyChange = 0;
INT8 bSeenState = 0;
INT32 iCounter = 0;
SOLDIERTYPE *pCivSoldier = NULL;
UINT32 uiChanceFalseAccusal = 0;
INT8 bKillerTeam = 0;
@@ -789,10 +788,10 @@ void HandleMurderOfCivilian( SOLDIERTYPE *pSoldier, BOOLEAN fIntentional )
// check if LOS between any civ, killer and killed
// if so, then do not adjust
for( iCounter = gTacticalStatus.Team[ CIV_TEAM ].bFirstID; iCounter <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; iCounter++ )
for( SoldierID iCounter = gTacticalStatus.Team[ CIV_TEAM ].bFirstID; iCounter <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; ++iCounter )
{
// set current civ soldier
pCivSoldier = MercPtrs[ iCounter ];
pCivSoldier = iCounter;
if ( pCivSoldier == pSoldier )
{
@@ -2129,13 +2128,12 @@ BOOLEAN DidFirstBattleTakePlaceInThisTown( INT8 bTownId )
UINT32 PlayerStrength( void )
{
UINT16 ubLoop;
SOLDIERTYPE * pSoldier;
SOLDIERTYPE *pSoldier;
UINT32 uiStrength, uiTotal = 0;
for ( ubLoop = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; ubLoop <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ubLoop++ )
for ( SoldierID ubLoop = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; ubLoop <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++ubLoop )
{
pSoldier = MercPtrs[ ubLoop ];
pSoldier = ubLoop;
if ( pSoldier->bActive )
{
if ( pSoldier->bInSector || (pSoldier->flags.fBetweenSectors && SECTORX( pSoldier->ubPrevSectorID ) == gWorldSectorX && SECTORY( pSoldier->ubPrevSectorID ) == gWorldSectorY && (pSoldier->bSectorZ == gbWorldSectorZ)) )
@@ -2151,13 +2149,12 @@ UINT32 PlayerStrength( void )
UINT32 EnemyStrength( void )
{
UINT16 ubLoop;
SOLDIERTYPE * pSoldier;
UINT32 uiStrength, uiTotal = 0;
for ( ubLoop = gTacticalStatus.Team[ ENEMY_TEAM ].bFirstID; ubLoop <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; ubLoop++ )
for ( SoldierID ubLoop = gTacticalStatus.Team[ ENEMY_TEAM ].bFirstID; ubLoop <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; ++ubLoop )
{
pSoldier = MercPtrs[ ubLoop ];
pSoldier = ubLoop;
if ( pSoldier->bActive && pSoldier->bInSector && !pSoldier->aiData.bNeutral )
{
// count this person's strength (condition), calculated as life reduced up to half according to maxbreath
+8 -8
View File
@@ -222,9 +222,9 @@ void FillMapColoursForTransportGroups(INT32(&colorMap)[MAXIMUM_VALID_Y_COORDINAT
// build map of detection sectors + ranges
std::map<std::pair<INT16,INT16>, INT8> detectionMap;
std::map<UINT8, MonitoredSectorState> monitoredTowns;
for( INT16 i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; i++ )
for( SoldierID i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++i )
{
SOLDIERTYPE *pSoldier = MercPtrs[i];
SOLDIERTYPE *pSoldier = i;
if( pSoldier->bActive &&
pSoldier->stats.bLife >= OKLIFE &&
@@ -448,8 +448,8 @@ void UpdateTransportGroupInventory()
if (gGameExternalOptions.fStrategicTransportGroupsEnabled == FALSE)
return;
const int firstSlot = gTacticalStatus.Team[ ENEMY_TEAM ].bFirstID;
const int lastSlot = gTacticalStatus.Team[ ENEMY_TEAM ].bLastID;
const SoldierID firstSlot = gTacticalStatus.Team[ ENEMY_TEAM ].bFirstID;
const SoldierID lastSlot = gTacticalStatus.Team[ ENEMY_TEAM ].bLastID;
const UINT8 progress = CurrentPlayerProgressPercentage();
enum ItemTypes
@@ -481,9 +481,9 @@ void UpdateTransportGroupInventory()
{
// let's be nice to the player and only drop ammo for guns their mercs have in inventory
std::set<UINT8> playerCalibres;
for (INT16 i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; i++)
for ( SoldierID i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++i)
{
SOLDIERTYPE *pSoldier = MercPtrs[i];
SOLDIERTYPE *pSoldier = i;
if (pSoldier->bActive && !(pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE))
{
for (int j = 0 ; j < pSoldier->inv.size(); ++j)
@@ -602,9 +602,9 @@ void UpdateTransportGroupInventory()
// cache the initial jeep count of every group we find
std::map<UINT8, int> cachedGroupJeepCount;
for (int slot = firstSlot; (slot <= lastSlot); ++slot)
for ( SoldierID slot = firstSlot; (slot <= lastSlot); ++slot)
{
SOLDIERTYPE* pSoldier = &Menptr[slot];
SOLDIERTYPE* pSoldier = slot;
const std::map<UINT8, std::map<int, UINT16>>::iterator groupIter = transportGroupIdToSoldierMap.find(pSoldier->ubGroupID);
if (groupIter != transportGroupIdToSoldierMap.end())
+12 -17
View File
@@ -12864,12 +12864,12 @@ void ReBuildCharactersList( void )
gCharactersList[ sCount ].usSolID = NOBODY;
}
// fills array with pressence of player controlled characters
for ( INT32 cnt=gTacticalStatus.Team[ OUR_TEAM ].bFirstID; cnt <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; cnt++)
// fills array with presence of player controlled characters
for ( SoldierID soldier = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; soldier <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++soldier )
{
if(Menptr[ cnt ].bActive == 1)
if( soldier->bActive )
{
AddCharacter( &Menptr[ cnt ] );
AddCharacter( soldier );
}
}
@@ -16029,19 +16029,15 @@ void MakeMapModesSuitableForDestPlotting( INT8 bCharNumber )
BOOLEAN AnyMovableCharsInOrBetweenThisSector( INT16 sSectorX, INT16 sSectorY, INT8 bSectorZ )
{
INT32 iFirstId = 0, iLastId = 0;
INT32 iCounter = 0;
SOLDIERTYPE *pSoldier = NULL;
// to speed it up a little?
iFirstId = gTacticalStatus.Team[ OUR_TEAM ].bFirstID;
iLastId = gTacticalStatus.Team[ OUR_TEAM ].bLastID;
SoldierID id = gTacticalStatus.Team[ OUR_TEAM ].bFirstID;
SoldierID iLastId = gTacticalStatus.Team[ OUR_TEAM ].bLastID;
for( iCounter = iFirstId; iCounter <= iLastId; iCounter++ )
for( ; id <= iLastId; ++id)
{
// get the soldier
pSoldier = &Menptr[ iCounter ];
pSoldier = id;
// is the soldier active
if( pSoldier->bActive == FALSE )
@@ -17629,12 +17625,11 @@ BOOLEAN CanGiveStrategicMilitiaMoveOrder( INT16 sMapX, INT16 sMapY )
// 3. they are a radio operator in an adjacent sector
// 4. they are a radio operator in a sector adjacent to the militia's town
// 5. they are a radio operator in a town adjacent to the militia's sector
SOLDIERTYPE *pSoldier = NULL;
UINT32 uiCnt = 0;
UINT32 firstid = gTacticalStatus.Team[OUR_TEAM].bFirstID;
UINT32 lastid = gTacticalStatus.Team[OUR_TEAM].bLastID;
for ( uiCnt = firstid, pSoldier = MercPtrs[uiCnt]; uiCnt <= lastid; ++uiCnt, ++pSoldier )
SoldierID id = gTacticalStatus.Team[OUR_TEAM].bFirstID;
SoldierID lastid = gTacticalStatus.Team[OUR_TEAM].bLastID;
for ( ; id <= lastid; ++id)
{
SOLDIERTYPE *pSoldier = id;
if ( pSoldier && pSoldier->bActive && pSoldier->stats.bLife >= OKLIFE )
{
BOOLEAN fRadioOperator = pSoldier->CanUseRadio( FALSE );
+3 -3
View File
@@ -101,16 +101,16 @@ BOOLEAN HandleStrategicDeath( SOLDIERTYPE *pSoldier )
void HandleSoldierDeadComments( SOLDIERTYPE *pSoldier )
{
INT32 cnt = 0;
SOLDIERTYPE *pTeamSoldier;
INT8 bBuddyIndex;
// IF IT'S THE SELECTED GUY, MAKE ANOTHER SELECTED!
cnt = gTacticalStatus.Team[ pSoldier->bTeam ].bFirstID;
SoldierID cnt = gTacticalStatus.Team[ pSoldier->bTeam ].bFirstID;
// see if this was the friend of a living merc
for ( pTeamSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ pSoldier->bTeam ].bLastID; cnt++,pTeamSoldier++)
for ( ; cnt <= gTacticalStatus.Team[ pSoldier->bTeam ].bLastID; ++cnt )
{
pTeamSoldier = cnt;
if ( pTeamSoldier->stats.bLife >= OKLIFE && pTeamSoldier->bActive )
{
bBuddyIndex = WhichBuddy( pTeamSoldier->ubProfile, pSoldier->ubProfile );
+34 -37
View File
@@ -2429,15 +2429,15 @@ BOOLEAN MapExists( UINT8 * szFilename )
void RemoveMercsInSector( )
{
INT32 cnt;
SOLDIERTYPE *pSoldier;
// IF IT'S THE SELECTED GUY, MAKE ANOTHER SELECTED!
cnt = gTacticalStatus.Team[gbPlayerNum].bFirstID;
SoldierID cnt = gTacticalStatus.Team[gbPlayerNum].bFirstID;
// ATE: only for OUR guys.. the rest is taken care of in TrashWorld() when a new sector is added...
for ( pSoldier = MercPtrs[cnt]; cnt <= gTacticalStatus.Team[gbPlayerNum].bLastID; cnt++, pSoldier++ )
for ( ; cnt <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++cnt )
{
pSoldier = cnt;
if ( pSoldier->bActive )
{
pSoldier->RemoveSoldierFromGridNo( );
@@ -2698,7 +2698,6 @@ void HandleQuestCodeOnSectorEntry( INT16 sNewSectorX, INT16 sNewSectorY, INT8 bN
//UINT8 ubRandomMiner[RANDOM_HEAD_MINERS] = { 106, 156, 157, 158 };
//UINT8 ubMiner, ubMinersPlaced, ubMine;
UINT8 ubThisMine;
UINT16 cnt;
SOLDIERTYPE * pSoldier;
// are we in a mine sector, on the surface?
@@ -2783,13 +2782,13 @@ void HandleQuestCodeOnSectorEntry( INT16 sNewSectorX, INT16 sNewSectorY, INT8 bN
// Check to see if any player merc has the Chalice; if so,
// note it as stolen
cnt = gTacticalStatus.Team[gbPlayerNum].bFirstID;
SoldierID cnt = gTacticalStatus.Team[gbPlayerNum].bFirstID;
for ( pSoldier = MercPtrs[cnt]; cnt <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++cnt, pSoldier++ )
for ( ; cnt <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++cnt )
{
if ( pSoldier->bActive )
if ( cnt->bActive )
{
if ( FindObj( pSoldier, CHALICE ) != ITEM_NOT_FOUND )
if ( FindObj( cnt, CHALICE ) != ITEM_NOT_FOUND )
{
SetFactTrue( FACT_CHALICE_STOLEN );
}
@@ -2951,7 +2950,6 @@ extern void SetLastTimePlayerWasInSector( );
// @calls SetLastTimePlayerWasInSector
BOOLEAN EnterSector( INT16 sSectorX, INT16 sSectorY, INT8 bSectorZ )
{
INT32 i;
UNDERGROUND_SECTORINFO *pNode = NULL;
CHAR8 bFilename[50];
@@ -2968,9 +2966,9 @@ BOOLEAN EnterSector( INT16 sSectorX, INT16 sSectorY, INT8 bSectorZ )
//@@@Evaluate
if ( gfWorldLoaded )
{
for ( i = gTacticalStatus.Team[CIV_TEAM].bFirstID; i <= gTacticalStatus.Team[CIV_TEAM].bLastID; i++ )
for ( SoldierID i = gTacticalStatus.Team[CIV_TEAM].bFirstID; i <= gTacticalStatus.Team[CIV_TEAM].bLastID; ++i )
{
SOLDIERTYPE *pSoldier = MercPtrs[i];
SOLDIERTYPE *pSoldier = i;
if ( pSoldier->bActive && pSoldier->bInSector )
{
SetupProfileInsertionDataForSoldier( pSoldier );
@@ -3099,7 +3097,6 @@ BOOLEAN EnterSector( INT16 sSectorX, INT16 sSectorY, INT8 bSectorZ )
void UpdateMercsInSector( INT16 sSectorX, INT16 sSectorY, INT8 bSectorZ )
{
INT32 cnt;
SOLDIERTYPE *pSoldier;
BOOLEAN fPOWSquadSet = FALSE;
UINT8 ubPOWSquad = 0;
@@ -3129,8 +3126,9 @@ void UpdateMercsInSector( INT16 sSectorX, INT16 sSectorY, INT8 bSectorZ )
//if( !(gTacticalStatus.uiFlags & LOADING_SAVED_GAME ) )
{
for ( cnt = 0, pSoldier = MercPtrs[cnt]; cnt < MAX_NUM_SOLDIERS; ++cnt, ++pSoldier )
for ( SoldierID cnt = 0; cnt < MAX_NUM_SOLDIERS; ++cnt )
{
pSoldier = cnt;
if ( gfRestoringEnemySoldiersFromTempFile &&
cnt >= gTacticalStatus.Team[ENEMY_TEAM].bFirstID &&
cnt <= gTacticalStatus.Team[CREATURE_TEAM].bLastID )
@@ -3954,7 +3952,6 @@ UINT8 GetStrategicInsertionDataFromAdjacentMoveDirection( UINT8 ubTacticalDirect
void JumpIntoAdjacentSector( UINT8 ubTacticalDirection, UINT8 ubJumpCode, INT32 sAdditionalData )//dnl ch56 151009
{
INT32 cnt;
SOLDIERTYPE *pSoldier;
SOLDIERTYPE *pValidSoldier = NULL;
GROUP *pGroup;
@@ -3972,11 +3969,12 @@ void JumpIntoAdjacentSector( UINT8 ubTacticalDirection, UINT8 ubJumpCode, INT32
{
// TODO: Check flags to see if we can jump!
// Move controllable mercs!
cnt = gTacticalStatus.Team[gbPlayerNum].bFirstID;
SoldierID cnt = gTacticalStatus.Team[gbPlayerNum].bFirstID;
// look for all mercs on the same team,
for ( pSoldier = MercPtrs[cnt]; cnt <= gTacticalStatus.Team[gbPlayerNum].bLastID; cnt++, pSoldier++ )
for ( ; cnt <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++cnt )
{
pSoldier = cnt;
// If we are controllable
if ( OK_CONTROLLABLE_MERC( pSoldier ) && pSoldier->bAssignment == CurrentSquad( ) )
{
@@ -4214,12 +4212,13 @@ void JumpIntoAdjacentSector( UINT8 ubTacticalDirection, UINT8 ubJumpCode, INT32
void JumpIntoEscapedSector(UINT8 ubTacticalDirection)
{
// Remove any incapacitated mercs from current squads and assign them to new squad
UINT32 i = gTacticalStatus.Team[gbPlayerNum].bFirstID;
UINT32 const lastID = gTacticalStatus.Team[gbPlayerNum].bLastID;
SoldierID id = gTacticalStatus.Team[gbPlayerNum].bFirstID;
SoldierID const lastID = gTacticalStatus.Team[gbPlayerNum].bLastID;
INT8 currentSquad = -1;
for (SOLDIERTYPE* pSoldier = MercPtrs[i]; i <= lastID; ++i, ++pSoldier)
for ( ; id <= lastID; ++id )
{
SOLDIERTYPE *pSoldier = id;
// Are we not active in sector
if (!pSoldier->bActive || !pSoldier->bInSector || pSoldier->stats.bLife >= OKLIFE)
{
@@ -4833,7 +4832,6 @@ BOOLEAN SoldierOKForSectorExit( SOLDIERTYPE * pSoldier, INT8 bExitDirection, INT
//ATE: Returns FALSE if NOBODY is close enough, 1 if ONLY selected guy is and 2 if all on squad are...
BOOLEAN OKForSectorExit( INT8 bExitDirection, INT32 usAdditionalData, UINT32 *puiTraverseTimeInMinutes )//dnl ch56 151009
{
INT32 cnt;
SOLDIERTYPE *pSoldier;
BOOLEAN fAtLeastOneMercControllable = FALSE;
BOOLEAN fOnlySelectedGuy = FALSE;
@@ -4876,11 +4874,12 @@ BOOLEAN OKForSectorExit( INT8 bExitDirection, INT32 usAdditionalData, UINT32 *pu
gbPotentiallyAbandonedEPCSlotID = NOBODY;
// Look through all mercs and check if they are within range of east end....
cnt = gTacticalStatus.Team[gbPlayerNum].bFirstID;
SoldierID cnt = gTacticalStatus.Team[gbPlayerNum].bFirstID;
// look for all mercs on the same team,
for ( pSoldier = MercPtrs[cnt]; cnt <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++cnt, ++pSoldier )
for ( ; cnt <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++cnt )
{
pSoldier = cnt;
// If we are controllable
if ( OK_CONTROLLABLE_MERC( pSoldier ) && (pSoldier->bAssignment == CurrentSquad( ) ||
(pSoldier->bAssignment == VEHICLE && pSoldier->iVehicleId != iHelicopterVehicleId && GetSoldierStructureForVehicle( pSoldier->iVehicleId )->bAssignment == CurrentSquad( ))) )
@@ -5157,7 +5156,7 @@ void SetSamHackStatus( INT16 sSectorX, INT16 sSectorY, INT8 sStatus )
BOOLEAN CanGoToTacticalInSector( INT16 sX, INT16 sY, UINT8 ubZ )
{
INT32 cnt;
SoldierID cnt;
SOLDIERTYPE *pSoldier;
// if not a valid sector
@@ -5170,8 +5169,9 @@ BOOLEAN CanGoToTacticalInSector( INT16 sX, INT16 sY, UINT8 ubZ )
cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
// look for all living, fighting mercs on player's team. Robot and EPCs qualify!
for ( pSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; cnt++, pSoldier++)
for ( ; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++cnt )
{
pSoldier = cnt;
// ARM: now allows loading of sector with all mercs below OKLIFE as long as they're alive
if( ( pSoldier->bActive && pSoldier->stats.bLife ) && !( pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE ) &&
( pSoldier->bAssignment != IN_TRANSIT ) && ( pSoldier->bAssignment != ASSIGNMENT_POW ) && ( pSoldier->bAssignment != ASSIGNMENT_MINIEVENT ) && ( pSoldier->bAssignment != ASSIGNMENT_REBELCOMMAND ) &&
@@ -6430,8 +6430,6 @@ BOOLEAN IsSectorRoad( INT16 sSectorX, INT16 sSectorY )
BOOLEAN HandleDefiniteUnloadingOfWorld( UINT8 ubUnloadCode )
{
INT32 i;
// clear tactical queue
ClearEventQueue( );
@@ -6493,9 +6491,9 @@ BOOLEAN HandleDefiniteUnloadingOfWorld( UINT8 ubUnloadCode )
//Setup the tactical existance of the current soldier.
//@@@Evaluate
for ( i = gTacticalStatus.Team[CIV_TEAM].bFirstID; i <= gTacticalStatus.Team[CIV_TEAM].bLastID; i++ )
for ( SoldierID i = gTacticalStatus.Team[CIV_TEAM].bFirstID; i <= gTacticalStatus.Team[CIV_TEAM].bLastID; ++i )
{
SOLDIERTYPE *pSoldier = MercPtrs[i];
SOLDIERTYPE *pSoldier = i;
if ( pSoldier->bActive && pSoldier->bInSector )
{
SetupProfileInsertionDataForSoldier( pSoldier );
@@ -6514,18 +6512,18 @@ BOOLEAN HandlePotentialBringUpAutoresolveToFinishBattle( int pSectorX, int pSect
{
//We don't have mercs in the sector. Now, we check to see if there are BOTH enemies and militia. If both
//co-exist in the sector, then make them fight for control of the sector via autoresolve.
for ( int i = gTacticalStatus.Team[ENEMY_TEAM].bFirstID; i <= gTacticalStatus.Team[CREATURE_TEAM].bLastID; i++ )
for ( SoldierID i = gTacticalStatus.Team[ENEMY_TEAM].bFirstID; i <= gTacticalStatus.Team[CREATURE_TEAM].bLastID; ++i )
{
SOLDIERTYPE *pEnemy = MercPtrs[i];
SOLDIERTYPE *pEnemy = i;
if ( pEnemy->bActive && pEnemy->stats.bLife )
{
if ( pEnemy->sSectorX == pSectorX &&
pEnemy->sSectorY == pSectorY &&
pEnemy->bSectorZ == pSectorZ )
{ //We have enemies, now look for militia!
for ( i = gTacticalStatus.Team[MILITIA_TEAM].bFirstID; i <= gTacticalStatus.Team[MILITIA_TEAM].bLastID; i++ )
for ( SoldierID j = gTacticalStatus.Team[MILITIA_TEAM].bFirstID; j <= gTacticalStatus.Team[MILITIA_TEAM].bLastID; ++j )
{
SOLDIERTYPE *pMilitia = MercPtrs[i];
SOLDIERTYPE *pMilitia = j;
if ( pMilitia->bActive && pMilitia->stats.bLife && pMilitia->bSide == OUR_TEAM )
{
if ( pMilitia->sSectorX == pSectorX &&
@@ -6567,7 +6565,6 @@ BOOLEAN HandlePotentialBringUpAutoresolveToFinishBattle( int pSectorX, int pSect
BOOLEAN CheckAndHandleUnloadingOfCurrentWorld( )
{
INT32 i;
INT16 sBattleSectorX, sBattleSectorY, sBattleSectorZ;
//Don't bother checking this if we don't have a world loaded.
@@ -6592,9 +6589,9 @@ BOOLEAN CheckAndHandleUnloadingOfCurrentWorld( )
{ //The user has decided to let the game autoresolve the current battle.
if ( gWorldSectorX == sBattleSectorX && gWorldSectorY == sBattleSectorY && gbWorldSectorZ == sBattleSectorZ )
{
for ( i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; i++ )
for ( SoldierID i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++i )
{ //If we have a live and valid soldier
SOLDIERTYPE *pSoldier = MercPtrs[i];
SOLDIERTYPE *pSoldier = i;
if ( pSoldier->bActive && pSoldier->stats.bLife && !pSoldier->flags.fBetweenSectors && !(pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE) && !AM_A_ROBOT( pSoldier ) && !AM_AN_EPC( pSoldier ) )
{
if ( pSoldier->sSectorX == gWorldSectorX &&
@@ -6610,9 +6607,9 @@ BOOLEAN CheckAndHandleUnloadingOfCurrentWorld( )
}
else
{ //Check and see if we have any live mercs in the sector.
for ( i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; i++ )
for ( SoldierID i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++i )
{ //If we have a live and valid soldier
SOLDIERTYPE *pSoldier = MercPtrs[i];
SOLDIERTYPE *pSoldier = i;
if ( pSoldier->bActive && pSoldier->stats.bLife && !pSoldier->flags.fBetweenSectors && !(pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE) && !AM_A_ROBOT( pSoldier ) && !AM_AN_EPC( pSoldier ) )
{
if ( pSoldier->sSectorX == gWorldSectorX &&