mirror of
https://github.com/1dot13/source.git
synced 2026-09-09 14:46:05 +02:00
Use SoldierID
This commit is contained in:
+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