ZDoom / gzdoom

GZDoom is a feature centric port for all Doom engine games, based on ZDoom, adding an OpenGL renderer and powerful scripting capabilities
http://zdoom.org
GNU General Public License v3.0
2.33k stars 526 forks source link

[BUG] Boom sector movement limits of +/-32000 cannot be used in GZDoom #2584

Open kitchen-ace opened 1 month ago

kitchen-ace commented 1 month ago

GZDoom version

4.12.2

Which game are you running with GZDoom?

Doom 2

What Operating System are you using?

Linux x86_64

Please describe your specific OS version

Arch Linux

Relevant hardware info

No response

Have you checked that no other similar issue already exists?

A clear and concise description of what the bug is.

In Boom, the range of sector motion is limited to +/- 32000 units. Some maps in the upcoming 1 sector community project rely on this limit for various tricks. Since GZDoom doesn't have this limit, maps that use these tricks won't work. A compatibility option to limit sector movement would fix this.

Here is an example wad demonstrating some of these. In GZDoom, sector motion continues indefinitely. A custom switch texture is used to fake sector movement, so that the "on" switch is see-through. boom-sector-limits.wad.zip

MAP01: A 128-unit high sector (floor 31941, ceil 32069) has several key door actions. The door action doesn't have any effect on the sector, but using a key door linedef blocks the use of the linedef behind it until the door is used. If the floor is any lower, the sector (mal)functions and tries to close on the player.

MAP02: Same as map01 except the sector heights are (floor 32631, ceil 32759). This is the highest ceiling that appears to work without the door trying to close on the player.

MAP03: a walkover linedef lowers the sector. A switch that blocks the exit switch is visible, and is only usable once the sector stops lowering at -32000 (about 8 seconds) since it also operates on the sector's floor.

Similar setups to these are also theoretically possible in vanilla maps (single sector movement typically does nothing, or for doors lowers the ceiling 4 units) but I am unaware of any maps that actually use them.

Steps to reproduce the behaviour.

No response

Your configuration

No response

Provide a Log

No response