=====================================================================
=====================================================================
 All linedef types by number and function

 Based on Wadspec1.3, Deu help, and DMLINDEF.TXT
 Thanks to Matt Fell, Raphal Quinet and Brendon Wyber, and Dr. Sleep.

 Note this document frequently uses the word linedef where the phrase
 linedef type is technically correct. Some editors refer to these as
 "Line Specials" or "Triggers" or "Platforms". Its purpose is to categorize
 the functions on sectors permitted by the Doom engines 1.2 and 1.666.

 The Doom 1 linedefs 1-104 (except 99) have been tried by me in experiments
 using Wadspec1.3 and Deu help as guide but not bible. (Many descriptions
 proved wrong, but an impossible task without these). The descriptions 
 below are the result. Complete accuracy is not guarenteed, all I can say
 is they behaved as I describe in the environments I tested them in. 
 Ambiguities exist in reference to WHICH neighbor sector defines an action.
 A document named LINTYP10.TXT by Brian McKimens was briefly available and 
 gave the most cogent definitions of neighbor and sector matching I've seen
 to date.

 Linedef 99,100 and most above 104 are from Dr. Sleep's DMLINDEF.TXT and I 
 have not done experiments on ALL of them though I tried to fill out the 
 question marks in his document. I was not able to reproduce the S2/R 
 behaviour for 122 (I get S1), or the "Closes 3 secs after leaving door
 sector" description for 112, (I get stays open). All these linedefs only
 work with the 1.666 engine. Dr. Sleep's descriptions were paraphrased to
 keep linedefs with identical functions described indentically.

 The following tables also show the number of times the linedef type was 
 used in Doom1 and Doom2. This may help authors decide between similar line 
 types, and warn against possibly buggy ones. No unusable ones have been
 found except possibly the three types still unknown: 72, 78, and 85. I
 have not attempted to explicate the 9 linedef type with a single line 
 description, which all the rest are. Refer to the chainsaw pillar in E1M2
 or the yellow key room of E2M2 in Doom 1 for an example.

 Note that the linedef list is reproduced twice - organized by number
 and by function.

 Jim F. Flynn, CIS: 72713,3334

 This document should be viewed as preliminary, and I would appreciate
 any and all corrections/inputs/comments at the address above so a more 
 correct, complete, and useful document can be produced as a reference
 for wad writing. I hope there aren't "numerous errors" but if there are
 I will fix them IF you report them. I also hope this proves useful.

=====================================================================
---------------------------------------------------------------------
 Linedef types by number
---------------------------------------------------------------------
 Note n. abbreviates neighbor, min and max mean minimum and maximum.
 u1 and u2 are the number of occurrences of the trigger in Doom 1 and 2.
 txt abbreviates texture, and typ stands for "sector type". Sw is used 
 place of "switch sector".

 The trigger letters are as follows:

 D - special door trigger, no sector tag req. Acts on 2nd sidedef's sector.
 S - switch trigger, first sidedef must be used with spacebar to activate
 W - walkover trigger, only teleport linedefs req. approach from 1st sidedef
 M - monster walkover, activated only when a monster walks over the line
 G - gun trigger, activated when line hit (fists,chain,bullet,shell only)
     (Note: monster bullets/shells activate gun linedefs too!). Shots do
     not elevate/depress when shooting at a gun linedef.

