Don't fire missiles at things flagged with EF_NO_KILL.

This commit is contained in:
Steve 2016-04-13 11:46:42 +01:00
parent d2412c2dcb
commit d976c7d3c8
1 changed files with 7 additions and 13 deletions

View File

@ -319,7 +319,7 @@ static void findTarget(void)
for (i = 0, e = candidates[i] ; e != NULL ; e = candidates[++i])
{
if (canAttack(e))
if (canAttack(e) && selectWeaponForTarget(e))
{
dist = getDistance(self->x, self->y, e->x, e->y);
@ -357,7 +357,7 @@ static int canAttack(Entity *e)
return 0;
}
return selectWeaponForTarget(e);
return 1;
}
static int selectWeaponForTarget(Entity *e)
@ -466,7 +466,7 @@ static int hasClearShot(void)
static void preAttack(void)
{
if (!self->reload)
if (!self->reload && !dev.noAIWeapons)
{
if (!(self->aiFlags & AIF_MISSILE_BOAT))
{
@ -475,22 +475,16 @@ static void preAttack(void)
if (self->guns[0].type && (self->missiles == 0 || rand() % 50 > 0))
{
if (!dev.noAIWeapons)
{
fireGuns(self);
}
fireGuns(self);
}
else if (self->missiles && getDistance(self->x, self->y, self->target->x, self->target->y) >= 350)
else if (self->missiles && (!(self->target->flags & EF_NO_KILL)) && getDistance(self->x, self->y, self->target->x, self->target->y) >= 350)
{
if (!dev.noAIWeapons)
{
fireMissile(self);
}
fireMissile(self);
self->action = doAI;
}
}
else
else if (!(self->target->flags & EF_NO_KILL))
{
fireRocket(self);