3 // all external data is defined here
4 // most of the data is loaded into different structures at run time
11 typedef enum {false, true} boolean;
12 typedef unsigned char byte;
16 ===============================================================================
20 ===============================================================================
23 // lump order in a map wad
24 enum {ML_LABEL, ML_THINGS, ML_LINEDEFS, ML_SIDEDEFS, ML_VERTEXES, ML_SEGS,
25 ML_SSECTORS, ML_NODES, ML_SECTORS , ML_REJECT, ML_BLOCKMAP};
37 char toptexture[8], bottomtexture[8], midtexture[8];
38 short sector; // on viewer's side
46 short sidenum[2]; // sidenum[1] will be -1 if one sided
50 #define ML_BLOCKMONSTERS 2
51 #define ML_TWOSIDED 4 // backside will not be present at all
54 // if a texture is pegged, the texture will have the end exposed to air held
55 // constant at the top or bottom of the texture (stairs or pulled down things)
56 // and will move with a height change of one of the neighbor sectors
57 // Unpegged textures allways have the first row of the texture at the top
58 // pixel of the line for both top and bottom textures (windows)
59 #define ML_DONTPEGTOP 8
60 #define ML_DONTPEGBOTTOM 16
62 #define ML_SECRET 32 // don't map as two sided: IT'S A SECRET!
63 #define ML_SOUNDBLOCK 64 // don't let sound cross two of these
64 #define ML_DONTDRAW 128 // don't draw on the automap
65 #define ML_MAPPED 256 // set if allready drawn in automap
70 short floorheight, ceilingheight;
71 char floorpic[8], ceilingpic[8];
79 short firstseg; // segs are stored sequentially
90 enum {BOXTOP,BOXBOTTOM,BOXLEFT,BOXRIGHT}; // bbox coordinates
92 #define NF_SUBSECTOR 0x8000
95 short x,y,dx,dy; // partition line
96 short bbox[2][4]; // bounding box for each child
97 unsigned short children[2]; // if NF_SUBSECTOR its a subsector
114 ===============================================================================
118 ===============================================================================
136 int columndirectory; // OBSOLETE
138 mappatch_t patches[1];
143 ===============================================================================
147 ===============================================================================
150 // posts are runs of non masked source pixels
153 byte topdelta; // -1 is the last post in a column
155 // length data bytes follows
158 // column_t is a list of 0 or more post_t, (byte)-1 terminated
159 typedef post_t column_t;
161 // a patch holds one or more columns
162 // patches are used for sprites and all masked pictures
165 short width; // bounding box size
167 short leftoffset; // pixels to the left of origin
168 short topoffset; // pixels below the origin
169 int columnofs[8]; // only [width] used
170 // the [0] is &columnofs[width]
173 // a pic is an unmasked block of pixels
184 ===============================================================================
188 ===============================================================================
194 #endif // __DOOMDATA__