#    u1  u2 TR Brief function description
---------------------------------------------------------------
0     0   0 -- Null tag indicating no function is assigned
1   281 220 DR Open door - closes in 6 sec
2   114  64 W1 Open door - stays open
3     2   9 W1 Close door
4     0   1 W1 Open door - closes in 6 sec
5     1   3 W1 Set floor to min n. ceil 
6     0   0 W1 Start fast crusher ceil (slow damage)
7    11   6 S1 Rising staircase 
8     2   1 W1 Rising staircase 
9     2   0 S1 Complex floor action? (function not fully understood by me)
10    1   0 W1 Lower lift        
11   15  19 S- End level. Goto next level  
12    0   0 W1 Light level to max n. light level
13    4   1 W1 Light level to 255
14    1   0 S1 Floor rises 32 txt & typ chg to sw
15    0   1 S1 Floor rises 24 txt & typ chg to sw
16    3   2 W1 Close door - opens in 30 sec
17    0   0 W1 Start blinking lights (every 1 sec)
18   10   8 S1 Floor rises to first n. floor or 0 hgt
19   11  22 W1 Set floor to max n. floor
20   13  12 S1 Raise floor to next floor or 0 hgt, txt & typ chg to sw 
21    1   0 S1 Lower lift      
22    3  18 W1 Raise floor to next floor txt & typ chg to 1st side sec.
23   16  12 S1 Floor lowers to min n. floor
24    1   0 G1 Set floor to min n. ceil
25    0   0 W1 Start slow crusher ceil (fast damage)
26   22  14 DR Open blue door - closes in 6 sec
27   26  12 DR Open yellow door - closes in 6 sec
28   10   9 DR Open red door - closes in 6 sec
29    1   0 S1 Open door - closes in 6 sec
30    2   2 W1 Floor rises 128? (sometimes less)
31   76  45 D1 Open door - stays open
32   15  40 D1 Open blue door - stays open
33   19  27 D1 Open yellow door - stays open
34   14  24 D1 Open red door - stays open
35    3  14 W1 Light level to 0
36    8  27 W1 Set floor to 8 above max n. floor
37   31  11 W1 Floor lowers to min n. floor txt & typ chg to min n. 
38   23  37 W1 Floor lowers to min n. floor
39    3   3 W1 Teleport to a sector (tagged sector unique, contains TP thing)
40    4   0 W1 Ceil rises to max n. ceil
41    0   0 S1 Lower ceil to floor
42    6   1 SR Close door
43    0   0 SR Lower ceil to floor
44    1   0 W1 Lower ceil to 8 above floor
45    0   2 SR Set floor to max n. floor
46   13  22 G1 Open door - stays open
47    0   2 G1 Raise floor to next floor or 0 hgt, match txt & typ to 1st sec.
48   99 103 -- Animated wall (number/level is limited)
49    0   1 S1 Lower ceil to 8 above floor
50    0   0 S1 Open door - stays open 
51    3   1 S- End level. Goto secret level.
52   19  55 W- End level. Goto next level.
53    0   0 W1 Start moving floor (up/down 5 sec)
54    0   0 W1 Stop moving floor
55    0   0 S1 Set floor to 8 under min n. ceil.
56    5   0 W1 Crusher floor rises to 8 below ceiling
57    0   0 W1 Stop crusher ceil
58    5   0 W1 Floor rises 24
59    5   7 W1 Floor rises 24 txt & typ chg to 1st side sector
60    0   4 SR Floor lowers to min n. floor
61    9  36 SR Open door - stays open
62   51 143 SR Lower lift
63   38  15 SR Open door - closes in 6 sec
64    0   0 SR Set floor to min n. ceil
65    0   0 SR Set floor to 8 under min n. ceil
66    0   0 SR Floor rises 24 txt & typ chg to sw
67    0   9 SR Floor rises 32 txt & typ chg to sw
68    0   2 SR Raise floor to next floor, match txt & typ at sw [1]
69    0   0 SR Floor rises to first n. floor or 0 hgt
70    3   2 SR Set floor to 8 above max n. floor
72    0   0 ?? ????????????????????????????????????????????
71    0  24 S1 Set floor to 8 above max n. floor
73   17   6 WR Start slow crusher ceil (fast damage)
74   24  13 WR Stop crusher ceil
75    6   0 WR Close door
76    2   0 WR Close door - opens in 30 sec
77    6   3 WR Start fast crusher ceil (slow damage)
78    0   0 ?? ????????????????????????????????????????????
79    0   0 WR Light level to 0
80    0   0 WR Light level to max n. light level
81    0   0 WR Light level to 255
82    6   0 WR Set floor to min n. floor. 
83    0   7 WR Set floor to max n. floor
84    0   0 WR Set floor to min n. floor txt & typ chg to min n.
85    0   0 ?? ????????????????????????????????????????????
86    9   3 WR Open door - stays open
87    6   4 WR Start moving floor (up/down 5 sec)
88   65  51 WR Lower lift
89   10   5 WR Stop moving floor
90   21  17 WR Open door - closes in 6 sec
91   18   1 WR Set floor to min n. ceil
92    0   0 WR Floor rises 24
93    0   0 WR Floor rises 24 txt & typ chg to 1st side sector
94    0   1 WR Set floor to 8 under min n. ceil
95    0   0 W1 Raise floor to next floor txt & typ chg to 1st side sec. [2]
96    0   0 WR Floor rises 128
97  125 411 WR Teleport to a sector ( "   "    "  "   "    "  )
98    4   0 WR Set floor to 8 above max n. floor
99    0   2 SR Fast Open Door (stays open) Blue Key [1.666]
100   0   1 W1 Fast Raise Stair [1.666jff]
101   0   0 S1 Set floor to min n. ceil
102  14  22 S1 Set floor to max n. floor
103  41  32 S1 Open door - stays open 
104   2   0 W1 Light level to min n. light level
--------------Doom2 & 1.666 only below----------------------------------------
105   0  23 WR Fast Open Door (closes after 3 seconds) [1.666]
106   0   6 WR Fast Open Door (stays open) [1.666]
107   0   0 WR Fast Close Door [1.666]
108   0   0 W1 Fast Open Door (closes after 3 seconds) [1.666]
109   0  99 W1 Fast Open Door (stays open) [1.666]
110   0   1 W1 Fast Close Door [1.666jff]
111   0   0 S1 Fast Open Door (closes after 3 seconds) [1.666]
112   0   4 S1 Fast Open Door (stays open) [1.666jff]
113   0   0 S1 Fast Close Door [1.666jff]
114   0  51 SR Fast Open Door (closes after 3 seconds) [1.666]
115   0  11 SR Fast Open Door (stays open) [1.666]
116   0   1 SR Fast Close Door [1.666]
117   0  47 DR Fast Open Door (closes after 3 seconds) [1.666]
118   0   8 D1 Fast Open Door (stays open) [1.666]
119   0  13 W1 Raise floor to next floor [1.666]
120   0  58 WR Fast Lower Lift (raise after 3 seconds) [1.666]
121   0   0 W1 Fast Lower Lift (raise after 3 seconds) [1.666jff]
122   0   0 S1 Fast Lower Lift (raise after 3 seconds) [1.666jff]
123   0 162 SR Fast Lower Lift (raise after 3 seconds) [1.666]
124   0   4 W- End Level. Goto secret [1.666]
125   0   4 M1 Monster only teleporter [jff]
126   0  20 MR Monster only teleporter [jff]
127   0   6 S1 Fast Raise Stair [jff]
128   0   0 WR Raise floor to next floor [jff]
129   0   0 WR Raise floor to next floor [jff]
130   0   0 W1 Raise floor to next floor [jff]
131   0   2 S1 Raise floor to next floor [jff]
132   0   0 SR Raise floor to next floor [jff]
133   0   0 S1 Fast Open Door (stays open) Blue Key [jff]
134   0   4 SR Fast Open Door (stays open) Red Key [jff]
135   0  16 S1 Fast Open Door (stays open) Red Key [1.666jff]
136   0   4 SR Fast Open Door (stays open) Yellow Key [jff]
137   0   6 S1 Fast Open Door (stays open) Yellow Key [jff]
138   0   2 SR Light Level goes to 255 [1.666]
139   0   2 SR Light Level goes to 0 [1.666]
140   0   1 S1 Floor rises 512 [jff]
141   0   1 W1 Start Crushing Ceiling [1.666]

