- fixed some issues with P_FindFloorCeiling's coordinate processing.
- added a new compatmode CVAR which allows setting some generic compatibility flag combinations: Doom: sets the options needed to make most Doom.exe compatible map play without errors. Doom (strict): Same as above but sets a few more options. Please note that this does not mean full Doom.exe behavior emulation. Boom: Sets all options that consider differences between ZDoom and Boom. ZDoom 2.0.63: Sets only the COMPATF_SOUNDTARGET option which is needed for many older ZDoom maps. - added new COMPAT_CROSSDROPOFF option to block monsters from being pushed over dropoffs by damage kickback. - fixed: AFastProjectile::Tick must call Effect only 8 times per tic, regardless of the amount of steps taken. - fixed: momentum checks in AFastProjectile did not use absolute values. SVN r1369 (trunk)
This commit is contained in:
parent
7f35a95942
commit
f269af052c
8 changed files with 142 additions and 46 deletions
|
|
@ -33,7 +33,7 @@ void AFastProjectile::Tick ()
|
|||
int count = 8;
|
||||
if (radius > 0)
|
||||
{
|
||||
while ( ((momx >> shift) > radius) || ((momy >> shift) > radius))
|
||||
while ( ((abs(momx) >> shift) > radius) || ((abs(momy) >> shift) > radius))
|
||||
{
|
||||
// we need to take smaller steps.
|
||||
shift++;
|
||||
|
|
@ -56,8 +56,8 @@ void AFastProjectile::Tick ()
|
|||
if (--ripcount <= 0)
|
||||
{
|
||||
tm.LastRipped = NULL; // [RH] Do rip damage each step, like Hexen
|
||||
ripcount = count >> 3;
|
||||
}
|
||||
|
||||
if (!P_TryMove (this, x + xfrac,y + yfrac, true, false, tm))
|
||||
{ // Blocked move
|
||||
P_ExplodeMissile (this, BlockingLine, BlockingMobj);
|
||||
|
|
@ -78,7 +78,11 @@ void AFastProjectile::Tick ()
|
|||
P_ExplodeMissile (this, NULL, NULL);
|
||||
return;
|
||||
}
|
||||
if (changexy) Effect();
|
||||
if (changexy && ripcount <= 0)
|
||||
{
|
||||
ripcount = count >> 3;
|
||||
Effect();
|
||||
}
|
||||
}
|
||||
}
|
||||
// Advance the state
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue