- backported some changes from GZDoom:

- fixed: Floor and ceiling hugger projectiles should not be spawned with ONFLOORZ or ONCEILINGZ 
because that will make them ignore the actual floor height if it differs from the sector's floor.
- fixed: Floor and ceiling huggers spawned by a player did not get their vertical velocity set to 0.
- some sidenum related changes in inactive 3D floor code.


SVN r1802 (trunk)
This commit is contained in:
Christoph Oelckers 2009-09-06 21:22:07 +00:00
commit 5bd22ca864
3 changed files with 11 additions and 13 deletions

View file

@ -5086,14 +5086,6 @@ AActor *P_SpawnPlayerMissile (AActor *source, fixed_t x, fixed_t y, fixed_t z,
i = GetDefaultByType (type)->flags3;
if (i & MF3_FLOORHUGGER)
{
z = ONFLOORZ;
}
else if (i & MF3_CEILINGHUGGER)
{
z = ONCEILINGZ;
}
if (z != ONFLOORZ && z != ONCEILINGZ)
{
// Doom spawns missiles 4 units lower than hitscan attacks for players.
@ -5127,7 +5119,13 @@ AActor *P_SpawnPlayerMissile (AActor *source, fixed_t x, fixed_t y, fixed_t z,
MissileActor->velx = FixedMul (vx, speed);
MissileActor->vely = FixedMul (vy, speed);
MissileActor->velz = FixedMul (vz, speed);
if (th->flags3 & (MF3_FLOORHUGGER|MF3_CEILINGHUGGER))
{
MissileActor->velz = 0;
}
else
{
MissileActor->velz = FixedMul (vz, speed);
if (MissileActor->flags4 & MF4_SPECTRAL)
MissileActor->health = -1;