- fixed: P_NowayTraverse was called with a trace distance of 128 instead of

the 64 that should have been used.


SVN r1986 (trunk)
This commit is contained in:
Christoph Oelckers 2009-11-17 23:09:21 +00:00
parent 23d0d70ea6
commit 424c6e8963
2 changed files with 7 additions and 1 deletions

View file

@ -1,4 +1,6 @@
November 17, 2009 (Changes by Graf Zahl)
- fixed: P_NowayTraverse was called with a trace distance of 128 instead of
the 64 that should have been used.
- fixed: R_PointToAngle could overflow with very long vectors passed to
it. This caused rendering bugs on some maps. (Interestingly the only
other port having a safeguard for this in place was PrBoom.)

View file

@ -4046,12 +4046,16 @@ bool P_NoWayTraverse (AActor *usething, fixed_t endx, fixed_t endy)
void P_UseLines (player_t *player)
{
angle_t angle;
fixed_t x1, y1;
fixed_t x2, y2;
bool foundline;
foundline = false;
angle = player->mo->angle >> ANGLETOFINESHIFT;
x1 = player->mo->x + (USERANGE>>FRACBITS)*finecosine[angle];
y1 = player->mo->y + (USERANGE>>FRACBITS)*finesine[angle];
x2 = player->mo->x + (USERANGE>>FRACBITS)*finecosine[angle]*2;
y2 = player->mo->y + (USERANGE>>FRACBITS)*finesine[angle]*2;
@ -4067,7 +4071,7 @@ void P_UseLines (player_t *player)
int spac = SECSPAC_Use;
if (foundline) spac |= SECSPAC_UseWall;
if ((!sec->SecActTarget || !sec->SecActTarget->TriggerAction (player->mo, spac)) &&
P_NoWayTraverse (player->mo, x2, y2))
P_NoWayTraverse (player->mo, x1, y1))
{
S_Sound (player->mo, CHAN_VOICE, "*usefail", 1, ATTN_IDLE);
}