Bug #804

Secret credit for non-secret areas - Heretic E3M4

Added by siliconwolf over 12 years ago. Updated almost 10 years ago.

Target version:
Start date:
% Done:



In Heretic E3M4, there are two watery areas full of disciples to either side of the starting point. Later in the map, the walls lower so you can go into the rooms for secret credit. The large rooms are secret (special #9) but the doorway sectors (where the walls were that later get lowered) are not secret. But in 1.9 beta 6.7 I get secret credit for the doorway sectors as well. So I get a total of 15/13 secrets for the level.

Tried the same thing in Doomsday 1.8.6 and the secrets were counted correctly.

Easiest way to reproduce: New game, ENGAGE34, MASSACRE, run forward and hit the switch that lowers the floor, go thru the door and into the teleporter in the middle of the room, taking you back to the start. The walls to the watery areas will be open. Change to map view, walk slowly into the watery rooms and watch the number of secrets you get credit for. In 1.9.0 beta 6.7 I get four secret credits when there are only two secret sectors in the area.

Labels: jHeretic


#1 Updated by danij over 12 years ago

Fixed for 1.9.0-beta6.8

#2 Updated by danij over 12 years ago

The problem occurs in the FT_LOWERANDCHANGE logic branch of EV_DoFloor.

This is not a trivial problem to fix as the behaviour of the algorithm used to determine which material and sector special to copy is entirely dependent upon the order of the (now engine-side) sector->lineDefs list. In DOOM.exe this list is ordered by lineDef index (taken from the WAD) from lowest to highest whereas our map loader will reverse the order (more convenient).

Furthermore, the algorithm was broken in the commercial release of Heretic as the following test which is present in DOOM is missing:

if (sec->floorheight == floor->floordestheight)

Also available in: Atom PDF