1 /**\file
2  *\section License
3  * License: GPL
4  * Online License Link: http://www.gnu.org/licenses/gpl.html
5  *
6  *\author Copyright © 2003-2017 Jaakko Keränen <jaakko.keranen@iki.fi>
7  *\author Copyright © 2006-2013 Daniel Swanson <danij@dengine.net>
8  *\author Copyright © 1993-1996 by id Software, Inc.
9  *
10  * This program is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation; either version 2 of the License, or
13  * (at your option) any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU General Public License for more details.
19  *
20  * You should have received a copy of the GNU General Public License
21  * along with this program; if not, write to the Free Software
22  * Foundation, Inc., 51 Franklin St, Fifth Floor,
23  * Boston, MA  02110-1301  USA
24  */
25 
26 /**
27  * doomdata.h: Thing and line attributes
28  */
29 
30 #ifndef __DOOMDATA_H__
31 #define __DOOMDATA_H__
32 
33 #ifndef __JHERETIC__
34 #  error "Using jHeretic headers without __JHERETIC__"
35 #endif
36 
37 // Base plane ids.
38 enum {
39     PLN_FLOOR,
40     PLN_CEILING
41 };
42 
43 //
44 // Line attributes.
45 //
46 
47 // Blocks monsters only.
48 #define ML_BLOCKMONSTERS    0x0002
49 
50 /**
51  * If not present on a two-sided line suppress the back sector and instead
52  * consider the line as if it were one-sided. For mod compatibility purposes.
53  */
54 #define ML_TWOSIDED         0x0004
55 
56 // In AutoMap: don't map as two sided: IT'S A SECRET!
57 #define ML_SECRET           0x0020
58 
59 // Sound rendering: don't let sound cross two of these.
60 #define ML_SOUNDBLOCK       0x0040
61 
62 // Don't draw on the automap at all.
63 #define ML_DONTDRAW         0x0080
64 
65 // Set if already seen, thus drawn in automap.
66 #define ML_MAPPED           0x0100
67 
68 // Allows a USE action to pass through a line with a special
69 #define ML_PASSUSE          0x0200
70 
71 //If set allows any mobj to trigger the line's special
72 #define ML_ALLTRIGGER       0x0400
73 
74 #define ML_VALID_MASK       (ML_BLOCKMONSTERS|ML_TWOSIDED|ML_SECRET|ML_SOUNDBLOCK|ML_DONTDRAW|ML_MAPPED|ML_PASSUSE|ML_ALLTRIGGER)
75 
76 // Special activation types
77 #define SPAC_CROSS          0 // when player crosses line
78 #define SPAC_USE            1 // when player uses line
79 #define SPAC_IMPACT         3 // when projectile hits line
80 
81 #endif
82