Update to ZDoom r1986:

- fixed: P_NowayTraverse was called with a trace distance of 128 instead of
  the 64 that should have been used.
- reverted the change that makes 0-damage projectiles call P_DamageMobj.
  Both Hexen and Heretic depend on such projectiles not doing it as do many
  mods that create snow/rain effects plus any terrain splash mod.


git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@627 b0f79afe-0144-0410-b225-9a4edf0717df
This commit is contained in:
Christoph Oelckers 2009-11-17 23:24:59 +00:00
parent 54fd5e9f43
commit 9b4f7c5ea7
2 changed files with 8 additions and 4 deletions

View file

@ -1091,7 +1091,7 @@ bool PIT_CheckThing (AActor *thing, FCheckPosition &tm)
}
// Do damage
damage = tm.thing->GetMissileDamage ((tm.thing->flags4 & MF4_STRIFEDAMAGE) ? 3 : 7, 1);
if (damage >= 0)
if ((damage > 0) || (tm.thing->flags6 & MF6_FORCEPAIN))
{
P_DamageMobj (thing, tm.thing, tm.thing->target, damage, tm.thing->DamageType);
if (damage > 0)
@ -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);
}