Notes:
[1]        If above all floors, set to 0 hgt.
[2]        If no higher n. exists floor acts bad.
[1.666]    Usable with 1.666 engine and above only. Source is Dr. Sleep
[1.666jff] 1.666 engine, from Dr. Sleep, modified after experiment
[jff]      Determined by experiment with 1.666 engine Doom 1 wad.

=====================================================================
---------------------------------------------------------------------
 Linedef types by function
---------------------------------------------------------------------
 Note n. abbreviates neighbor, min and max mean minimum and maximum.
 u1 and u2 are the number of occurrences of the trigger in Doom 1 and 2.
 txt abbreviates texture, and typ stands for "sector type". Sw is used 
 place of "switch sector".

 The trigger letters are as follows:

 D - special door trigger, no sector tag req. Acts on 2nd sidedef's sector.
 S - switch trigger, first sidedef must be used with spacebar to activate
 W - walkover trigger, only teleport linedefs req. approach from 1st sidedef
 M - monster walkover, activated only when a monster walks over the line
 G - gun trigger, activated when line hit (fists,chain,bullet,shell only)
     (Note: monster bullets/shells activate gun linedefs too!). Shots do
  not elevate/depress when shooting at a gun linedef.

-----------------------------------------------------------------
Doors
---------------------------------------------------------------
Special door linedefs (no sector tag req.):
#    u1  u2 TR Brief function description
-------------------------------------------
1   281 220 DR Open door - closes in 6 sec
26   22  14 DR Open blue door - closes in 6 sec
27   26  12 DR Open yellow door - closes in 6 sec
28   10   9 DR Open red door - closes in 6 sec

