mirror of
https://github.com/1dot13/source.git
synced 2026-07-22 13:40:22 +02:00
Use SoldierID
This commit is contained in:
+35
-31
@@ -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
@@ -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
@@ -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 ) )
|
||||
{
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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);
|
||||
|
||||
@@ -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 )
|
||||
|
||||
@@ -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 )
|
||||
|
||||
@@ -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 &&
|
||||
|
||||
@@ -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 ) )
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
@@ -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 )
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 )
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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 );
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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 )
|
||||
{
|
||||
|
||||
@@ -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 ) )
|
||||
|
||||
@@ -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 ) )
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 &&
|
||||
|
||||
@@ -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
@@ -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 )
|
||||
|
||||
@@ -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
@@ -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) )
|
||||
{
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user