- Fixed: Monster respawning did not redo floorz/ceilingz for 3D floors after positioning the item.

- Fixed: Monster respawning used the newly spawned monster's SpawnPoint to determine what to
  shift the Z position by. This is, naturally, always 0.

SVN r3510 (trunk)
This commit is contained in:
Randy Heit 2012-04-03 03:45:05 +00:00
parent f312926e9f
commit d8f509a73a
1 changed files with 5 additions and 2 deletions

View File

@ -2467,9 +2467,9 @@ void P_NightmareRespawn (AActor *mobj)
mo = AActor::StaticSpawn(RUNTIME_TYPE(mobj), x, y, z, NO_REPLACE, true);
if (z == ONFLOORZ)
mo->z += mo->SpawnPoint[2];
mo->z += mobj->SpawnPoint[2];
else if (z == ONCEILINGZ)
mo->z -= mo->SpawnPoint[2];
mo->z -= mobj->SpawnPoint[2];
// something is occupying its position?
if (!P_TestMobjLocation (mo))
@ -2480,6 +2480,9 @@ void P_NightmareRespawn (AActor *mobj)
return; // no respawn
}
// If there are 3D floors, we need to find floor/ceiling again.
P_FindFloorCeiling(mo);
z = mo->z;
// inherit attributes from deceased one