117   0  47 DR Fast Open Door (closes after 3 seconds) [1.666]

31   76  45 D1 Open door - stays open
32   15  40 D1 Open blue door - stays open
33   19  27 D1 Open yellow door - stays open
34   14  24 D1 Open red door - stays open

118   0   8 D1 Fast Open Door (stays open) [1.666]

-----------------------------------------------------------------
Door linedefs requiring sector tag:
#    u1  u2 TR Brief function description
------------------------------------
29    1   0 S1 Open door - closes in 6 sec
63   38  15 SR Open door - closes in 6 sec
4     0   1 W1 Open door - closes in 6 sec
90   21  17 WR Open door - closes in 6 sec

50    0   0 S1 Open door - stays open
103  41  32 S1 Open door - stays open 
61    9  36 SR Open door - stays open
2   114  64 W1 Open door - stays open
86    9   3 WR Open door - stays open
46   13  22 G1 Open door - stays open

111   0   0 S1 Fast Open Door (closes after 3 seconds) [1.666]
114   0  51 SR Fast Open Door (closes after 3 seconds) [1.666]
108   0   0 W1 Fast Open Door (closes after 3 seconds) [1.666]
105   0  23 WR Fast Open Door (closes after 3 seconds) [1.666]

112   0   4 S1 Fast Open Door (stays open) [1.666jff]
115   0  11 SR Fast Open Door (stays open) [1.666]
109   0  99 W1 Fast Open Door (stays open) [1.666]
106   0   6 WR Fast Open Door (stays open) [1.666]

133   0   0 S1 Fast Open Door (stays open) Blue Key [jff]
99    0   2 SR Fast Open Door (stays open) Blue Key [1.666jff]

135   0  16 S1 Fast Open Door (stays open) Red Key [1.666jff]
134   0   4 SR Fast Open Door (stays open) Red Key [jff]

137   0   6 S1 Fast Open Door (stays open) Yellow Key [jff]
136   0   4 SR Fast Open Door (stays open) Yellow Key [jff]

42    6   1 SR Close door	[Note Close door = lower ceil to floor]
3     2   9 W1 Close door
75    6   0 WR Close door

16    3   2 W1 Close door - opens in 30 sec
76    2   0 WR Close door - opens in 30 sec

