- Yet another piece of essentially broken code that has to go back in because some people had to abuse it:

Reinstated Doom's original code that made projectiles with the MF_NOCLIP flag set continue to exist even
  though the movement itself was never properly handled.
  Fortunately the game mode check formerly associated with this can be removed because none of the other games have
  any projectiles using MF_NOCLIP so at least it's no longer restricted to Doom...



SVN r2187 (trunk)
This commit is contained in:
Christoph Oelckers 2010-03-04 08:24:49 +00:00
parent ac042a7e93
commit 61865b30be

View file

@ -2237,12 +2237,7 @@ void P_ZMovement (AActor *mo, fixed_t oldfloorz)
// teleported the actor so it is no longer below the floor. // teleported the actor so it is no longer below the floor.
if (mo->z <= mo->floorz) if (mo->z <= mo->floorz)
{ {
// old code for boss cube disabled if ((mo->flags & MF_MISSILE) && !(mo->flags & MF_NOCLIP))
//if ((mo->flags & MF_MISSILE) && (!(gameinfo.gametype & GAME_DoomChex) || !(mo->flags & MF_NOCLIP)))
// We can't remove this completely because it was abused by some DECORATE definitions
// (e.g. the monster pack's Afrit)
if ((mo->flags & MF_MISSILE) && ((mo->flags & MF_NOGRAVITY) || !(mo->flags & MF_NOCLIP)))
{ {
mo->z = mo->floorz; mo->z = mo->floorz;
if (mo->BounceFlags & BOUNCE_Floors) if (mo->BounceFlags & BOUNCE_Floors)
@ -2353,8 +2348,7 @@ void P_ZMovement (AActor *mo, fixed_t oldfloorz)
} }
if (mo->velz > 0) if (mo->velz > 0)
mo->velz = 0; mo->velz = 0;
if (mo->flags & MF_MISSILE) if ((mo->flags & MF_MISSILE) && !(mo->flags & MF_NOCLIP))
//&& (!(gameinfo.gametype & GAME_DoomChex) || !(mo->flags & MF_NOCLIP)))
{ {
if (mo->flags3 & MF3_CEILINGHUGGER) if (mo->flags3 & MF3_CEILINGHUGGER)
{ {