Annotation of doom/xddefs.h, revision 1.1.1.1

1.1       root        1: 
                      2: //**************************************************************************
                      3: //**
                      4: //** xddefs.h : Heretic 2 : Raven Software, Corp.
                      5: //**
                      6: //** $RCSfile: xddefs.h,v $
                      7: //** $Revision: 1.4 $
                      8: //** $Date: 95/08/11 10:22:08 $
                      9: //** $Author: bgokey $
                     10: //**
                     11: //**************************************************************************
                     12: 
                     13: #ifndef __XDDEFS__
                     14: #define __XDDEFS__
                     15: 
                     16: #ifndef __BYTEBOOL__
                     17: #define __BYTEBOOL__
                     18: typedef enum {false, true} boolean;
                     19: typedef unsigned char byte;
                     20: #endif
                     21: 
                     22: //--------------------------------------------------------------------------
                     23: //
                     24: // Map level types
                     25: //
                     26: //--------------------------------------------------------------------------
                     27: 
                     28: // lump order in a map wad
                     29: enum
                     30: {
                     31:        ML_LABEL,
                     32:        ML_THINGS,
                     33:        ML_LINEDEFS,
                     34:        ML_SIDEDEFS,
                     35:        ML_VERTEXES,
                     36:        ML_SEGS,
                     37:        ML_SSECTORS,
                     38:        ML_NODES,
                     39:        ML_SECTORS,
                     40:        ML_REJECT,
                     41:        ML_BLOCKMAP,
                     42:        ML_BEHAVIOR
                     43: };
                     44: 
                     45: typedef struct
                     46: {
                     47:        short x;
                     48:        short y;
                     49: } mapvertex_t;
                     50: 
                     51: typedef struct
                     52: {
                     53:        short textureoffset;
                     54:        short rowoffset;
                     55:        char toptexture[8];
                     56:        char bottomtexture[8];
                     57:        char midtexture[8];
                     58:        short sector; // on viewer's side
                     59: } mapsidedef_t;
                     60: 
                     61: typedef struct
                     62: {
                     63:        short v1;
                     64:        short v2;
                     65:        short flags;
                     66:        byte special;
                     67:        byte arg1;
                     68:        byte arg2;
                     69:        byte arg3;
                     70:        byte arg4;
                     71:        byte arg5;
                     72:        short sidenum[2]; // sidenum[1] will be -1 if one sided
                     73: } maplinedef_t;
                     74: 
                     75: #define        ML_BLOCKING                     0x0001
                     76: #define        ML_BLOCKMONSTERS        0x0002
                     77: #define        ML_TWOSIDED                     0x0004
                     78: #define        ML_DONTPEGTOP           0x0008
                     79: #define        ML_DONTPEGBOTTOM        0x0010
                     80: #define ML_SECRET                      0x0020  // don't map as two sided: IT'S A SECRET!
                     81: #define ML_SOUNDBLOCK          0x0040  // don't let sound cross two of these
                     82: #define        ML_DONTDRAW                     0x0080  // don't draw on the automap
                     83: #define        ML_MAPPED                       0x0100  // set if already drawn in automap
                     84: #define ML_REPEAT_SPECIAL      0x0200  // special is repeatable
                     85: #define ML_SPAC_SHIFT          10
                     86: #define ML_SPAC_MASK           0x1c00
                     87: #define GET_SPAC(flags) ((flags&ML_SPAC_MASK)>>ML_SPAC_SHIFT)
                     88: 
                     89: // Special activation types
                     90: #define SPAC_CROSS             0       // when player crosses line
                     91: #define SPAC_USE               1       // when player uses line
                     92: #define SPAC_MCROSS            2       // when monster crosses line
                     93: #define SPAC_IMPACT            3       // when projectile hits line
                     94: #define SPAC_PUSH              4       // when player/monster pushes line
                     95: #define SPAC_PCROSS            5       // when projectile crosses line
                     96: 
                     97: typedef        struct
                     98: {
                     99:        short floorheight;
                    100:        short ceilingheight;
                    101:        char floorpic[8];
                    102:        char ceilingpic[8];
                    103:        short lightlevel;
                    104:        short special;
                    105:        short tag;
                    106: } mapsector_t;
                    107: 
                    108: typedef struct
                    109: {
                    110:        short numsegs;
                    111:        short firstseg; // segs are stored sequentially
                    112: } mapsubsector_t;
                    113: 
                    114: typedef struct
                    115: {
                    116:        short v1;
                    117:        short v2;
                    118:        short angle;
                    119:        short linedef;
                    120:        short side;
                    121:        short offset;
                    122: } mapseg_t;
                    123: 
                    124: enum
                    125: { // bbox coordinates
                    126:        BOXTOP,
                    127:        BOXBOTTOM,
                    128:        BOXLEFT,
                    129:        BOXRIGHT
                    130: };
                    131: 
                    132: #define        NF_SUBSECTOR    0x8000
                    133: typedef struct
                    134: {
                    135:        short           x,y,dx,dy;                      // partition line
                    136:        short           bbox[2][4];                     // bounding box for each child
                    137:        unsigned short  children[2];            // if NF_SUBSECTOR its a subsector
                    138: } mapnode_t;
                    139: 
                    140: typedef struct
                    141: {
                    142:        short tid;
                    143:        short x;
                    144:        short y;
                    145:        short height;
                    146:        short angle;
                    147:        short type;
                    148:        short options;
                    149:        byte special;
                    150:        byte arg1;
                    151:        byte arg2;
                    152:        byte arg3;
                    153:        byte arg4;
                    154:        byte arg5;
                    155: } mapthing_t;
                    156: 
                    157: #define MTF_EASY               1
                    158: #define MTF_NORMAL             2
                    159: #define MTF_HARD               4
                    160: #define MTF_AMBUSH             8
                    161: #define MTF_DORMANT            16
                    162: #define MTF_FIGHTER            32
                    163: #define MTF_CLERIC             64
                    164: #define MTF_MAGE               128
                    165: #define MTF_GSINGLE            256
                    166: #define MTF_GCOOP              512
                    167: #define MTF_GDEATHMATCH        1024
                    168: 
                    169: //--------------------------------------------------------------------------
                    170: //
                    171: // Texture definition
                    172: //
                    173: //--------------------------------------------------------------------------
                    174: 
                    175: typedef struct
                    176: {
                    177:        short   originx;
                    178:        short   originy;
                    179:        short   patch;
                    180:        short   stepdir;
                    181:        short   colormap;
                    182: } mappatch_t;
                    183: 
                    184: typedef struct
                    185: {
                    186:        char            name[8];
                    187:        boolean         masked; 
                    188:        short           width;
                    189:        short           height;
                    190:        void            **columndirectory;      // OBSOLETE
                    191:        short           patchcount;
                    192:        mappatch_t      patches[1];
                    193: } maptexture_t;
                    194: 
                    195: //--------------------------------------------------------------------------
                    196: //
                    197: // Graphics
                    198: //
                    199: //--------------------------------------------------------------------------
                    200: 
                    201: // posts are runs of non masked source pixels
                    202: typedef struct
                    203: {
                    204:        byte            topdelta;               // -1 is the last post in a column
                    205:        byte            length;
                    206: // length data bytes follows
                    207: } post_t;
                    208: 
                    209: // column_t is a list of 0 or more post_t, (byte)-1 terminated
                    210: typedef post_t column_t;
                    211: 
                    212: // a patch holds one or more columns
                    213: // patches are used for sprites and all masked pictures
                    214: typedef struct
                    215: {
                    216:        short           width;                          // bounding box size
                    217:        short           height;
                    218:        short           leftoffset;                     // pixels to the left of origin
                    219:        short           topoffset;                      // pixels below the origin
                    220:        int                     columnofs[8];           // only [width] used
                    221:                                                                        // the [0] is &columnofs[width]
                    222: } patch_t;
                    223: 
                    224: // a pic is an unmasked block of pixels
                    225: typedef struct
                    226: {
                    227:        byte            width,height;
                    228:        byte            data;
                    229: } pic_t;
                    230: 
                    231: #endif // __XDDEFS__

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.