Multiple thinkers on a single door

From DoomWiki.org

Strife adds numerous new doorlinedef specials to support its plethora of keys and other access controls. In the function EV_VerticalDoor, there is a check which allows a door already in motion to be reversed by a subsequent activation. Reversing is only allowed to happen for certain types of doors:

1: DR Door Open-Wait-Close

26: DR Door Open-Wait-Close ID Card

27: DR Door Open-Wait-Close Pass Card

28: DR Door Open-Wait-Close ID Badge

117: DR Door Open-Wait-Close Blazing

159: DR Door Open-Wait-Close Gold Key

160: DR Door Open-Wait-Close Silver Key

161: DR Door Open-Wait-Close Brass Key

166: DR Door Open-Wait-Close Hand Print

169: DR Door Open-Wait-Close Base Key

170: DR Door Open-Wait-Close Gov's Key

190: DR Door Open-Wait-Close Order Key

213: DR Door Open-Wait-Close Chalice

232: DR Door Open-Wait-Close Oracle Pass

In particular this omits deliberately all "D1" doors, since they are meant to open or close only once, and apparently unintentionally omits several of Strife's locked door types for no obvious reason.

Unfortunately, the default case of the switch used to implement this test for busy sectors does not return from the EV_VerticalDoor function. It instead merely breaks from the switch and allows the function to continue executing. As a result, any door type not listed above is capable of starting redundant vertical door thinkers on sectors that are already in motion. The multiple thinkers running at once can lead to situations such as a door that is stuck open, stuck closed, or stuck midway in its motion - this occurs because the door is simultaneously moving both up and down at the same speed, rendering a resultant velocity of zero. This condition most easily occurs when two sides of the same door have different door specials.

When this error occurs inside a critical passage, it can become a game-breaking glitch, requiring use of a cheat or restarting the entire game to circumvent.

Door types which are allowed to start multiple thinkers on a sector because of this error include: