- added a compatibility option to restore the original Heretic bug where

a Minotaur couldn't spawn floor flames when standing in water having its
  feet clipped.
- added vid_vsync to display options.
- fixed: Animations of type 'Range' must be disabled if the textures don't
  come from the same definition unit (i.e both containing file and use type
  are identical.)
- changed: Item pushing is now only done once per P_XYMovement call.
- Increased the push factor of Heretic's pod to 0.5 so that its behavior
  more closely matches the original which depended on several bugs in the engine.
- Removed damage thrust clamping in P_DamageMobj and changed the thrust calculation
  to use floats to prevent overflows. The prevention of the overflows was the
  only reason the clamping was done.
- Added Raven's dagger-like vector sprite for the player to the automap code.


SVN r1668 (trunk)
This commit is contained in:
Christoph Oelckers 2009-06-14 13:47:38 +00:00
commit 3ab370b6ee
16 changed files with 149 additions and 36 deletions

View file

@ -1039,12 +1039,20 @@ void P_DamageMobj (AActor *target, AActor *inflictor, AActor *source, int damage
ang = R_PointToAngle2 (origin->x, origin->y,
target->x, target->y);
thrust = damage*(FRACUNIT>>3)*kickback / target->Mass;
// Calculate this as float to avoid overflows so that the
// clamping that had to be done here can be removed.
thrust = FLOAT2FIXED((damage * 0.125 * kickback) / target->Mass);
// [RH] If thrust overflows, use a more reasonable amount
/* old fixed point code that could overflow.
thrust = damage*(FRACUNIT>>3)*kickback / target->Mass;
if (thrust < 0 || thrust > 10*FRACUNIT)
{
thrust = 10*FRACUNIT;
}
*/
// make fall forwards sometimes
if ((damage < 40) && (damage > target->health)
&& (target->z - origin->z > 64*FRACUNIT)