113   0   0 S1 Fast Close Door [1.666jff]
116   0   1 SR Fast Close Door [1.666]
110   0   1 W1 Fast Close Door [1.666jff]
107   0   0 WR Fast Close Door [1.666]
---------------------------------------------------------------
Lifts
#    u1  u2 TR Brief function description
---------------------------------------------------------------
21    1   0 S1 Lower lift (raise after 3 seconds)
62   51 143 SR Lower lift (raise after 3 seconds)
10    1   0 W1 Lower lift (raise after 3 seconds)        
88   65  51 WR Lower lift (raise after 3 seconds)

122   0   0 S1 Fast Lower Lift (raise after 3 seconds) [1.666jff]
123   0 162 SR Fast Lower Lift (raise after 3 seconds) [1.666]
121   0   0 W1 Fast Lower Lift (raise after 3 seconds) [1.666]
120   0  58 WR Fast Lower Lift (raise after 3 seconds) [1.666]
---------------------------------------------------------------
Crushers
#    u1  u2 TR Brief function description
---------------------------------------------------------------
6     0   0 W1 Start fast crusher ceil (slow damage)
77    6   3 WR Start fast crusher ceil (slow damage)

25    0   0 W1 Start slow crusher ceil (fast damage)
73   17   6 WR Start slow crusher ceil (fast damage)

141   0   1 W1 Start slow quiet crusher ceil (fast damage) [1.666jff]

57    0   0 W1 Stop crusher ceil
74   24  13 WR Stop crusher ceil

56    5   0 W1 Crusher floor rises to 8 below ceiling
---------------------------------------------------------------
Stairs
#    u1  u2 TR Brief function description
---------------------------------------------------------------
7    11   6 S1 Raise stair (rise 8)
8     2   1 W1 Raise stair (rise 8)

127   0   6 S1 Fast raise stair (rise 16) [jff]
100   0   1 W1 Fast raise stair (rise 16) [1.666jff]
---------------------------------------------------------------
Floors
#    u1  u2 TR Brief function description
---------------------------------------------------------------
9     2   0 S1 Complex floor action? (function not fully understood by me)

101   0   0 S1 Set floor to min n. ceil
64    0   0 SR Set floor to min n. ceil
5     1   3 W1 Set floor to min n. ceil 
91   18   1 WR Set floor to min n. ceil
24    1   0 G1 Set floor to min n. ceil

58    5   0 W1 Floor rises 24
92    0   0 WR Floor rises 24

15    0   1 S1 Floor rises 24 txt & typ chg to sw
66    0   0 SR Floor rises 24 txt & typ chg to sw
59    5   7 W1 Floor rises 24 txt & typ chg to 1st side sector
93    0   0 WR Floor rises 24 txt & typ chg to 1st side sector

14    1   0 S1 Floor rises 32 txt & typ chg to sw
67    0   9 SR Floor rises 32 txt & typ chg to sw

30    2   2 W1 Floor rises 128? (sometimes less)
96    0   0 WR Floor rises 128

140   0   1 S1 Floor rises 512 [jff]

102  14  22 S1 Set floor to max n. floor
45    0   2 SR Set floor to max n. floor
19   11  22 W1 Set floor to max n. floor
83    0   7 WR Set floor to max n. floor

82    6   0 WR Set floor to min n. floor. 
84    0   0 WR Set floor to min n. floor txt & typ chg to min n.

55    0   0 S1 Set floor to 8 under min n. ceil.
65    0   0 SR Set floor to 8 under min n. ceil
94    0   1 WR Set floor to 8 under min n. ceil

71    0  24 S1 Set floor to 8 above max n. floor
70    3   2 SR Set floor to 8 above max n. floor
36    8  27 W1 Set floor to 8 above max n. floor
98    4   0 WR Set floor to 8 above max n. floor

69    0   0 SR Floor rises to first n. floor or 0 hgt
18   10   8 S1 Floor rises to first n. floor or 0 hgt

95    0   0 W1 Raise floor to next floor txt & typ chg to 1st side sec. [2]
22    3  18 W1 Raise floor to next floor txt & typ chg to 1st side sec.
20   13  12 S1 Raise floor to next floor or 0 hgt, txt & typ chg to sw 
47    0   2 G1 Raise floor to next floor or 0 hgt, match txt & typ to 1st sec.

