mirror of
https://github.com/1dot13/source.git
synced 2026-07-29 13:52:17 +02:00
Fix: crash due to NULL-pointer
git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@6650 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
@@ -2687,33 +2687,35 @@ void HandleDialogueEnd( FACETYPE *pFace )
|
||||
if ( gbUIHandlerID == DIALOGUE_TACTICAL_UI )
|
||||
{
|
||||
SOLDIERTYPE *pSoldier = FindSoldierByProfileID( gTacticalStatus.ubLastQuoteProfileNUm, FALSE );
|
||||
UINT8 ubSeenEnemies[ MAX_NUM_SOLDIERS ];
|
||||
UINT8 ubSeenEnemiesCnt = 0;
|
||||
switch( gTacticalStatus.ubLastQuoteSaid )
|
||||
{
|
||||
case QUOTE_CLOSE_CALL:
|
||||
case QUOTE_UNDER_HEAVY_FIRE:
|
||||
case QUOTE_TAKEN_A_BREATING:
|
||||
if( pSoldier->ubPreviousAttackerID != NOBODY && !( MercPtrs[pSoldier->ubPreviousAttackerID]->bDeafenedCounter > 0 ) )
|
||||
PossiblyStartEnemyTaunt( MercPtrs[pSoldier->ubPreviousAttackerID], TAUNT_RIPOSTE, FindSoldierByProfileID( gTacticalStatus.ubLastQuoteProfileNUm, FALSE ) );
|
||||
break;
|
||||
default:
|
||||
// select random enemy, who we see, who sees us and isn't deaf
|
||||
for(UINT8 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 ( pSoldier )
|
||||
{
|
||||
UINT8 ubSeenEnemies[ MAX_NUM_SOLDIERS ];
|
||||
UINT8 ubSeenEnemiesCnt = 0;
|
||||
switch( gTacticalStatus.ubLastQuoteSaid )
|
||||
{
|
||||
case QUOTE_CLOSE_CALL:
|
||||
case QUOTE_UNDER_HEAVY_FIRE:
|
||||
case QUOTE_TAKEN_A_BREATING:
|
||||
if( pSoldier->ubPreviousAttackerID != NOBODY && !( MercPtrs[pSoldier->ubPreviousAttackerID]->bDeafenedCounter > 0 ) )
|
||||
PossiblyStartEnemyTaunt( MercPtrs[pSoldier->ubPreviousAttackerID], TAUNT_RIPOSTE, FindSoldierByProfileID( gTacticalStatus.ubLastQuoteProfileNUm, FALSE ) );
|
||||
break;
|
||||
default:
|
||||
// select random enemy, who we see, who sees us and isn't deaf
|
||||
for(UINT8 cnt = gTacticalStatus.Team[ ENEMY_TEAM ].bFirstID; cnt < gTacticalStatus.Team[ ENEMY_TEAM ].bLastID ; cnt++ )
|
||||
{
|
||||
ubSeenEnemies[ubSeenEnemiesCnt] = cnt;
|
||||
ubSeenEnemiesCnt++;
|
||||
if( MercPtrs[cnt] != NULL && MercPtrs[cnt]->aiData.bOppList[pSoldier->ubID] == SEEN_CURRENTLY
|
||||
&& MercPtrs[pSoldier->ubID]->aiData.bOppList[cnt] == SEEN_CURRENTLY && !( MercPtrs[cnt]->bDeafenedCounter > 0 ) )
|
||||
{
|
||||
ubSeenEnemies[ubSeenEnemiesCnt] = cnt;
|
||||
ubSeenEnemiesCnt++;
|
||||
}
|
||||
}
|
||||
}
|
||||
if( ubSeenEnemiesCnt > 0 )
|
||||
|
||||
PossiblyStartEnemyTaunt( MercPtrs[ubSeenEnemies[ Random(ubSeenEnemiesCnt) ]], TAUNT_RIPOSTE, FindSoldierByProfileID( gTacticalStatus.ubLastQuoteProfileNUm, FALSE ) );
|
||||
}
|
||||
break;
|
||||
}
|
||||
if( ubSeenEnemiesCnt > 0 )
|
||||
PossiblyStartEnemyTaunt( MercPtrs[ubSeenEnemies[ Random(ubSeenEnemiesCnt) ]], TAUNT_RIPOSTE, FindSoldierByProfileID( gTacticalStatus.ubLastQuoteProfileNUm, FALSE ) );
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case DIALOGUE_NPC_UI:
|
||||
|
||||
Reference in New Issue
Block a user