- Do the P_SightCheck() last in A_JumpIfInTargetLOS, since it's the most expensive check.

- Fixed: A_JumpIfInTargetLOS did the FOV cone check from self -> target rather than from
  target -> self.

SVN r3503 (trunk)
This commit is contained in:
Randy Heit 2012-04-01 03:41:08 +00:00
parent 5e85f736bb
commit 23cda7c685
1 changed files with 8 additions and 10 deletions

View File

@ -2887,7 +2887,6 @@ DEFINE_ACTION_FUNCTION_PARAMS(AActor, A_JumpIfTargetInLOS)
if (an > (fov / 2) && an < (ANGLE_MAX - (fov / 2))) if (an > (fov / 2) && an < (ANGLE_MAX - (fov / 2)))
{ {
return; // [KS] Outside of FOV - return return; // [KS] Outside of FOV - return
} }
@ -2957,24 +2956,23 @@ DEFINE_ACTION_FUNCTION_PARAMS(AActor, A_JumpIfInTargetLOS)
doCheckSight = false; doCheckSight = false;
} }
if (doCheckSight && !P_CheckSight (target, self, SF_IGNOREVISIBILITY))
return;
if (fov && (fov < ANGLE_MAX)) if (fov && (fov < ANGLE_MAX))
{ {
an = R_PointToAngle2 (self->x, an = R_PointToAngle2 (target->x,
self->y, target->y,
target->x, self->x,
target->y) self->y)
- self->angle; - target->angle;
if (an > (fov / 2) && an < (ANGLE_MAX - (fov / 2))) if (an > (fov / 2) && an < (ANGLE_MAX - (fov / 2)))
{ {
return; // [KS] Outside of FOV - return return; // [KS] Outside of FOV - return
} }
} }
if (doCheckSight && !P_CheckSight (target, self, SF_IGNOREVISIBILITY))
return;
ACTION_JUMP(jump); ACTION_JUMP(jump);
} }