More conversions to SoldierID

This commit is contained in:
Asdow
2025-06-27 19:58:20 +03:00
parent 36a84ffe59
commit 1a8db5d15b
12 changed files with 111 additions and 125 deletions
@@ -39,7 +39,7 @@ namespace AI
if(i.event_type_ == AIInputData::auditive_event)
return os<<"sound: "<<i.noise_maker_<<" made a sound at "<<i.grid_no_<<", lvl "<<i.level_<<" vol "<<i.volume_<<" type "<<i.type_;
if(i.event_type_ == AIInputData::visual_event)
return os<<"visual: "<<(int)i.opponent_->ubID<<" was seen at "<<i.grid_no_<<", lvl "<<i.level_<<" caller1 "<<i.caller1_<<" caller2 "<<i.caller2_;
return os<<"visual: "<<i.opponent_->ubID.i<<" was seen at "<<i.grid_no_<<", lvl "<<i.level_<<" caller1 "<<i.caller1_<<" caller2 "<<i.caller2_;
return os;
}
+80 -94
View File
@@ -655,7 +655,6 @@ void ShutdownTacticalEngine( )
BOOLEAN InitOverhead( )
{
UINT32 cnt;
UINT16 cnt2;
// Set pointers list
for( cnt = 0; cnt < TOTAL_SOLDIERS; cnt++ )
@@ -751,9 +750,9 @@ BOOLEAN InitOverhead( )
gTacticalStatus.Team[ cnt ].bAwareOfOpposition = FALSE;
// set team values in soldier structures for all who are on this team
for ( cnt2 = gTacticalStatus.Team[ cnt ].bFirstID; cnt2 <= gTacticalStatus.Team[ cnt ].bLastID; cnt2++ )
for (SoldierID cnt2 = gTacticalStatus.Team[ cnt ].bFirstID; cnt2 <= gTacticalStatus.Team[ cnt ].bLastID; ++cnt2 )
{
MercPtrs[ cnt2 ]->bTeam = (INT8) cnt;
cnt2->bTeam = (INT8) cnt;
}
}
@@ -3962,7 +3961,7 @@ void HandleNPCTeamMemberDeath( SOLDIERTYPE *pSoldierOld )
#ifdef JA2UB
if ( pSoldierOld->ubProfile == MORRIS_UB )
{
INT16 bSoldierID;
SoldierID bSoldierID;
SOLDIERTYPE* pOther = FindSoldierByProfileID( MORRIS_UB, FALSE );
if ( pOther )
{
@@ -3975,10 +3974,10 @@ void HandleNPCTeamMemberDeath( SOLDIERTYPE *pSoldierOld )
bSoldierID = RandomSoldierIdFromNewMercsOnPlayerTeam();
//if there is any
if( bSoldierID != -1 )
if( bSoldierID != NOBODY )
{
//say the MORRIS dead quote
TacticalCharacterDialogue( &Menptr[ bSoldierID ], QUOTE_LEARNED_TO_HATE_ON_TEAM_WONT_RENEW );
TacticalCharacterDialogue( bSoldierID, QUOTE_LEARNED_TO_HATE_ON_TEAM_WONT_RENEW );
}
}
// Ja25no queen
@@ -6860,10 +6859,8 @@ BOOLEAN WeSawSomeoneThisTurn( )
void SayBattleSoundFromAnyBodyInSector( INT32 iBattleSnd )
{
// WDS - make number of mercenaries, etc. be configurable
// UINT8 ubMercsInSector[ CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS ] = { 0 };
std::vector<UINT16> ubMercsInSector (CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS, 0);
SoldierID ubMercsInSector[ CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS ] = {};
UINT16 ubNumMercs = 0;
UINT16 ubChosenMerc;
SOLDIERTYPE *pTeamSoldier;
// Loop through all our guys and randomly say one from someone in our sector
@@ -6878,7 +6875,7 @@ void SayBattleSoundFromAnyBodyInSector( INT32 iBattleSnd )
// 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 )
{
ubMercsInSector[ ubNumMercs ] = (UINT16)cnt;
ubMercsInSector[ ubNumMercs ] = cnt;
ubNumMercs++;
}
}
@@ -6886,9 +6883,9 @@ void SayBattleSoundFromAnyBodyInSector( INT32 iBattleSnd )
// If we are > 0
if ( ubNumMercs > 0 )
{
ubChosenMerc = ubMercsInSector[ (UINT16)Random( ubNumMercs ) ];
SoldierID ubChosenMerc = ubMercsInSector[ (UINT16)Random( ubNumMercs ) ];
MercPtrs[ ubChosenMerc ]->DoMercBattleSound( (UINT8)iBattleSnd );
ubChosenMerc->DoMercBattleSound( (UINT8)iBattleSnd );
}
}
@@ -7945,10 +7942,9 @@ BOOLEAN CheckForEndOfBattle( BOOLEAN fAnEnemyRetreated )
void CycleThroughKnownEnemies( BOOLEAN backward )
{
// static to indicate last position we were at:
SOLDIERTYPE *pSoldier;
static BOOLEAN fFirstTime = TRUE;
static UINT16 usStartToLook;
UINT32 cnt;
static BOOLEAN fFirstTime = TRUE;
static SoldierID usStartToLook;
SoldierID enemy;
BOOLEAN fEnemyBehindStartLook = FALSE;
BOOLEAN fEnemiesFound = FALSE;
@@ -7959,30 +7955,31 @@ void CycleThroughKnownEnemies( BOOLEAN backward )
if(backward)
usStartToLook = TOTAL_SOLDIERS;
else
usStartToLook = gTacticalStatus.Team[ gbPlayerNum ].bLastID;
usStartToLook = gTacticalStatus.Team[ gbPlayerNum ].bLastID;
}
if(backward)
for ( cnt = TOTAL_SOLDIERS-1 , pSoldier = MercPtrs[ cnt ]; cnt >= gTacticalStatus.Team[ gbPlayerNum ].bLastID; cnt--, pSoldier-- )
if (backward)
{
for ( enemy = TOTAL_SOLDIERS-1; enemy >= gTacticalStatus.Team[ gbPlayerNum ].bLastID; --enemy )
{
// try to find first active, OK enemy
if ( pSoldier->bActive && pSoldier->bInSector && !pSoldier->aiData.bNeutral && (pSoldier->bSide != gbPlayerNum) && (pSoldier->stats.bLife > 0) )
if ( enemy->bActive && enemy->bInSector && !enemy->aiData.bNeutral && (enemy->bSide != gbPlayerNum) && (enemy->stats.bLife > 0) )
{
if ( pSoldier->bVisible != -1 )
if ( enemy->bVisible != -1 )
{
fEnemiesFound = TRUE;
// If we are < ok start, this is the one!
if ( cnt < usStartToLook )
if ( enemy < usStartToLook )
{
usStartToLook = (UINT16)cnt;
usStartToLook = enemy;
// Locate to!
//LocateSoldier( pSoldier->ubID, 1 );
//ATE: Change to Slide To...
SlideTo( pSoldier->ubID, SETANDREMOVEPREVIOUSLOCATOR );
SlideTo( enemy, SETANDREMOVEPREVIOUSLOCATOR );
return;
}
else
@@ -7992,31 +7989,34 @@ void CycleThroughKnownEnemies( BOOLEAN backward )
}
}
}
}
else
for ( cnt = gTacticalStatus.Team[ gbPlayerNum ].bLastID, pSoldier = MercPtrs[ cnt ]; cnt < TOTAL_SOLDIERS; cnt++, pSoldier++ )
{
// try to find first active, OK enemy
if ( pSoldier->bActive && pSoldier->bInSector && !pSoldier->aiData.bNeutral && (pSoldier->bSide != gbPlayerNum) && (pSoldier->stats.bLife > 0) )
for ( enemy = gTacticalStatus.Team[gbPlayerNum].bLastID; enemy < TOTAL_SOLDIERS; ++enemy )
{
if ( pSoldier->bVisible != -1 )
// try to find first active, OK enemy
if ( enemy->bActive && enemy->bInSector && !enemy->aiData.bNeutral && (enemy->bSide != gbPlayerNum) && (enemy->stats.bLife > 0) )
{
fEnemiesFound = TRUE;
// If we are > ok start, this is the one!
if ( cnt > usStartToLook )
if (enemy->bVisible != -1)
{
usStartToLook = (UINT16)cnt;
fEnemiesFound = TRUE;
// Locate to!
//LocateSoldier( pSoldier->ubID, 1 );
// If we are > ok start, this is the one!
if (enemy > usStartToLook)
{
usStartToLook = enemy;
//ATE: Change to Slide To...
SlideTo( pSoldier->ubID, SETANDREMOVEPREVIOUSLOCATOR );
return;
}
else
{
fEnemyBehindStartLook = TRUE;
// Locate to!
//LocateSoldier( pSoldier->ubID, 1 );
//ATE: Change to Slide To...
SlideTo(enemy, SETANDREMOVEPREVIOUSLOCATOR);
return;
}
else
{
fEnemyBehindStartLook = TRUE;
}
}
}
}
@@ -8038,39 +8038,34 @@ void CycleThroughKnownEnemies( BOOLEAN backward )
}
else
{
usStartToLook = gTacticalStatus.Team[ gbPlayerNum ].bLastID;
CycleThroughKnownEnemies( );
}
usStartToLook = gTacticalStatus.Team[ gbPlayerNum ].bLastID;
CycleThroughKnownEnemies( );
}
}
}
void CycleVisibleEnemies( SOLDIERTYPE *pSrcSoldier )
{
// static to indicate last position we were at:
SOLDIERTYPE *pSoldier;
UINT16 usStartToLook;
UINT32 cnt;
SoldierID enemy;
SoldierID usStartToLook = gTacticalStatus.Team[ gbPlayerNum ].bLastID;
usStartToLook = gTacticalStatus.Team[ gbPlayerNum ].bLastID;
for ( cnt = gTacticalStatus.Team[ gbPlayerNum ].bLastID, pSoldier = MercPtrs[ cnt ]; cnt < TOTAL_SOLDIERS; cnt++, pSoldier++ )
for ( enemy = gTacticalStatus.Team[ gbPlayerNum ].bLastID; enemy < TOTAL_SOLDIERS; ++enemy )
{
// try to find first active, OK enemy
if ( pSoldier->bActive && pSoldier->bInSector && !pSoldier->aiData.bNeutral && (pSoldier->bSide != gbPlayerNum) && (pSoldier->stats.bLife > 0) )
if ( enemy->bActive && enemy->bInSector && !enemy->aiData.bNeutral && (enemy->bSide != gbPlayerNum) && (enemy->stats.bLife > 0) )
{
if ( pSrcSoldier->aiData.bOppList[ pSoldier->ubID ] == SEEN_CURRENTLY )
if ( pSrcSoldier->aiData.bOppList[ enemy ] == SEEN_CURRENTLY )
{
// If we are > ok start, this is the one!
if ( cnt > pSrcSoldier->ubLastEnemyCycledID )
if ( enemy > pSrcSoldier->ubLastEnemyCycledID )
{
pSrcSoldier->ubLastEnemyCycledID = (UINT16)cnt;
pSrcSoldier->ubLastEnemyCycledID = enemy;
//ATE: Change to Slide To...
SlideTo( pSoldier->ubID, SETANDREMOVEPREVIOUSLOCATOR );
SlideTo( enemy, SETANDREMOVEPREVIOUSLOCATOR );
ChangeInterfaceLevel( pSoldier->pathing.bLevel );
ChangeInterfaceLevel( enemy->pathing.bLevel );
return;
}
}
@@ -8082,58 +8077,51 @@ void CycleVisibleEnemies( SOLDIERTYPE *pSrcSoldier )
usStartToLook = gTacticalStatus.Team[ gbPlayerNum ].bLastID;
for ( cnt = gTacticalStatus.Team[ gbPlayerNum ].bLastID, pSoldier = MercPtrs[ cnt ]; cnt < TOTAL_SOLDIERS; cnt++, pSoldier++ )
for ( enemy = gTacticalStatus.Team[ gbPlayerNum ].bLastID; enemy < TOTAL_SOLDIERS; ++enemy )
{
// try to find first active, OK enemy
if ( pSoldier->bActive && pSoldier->bInSector && !pSoldier->aiData.bNeutral && (pSoldier->bSide != gbPlayerNum) && (pSoldier->stats.bLife > 0) )
if (enemy->bActive && enemy->bInSector && !enemy->aiData.bNeutral && (enemy->bSide != gbPlayerNum) && (enemy->stats.bLife > 0) )
{
if ( pSrcSoldier->aiData.bOppList[ pSoldier->ubID ] == SEEN_CURRENTLY )
if ( pSrcSoldier->aiData.bOppList[ enemy ] == SEEN_CURRENTLY )
{
// If we are > ok start, this is the one!
if ( cnt > pSrcSoldier->ubLastEnemyCycledID )
if ( enemy > pSrcSoldier->ubLastEnemyCycledID )
{
pSrcSoldier->ubLastEnemyCycledID = (UINT16)cnt;
pSrcSoldier->ubLastEnemyCycledID = enemy;
//ATE: Change to Slide To...
SlideTo( pSoldier->ubID, SETANDREMOVEPREVIOUSLOCATOR );
SlideTo(enemy, SETANDREMOVEPREVIOUSLOCATOR );
ChangeInterfaceLevel( pSoldier->pathing.bLevel );
ChangeInterfaceLevel( enemy->pathing.bLevel );
return;
}
}
}
}
}
void CycleVisibleEnemiesBackward( SOLDIERTYPE *pSrcSoldier )
{
// static to indicate last position we were at:
SOLDIERTYPE *pSoldier;
UINT16 usStartToLook;
UINT32 cnt;
SoldierID enemy;
SoldierID usStartToLook = gTacticalStatus.Team[ gbPlayerNum ].bLastID;
usStartToLook = gTacticalStatus.Team[ gbPlayerNum ].bLastID;
// for ( cnt = gTacticalStatus.Team[ gbPlayerNum ].bLastID, pSoldier = MercPtrs[ cnt ]; cnt < TOTAL_SOLDIERS; cnt++, pSoldier++ )
for ( cnt = TOTAL_SOLDIERS-1, pSoldier = MercPtrs[ cnt ]; cnt >= gTacticalStatus.Team[ gbPlayerNum ].bLastID ; cnt--, pSoldier-- )
for ( enemy = TOTAL_SOLDIERS-1; enemy >= gTacticalStatus.Team[ gbPlayerNum ].bLastID ; --enemy )
{
// try to find first active, OK enemy
if ( pSoldier->bActive && pSoldier->bInSector && !pSoldier->aiData.bNeutral && (pSoldier->bSide != gbPlayerNum) && (pSoldier->stats.bLife > 0) )
if ( enemy->bActive && enemy->bInSector && !enemy->aiData.bNeutral && (enemy->bSide != gbPlayerNum) && (enemy->stats.bLife > 0) )
{
if ( pSrcSoldier->aiData.bOppList[ pSoldier->ubID ] == SEEN_CURRENTLY )
if ( pSrcSoldier->aiData.bOppList[ enemy ] == SEEN_CURRENTLY )
{
// If we are > ok start, this is the one!
if ( cnt < pSrcSoldier->ubLastEnemyCycledID )
if ( enemy < pSrcSoldier->ubLastEnemyCycledID )
{
pSrcSoldier->ubLastEnemyCycledID = (UINT16)cnt;
pSrcSoldier->ubLastEnemyCycledID = enemy;
//ATE: Change to Slide To...
SlideTo( pSoldier->ubID, SETANDREMOVEPREVIOUSLOCATOR );
SlideTo( enemy, SETANDREMOVEPREVIOUSLOCATOR );
ChangeInterfaceLevel( pSoldier->pathing.bLevel );
ChangeInterfaceLevel( enemy->pathing.bLevel );
return;
}
}
@@ -8145,24 +8133,23 @@ void CycleVisibleEnemiesBackward( SOLDIERTYPE *pSrcSoldier )
usStartToLook = gTacticalStatus.Team[ gbPlayerNum ].bLastID;
//for ( cnt = gTacticalStatus.Team[ gbPlayerNum ].bLastID, pSoldier = MercPtrs[ cnt ]; cnt >= 0; cnt--, pSoldier-- )
for ( cnt = TOTAL_SOLDIERS-1, pSoldier = MercPtrs[ cnt ]; cnt >= gTacticalStatus.Team[ gbPlayerNum ].bLastID; cnt--, pSoldier-- )
for ( enemy = TOTAL_SOLDIERS-1; enemy >= gTacticalStatus.Team[ gbPlayerNum ].bLastID; --enemy )
{
// try to find first active, OK enemy
if ( pSoldier->bActive && pSoldier->bInSector && !pSoldier->aiData.bNeutral && (pSoldier->bSide != gbPlayerNum) && (pSoldier->stats.bLife > 0) )
if ( enemy->bActive && enemy->bInSector && !enemy->aiData.bNeutral && (enemy->bSide != gbPlayerNum) && (enemy->stats.bLife > 0) )
{
if ( pSrcSoldier->aiData.bOppList[ pSoldier->ubID ] == SEEN_CURRENTLY )
if ( pSrcSoldier->aiData.bOppList[ enemy ] == SEEN_CURRENTLY )
{
// If we are > ok start, this is the one!
if ( cnt < pSrcSoldier->ubLastEnemyCycledID )
if ( enemy < pSrcSoldier->ubLastEnemyCycledID )
{
pSrcSoldier->ubLastEnemyCycledID = (UINT16)cnt;
pSrcSoldier->ubLastEnemyCycledID = enemy;
//ATE: Change to Slide To...
SlideTo( pSoldier->ubID, SETANDREMOVEPREVIOUSLOCATOR );
SlideTo( enemy, SETANDREMOVEPREVIOUSLOCATOR );
ChangeInterfaceLevel( pSoldier->pathing.bLevel );
ChangeInterfaceLevel( enemy->pathing.bLevel );
return;
}
}
@@ -10492,8 +10479,7 @@ BOOLEAN HostileCreaturesPresent()
void HandleCreatureTenseQuote( )
{
// WDS - make number of mercenaries, etc. be configurable
// UINT8 ubMercsInSector[ CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS ] = { 0 };
std::vector<UINT16> ubMercsInSector (CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS, 0);
SoldierID ubMercsInSector[ CODE_MAXIMUM_NUMBER_OF_PLAYER_SLOTS ] = {};
UINT16 ubNumMercs = 0;
UINT16 ubChosenMerc;
SOLDIERTYPE *pTeamSoldier;
@@ -10523,7 +10509,7 @@ void HandleCreatureTenseQuote( )
// 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 )
{
ubMercsInSector[ ubNumMercs ] = (UINT16)cnt;
ubMercsInSector[ ubNumMercs ] = cnt;
ubNumMercs++;
}
}
@@ -10533,7 +10519,7 @@ void HandleCreatureTenseQuote( )
{
ubChosenMerc = (UINT16)Random( ubNumMercs );
DoCreatureTensionQuote ( MercPtrs[ ubMercsInSector[ ubChosenMerc ] ] );
DoCreatureTensionQuote ( ubMercsInSector[ ubChosenMerc ] );
}
// Adjust delay....
+1 -1
View File
@@ -69,7 +69,7 @@ struct TacticalStatusType
INT8 fPanicFlags;
INT32 sPanicTriggerGridNoUnused;
INT16 sHandGrid;
UINT16 ubSpottersCalledForBy;
SoldierID ubSpottersCalledForBy;
SoldierID ubTheChosenOne;
UINT32 uiTimeOfLastInput;
UINT32 uiTimeSinceDemoOn;
+1 -1
View File
@@ -992,7 +992,7 @@ SOLDIERTYPE& SOLDIERTYPE::operator=(const OLDSOLDIERTYPE_101& src)
this->bRegenBoostersUsedToday = src.bRegenBoostersUsedToday;
this->bNumPelletsHitBy = src.bNumPelletsHitBy;
this->sSkillCheckGridNo = src.sSkillCheckGridNo;
this->ubLastEnemyCycledID = src.ubLastEnemyCycledID;
this->ubLastEnemyCycledID = static_cast<UINT16>( src.ubLastEnemyCycledID );
this->ubPrevSectorID = src.ubPrevSectorID;
this->ubNumTilesMovesSinceLastForget = src.ubNumTilesMovesSinceLastForget;
+1 -1
View File
@@ -1453,7 +1453,7 @@ public:
INT8 bRegenBoostersUsedToday; // Flugente: not used anymore!
INT8 bNumPelletsHitBy;
INT32 sSkillCheckGridNo;
UINT16 ubLastEnemyCycledID;
SoldierID ubLastEnemyCycledID;
UINT8 ubPrevSectorID;
UINT8 ubNumTilesMovesSinceLastForget;
+2 -2
View File
@@ -107,7 +107,7 @@ BOOLEAN InterruptsAllowed = TRUE;
BOOLEAN gfHiddenInterrupt = FALSE;
SoldierID gubLastInterruptedGuy = NOBODY;
extern UINT16 gsWhoThrewRock;
extern SoldierID gsWhoThrewRock;
extern UINT8 gubSightFlags;
typedef struct
@@ -115,7 +115,7 @@ typedef struct
UINT16 ubOutOfTurnPersons;
SoldierID InterruptOnlyGuynum;
INT16 sWhoThrewRock;
SoldierID sWhoThrewRock;
BOOLEAN InterruptsAllowed;
BOOLEAN fHiddenInterrupt;
SoldierID ubLastInterruptedGuy;
+8 -8
View File
@@ -248,7 +248,7 @@ INT8 gbSmellStrength[3] =
};
UINT16 gsWhoThrewRock = NOBODY;
SoldierID gsWhoThrewRock = NOBODY;
// % values of sighting distance at various light levels
//DBrot: use gGameExternalOptions.ubBrightnessVisionMod instead
@@ -1056,7 +1056,7 @@ void OurTeamRadiosRandomlyAbout(UINT16 ubAbout)
INT16 TeamNoLongerSeesMan( UINT8 ubTeam, SOLDIERTYPE *pOpponent, UINT16 ubExcludeID, INT8 bIteration )
INT16 TeamNoLongerSeesMan( UINT8 ubTeam, SOLDIERTYPE *pOpponent, SoldierID ubExcludeID, INT8 bIteration )
{
SOLDIERTYPE *pMate;
SoldierID bLoop = gTacticalStatus.Team[ubTeam].bFirstID;
@@ -1833,7 +1833,7 @@ void HandleManNoLongerSeen( SOLDIERTYPE * pSoldier, SOLDIERTYPE * pOpponent, INT
{
// check if I was the only one who was seeing this guy (exlude ourselves)
// THIS MUST HAPPEN EVEN FOR ENEMIES, TO MAKE THEIR PUBLIC opplist DECAY!
if (TeamNoLongerSeesMan(pSoldier->bTeam,pOpponent,pSoldier->ubID, 0 ))
if (TeamNoLongerSeesMan(pSoldier->bTeam, pOpponent, pSoldier->ubID, 0))
{
#ifdef TESTOPPLIST
DebugMsg( TOPIC_JA2OPPLIST, DBG_LEVEL_3, String( "TeamNoLongerSeesMan: ID %d(%S) to ID %d",pSoldier->ubID,pSoldier->name,pOpponent->ubID) );
@@ -5720,7 +5720,7 @@ void ProcessNoise( SoldierID ubNoiseMaker, INT32 sGridNo, INT8 bLevel, UINT8 ubT
UINT8 ubLoudestEffVolume, ubEffVolume;
// UINT8 ubPlayVolume;
UINT8 ubSourceTerrType;
UINT16 ubSource;
SoldierID ubSource;
INT8 bTellPlayer = FALSE, bHeard, bSeen;
SoldierID ubHeardLoudestBy = NOBODY;
UINT8 ubNoiseDir = 0xff, ubLoudestNoiseDir = 0xff;
@@ -7718,9 +7718,9 @@ void SetWatchedLocAsUsed( UINT16 ubID, INT32 sGridNo, INT8 bLevel )
BOOLEAN WatchedLocLocationIsEmpty( INT32 sGridNo, INT8 bLevel, INT8 bTeam )
{
// look to see if there is anyone near the watched loc who is not on this team
UINT16 ubID;
INT32 sTempGridNo;
INT16 sX, sY;
SoldierID ubID;
INT32 sTempGridNo;
INT16 sX, sY;
for ( sY = -WATCHED_LOC_RADIUS; sY <= WATCHED_LOC_RADIUS; sY++ )
{
@@ -7732,7 +7732,7 @@ BOOLEAN WatchedLocLocationIsEmpty( INT32 sGridNo, INT8 bLevel, INT8 bTeam )
continue;
}
ubID = WhoIsThere2( sTempGridNo, bLevel );
if ( ubID != NOBODY && MercPtrs[ ubID ]->bTeam != bTeam )
if ( ubID != NOBODY && ubID->bTeam != bTeam )
{
return( FALSE );
}
+6 -5
View File
@@ -830,7 +830,8 @@ INT16 RandomFriendWithin(SOLDIERTYPE *pSoldier)
{
UINT32 uiLoop;
UINT16 usMaxDist;
UINT16 ubFriendCount, ubFriendIDs[MAXMERCS], ubFriendID;
UINT16 ubFriendCount;
SoldierID ubFriendIDs[MAXMERCS], ubFriendID;
UINT8 ubDirection;
UINT8 ubDirsLeft;
BOOLEAN fDirChecked[8];
@@ -5929,14 +5930,14 @@ INT32 RandomizeOpponentLocation(INT32 sSpot, SOLDIERTYPE *pOpponent, INT16 sMaxD
}
// first call PrepareThreatlist to make threat list
UINT16 ClosestKnownThreatID(SOLDIERTYPE *pSoldier, UINT32 uiThreatCnt)
SoldierID ClosestKnownThreatID(SOLDIERTYPE *pSoldier, UINT32 uiThreatCnt)
{
CHECKF(pSoldier);
UINT32 uiLoop;
INT32 sClosestOpponent = NOWHERE;
INT32 iRange, iClosestRange;
UINT16 ubClosestOpponentID = NOBODY;
SoldierID ubClosestOpponentID = NOBODY;
// use global defined threat list
for (uiLoop = 0; uiLoop < uiThreatCnt; uiLoop++)
@@ -5959,14 +5960,14 @@ UINT16 ClosestKnownThreatID(SOLDIERTYPE *pSoldier, UINT32 uiThreatCnt)
}
// first call PrepareThreatlist to make threat list
UINT16 ClosestSeenThreatID(SOLDIERTYPE *pSoldier, UINT32 uiThreatCnt, UINT8 ubMax)
SoldierID ClosestSeenThreatID(SOLDIERTYPE *pSoldier, UINT32 uiThreatCnt, UINT8 ubMax)
{
CHECKF(pSoldier);
UINT32 uiLoop;
INT32 sClosestOpponent = NOWHERE;
INT32 iRange, iClosestRange;
UINT16 ubClosestOpponentID = NOBODY;
SoldierID ubClosestOpponentID = NOBODY;
// use global defined threat list
for (uiLoop = 0; uiLoop < uiThreatCnt; uiLoop++)
+4 -4
View File
@@ -2909,7 +2909,7 @@ BOOLEAN PCDoesFirstAidOnNPC( UINT8 ubNPC )
void TriggerClosestMercWhoCanSeeNPC( UINT8 ubNPC, NPCQuoteInfo *pQuotePtr )
{
// Loop through all mercs, gather closest mercs who can see and trigger one!
UINT16 ubMercsInSector[CODE_MAXIMUM_NUMBER_OF_PLAYER_MERCS] = { 0 }; //std::vector would probably be better here
SoldierID ubMercsInSector[CODE_MAXIMUM_NUMBER_OF_PLAYER_MERCS] = {}; //std::vector would probably be better here
UINT16 ubNumMercs = 0;
UINT16 ubChosenMerc;
SOLDIERTYPE *pTeamSoldier, *pSoldier;
@@ -2929,7 +2929,7 @@ void TriggerClosestMercWhoCanSeeNPC( UINT8 ubNPC, NPCQuoteInfo *pQuotePtr )
// Add guy if he's a candidate...
if ( OK_INSECTOR_MERC( pTeamSoldier ) && pTeamSoldier->aiData.bOppList[ pSoldier->ubID ] == SEEN_CURRENTLY )
{
ubMercsInSector[ ubNumMercs ] = (UINT16)cnt;
ubMercsInSector[ ubNumMercs ] = cnt;
ubNumMercs++;
}
}
@@ -2945,11 +2945,11 @@ void TriggerClosestMercWhoCanSeeNPC( UINT8 ubNPC, NPCQuoteInfo *pQuotePtr )
// If 64, do something special
if ( pQuotePtr->ubTriggerNPCRec == QUOTE_RESPONSE_TO_MIGUEL_SLASH_QUOTE_MERC_OR_RPC_LETGO )
{
TacticalCharacterDialogueWithSpecialEvent( MercPtrs[ ubMercsInSector[ ubChosenMerc ] ], pQuotePtr->ubTriggerNPCRec, DIALOGUE_SPECIAL_EVENT_PCTRIGGERNPC, 57, 6 );
TacticalCharacterDialogueWithSpecialEvent( ubMercsInSector[ ubChosenMerc ], pQuotePtr->ubTriggerNPCRec, DIALOGUE_SPECIAL_EVENT_PCTRIGGERNPC, 57, 6 );
}
else
{
TacticalCharacterDialogue( MercPtrs[ ubMercsInSector[ ubChosenMerc ] ], pQuotePtr->ubTriggerNPCRec );
TacticalCharacterDialogue( ubMercsInSector[ ubChosenMerc ], pQuotePtr->ubTriggerNPCRec );
}
}
+2 -2
View File
@@ -315,8 +315,8 @@ BOOLEAN AICheckIsFlanking( SOLDIERTYPE *pSoldier );
INT8 CalcMoraleNew(SOLDIERTYPE *pSoldier);
UINT32 PrepareThreatlist(SOLDIERTYPE *pSoldier);
UINT16 ClosestSeenThreatID(SOLDIERTYPE *pSoldier, UINT32 uiThreatCnt, UINT8 ubMax = SEEN_CURRENTLY); // first call PrepareThreatlist to make threat list
UINT16 ClosestKnownThreatID(SOLDIERTYPE *pSoldier, UINT32 uiThreatCnt); // first call PrepareThreatlist to make threat list
SoldierID ClosestSeenThreatID(SOLDIERTYPE *pSoldier, UINT32 uiThreatCnt, UINT8 ubMax = SEEN_CURRENTLY); // first call PrepareThreatlist to make threat list
SoldierID ClosestKnownThreatID(SOLDIERTYPE *pSoldier, UINT32 uiThreatCnt); // first call PrepareThreatlist to make threat list
BOOLEAN ProneSightCoverAtSpot(SOLDIERTYPE *pSoldier, INT32 sSpot, BOOLEAN fUnlimited);
BOOLEAN SightCoverAtSpot(SOLDIERTYPE *pSoldier, INT32 sSpot, BOOLEAN fUnlimited);
+1 -1
View File
@@ -204,7 +204,7 @@ INT32 NewSmokeEffect( INT32 sGridNo, UINT16 usItem, INT8 bLevel, SoldierID ubOwn
// OJW - 20091027 - Syncronising smoke effect start for multiplayer
if (is_networked && is_client)
{
SOLDIERTYPE* pSoldier = MercPtrs[ubOwner];
SOLDIERTYPE* pSoldier = ubOwner;
if (pSoldier != NULL)
{
if (pSoldier->bTeam == 0 || (pSoldier->bTeam == 1 && is_server))
+4 -5
View File
@@ -1378,11 +1378,10 @@ void RenderOverheadOverlays()
{
UINT32 uiDestPitchBYTES;
WORLDITEM *pWorldItem;
UINT32 i;
SOLDIERTYPE *pSoldier;
HVOBJECT hVObject;
INT16 sX, sY;
UINT16 end;
SoldierID id, end;
UINT16 usLineColor=0;
UINT8 *pDestBuf;
UINT8 ubPassengers = 0;
@@ -1416,10 +1415,10 @@ void RenderOverheadOverlays()
|| RebelCommand::ShowApproximateEnemyLocations())
marklastenemy = TRUE;
for( i = 0; i < end; ++i )
for( id = 0; id < end; ++id )
{
//First, check to see if the soldier exists and is in the sector.
pSoldier = MercPtrs[ i ];
pSoldier = id;
if( !pSoldier->bActive || !pSoldier->bInSector )
continue;
//Soldier is here. Calculate his screen position based on his current gridno.
@@ -1695,7 +1694,7 @@ void RenderOverheadOverlays()
FLOAT radius_inner = radius - thickness / 2;
FLOAT radius_outer = radius + thickness / 2;
for( i = 0 ; i < guiNumWorldItems; ++i )
for( UINT32 i = 0 ; i < guiNumWorldItems; ++i )
{
pWorldItem = &gWorldItems[ i ];
if( !pWorldItem || !pWorldItem->fExists )