Final Doom teleporters do not set Z coordinate

A problem introduced in the Final Doom version of the Doom engine, the Z coordinate of the player is not adjusted to the teleport destination altitude. This can cause the player to be teleported in the air or in the ground. When a monster is teleported, it is spawned on the floor but the teleporter fog remains at the height of origin teleporter.

This bug was admitted by TeamTNT, and it was fixed in the executable included in the rarer variant of id Anthology with Final Doom, on which the GOG.com release is based.

It was due to a line being removed from the function which teleports things. The line still has the comment in the Linux Doom source code release.

oldx = thing->x; oldy = thing->y; oldz = thing->z; if (!P_TeleportMove (thing, m->x, m->y)) return 0; thing->z = thing->floorz; //fixme: not needed? if (thing->player) thing->player->viewz = thing->z+thing->player->viewheight;