From ca447ad076982613e00388984291017d5d416a74 Mon Sep 17 00:00:00 2001 From: Buginator Date: Sat, 28 Feb 2009 01:47:47 +0000 Subject: [PATCH] Fixes crash issue when psWeapStats is still set to NULL (on init), when this pointer was referenced again. git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@6733 4a71c877-e1ca-e34f-864e-861f7616d084 --- src/action.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/action.c b/src/action.c index eb509d378..cc2a63611 100644 --- a/src/action.c +++ b/src/action.c @@ -1525,15 +1525,18 @@ void actionUpdateDroid(DROID *psDroid) actionAddVtolAttackRun( psDroid ); } } - // if the vtol is far enough away head for the target again - else if (rangeSq > (SDWORD)(psWeapStats->longRange * psWeapStats->longRange)) - { - // don't do another attack run if already heading for the target - const int xdiff = (SDWORD)psDroid->sMove.DestinationX - (SDWORD)psDroid->psActionTarget[0]->pos.x; - const int ydiff = (SDWORD)psDroid->sMove.DestinationY - (SDWORD)psDroid->psActionTarget[0]->pos.y; - if ((xdiff*xdiff + ydiff*ydiff) > (VTOL_ATTACK_TARDIST*VTOL_ATTACK_TARDIST)) + // in case psWeapStats is still NULL + else if (psWeapStats) + { // if the vtol is far enough away head for the target again + if (rangeSq > (SDWORD)(psWeapStats->longRange * psWeapStats->longRange)) { - moveDroidToDirect(psDroid, psDroid->psActionTarget[0]->pos.x,psDroid->psActionTarget[0]->pos.y); + // don't do another attack run if already heading for the target + const int xdiff = (SDWORD)psDroid->sMove.DestinationX - (SDWORD)psDroid->psActionTarget[0]->pos.x; + const int ydiff = (SDWORD)psDroid->sMove.DestinationY - (SDWORD)psDroid->psActionTarget[0]->pos.y; + if ((xdiff*xdiff + ydiff*ydiff) > (VTOL_ATTACK_TARDIST*VTOL_ATTACK_TARDIST)) + { + moveDroidToDirect(psDroid, psDroid->psActionTarget[0]->pos.x,psDroid->psActionTarget[0]->pos.y); + } } } }