mirror of
https://github.com/1dot13/source.git
synced 2026-09-09 14:46:05 +02:00
Fix: CTD when tring to check for panic triggers if no enemy is present
git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8133 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
@@ -187,7 +187,7 @@ void PossiblyMakeThisEnemyChosenOne( SOLDIERTYPE * pSoldier )
|
|||||||
//INT8 bOldKeys;
|
//INT8 bOldKeys;
|
||||||
INT8 bPanicTrigger;
|
INT8 bPanicTrigger;
|
||||||
INT32 sPanicTriggerGridNo;
|
INT32 sPanicTriggerGridNo;
|
||||||
UINT32 uiPercentEnemiesKilled;
|
UINT32 uiPercentEnemiesKilled = 0;
|
||||||
|
|
||||||
if ( ! (gTacticalStatus.fPanicFlags & PANIC_TRIGGERS_HERE) )
|
if ( ! (gTacticalStatus.fPanicFlags & PANIC_TRIGGERS_HERE) )
|
||||||
{
|
{
|
||||||
@@ -200,7 +200,6 @@ void PossiblyMakeThisEnemyChosenOne( SOLDIERTYPE * pSoldier )
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bPanicTrigger = ClosestPanicTrigger( pSoldier );
|
bPanicTrigger = ClosestPanicTrigger( pSoldier );
|
||||||
if (bPanicTrigger == -1)
|
if (bPanicTrigger == -1)
|
||||||
{
|
{
|
||||||
@@ -209,7 +208,9 @@ void PossiblyMakeThisEnemyChosenOne( SOLDIERTYPE * pSoldier )
|
|||||||
|
|
||||||
sPanicTriggerGridNo = gTacticalStatus.sPanicTriggerGridNo[ bPanicTrigger ];
|
sPanicTriggerGridNo = gTacticalStatus.sPanicTriggerGridNo[ bPanicTrigger ];
|
||||||
|
|
||||||
uiPercentEnemiesKilled = (UINT32)( 100 * (UINT32)(gTacticalStatus.ubArmyGuysKilled) / (UINT32)( gTacticalStatus.Team[ ENEMY_TEAM ].bMenInSector + gTacticalStatus.ubArmyGuysKilled ) );
|
if ( gTacticalStatus.Team[ENEMY_TEAM].bMenInSector + gTacticalStatus.ubArmyGuysKilled > 0 )
|
||||||
|
uiPercentEnemiesKilled = (UINT32)( 100 * (UINT32)(gTacticalStatus.ubArmyGuysKilled) / (UINT32)( gTacticalStatus.Team[ ENEMY_TEAM ].bMenInSector + gTacticalStatus.ubArmyGuysKilled ) );
|
||||||
|
|
||||||
if ( gTacticalStatus.ubPanicTolerance[ bPanicTrigger ] > uiPercentEnemiesKilled )
|
if ( gTacticalStatus.ubPanicTolerance[ bPanicTrigger ] > uiPercentEnemiesKilled )
|
||||||
{
|
{
|
||||||
// not yet... not yet
|
// not yet... not yet
|
||||||
@@ -426,15 +427,15 @@ INT8 ClosestPanicTrigger( SOLDIERTYPE * pSoldier )
|
|||||||
INT16 sDistance;
|
INT16 sDistance;
|
||||||
INT16 sClosestDistance = 1000;
|
INT16 sClosestDistance = 1000;
|
||||||
INT8 bClosestTrigger = -1;
|
INT8 bClosestTrigger = -1;
|
||||||
UINT32 uiPercentEnemiesKilled;
|
UINT32 uiPercentEnemiesKilled = 0;
|
||||||
|
|
||||||
uiPercentEnemiesKilled = (UINT32)( 100 * (UINT32)(gTacticalStatus.ubArmyGuysKilled) / (UINT32)( gTacticalStatus.Team[ ENEMY_TEAM ].bMenInSector + gTacticalStatus.ubArmyGuysKilled ) );
|
if ( gTacticalStatus.Team[ENEMY_TEAM].bMenInSector + gTacticalStatus.ubArmyGuysKilled > 0 )
|
||||||
|
uiPercentEnemiesKilled = (UINT32)(100 * (UINT32)(gTacticalStatus.ubArmyGuysKilled) / (UINT32)(gTacticalStatus.Team[ENEMY_TEAM].bMenInSector + gTacticalStatus.ubArmyGuysKilled));
|
||||||
|
|
||||||
for ( bLoop = 0; bLoop < NUM_PANIC_TRIGGERS; bLoop++ )
|
for ( bLoop = 0; bLoop < NUM_PANIC_TRIGGERS; ++bLoop )
|
||||||
{
|
{
|
||||||
if (!TileIsOutOfBounds(gTacticalStatus.sPanicTriggerGridNo[ bLoop ]))
|
if (!TileIsOutOfBounds(gTacticalStatus.sPanicTriggerGridNo[ bLoop ]))
|
||||||
{
|
{
|
||||||
|
|
||||||
if ( gTacticalStatus.ubPanicTolerance[ bLoop ] > uiPercentEnemiesKilled )
|
if ( gTacticalStatus.ubPanicTolerance[ bLoop ] > uiPercentEnemiesKilled )
|
||||||
{
|
{
|
||||||
// not yet... not yet...
|
// not yet... not yet...
|
||||||
|
|||||||
Reference in New Issue
Block a user