mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2024-11-15 09:11:48 +00:00
P_CheckSight should ideally be called AFTER most other things in things like P_LookForPlayers at least
git-svn-id: https://code.orospakr.ca/svn/srb2/trunk@9043 6de4a73c-47e2-0310-b8c1-93d6ecd3f8cd
This commit is contained in:
parent
d915a8142d
commit
076719e6a4
1 changed files with 9 additions and 9 deletions
|
@ -363,12 +363,12 @@ boolean P_CheckMissileRange(mobj_t *actor)
|
||||||
if (!actor->target)
|
if (!actor->target)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (!P_CheckSight(actor, actor->target))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if (actor->reactiontime)
|
if (actor->reactiontime)
|
||||||
return false; // do not attack yet
|
return false; // do not attack yet
|
||||||
|
|
||||||
|
if (!P_CheckSight(actor, actor->target))
|
||||||
|
return false;
|
||||||
|
|
||||||
// OPTIMIZE: get this from a global checksight
|
// OPTIMIZE: get this from a global checksight
|
||||||
dist = P_AproxDistance(actor->x-actor->target->x, actor->y-actor->target->y) - FixedMul(64*FRACUNIT, actor->scale);
|
dist = P_AproxDistance(actor->x-actor->target->x, actor->y-actor->target->y) - FixedMul(64*FRACUNIT, actor->scale);
|
||||||
|
|
||||||
|
@ -652,6 +652,9 @@ boolean P_LookForPlayers(mobj_t *actor, boolean allaround, boolean tracer, fixed
|
||||||
|
|
||||||
player = &players[actor->lastlook];
|
player = &players[actor->lastlook];
|
||||||
|
|
||||||
|
if ((netgame || multiplayer) && player->spectator)
|
||||||
|
continue;
|
||||||
|
|
||||||
if (player->health <= 0)
|
if (player->health <= 0)
|
||||||
continue; // dead
|
continue; // dead
|
||||||
|
|
||||||
|
@ -661,12 +664,6 @@ boolean P_LookForPlayers(mobj_t *actor, boolean allaround, boolean tracer, fixed
|
||||||
if (!player->mo || P_MobjWasRemoved(player->mo))
|
if (!player->mo || P_MobjWasRemoved(player->mo))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (!P_CheckSight(actor, player->mo))
|
|
||||||
continue; // out of sight
|
|
||||||
|
|
||||||
if ((netgame || multiplayer) && player->spectator)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if (dist > 0
|
if (dist > 0
|
||||||
&& P_AproxDistance(P_AproxDistance(player->mo->x - actor->x, player->mo->y - actor->y), player->mo->z - actor->z) > dist)
|
&& P_AproxDistance(P_AproxDistance(player->mo->x - actor->x, player->mo->y - actor->y), player->mo->z - actor->z) > dist)
|
||||||
continue; // Too far away
|
continue; // Too far away
|
||||||
|
@ -683,6 +680,9 @@ boolean P_LookForPlayers(mobj_t *actor, boolean allaround, boolean tracer, fixed
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!P_CheckSight(actor, player->mo))
|
||||||
|
continue; // out of sight
|
||||||
|
|
||||||
if (tracer)
|
if (tracer)
|
||||||
P_SetTarget(&actor->tracer, player->mo);
|
P_SetTarget(&actor->tracer, player->mo);
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in a new issue