68    0   2 SR Raise floor to next floor, match txt & typ at sw [1]

131   0   2 S1 Raise floor to next floor [jff]
132   0   0 SR Raise floor to next floor [jff]
130   0   0 W1 Raise floor to next floor [jff]
119   0  13 W1 Raise floor to next floor [1.666]
128   0   0 WR Raise floor to next floor [jff]
129   0   0 WR Raise floor to next floor [jff]

23   16  12 S1 Floor lowers to min n. floor
38   23  37 W1 Floor lowers to min n. floor
60    0   4 SR Floor lowers to min n. floor

37   31  11 W1 Floor lowers to min n. floor txt & typ chg to min n. 

53    0   0 W1 Start moving floor (up/down 5 sec)
87    6   4 WR Start moving floor (up/down 5 sec)

89   10   5 WR Stop moving floor
54    0   0 W1 Stop moving floor
---------------------------------------------------------------
Ceilings
#    u1  u2 TR Brief function description
---------------------------------------------------------------
40    4   0 W1 Ceil rises to max n. ceil

41    0   0 S1 Lower ceil to floor  
43    0   0 SR Lower ceil to floor

49    0   1 S1 Lower ceil to 8 above floor
44    1   0 W1 Lower ceil to 8 above floor
---------------------------------------------------------------
Lighting
#    u1  u2 TR Brief function description
---------------------------------------------------------------
139   0   2 SR Light level to 0 [1.666]
35    3  14 W1 Light level to 0
79    0   0 WR Light level to 0

138   0   2 SR Light level to 255 [1.666]
13    4   1 W1 Light level to 255
81    0   0 WR Light level to 255

12    0   0 W1 Light level to max n. light level
80    0   0 WR Light level to max n. light level

104   2   0 W1 Light level to min n. light level

17    0   0 W1 Start blinking lights (every 1 sec)
---------------------------------------------------------------
Teleporters
#    u1  u2 TR Brief function description
---------------------------------------------------------------
39    3   3 W1 Teleport to a sector (tagged sector unique, contains TP thing)
97  125 411 WR Teleport to a sector ( "   "    "  "   "    "  )

125   0   4 M1 Monster only teleporter [jff]
126   0  20 MR Monster only teleporter [jff]
---------------------------------------------------------------
End Level
#    u1  u2 TR Brief function description
---------------------------------------------------------------
11   15  19 S- End level. Goto next level  
52   19  55 W- End level. Goto next level.

51    3   1 S- End level. Goto secret level.
124   0   4 W- End Level. Goto secret level [1.666]
---------------------------------------------------------------
Misc.
#    u1  u2 TR Brief function description
---------------------------------------------------------------
0     0   0 -- Null tag indicating no function is assigned
48   99 103 -- Animated wall (number/level is limited)

Notes: 
[1]         If above all floors, set to 0 hgt.
[2]         If no higher n. exists floor acts bad.
[1.666]     Usable with 1.666 engine and above only. Source is Dr. Sleep
[1.666jff]  1.666 engine, from Dr. Sleep, modified after experiment
[jff]       1.666 engine, by experiment with 1.666 engine Doom 1 wad.

-----------------------------------------------------------------------------
===============================================================================

Special sector tags:

  0  Tag used to specify no tag assigned. However, a linedef assigned to
     tag 0 (none) will attempt to carry its function out on all 0 tagged
     sectors unless it also has 0 linedef type. This usually causes the
     game to crash and is always weird - don't do it.

 99  Artifact created by bug/feature of Id's BSP that collapses sectors
     that touch and have identical sector attributes. Used to prevent
     this. Has no effect on rising stairs other than this. Not necessary
     at all with Colin Reed's BSP.

 666 When last boss dies - Lower sector floor to n. floor, if ExM8 and 
     no 666 tagged sector exists then level ends.


