Switch texture priority differs from vanilla

Sun Jan 31, 2021 7:52 pm

When the player activates a wall switch, if that wall has switch textures in multiple zones (upper/middle/lower), then just one of those textures is changed. In vanilla, the priority order (from highest to lowest) looks like this (from my testing with front textures, anyway):

Upper -> Middle -> Lower

However, in GZDoom, this is the priority order:

Upper -> Lower -> Middle

The effect is that if a wall has both middle and lower switch textures but no upper switch texture, then the middle texture doesn't change upon activation even though it should.

I have attached a test map, which replaces Doom's E1M1. It has four columns of switches configured as follows, from left to right:
  • Middle and lower switch textures set, with only the middle switch texture visible. In vanilla, this texture changes upon activation, but in GZDoom, it doesn't.
  • Upper and lower switch textures set, with both visible. In both vanilla and GZDoom, only the top texture changes upon activation.
  • Upper and middle switch textures set, with only the middle switch texture visible. In both vanilla and GZDoom, this texture does not change upon activation.
  • Upper, middle, lower switch textures set, with only the middle switch texture visible. In both vanilla and GZDoom, this texture does not change upon activation.

(I would have made examples where all three regions are visible, but I couldn't figure out how to do this without vanilla Doom either crashing or displaying a corrupted middle texture.)


An example of a map affected by this bug is REKKR's E2M9. In the room just south of position (1913, -4041, 0) are a number of eye switches. Each eye should close when activated. Most of those switches only have a middle switch texture, but three of them also have an unseen bottom switch texture. Due to the bug described in this report, these three eyes in particular fail to close in GZDoom.
You do not have the required permissions to view the files attached to this post.