Strife reliance on 2S linedef flag


As with its parent codebase Doom, Strife is vulnerable to a common mapping error whereby the "2S" line flag (referred to as ML_TWOSIDED in the Doom source code) is assigned to a linedef which does not possess a second sidedef.

However, Strife significantly increases the scope and ramification of this problem by introducing several new line types and game functions which rely on strictly correct usage of the 2S line flag in order to identify lines as being properly two-sided. The code for the following list of features in Strife will assume without testing that a valid second sidedef exists on a given line if the 2S line flag is set (including also those that were vulnerable to the error in Doom):

  1. Clear force fields line special (new to Strife)
  2. Degnin ore explosion (new to Strife)
  3. Line-of-sight checking
  4. Player sound traversal to awaken monsters
  5. Stair building process
  6. Switch texture changing (new to Strife)

Side effects of access to the non-existent second side of a one-sided line can include crashing the game, memory corruption side effects, and on occasion, no observable problems at all.