1 // Emacs style mode select -*- C++ -*-
2 //-----------------------------------------------------------------------------
6 // Copyright (C) 1993-1996 by id Software, Inc.
8 // This source is available for distribution and/or modification
9 // only under the terms of the DOOM Source Code License as
10 // published by id Software. All rights reserved.
12 // The source is distributed in the hope that it will be useful,
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 // FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
18 // all external data is defined here
19 // most of the data is loaded into different structures at run time
20 // some internal structures shared by many modules are here
22 //-----------------------------------------------------------------------------
27 // The most basic types we use, portability.
30 // Some global defines, that configure the game.
39 // The following data structures define the persistent format
40 // used in the lumps of the WAD files.
43 // Lump order in a map WAD: each map needs a couple of lumps
44 // to provide a complete scene geometry description.
47 ML_LABEL, // A separator, name, ExMx or MAPxx
48 ML_THINGS, // Monsters, items..
49 ML_LINEDEFS, // LineDefs, from editing
50 ML_SIDEDEFS, // SideDefs, from editing
51 ML_VERTEXES, // Vertices, edited and BSP splits generated
52 ML_SEGS, // LineSegs, from LineDefs split by BSP
53 ML_SSECTORS, // SubSectors, list of LineSegs
54 ML_NODES, // BSP nodes
55 ML_SECTORS, // Sectors, from editing
56 ML_REJECT, // LUT, sector-sector visibility
57 ML_BLOCKMAP // LUT, motion clipping, walls/grid element
69 // A SideDef, defining the visual appearance of a wall,
70 // by setting textures and offsets.
76 char bottomtexture[8];
78 // Front sector, towards viewer.
84 // A LineDef, as used for editing, and as input
85 // to the BSP builder.
93 // sidenum[1] will be -1 if one sided
99 // LineDef attributes.
102 // Solid, is an obstacle.
103 #define ML_BLOCKING 1
105 // Blocks monsters only.
106 #define ML_BLOCKMONSTERS 2
108 // Backside will not be present at all
110 #define ML_TWOSIDED 4
112 // If a texture is pegged, the texture will have
113 // the end exposed to air held constant at the
114 // top or bottom of the texture (stairs or pulled
115 // down things) and will move with a height change
116 // of one of the neighbor sectors.
117 // Unpegged textures allways have the first row of
118 // the texture at the top pixel of the line for both
119 // top and bottom textures (use next to windows).
121 // upper texture unpegged
122 #define ML_DONTPEGTOP 8
124 // lower texture unpegged
125 #define ML_DONTPEGBOTTOM 16
127 // In AutoMap: don't map as two sided: IT'S A SECRET!
130 // Sound rendering: don't let sound cross two of these.
131 #define ML_SOUNDBLOCK 64
133 // Don't draw on the automap at all.
134 #define ML_DONTDRAW 128
136 // Set if already seen, thus drawn in automap.
137 #define ML_MAPPED 256
142 // Sector definition, from editing.
154 // SubSector, as generated by BSP.
158 // Index of first one, segs are stored sequentially.
163 // LineSeg, generated by splitting LineDefs
164 // using partition lines selected by BSP builder.
177 // BSP node structure.
180 #define NF_SUBSECTOR 0x8000
184 // Partition line from (x,y) to x+dx,y+dy)
190 // Bounding box for each child,
191 // clip against view frustum.
194 // If NF_SUBSECTOR its a subsector,
195 // else it's a node of another subtree.
196 unsigned short children[2];
203 // Thing definition, position, orientation and type,
204 // plus skill/visibility flags and attributes.
218 #endif // __DOOMDATA__
219 //-----------------------------------------------------------------------------
223 //-----------------------------------------------------------------------------