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
+35 -31
View File
@@ -9122,81 +9122,85 @@ void AssignPersonnelWoundsHelpText( INT32 ubProfile )
INT8 CalculateMercsAchievementPercentage( INT32 ubProfile )
{
SOLDIERTYPE *pTeamSoldier;
INT32 cnt=0;
UINT32 uiMercPoints, uiMercPercentage;
unsigned long ulTotalMercPoints = 0;
// run through active soldiers
for ( cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; cnt++)
SoldierID id = gTacticalStatus.Team[gbPlayerNum].bFirstID;
const SoldierID lastid = gTacticalStatus.Team[gbPlayerNum].bLastID;
for ( ; id <= lastid; ++id)
{
pTeamSoldier = MercPtrs[cnt];
pTeamSoldier = id;
// Only count stats of merc (not vehicles)
if ( !( pTeamSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE ) && !AM_A_ROBOT( pTeamSoldier ) )
{
if( pTeamSoldier->bActive && pTeamSoldier->stats.bLife > 0 && pTeamSoldier->ubProfile != 0 )
{
const STRUCT_Records &records = gMercProfiles[pTeamSoldier->ubProfile].records;
// get total value of all mercs, adjust by importance
ulTotalMercPoints +=
( gMercProfiles[ pTeamSoldier->ubProfile ].records.usLocksPicked )
( records.usLocksPicked )
+
( gMercProfiles[ pTeamSoldier->ubProfile ].records.usLocksBreached )
( records.usLocksBreached )
+
( gMercProfiles[ pTeamSoldier->ubProfile ].records.usTrapsRemoved *3/2)
( records.usTrapsRemoved *3/2)
+
( gMercProfiles[ pTeamSoldier->ubProfile ].records.usExpDetonated *3/2)
( records.usExpDetonated *3/2)
+
( gMercProfiles[ pTeamSoldier->ubProfile ].records.usItemsRepaired /2)
( records.usItemsRepaired /2)
+
( gMercProfiles[ pTeamSoldier->ubProfile ].records.usItemsCombined *2)
( records.usItemsCombined *2)
+
( gMercProfiles[ pTeamSoldier->ubProfile ].records.usItemsStolen )
( records.usItemsStolen )
+
( gMercProfiles[ pTeamSoldier->ubProfile ].records.usMercsBandaged *3/4)
( records.usMercsBandaged *3/4)
+
( gMercProfiles[ pTeamSoldier->ubProfile ].records.usSurgeriesMade *3/2)
( records.usSurgeriesMade *3/2)
+
( gMercProfiles[ pTeamSoldier->ubProfile ].records.usNPCsDiscovered *4/3)
( records.usNPCsDiscovered *4/3)
+
( gMercProfiles[ pTeamSoldier->ubProfile ].records.usSectorsDiscovered )
( records.usSectorsDiscovered )
+
( gMercProfiles[ pTeamSoldier->ubProfile ].records.usMilitiaTrained /4)
( records.usMilitiaTrained /4)
+
( gMercProfiles[ pTeamSoldier->ubProfile ].records.ubQuestsHandled *2)
( records.ubQuestsHandled *2)
+
(gMercProfiles[pTeamSoldier->ubProfile].records.usInterrogations);
( records.usInterrogations);
}
}
}
// Now get points of our mercs
const STRUCT_Records &records = gMercProfiles[ubProfile].records;
uiMercPoints =
( gMercProfiles[ ubProfile ].records.usLocksPicked )
( records.usLocksPicked )
+
( gMercProfiles[ ubProfile ].records.usLocksBreached )
( records.usLocksBreached )
+
( gMercProfiles[ ubProfile ].records.usTrapsRemoved *3/2)
( records.usTrapsRemoved *3/2)
+
( gMercProfiles[ ubProfile ].records.usExpDetonated *3/2)
( records.usExpDetonated *3/2)
+
( gMercProfiles[ ubProfile ].records.usItemsRepaired /2)
( records.usItemsRepaired /2)
+
( gMercProfiles[ ubProfile ].records.usItemsCombined *2)
( records.usItemsCombined *2)
+
( gMercProfiles[ ubProfile ].records.usItemsStolen )
( records.usItemsStolen )
+
( gMercProfiles[ ubProfile ].records.usMercsBandaged *3/4)
( records.usMercsBandaged *3/4)
+
( gMercProfiles[ ubProfile ].records.usSurgeriesMade *3/2)
( records.usSurgeriesMade *3/2)
+
( gMercProfiles[ ubProfile ].records.usNPCsDiscovered *4/3)
( records.usNPCsDiscovered *4/3)
+
( gMercProfiles[ ubProfile ].records.usSectorsDiscovered )
( records.usSectorsDiscovered )
+
( gMercProfiles[ ubProfile ].records.usMilitiaTrained /4)
( records.usMilitiaTrained /4)
+
( gMercProfiles[ ubProfile ].records.ubQuestsHandled *2)
( records.ubQuestsHandled *2)
+
( gMercProfiles[ubProfile].records.usInterrogations );
( records.usInterrogations );
// Calculate percentage
if( ulTotalMercPoints != 0 )
+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 &&
+14 -12
View File
@@ -187,7 +187,6 @@ void ScheduleAirRaid( AIR_RAID_DEFINITION *pAirRaidDef )
BOOLEAN BeginAirRaid( )
{
INT32 cnt=0;
BOOLEAN fOK = FALSE;
SOLDIERTYPE *pSoldier;
gfQuoteSaid = FALSE;
@@ -215,9 +214,10 @@ BOOLEAN BeginAirRaid( )
// Do we have any guys in here...
DebugMsg(TOPIC_JA2,DBG_LEVEL_3,String("BeginAirRaid: check for mercs: first id = %d, last id = %d ",gTacticalStatus.Team[ gbPlayerNum ].bFirstID, gTacticalStatus.Team[ gbPlayerNum ].bLastID));
cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
for ( cnt = 0, pSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; cnt++, pSoldier++)
SoldierID cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
for ( ; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++cnt )
{
pSoldier = cnt;
DebugMsg(TOPIC_JA2,DBG_LEVEL_3,String("BeginAirRaid: soldier id = %d, active = %d",pSoldier->ubID,pSoldier->bActive));
if ( pSoldier->bActive )
{
@@ -309,18 +309,18 @@ INT32 PickLocationNearAnyMercInSector( )
UINT16 ubNumMercs = 0;
UINT16 ubChosenMerc;
SOLDIERTYPE *pTeamSoldier;
INT32 cnt=0;
// Loop through all our guys and randomly say one from someone in our sector
DebugMsg(TOPIC_JA2,DBG_LEVEL_3,"PickLocationNearAnyMercInSector");
// set up soldier ptr as first element in mercptrs list
cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
SoldierID cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
// run through list
DebugMsg(TOPIC_JA2,DBG_LEVEL_3,String("PickLocationNearAnyMercInSector: total guys = %d", gTacticalStatus.Team[ gbPlayerNum ].bLastID));
for ( pTeamSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; cnt++,pTeamSoldier++ )
for ( ; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++cnt )
{
pTeamSoldier = cnt;
// Add guy if he's a candidate...
DebugMsg(TOPIC_JA2,DBG_LEVEL_3,String("PickLocationNearAnyMercInSector: looping %d",cnt));
if ( OK_INSECTOR_MERC( pTeamSoldier ) )
@@ -1057,9 +1057,10 @@ void HandleAirRaid( )
DebugMsg(TOPIC_JA2,DBG_LEVEL_3,String("HandleAirRaid: check for mercs: first id = %d, last id = %d ",gTacticalStatus.Team[ gbPlayerNum ].bFirstID, gTacticalStatus.Team[ gbPlayerNum ].bLastID));
SOLDIERTYPE * pSoldier;
BOOLEAN fOK = FALSE;
int cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
for ( cnt = 0, pSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; cnt++, pSoldier++)
SoldierID cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
for ( ; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++cnt )
{
pSoldier = cnt;
DebugMsg(TOPIC_JA2,DBG_LEVEL_3,String("HandleAirRaid: soldier id = %d, active = %d",pSoldier->ubID,pSoldier->bActive));
if ( pSoldier->bActive )
{
@@ -1447,12 +1448,12 @@ void EndAirRaid( )
if ( !gTacticalStatus.Team[ ENEMY_TEAM ].bTeamActive && !gTacticalStatus.Team[ CREATURE_TEAM ].bTeamActive )
{
SOLDIERTYPE * pTeamSoldier;
INT32 cnt;
// Loop through all militia and restore them to peaceful status
cnt = gTacticalStatus.Team[ MILITIA_TEAM ].bFirstID;
for ( pTeamSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ MILITIA_TEAM ].bLastID; cnt++,pTeamSoldier++)
SoldierID cnt = gTacticalStatus.Team[ MILITIA_TEAM ].bFirstID;
for ( ; cnt <= gTacticalStatus.Team[ MILITIA_TEAM ].bLastID; ++cnt )
{
pTeamSoldier = cnt;
if ( pTeamSoldier->bActive && pTeamSoldier->bInSector )
{
pTeamSoldier->aiData.bAlertStatus = STATUS_GREEN;
@@ -1462,8 +1463,9 @@ void EndAirRaid( )
cnt = gTacticalStatus.Team[ CIV_TEAM ].bFirstID;
// Loop through all civs and restore them to peaceful status
for ( pTeamSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; cnt++,pTeamSoldier++)
for ( ; cnt <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; ++cnt )
{
pTeamSoldier = cnt;
if ( pTeamSoldier->bActive && pTeamSoldier->bInSector )
{
pTeamSoldier->aiData.bAlertStatus = STATUS_GREEN;
+2 -5
View File
@@ -478,8 +478,6 @@ BOOLEAN AnotherFightPossible( void )
// a player has at least OKLIFE + 5 life
// and at least one fight HAS occurred
UINT16 ubLoop;
SOLDIERTYPE * pSoldier;
UINT8 ubAvailable;
ubAvailable = BoxersAvailable();
@@ -490,9 +488,8 @@ BOOLEAN AnotherFightPossible( void )
}
// Loop through all mercs on player team
ubLoop = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
pSoldier = MercPtrs[ ubLoop ];
for ( ; ubLoop <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++ubLoop, pSoldier++ )
SoldierID pSoldier = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
for ( ; pSoldier <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++pSoldier )
{
if ( pSoldier->bActive && pSoldier->bInSector && pSoldier->stats.bLife > (OKLIFE + 5) && !pSoldier->bCollapsed )
{
+4 -8
View File
@@ -1836,13 +1836,9 @@ void TestDumpStatChanges(void)
void AwardExperienceBonusToActiveSquad( UINT8 ubExpBonusType )
{
UINT16 usXPs = 0;
UINT16 ubGuynum;
SOLDIERTYPE *pSoldier;
Assert ( ubExpBonusType < NUM_EXP_BONUS_TYPES );
UINT16 usXPs = 0;
switch ( ubExpBonusType )
{
case EXP_BONUS_MINIMUM: usXPs = 25; break;
@@ -1853,9 +1849,9 @@ void AwardExperienceBonusToActiveSquad( UINT8 ubExpBonusType )
}
// to do: find guys in sector on the currently active squad, those that are conscious get this amount in XPs
for ( ubGuynum = gTacticalStatus.Team[ gbPlayerNum ].bFirstID, pSoldier = MercPtrs[ ubGuynum ];
ubGuynum <= gTacticalStatus.Team[ gbPlayerNum ].bLastID;
ubGuynum++, pSoldier++ )
for ( SoldierID pSoldier = gTacticalStatus.Team[ gbPlayerNum ].bFirstID ;
pSoldier <= gTacticalStatus.Team[ gbPlayerNum ].bLastID;
++pSoldier)
{
if ( pSoldier->bActive && pSoldier->bInSector && IsMercOnCurrentSquad( pSoldier ) && ( pSoldier->stats.bLife >= CONSCIOUSNESS ) &&
!( pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE ) && !AM_A_ROBOT( pSoldier ) )
+20 -18
View File
@@ -1759,9 +1759,10 @@ void AdditionalTacticalCharacterDialogue_AllInSector(INT16 aSectorX, INT16 aSect
UINT16 usEventNr, UINT32 aData1, UINT32 aData2, UINT32 aData3, INT32 aAroundGridno, INT32 aRadius )
{
SOLDIERTYPE* pSoldier;
int cnt = gTacticalStatus.Team[gbPlayerNum].bFirstID;
for ( pSoldier = MercPtrs[cnt]; cnt <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++cnt, pSoldier++ )
SoldierID cnt = gTacticalStatus.Team[gbPlayerNum].bFirstID;
for ( ; cnt <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++cnt )
{
pSoldier = cnt;
if ( pSoldier->stats.bLife >= OKLIFE && pSoldier->bActive &&
pSoldier->ubProfile != ausIgnoreProfile &&
pSoldier->sSectorX == aSectorX && pSoldier->sSectorY == aSectorY && pSoldier->bSectorZ == aSectorZ &&
@@ -3122,10 +3123,10 @@ void HandleDialogueEnd( FACETYPE *pFace )
break;
default:
// select random enemy, who we see, who sees us and isn't deaf
for(UINT16 cnt = gTacticalStatus.Team[ ENEMY_TEAM ].bFirstID; cnt <= gTacticalStatus.Team[ ENEMY_TEAM ].bLastID ; cnt++ )
for( SoldierID cnt = gTacticalStatus.Team[ ENEMY_TEAM ].bFirstID; cnt <= gTacticalStatus.Team[ ENEMY_TEAM ].bLastID ; ++cnt )
{
if( MercPtrs[cnt] != NULL && MercPtrs[cnt]->aiData.bOppList[pSoldier->ubID] == SEEN_CURRENTLY
&& MercPtrs[pSoldier->ubID]->aiData.bOppList[cnt] == SEEN_CURRENTLY && !( MercPtrs[cnt]->bDeafenedCounter > 0 ) )
if( cnt->aiData.bOppList[pSoldier->ubID] == SEEN_CURRENTLY
&& pSoldier->ubID->aiData.bOppList[cnt] == SEEN_CURRENTLY && !( cnt->bDeafenedCounter > 0 ) )
{
ubSeenEnemies[ubSeenEnemiesCnt] = cnt;
ubSeenEnemiesCnt++;
@@ -3297,16 +3298,16 @@ void SayQuoteFromAnyBodyInSector( UINT16 usQuoteNum )
UINT16 ubNumMercs = 0;
UINT16 ubChosenMerc;
SOLDIERTYPE *pTeamSoldier;
INT32 cnt;
// Loop through all our guys and randomly say one from someone in our sector
// set up soldier ptr as first element in mercptrs list
cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
SoldierID id = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
// run through list
for ( pTeamSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; cnt++,pTeamSoldier++ )
for ( ; id <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++id )
{
pTeamSoldier = id;
// Add guy if he's a candidate...
if ( OK_INSECTOR_MERC( pTeamSoldier ) && !AM_AN_EPC( pTeamSoldier ) && !( pTeamSoldier->flags.uiStatusFlags & SOLDIER_GASSED ) && !(AM_A_ROBOT( pTeamSoldier )) && !pTeamSoldier->flags.fMercAsleep )
{
@@ -3329,7 +3330,7 @@ void SayQuoteFromAnyBodyInSector( UINT16 usQuoteNum )
#endif
}
ubMercsInSector[ ubNumMercs ] = (UINT16)cnt;
ubMercsInSector[ ubNumMercs ] = (UINT16)id;
ubNumMercs++;
}
}
@@ -3342,7 +3343,7 @@ void SayQuoteFromAnyBodyInSector( UINT16 usQuoteNum )
// If we are air raid, AND red exists somewhere...
if ( usQuoteNum == QUOTE_AIR_RAID )
{
for ( cnt = 0; cnt < ubNumMercs; cnt++ )
for ( UINT16 cnt = 0; cnt < ubNumMercs; cnt++ )
{
if ( ubMercsInSector[ cnt ] == 11 )
{
@@ -3366,16 +3367,16 @@ void SayQuoteFromAnyBodyInThisSector( INT16 sSectorX, INT16 sSectorY, INT8 bSect
UINT16 ubNumMercs = 0;
UINT16 ubChosenMerc;
SOLDIERTYPE *pTeamSoldier;
INT32 cnt;
// Loop through all our guys and randomly say one from someone in our sector
// set up soldier ptr as first element in mercptrs list
cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
SoldierID cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
// run through list
for ( pTeamSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; cnt++,pTeamSoldier++ )
for ( ; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++cnt )
{
pTeamSoldier = cnt;
if ( pTeamSoldier->bActive )
{
// Add guy if he's a candidate...
@@ -3419,16 +3420,16 @@ void SayQuoteFromNearbyMercInSector( INT32 sGridNo, INT8 bDistance, UINT16 usQuo
UINT16 ubNumMercs = 0;
UINT16 ubChosenMerc;
SOLDIERTYPE *pTeamSoldier;
INT32 cnt;
// Loop through all our guys and randomly say one from someone in our sector
// set up soldier ptr as first element in mercptrs list
cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
SoldierID cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
// run through list
for ( pTeamSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; cnt++,pTeamSoldier++ )
for ( ; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++cnt )
{
pTeamSoldier = cnt;
// Add guy if he's a candidate...
if ( OK_INSECTOR_MERC( pTeamSoldier ) && PythSpacesAway( sGridNo, pTeamSoldier->sGridNo ) < bDistance && !AM_AN_EPC( pTeamSoldier ) && !( pTeamSoldier->flags.uiStatusFlags & SOLDIER_GASSED ) && !(AM_A_ROBOT( pTeamSoldier )) && !pTeamSoldier->flags.fMercAsleep &&
SoldierTo3DLocationLineOfSightTest( pTeamSoldier, sGridNo, 0, 0, TRUE ) )
@@ -3464,14 +3465,15 @@ void SayQuote58FromNearbyMercInSector( INT32 sGridNo, INT8 bDistance, UINT16 usQ
UINT16 ubNumMercs = 0;
UINT16 ubChosenMerc;
SOLDIERTYPE *pTeamSoldier;
INT32 cnt = gTacticalStatus.Team[gbPlayerNum].bFirstID;
SoldierID cnt = gTacticalStatus.Team[gbPlayerNum].bFirstID;
// Loop through all our guys and randomly say one from someone in our sector
// set up soldier ptr as first element in mercptrs list
// run through list
for ( pTeamSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++cnt,pTeamSoldier++ )
for ( ; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++cnt )
{
pTeamSoldier = cnt;
// Add guy if he's a candidate...
if ( OK_INSECTOR_MERC( pTeamSoldier ) && PythSpacesAway( sGridNo, pTeamSoldier->sGridNo ) < bDistance && !AM_AN_EPC( pTeamSoldier ) && !( pTeamSoldier->flags.uiStatusFlags & SOLDIER_GASSED ) && !(AM_A_ROBOT( pTeamSoldier )) && !pTeamSoldier->flags.fMercAsleep &&
SoldierTo3DLocationLineOfSightTest( pTeamSoldier, sGridNo, 0, 0, TRUE ) )
+3 -2
View File
@@ -711,9 +711,10 @@ void CalculateCover()
if (gTacticalStatus.fAtLeastOneGuyOnMultiSelect) // view of selected mercs
{
// OK, loop through all guys who are 'multi-selected' and
INT32 cnt = gTacticalStatus.Team[gbPlayerNum].bFirstID;
for (pSoldier = MercPtrs[cnt]; cnt <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++cnt, ++pSoldier)
SoldierID cnt = gTacticalStatus.Team[gbPlayerNum].bFirstID;
for ( ; cnt <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++cnt )
{
pSoldier = cnt;
if (pSoldier->bActive && pSoldier->bInSector)
{
if (pSoldier->flags.uiStatusFlags & SOLDIER_MULTI_SELECTED)
+5 -5
View File
@@ -407,16 +407,16 @@ BOOLEAN MercDrugged( SOLDIERTYPE *pSoldier )
void HourlyDrugUpdate( )
{
for ( UINT16 ubID = gTacticalStatus.Team[OUR_TEAM].bFirstID; ubID <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++ubID )
for ( SoldierID ubID = gTacticalStatus.Team[OUR_TEAM].bFirstID; ubID <= gTacticalStatus.Team[OUR_TEAM].bLastID; ++ubID )
{
// every hour, we lower our alcohol counter
if ( MercPtrs[ubID]->newdrugs.drinkstaken > 0.0f )
if ( ubID->newdrugs.drinkstaken > 0.0f )
{
MercPtrs[ubID]->newdrugs.drinkstaken = max( 0.0, MercPtrs[ubID]->newdrugs.drinkstaken - 0.15f );
ubID->newdrugs.drinkstaken = max( 0.0, ubID->newdrugs.drinkstaken - 0.15f );
if ( MercPtrs[ubID]->newdrugs.drinkstaken <= 0.0f )
if ( ubID->newdrugs.drinkstaken <= 0.0f )
{
MercPtrs[ubID]->usSoldierFlagMask2 &= ~SOLDIER_HUNGOVER;
ubID->usSoldierFlagMask2 &= ~SOLDIER_HUNGOVER;
}
}
}
+40 -35
View File
@@ -1632,11 +1632,11 @@ void HandleDynamicOpinionsDailyRefresh( )
RolloverDynamicOpinions( usProfileA );
}
SOLDIERTYPE* pSoldier = NULL;
UINT16 bMercID = gTacticalStatus.Team[gbPlayerNum].bFirstID;
UINT16 bLastTeamID = gTacticalStatus.Team[gbPlayerNum].bLastID;
for ( pSoldier = MercPtrs[bMercID]; bMercID <= bLastTeamID; ++bMercID, pSoldier++ )
SoldierID bMercID = gTacticalStatus.Team[gbPlayerNum].bFirstID;
SoldierID bLastTeamID = gTacticalStatus.Team[gbPlayerNum].bLastID;
for ( ; bMercID <= bLastTeamID; ++bMercID )
{
SOLDIERTYPE* pSoldier = bMercID;
if ( pSoldier->bActive && pSoldier->ubProfile != NO_PROFILE &&
!(pSoldier->bAssignment == IN_TRANSIT || AM_A_ROBOT(pSoldier) ||
pSoldier->bAssignment == ASSIGNMENT_DEAD) )
@@ -1672,11 +1672,11 @@ void RolloverDynamicOpinions( UINT8 usProfileA )
// check wether other people are friends with someone else we hate. All persons must be in Arulco
void CheckForFriendsofHated( SOLDIERTYPE* pSoldier )
{
UINT16 bMercID, bOtherID, bThirdID, bLastTeamID;
INT8 bOpinion = -1;
INT8 bSecondOpinion = -1;
SOLDIERTYPE* pOtherSoldier;
SOLDIERTYPE* pThirdSoldier;
SoldierID bMercID, bOtherID, bThirdID, bLastTeamID;
INT8 bOpinion = -1;
INT8 bSecondOpinion = -1;
SOLDIERTYPE *pOtherSoldier;
SOLDIERTYPE *pThirdSoldier;
// make sure we ourselves aren't in transit
if ( !pSoldier->bActive || pSoldier->ubProfile == NO_PROFILE || AM_A_ROBOT(pSoldier) || pSoldier->bAssignment == IN_TRANSIT || pSoldier->bAssignment == ASSIGNMENT_DEAD )
@@ -1687,8 +1687,9 @@ void CheckForFriendsofHated( SOLDIERTYPE* pSoldier )
// loop through all other mercs
bOtherID = gTacticalStatus.Team[gbPlayerNum].bFirstID;
for ( pOtherSoldier = MercPtrs[bOtherID]; bOtherID <= bLastTeamID; ++bOtherID, pOtherSoldier++ )
for ( ; bOtherID <= bLastTeamID; ++bOtherID )
{
pOtherSoldier = bOtherID;
// skip past ourselves and all inactive mercs
if ( bOtherID != bMercID && pOtherSoldier->bActive && pOtherSoldier->ubProfile != NO_PROFILE &&
!(pOtherSoldier->bAssignment == IN_TRANSIT ||
@@ -1702,8 +1703,9 @@ void CheckForFriendsofHated( SOLDIERTYPE* pSoldier )
// there is someone in our team that we hate. We dislike his friends somewhat, purely because they like our foe
// loop through all other mercs
bThirdID = gTacticalStatus.Team[gbPlayerNum].bFirstID;
for ( pThirdSoldier = MercPtrs[bThirdID]; bThirdID <= bLastTeamID; ++bThirdID, pThirdSoldier++ )
for ( ; bThirdID <= bLastTeamID; ++bThirdID )
{
pThirdSoldier = bThirdID;
// skip past ourselves and all inactive mercs
if ( bThirdID != bMercID && bThirdID != bOtherID && pThirdSoldier->bActive && pThirdSoldier->ubProfile != NO_PROFILE &&
!(pThirdSoldier->bAssignment == IN_TRANSIT ||
@@ -1843,11 +1845,11 @@ void HandleDynamicOpinionTeamDrinking( SOLDIERTYPE* pSoldier )
if ( !pSoldier || pSoldier->ubProfile == NO_PROFILE || AM_A_ROBOT(pSoldier) || pSoldier->newdrugs.drinkstaken <= 0.0 )
return;
SOLDIERTYPE* pTeamSoldier = NULL;
UINT16 bMercID = gTacticalStatus.Team[gbPlayerNum].bFirstID;
UINT16 bLastTeamID = gTacticalStatus.Team[gbPlayerNum].bLastID;
for ( pTeamSoldier = MercPtrs[bMercID]; bMercID <= bLastTeamID; ++bMercID, pTeamSoldier++ )
SoldierID bMercID = gTacticalStatus.Team[gbPlayerNum].bFirstID;
SoldierID bLastTeamID = gTacticalStatus.Team[gbPlayerNum].bLastID;
for ( ; bMercID <= bLastTeamID; ++bMercID)
{
SOLDIERTYPE* pTeamSoldier = bMercID;
// everybody other merc in the same sector can get updated if they are drugged too
if ( pTeamSoldier->bActive && pTeamSoldier->ubProfile != NO_PROFILE && pTeamSoldier->ubProfile != pSoldier->ubProfile &&
pTeamSoldier->sSectorX == pSoldier->sSectorX && pTeamSoldier->sSectorY == pSoldier->sSectorY && pTeamSoldier->bSectorZ == pSoldier->bSectorZ &&
@@ -1902,11 +1904,11 @@ void HandleDynamicOpinionTeaching( SOLDIERTYPE* pSoldier, UINT8 ubStat )
break;
}
SOLDIERTYPE* pTeamSoldier = NULL;
UINT16 bMercID = gTacticalStatus.Team[gbPlayerNum].bFirstID;
UINT16 bLastTeamID = gTacticalStatus.Team[gbPlayerNum].bLastID;
for ( pTeamSoldier = MercPtrs[bMercID]; bMercID <= bLastTeamID; ++bMercID, pTeamSoldier++ )
SoldierID bMercID = gTacticalStatus.Team[gbPlayerNum].bFirstID;
SoldierID bLastTeamID = gTacticalStatus.Team[gbPlayerNum].bLastID;
for ( ; bMercID <= bLastTeamID; ++bMercID)
{
SOLDIERTYPE* pTeamSoldier = bMercID;
// award event for every trainer in this sector
if ( pTeamSoldier->bActive && pTeamSoldier->ubProfile != NO_PROFILE && pTeamSoldier->ubProfile != pSoldier->ubProfile &&
pTeamSoldier->sSectorX == pSoldier->sSectorX && pTeamSoldier->sSectorY == pSoldier->sSectorY && pTeamSoldier->bSectorZ == pSoldier->bSectorZ &&
@@ -1939,16 +1941,16 @@ UINT32 GetSoldierLeaderRating( SOLDIERTYPE* pSoldier )
}
UINT16 GetBestMercLeaderInSector( INT16 sX, INT16 sY, INT8 sZ )
SoldierID GetBestMercLeaderInSector( INT16 sX, INT16 sY, INT8 sZ )
{
UINT32 highestrating = 0;
UINT16 bestid = NOBODY;
UINT32 highestrating = 0;
SoldierID bestid = NOBODY;
SoldierID bMercID = gTacticalStatus.Team[gbPlayerNum].bFirstID;
SoldierID bLastTeamID = gTacticalStatus.Team[gbPlayerNum].bLastID;
SOLDIERTYPE* pSoldier = NULL;
UINT16 bMercID = gTacticalStatus.Team[gbPlayerNum].bFirstID;
UINT16 bLastTeamID = gTacticalStatus.Team[gbPlayerNum].bLastID;
for ( pSoldier = MercPtrs[bMercID]; bMercID <= bLastTeamID; ++bMercID, ++pSoldier )
for ( ; bMercID <= bLastTeamID; ++bMercID )
{
SOLDIERTYPE* pSoldier = bMercID;
// everybody other merc in the same sector gets annoyed
if ( pSoldier->bActive && pSoldier->ubProfile != NO_PROFILE &&
pSoldier->sSectorX == sX && pSoldier->sSectorY == sY && pSoldier->bSectorZ == sZ &&
@@ -1971,10 +1973,11 @@ UINT8 GetRandomMercInSectorNotInList( INT16 sX, INT16 sY, INT8 sZ, std::vector<U
{
std::vector<UINT16> resultvector;
SOLDIERTYPE* pTeamSoldier = NULL;
UINT16 bMercID = gTacticalStatus.Team[gbPlayerNum].bFirstID;
UINT16 bLastTeamID = gTacticalStatus.Team[gbPlayerNum].bLastID;
for ( pTeamSoldier = MercPtrs[bMercID]; bMercID <= bLastTeamID; ++bMercID, ++pTeamSoldier )
SoldierID bMercID = gTacticalStatus.Team[gbPlayerNum].bFirstID;
SoldierID bLastTeamID = gTacticalStatus.Team[gbPlayerNum].bLastID;
for ( ; bMercID <= bLastTeamID; ++bMercID )
{
pTeamSoldier = bMercID;
// everybody other merc in the same sector gets annoyed
if ( pTeamSoldier->bActive && pTeamSoldier->ubProfile != NO_PROFILE &&
pTeamSoldier->sSectorX == sX && pTeamSoldier->sSectorY == sY && pTeamSoldier->bSectorZ == sZ &&
@@ -2017,10 +2020,11 @@ UINT8 GetFittingInterjectorProfile( UINT8 usEvent, UINT8 usProfileVictim, UINT8
std::vector<UINT8> profilevector;
SOLDIERTYPE* pTeamSoldier = NULL;
UINT16 bMercID = gTacticalStatus.Team[pSoldierVictim->bTeam].bFirstID;
UINT16 bLastTeamID = gTacticalStatus.Team[pSoldierVictim->bTeam].bLastID;
for ( pTeamSoldier = MercPtrs[bMercID]; bMercID <= bLastTeamID; ++bMercID, pTeamSoldier++ )
SoldierID bMercID = gTacticalStatus.Team[pSoldierVictim->bTeam].bFirstID;
SoldierID bLastTeamID = gTacticalStatus.Team[pSoldierVictim->bTeam].bLastID;
for ( ; bMercID <= bLastTeamID; ++bMercID )
{
pTeamSoldier = bMercID;
// only people that are here
if ( !pTeamSoldier->bActive || pTeamSoldier->bAssignment == IN_TRANSIT || pTeamSoldier->bAssignment == ASSIGNMENT_DEAD || pTeamSoldier->bAssignment == ASSIGNMENT_POW || pTeamSoldier->bAssignment == ASSIGNMENT_MINIEVENT || pTeamSoldier->bAssignment == ASSIGNMENT_REBELCOMMAND )
continue;
@@ -2156,10 +2160,11 @@ void HandleDynamicOpinionChange( SOLDIERTYPE* pSoldier, UINT8 usEvent, BOOLEAN f
UINT8 usEventUsed; // it is possible that the individual event is switched
SOLDIERTYPE* pTeamSoldier = NULL;
UINT16 bMercID = gTacticalStatus.Team[gbPlayerNum].bFirstID;
UINT16 bLastTeamID = gTacticalStatus.Team[gbPlayerNum].bLastID;
for ( pTeamSoldier = MercPtrs[bMercID]; bMercID <= bLastTeamID; ++bMercID, pTeamSoldier++ )
SoldierID bMercID = gTacticalStatus.Team[gbPlayerNum].bFirstID;
SoldierID bLastTeamID = gTacticalStatus.Team[gbPlayerNum].bLastID;
for ( ; bMercID <= bLastTeamID; ++bMercID )
{
pTeamSoldier = bMercID;
// we test several conditions before we allow adding an opinion
// other merc must be active, have a profile, be someone else and not be in transit or dead
if ( pTeamSoldier->bActive && pTeamSoldier->ubProfile != NO_PROFILE && pTeamSoldier->ubProfile != pSoldier->ubProfile &&
+1 -1
View File
@@ -480,7 +480,7 @@ void HandleDynamicOpinionTeaching( SOLDIERTYPE* pSoldier, UINT8 ubStat );
// some events require a 'leader' - merc the team will regard as the one being in charge, and subsequently being praised or damned for the way things develop
UINT32 GetSoldierLeaderRating( SOLDIERTYPE* pSoldier );
UINT16 GetBestMercLeaderInSector( INT16 sX, INT16 sY, INT8 sZ );
SoldierID GetBestMercLeaderInSector( INT16 sX, INT16 sY, INT8 sZ );
// get id of a random merc in a sector, provided one exists
UINT8 GetRandomMercInSectorNotInList( INT16 sX, INT16 sY, INT8 sZ, std::vector<UINT8> aTaboo, BOOLEAN fImpOnly );
+15 -11
View File
@@ -240,15 +240,16 @@ void DoneFadeInKilledQueen( void )
void DoneFadeOutKilledQueen( void )
{
INT32 cnt;
SoldierID cnt;
SOLDIERTYPE *pSoldier, *pTeamSoldier;
// For one, loop through our current squad and move them over
cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
// look for all mercs on the same team,
for ( pSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; cnt++,pSoldier++)
for (; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++cnt )
{
pSoldier = cnt;
// Are we in this sector, On the current squad?
if ( pSoldier->bActive && pSoldier->stats.bLife >= OKLIFE && pSoldier->bInSector && pSoldier->bAssignment == CurrentSquad( ) )
{
@@ -272,8 +273,9 @@ void DoneFadeOutKilledQueen( void )
cnt = gTacticalStatus.Team[ ENEMY_TEAM ].bFirstID;
// look for all mercs on the same team,
for ( pTeamSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ ENEMY_TEAM ].bLastID; cnt++,pTeamSoldier++)
for ( ; cnt <= gTacticalStatus.Team[ ENEMY_TEAM ].bLastID; ++cnt )
{
pSoldier = cnt;
// Are we active and in sector.....
if ( pTeamSoldier->bActive )
{
@@ -350,7 +352,7 @@ void HandleDoneLastKilledQueenQuote( )
void EndQueenDeathEndgameBeginEndCimenatic( )
{
INT32 cnt;
SoldierID cnt;
SOLDIERTYPE *pSoldier;
// Start end cimimatic....
@@ -360,8 +362,9 @@ void EndQueenDeathEndgameBeginEndCimenatic( )
cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
// look for all mercs on the same team,
for ( pSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; cnt++,pSoldier++)
for ( ; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++cnt )
{
pSoldier = cnt;
// Are we in this sector, On the current squad?
if ( pSoldier->bActive && pSoldier->stats.bLife >= OKLIFE && !AM_AN_EPC( pSoldier ) )
{
@@ -633,7 +636,7 @@ void FadeOutToLaptopOnEndGame( void )
void BeginHandleQueenBitchDeath( SOLDIERTYPE *pKillerSoldier, INT32 sGridNo, INT8 bLevel )
{
SOLDIERTYPE *pTeamSoldier;
INT32 cnt;
SoldierID cnt;
gpKillerSoldier = pKillerSoldier;
@@ -654,8 +657,9 @@ void BeginHandleQueenBitchDeath( SOLDIERTYPE *pKillerSoldier, INT32 sGridNo, INT
cnt = gTacticalStatus.Team[ CREATURE_TEAM ].bFirstID;
// look for all mercs on the same team,
for ( pTeamSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ CREATURE_TEAM ].bLastID; cnt++,pTeamSoldier++)
for ( ; cnt <= gTacticalStatus.Team[ CREATURE_TEAM ].bLastID; ++cnt )
{
pTeamSoldier = cnt;
// Are we active and ALIVE and in sector.....
if ( pTeamSoldier->bActive && pTeamSoldier->stats.bLife > 0 )
{
@@ -679,8 +683,7 @@ void BeginHandleQueenBitchDeath( SOLDIERTYPE *pKillerSoldier, INT32 sGridNo, INT
void HandleQueenBitchDeath( SOLDIERTYPE *pKillerSoldier, INT32 sGridNo, INT8 bLevel )
{
SOLDIERTYPE *pTeamSoldier;
INT32 cnt;
UINT16 ubKillerSoldierID = NOBODY;
SoldierID ubKillerSoldierID = NOBODY;
// Start victory music here...
SetMusicMode( MUSIC_TACTICAL_VICTORY );
@@ -693,13 +696,14 @@ void HandleQueenBitchDeath( SOLDIERTYPE *pKillerSoldier, INT32 sGridNo, INT8 bLe
// STEP 1 ) START ALL QUOTES GOING!
// OK - loop through all witnesses and see if they want to say something abou this...
cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
SoldierID cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
// run through list
for ( pTeamSoldier = MercPtrs[ cnt ]; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; cnt++,pTeamSoldier++ )
for ( ; cnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++cnt )
{
if ( cnt != ubKillerSoldierID )
{
pTeamSoldier = cnt;
if ( OK_INSECTOR_MERC( pTeamSoldier ) && !( pTeamSoldier->flags.uiStatusFlags & SOLDIER_GASSED ) && !AM_AN_EPC( pTeamSoldier ) )
{
if ( QuoteExp[ pTeamSoldier->ubProfile ].QuoteExpWitnessQueenBugDeath )
+4 -5
View File
@@ -1395,7 +1395,6 @@ BOOLEAN NewWayOfSavingEnemyAndCivliansToTempFile( INT16 sSectorX, INT16 sSectorY
{
SOLDIERINITNODE *curr;
SOLDIERTYPE *pSoldier;
INT32 i;
INT32 slots = 0;
UINT32 uiNumBytesWritten;
UINT32 uiTimeStamp;
@@ -1428,9 +1427,9 @@ BOOLEAN NewWayOfSavingEnemyAndCivliansToTempFile( INT16 sSectorX, INT16 sSectorY
//STEP ONE: Prep the soldiers for saving...
//modify the map's soldier init list to reflect the changes to the members still alive...
for( i = gTacticalStatus.Team[ ubStartID ].bFirstID; i <= gTacticalStatus.Team[ ubEndID ].bLastID; i++ )
for( SoldierID i = gTacticalStatus.Team[ ubStartID ].bFirstID; i <= gTacticalStatus.Team[ ubEndID ].bLastID; ++i )
{
pSoldier = MercPtrs[ i ];
pSoldier = i;
//make sure the person is active, alive, in the sector, and is not a profiled person
if( pSoldier && pSoldier->bActive /*&& pSoldier->bInSector*/ && pSoldier->stats.bLife && pSoldier->ubProfile == NO_PROFILE )
@@ -1584,9 +1583,9 @@ BOOLEAN NewWayOfSavingEnemyAndCivliansToTempFile( INT16 sSectorX, INT16 sSectorY
return TRUE;
}
for( i = gTacticalStatus.Team[ ubStartID ].bFirstID; i <= gTacticalStatus.Team[ ubEndID ].bLastID; i++ )
for( SoldierID i = gTacticalStatus.Team[ ubStartID ].bFirstID; i <= gTacticalStatus.Team[ ubEndID ].bLastID; ++i )
{
pSoldier = MercPtrs[ i ];
pSoldier = i;
// CJC: note that bInSector is not required; the civ could be offmap!
if( pSoldier->bActive /*&& pSoldier->bInSector*/ && pSoldier->stats.bLife )
{
+9 -6
View File
@@ -763,15 +763,16 @@ void EatFromInventory( SOLDIERTYPE *pSoldier, BOOLEAN fcanteensonly )
void HourlyFoodUpdate( void )
{
UINT16 bMercID, bLastTeamID;
SoldierID bMercID, bLastTeamID;
SOLDIERTYPE * pSoldier = NULL;
bMercID = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
bLastTeamID = gTacticalStatus.Team[ gbPlayerNum ].bLastID;
// loop through all mercs to calculate their morale
for ( pSoldier = MercPtrs[ bMercID ]; bMercID <= bLastTeamID; ++bMercID, ++pSoldier)
for ( ; bMercID <= bLastTeamID; ++bMercID )
{
pSoldier = bMercID;
//if the merc is active, and in Arulco
if ( pSoldier && pSoldier->bActive && !AM_AN_EPC(pSoldier) && pSoldier->ubProfile != ROBOT && !IsVehicle(pSoldier) && !(pSoldier->bAssignment == IN_TRANSIT || pSoldier->bAssignment == ASSIGNMENT_DEAD ) )
{
@@ -829,15 +830,16 @@ void SectorFillCanteens( void )
addtemperature = FOOD_WATER_POISONOUS_TEMPERATURE;
// first step: fill all canteens in inventories
UINT16 bMercID, bLastTeamID;
SoldierID bMercID, bLastTeamID;
SOLDIERTYPE * pSoldier = NULL;
bMercID = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
bLastTeamID = gTacticalStatus.Team[ gbPlayerNum ].bLastID;
// loop through all mercs
for ( pSoldier = MercPtrs[ bMercID ]; bMercID <= bLastTeamID; ++bMercID, pSoldier++)
for ( ; bMercID <= bLastTeamID; ++bMercID )
{
pSoldier = bMercID;
//if the merc is in this sector
if ( pSoldier->bActive && pSoldier->ubProfile != NO_PROFILE && pSoldier->bInSector && ( pSoldier->sSectorX == gWorldSectorX ) && ( pSoldier->sSectorY == gWorldSectorY ) && ( pSoldier->bSectorZ == gbWorldSectorZ) )
{
@@ -903,15 +905,16 @@ void SectorFillCanteens( void )
INT32 drumsize = Food[Item[pWaterDrum->usItem].foodtype].bDrinkPoints;
// first step: fill all canteens in inventories
UINT16 bMercID, bLastTeamID;
SoldierID bMercID, bLastTeamID;
SOLDIERTYPE * pSoldier = NULL;
bMercID = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
bLastTeamID = gTacticalStatus.Team[ gbPlayerNum ].bLastID;
// loop through all mercs
for ( pSoldier = MercPtrs[ bMercID ]; bMercID <= bLastTeamID; ++bMercID, pSoldier++)
for ( ; bMercID <= bLastTeamID; ++bMercID )
{
pSoldier = bMercID;
//if the merc is in this sector
if ( pSoldier->bActive && pSoldier->ubProfile != NO_PROFILE && pSoldier->bInSector && ( pSoldier->sSectorX == gWorldSectorX ) && ( pSoldier->sSectorY == gWorldSectorY ) && ( pSoldier->bSectorZ == gbWorldSectorZ) )
{
+2 -2
View File
@@ -439,9 +439,9 @@ void ProcessImplicationsOfPCMessingWithDoor( SOLDIERTYPE * pSoldier )
if ( (InARoom( pSoldier->sGridNo, &usRoom ) && IN_BROTHEL( usRoom )) || (gWorldSectorX == 5 && gWorldSectorY == MAP_ROW_D && gbWorldSectorZ == 0 && (pSoldier->sGridNo == gModSettings.iBrothelDoor1 || pSoldier->sGridNo == gModSettings.iBrothelDoor2 || pSoldier->sGridNo == gModSettings.iBrothelDoor3 ) ) )//11010,11177,11176
{
// see if a kingpin goon can see us
for (UINT16 ubLoop = gTacticalStatus.Team[ CIV_TEAM ].bFirstID; ubLoop <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; ubLoop++ )
for ( SoldierID ubLoop = gTacticalStatus.Team[ CIV_TEAM ].bFirstID; ubLoop <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; ++ubLoop )
{
pGoon = MercPtrs[ ubLoop ];
pGoon = ubLoop;
if ( pGoon->ubCivilianGroup == KINGPIN_CIV_GROUP && pGoon->bActive && pGoon->bInSector && pGoon->stats.bLife >= OKLIFE && pGoon->aiData.bOppList[ pSoldier->ubID ] == SEEN_CURRENTLY )
{
MakeCivHostile(pGoon);
+6 -5
View File
@@ -5389,15 +5389,16 @@ void UpdateGear()
if ( (guiCurrentScreen != GAME_SCREEN && guiCurrentScreen != MSG_BOX_SCREEN) )
return;
UINT16 bMercID, bLastTeamID;
SoldierID bMercID, bLastTeamID;
SOLDIERTYPE* pSoldier = NULL;
bMercID = gTacticalStatus.Team[gbPlayerNum].bFirstID;
bLastTeamID = gTacticalStatus.Team[gbPlayerNum].bLastID;
// loop through all mercs
for ( pSoldier = MercPtrs[bMercID]; bMercID <= bLastTeamID; ++bMercID, ++pSoldier )
for ( ; bMercID <= bLastTeamID; ++bMercID )
{
pSoldier = bMercID;
//if the merc is in this sector
if ( pSoldier->bActive && pSoldier->bInSector && (pSoldier->sSectorX == gWorldSectorX) && (pSoldier->sSectorY == gWorldSectorY) && (pSoldier->bSectorZ == gbWorldSectorZ) )
{
@@ -6735,7 +6736,7 @@ void CheckForPickedOwnership( void )
UINT8 ubProfile;
UINT8 ubCivGroup;
SOLDIERTYPE * pSoldier;
UINT16 ubLoop;
SoldierID ubLoop;
// LOOP THROUGH LIST TO FIND NODE WE WANT
GetItemPool( gsTempGridNo, &pItemPool, gpTempSoldier->pathing.bLevel );
@@ -6762,9 +6763,9 @@ void CheckForPickedOwnership( void )
pItemPool = pItemPool->pNext;
continue;
}
for ( ubLoop = gTacticalStatus.Team[ CIV_TEAM ].bFirstID; ubLoop <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; ubLoop++ )
for ( ubLoop = gTacticalStatus.Team[ CIV_TEAM ].bFirstID; ubLoop <= gTacticalStatus.Team[ CIV_TEAM ].bLastID; ++ubLoop )
{
pSoldier = MercPtrs[ ubLoop ];
pSoldier = ubLoop;
if ( pSoldier && pSoldier->ubCivilianGroup == ubCivGroup )
{
TestPotentialOwner( pSoldier );
+19 -17
View File
@@ -1403,15 +1403,16 @@ UINT32 UIHandleEndTurn( UI_EVENT *pUIEvent )
// WANNE: Ignore, so the game can continue ...
}
INT32 tcnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
SoldierID tcnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
SOLDIERTYPE *tS;
INT16 sXOffset, sYOffset;
INT32 sGridNo;
UINT16 usSightLimit=0;
for ( tS = MercPtrs[ tcnt ]; tcnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++tcnt, tS++ )
for ( ; tcnt <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; ++tcnt )
{
tS = tcnt;
if ( tS->stats.bLife >= OKLIFE && tS->sGridNo != NOWHERE && tS->bInSector )
{
//loop through all the gridnos that we are interested in
@@ -2113,17 +2114,17 @@ UINT32 UIHandleCWait( UI_EVENT *pUIEvent )
// SelectedMercCanAffordMove
UINT32 UIHandleCMoveMerc( UI_EVENT *pUIEvent )
{
INT32 usMapPos;
SOLDIERTYPE *pSoldier;
INT32 sDestGridNo;
INT32 sActionGridNo;
STRUCTURE *pStructure;
UINT8 ubDirection = 0xff;
BOOLEAN fAllMove;
UINT16 bLoop;
LEVELNODE *pIntTile;
INT32 sIntTileGridNo;
BOOLEAN fOldFastMove;
INT32 usMapPos;
SOLDIERTYPE *pSoldier;
INT32 sDestGridNo;
INT32 sActionGridNo;
STRUCTURE *pStructure;
UINT8 ubDirection = 0xff;
BOOLEAN fAllMove;
SoldierID bLoop;
LEVELNODE *pIntTile;
INT32 sIntTileGridNo;
BOOLEAN fOldFastMove;
if ( gusSelectedSoldier != NOBODY )
{
@@ -2144,13 +2145,14 @@ UINT32 UIHandleCMoveMerc( UI_EVENT *pUIEvent )
// Loop through all mercs and make go!
// TODO: Only our squad!
for (bLoop=gTacticalStatus.Team[gbPlayerNum].bFirstID, pSoldier=MercPtrs[bLoop]; bLoop <= gTacticalStatus.Team[gbPlayerNum].bLastID; bLoop++, pSoldier++)
for (bLoop=gTacticalStatus.Team[gbPlayerNum].bFirstID; bLoop <= gTacticalStatus.Team[gbPlayerNum].bLastID; ++bLoop )
{
pSoldier = bLoop;
if ( OK_CONTROLLABLE_MERC( pSoldier ) && pSoldier->bAssignment == CurrentSquad( ) && !pSoldier->flags.fMercAsleep )
{
// If we can't be controlled, returninvalid...
if ( pSoldier->flags.uiStatusFlags & SOLDIER_ROBOT )
{
// If we can't be controlled, returninvalid...
if ( pSoldier->flags.uiStatusFlags & SOLDIER_ROBOT )
{
if ( !pSoldier->CanRobotBeControlled( ) )
{
continue;