Annotation of doom/p_spec.h, revision 1.1

1.1     ! root        1: /* P_spec.h */
        !             2: 
        !             3: /*
        !             4: ===============================================================================
        !             5: 
        !             6:                                                        P_SPEC
        !             7: 
        !             8: ===============================================================================
        !             9: */
        !            10: 
        !            11: /* */
        !            12: /*     Animating textures and planes */
        !            13: /* */
        !            14: typedef struct
        !            15: {
        !            16:        boolean istexture;
        !            17:        int             picnum;
        !            18:        int             basepic;
        !            19:        int             numpics;
        !            20:        int             current;
        !            21: } anim_t;
        !            22: 
        !            23: /* */
        !            24: /*     source animation definition */
        !            25: /* */
        !            26: typedef struct
        !            27: {
        !            28:        boolean istexture;              /* if false, it's a flat */
        !            29:        char    endname[9];
        !            30:        char    startname[9];
        !            31:        int             speed;
        !            32: } animdef_t;
        !            33: 
        !            34: #define        MAXANIMS                32
        !            35: 
        !            36: extern anim_t  anims[MAXANIMS], *lastanim;
        !            37: 
        !            38: 
        !            39: /* */
        !            40: /*     Animating line specials */
        !            41: /* */
        !            42: #define        MAXLINEANIMS            64
        !            43: extern int             numlinespecials;
        !            44: extern line_t  *linespeciallist[MAXLINEANIMS];
        !            45: 
        !            46: 
        !            47: /*     Define values for map objects */
        !            48: #define        MO_TELEPORTMAN          14
        !            49: 
        !            50: 
        !            51: /* at game start */
        !            52: void   P_InitPicAnims (void);
        !            53: 
        !            54: /* at map load */
        !            55: void   P_SpawnSpecials (void);
        !            56: 
        !            57: /* every tic */
        !            58: void   P_UpdateSpecials (void);
        !            59: 
        !            60: /* when needed */
        !            61: boolean        P_UseSpecialLine ( mobj_t *thing, line_t *line);
        !            62: void   P_ShootSpecialLine ( mobj_t *thing, line_t *line);
        !            63: void P_CrossSpecialLine (line_t *line,mobj_t *thing);
        !            64: 
        !            65: void   P_PlayerInSpecialSector (player_t *player);
        !            66: 
        !            67: int            twoSided(int sector,int line);
        !            68: sector_t *getSector(int currentSector,int line,int side);
        !            69: side_t *getSide(int currentSector,int line, int side);
        !            70: fixed_t        P_FindLowestFloorSurrounding(sector_t *sec);
        !            71: fixed_t        P_FindHighestFloorSurrounding(sector_t *sec);
        !            72: fixed_t        P_FindNextHighestFloor(sector_t *sec,int currentheight);
        !            73: fixed_t        P_FindLowestCeilingSurrounding(sector_t *sec);
        !            74: fixed_t        P_FindHighestCeilingSurrounding(sector_t *sec);
        !            75: int            P_FindSectorFromLineTag(line_t  *line,int start);
        !            76: int            P_FindMinSurroundingLight(sector_t *sector,int max);
        !            77: sector_t *getNextSector(line_t *line,sector_t *sec);
        !            78: 
        !            79: /* */
        !            80: /*     SPECIAL */
        !            81: /* */
        !            82: int EV_DoDonut(line_t *line);
        !            83: 
        !            84: /*
        !            85: ===============================================================================
        !            86: 
        !            87:                                                        P_LIGHTS
        !            88: 
        !            89: ===============================================================================
        !            90: */
        !            91: typedef struct
        !            92: {
        !            93:        thinker_t       thinker;
        !            94:        sector_t        *sector;
        !            95:        int                     count;
        !            96:        int                     maxlight;
        !            97:        int                     minlight;
        !            98:        int                     maxtime;
        !            99:        int                     mintime;
        !           100: } lightflash_t;
        !           101: 
        !           102: typedef struct
        !           103: {
        !           104:        thinker_t       thinker;
        !           105:        sector_t        *sector;
        !           106:        int                     count;
        !           107:        int                     minlight;
        !           108:        int                     maxlight;
        !           109:        int                     darktime;
        !           110:        int                     brighttime;
        !           111: } strobe_t;
        !           112: 
        !           113: typedef struct
        !           114: {
        !           115:        thinker_t       thinker;
        !           116:        sector_t        *sector;
        !           117:        int                     minlight;
        !           118:        int                     maxlight;
        !           119:        int                     direction;
        !           120: } glow_t;
        !           121: 
        !           122: #define GLOWSPEED              16
        !           123: #define        STROBEBRIGHT    3
        !           124: #define        FASTDARK                8
        !           125: #define        SLOWDARK                15
        !           126: 
        !           127: void   T_LightFlash (lightflash_t *flash);
        !           128: void   P_SpawnLightFlash (sector_t *sector);
        !           129: void   T_StrobeFlash (strobe_t *flash);
        !           130: void   P_SpawnStrobeFlash (sector_t *sector, int fastOrSlow, int inSync);
        !           131: void   EV_StartLightStrobing(line_t *line);
        !           132: void   EV_TurnTagLightsOff(line_t      *line);
        !           133: void   EV_LightTurnOn(line_t *line, int bright);
        !           134: void   T_Glow(glow_t *g);
        !           135: void   P_SpawnGlowingLight(sector_t *sector);
        !           136: 
        !           137: /*
        !           138: ===============================================================================
        !           139: 
        !           140:                                                        P_SWITCH
        !           141: 
        !           142: ===============================================================================
        !           143: */
        !           144: typedef struct
        !           145: {
        !           146:        char    name1[9];
        !           147:        char    name2[9];
        !           148: } switchlist_t;
        !           149: 
        !           150: typedef enum
        !           151: {
        !           152:        top,
        !           153:        middle,
        !           154:        bottom
        !           155: } bwhere_e;
        !           156: 
        !           157: typedef struct
        !           158: {
        !           159:        line_t          *line;
        !           160:        bwhere_e        where;
        !           161:        int                     btexture;
        !           162:        int                     btimer;
        !           163:        mobj_t          *soundorg;
        !           164: } button_t;
        !           165: 
        !           166: #define        MAXSWITCHES     50              /* max # of wall switches in a level */
        !           167: #define        MAXBUTTONS      16              /* 4 players, 4 buttons each at once, max. */
        !           168: #define BUTTONTIME     15              /* 1 second */
        !           169: 
        !           170: extern button_t        buttonlist[MAXBUTTONS]; 
        !           171: 
        !           172: void   P_ChangeSwitchTexture(line_t *line,int useAgain);
        !           173: void   P_InitSwitchList(void);
        !           174: 
        !           175: /*
        !           176: ===============================================================================
        !           177: 
        !           178:                                                        P_PLATS
        !           179: 
        !           180: ===============================================================================
        !           181: */
        !           182: typedef enum
        !           183: {
        !           184:        up,
        !           185:        down,
        !           186:        waiting,
        !           187:        in_stasis
        !           188: } plat_e;
        !           189: 
        !           190: typedef enum
        !           191: {
        !           192:        perpetualRaise,
        !           193:        downWaitUpStay,
        !           194:        raiseAndChange,
        !           195:        raiseToNearestAndChange
        !           196: } plattype_e;
        !           197: 
        !           198: typedef struct
        !           199: {
        !           200:        thinker_t       thinker;
        !           201:        sector_t        *sector;
        !           202:        fixed_t         speed;
        !           203:        fixed_t         low;
        !           204:        fixed_t         high;
        !           205:        int                     wait;
        !           206:        int                     count;
        !           207:        plat_e          status;
        !           208:        plat_e          oldstatus;
        !           209:        boolean         crush;
        !           210:        int                     tag;
        !           211:        plattype_e      type;
        !           212: } plat_t;
        !           213: 
        !           214: #define        PLATWAIT        3                       /* seconds */
        !           215: #define        PLATSPEED       (FRACUNIT*2)
        !           216: #define        MAXPLATS        30
        !           217: 
        !           218: extern plat_t  *activeplats[MAXPLATS];
        !           219: 
        !           220: void   T_PlatRaise(plat_t      *plat);
        !           221: int            EV_DoPlat(line_t *line,plattype_e type,int amount);
        !           222: void   P_AddActivePlat(plat_t *plat);
        !           223: void   P_RemoveActivePlat(plat_t *plat);
        !           224: void   EV_StopPlat(line_t *line);
        !           225: void   P_ActivateInStasis(int tag);
        !           226: 
        !           227: /*
        !           228: ===============================================================================
        !           229: 
        !           230:                                                        P_DOORS
        !           231: 
        !           232: ===============================================================================
        !           233: */
        !           234: typedef enum
        !           235: {
        !           236:        normal,
        !           237:        close30ThenOpen,
        !           238:        close,
        !           239:        open,
        !           240:        raiseIn5Mins
        !           241: } vldoor_e;
        !           242: 
        !           243: typedef struct
        !           244: {
        !           245:        thinker_t       thinker;
        !           246:        vldoor_e        type;
        !           247:        sector_t        *sector;
        !           248:        fixed_t         topheight;
        !           249:        fixed_t         speed;
        !           250:        int                     direction;              /* 1 = up, 0 = waiting at top, -1 = down */
        !           251:        int                     topwait;                /* tics to wait at the top */
        !           252:                                                                /* (keep in case a door going down is reset) */
        !           253:        int                     topcountdown;   /* when it reaches 0, start going down */
        !           254: } vldoor_t;
        !           255:        
        !           256: #define        VDOORSPEED      FRACUNIT*6
        !           257: #define        VDOORWAIT               70
        !           258: 
        !           259: void   EV_VerticalDoor (line_t *line, mobj_t *thing);
        !           260: int            EV_DoDoor (line_t *line, vldoor_e  type);
        !           261: void   T_VerticalDoor (vldoor_t *door);
        !           262: void   P_SpawnDoorCloseIn30 (sector_t *sec);
        !           263: void   P_SpawnDoorRaiseIn5Mins (sector_t *sec, int secnum);
        !           264: 
        !           265: /*
        !           266: ===============================================================================
        !           267: 
        !           268:                                                        P_CEILNG
        !           269: 
        !           270: ===============================================================================
        !           271: */
        !           272: typedef enum
        !           273: {
        !           274:        lowerToFloor,
        !           275:        raiseToHighest,
        !           276:        lowerAndCrush,
        !           277:        crushAndRaise,
        !           278:        fastCrushAndRaise
        !           279: } ceiling_e;
        !           280: 
        !           281: typedef struct
        !           282: {
        !           283:        thinker_t       thinker;
        !           284:        ceiling_e       type;
        !           285:        sector_t        *sector;
        !           286:        fixed_t         bottomheight, topheight;
        !           287:        fixed_t         speed;
        !           288:        boolean         crush;
        !           289:        int                     direction;              /* 1 = up, 0 = waiting, -1 = down */
        !           290:        int                     tag;                    /* ID */
        !           291:        int                     olddirection;
        !           292: } ceiling_t;
        !           293: 
        !           294: #define        CEILSPEED               FRACUNIT*2
        !           295: #define MAXCEILINGS            30
        !           296: 
        !           297: extern ceiling_t       *activeceilings[MAXCEILINGS];
        !           298: 
        !           299: int            EV_DoCeiling (line_t *line, ceiling_e  type);
        !           300: void   T_MoveCeiling (ceiling_t *ceiling);
        !           301: void   P_AddActiveCeiling(ceiling_t *c);
        !           302: void   P_RemoveActiveCeiling(ceiling_t *c);
        !           303: int            EV_CeilingCrushStop(line_t      *line);
        !           304: void   P_ActivateInStasisCeiling(line_t *line);
        !           305: 
        !           306: /*
        !           307: ===============================================================================
        !           308: 
        !           309:                                                        P_FLOOR
        !           310: 
        !           311: ===============================================================================
        !           312: */
        !           313: typedef enum
        !           314: {
        !           315:        lowerFloor,                     /* lower floor to highest surrounding floor */
        !           316:        lowerFloorToLowest,     /* lower floor to lowest surrounding floor */
        !           317:        turboLower,                     /* lower floor to highest surrounding floor VERY FAST */
        !           318:        raiseFloor,                     /* raise floor to lowest surrounding CEILING */
        !           319:        raiseFloorToNearest,    /* raise floor to next highest surrounding floor */
        !           320:        raiseToTexture,         /* raise floor to shortest height texture around it */
        !           321:        lowerAndChange,         /* lower floor to lowest surrounding floor and change */
        !           322:                                                /* floorpic */
        !           323:        raiseFloor24,
        !           324:        raiseFloor24AndChange,
        !           325:        raiseFloorCrush,
        !           326:        donutRaise
        !           327: } floor_e;
        !           328: 
        !           329: typedef struct
        !           330: {
        !           331:        thinker_t       thinker;
        !           332:        floor_e         type;
        !           333:        boolean         crush;
        !           334:        sector_t        *sector;
        !           335:        int                     direction;
        !           336:        int                     newspecial;
        !           337:        short           texture;
        !           338:        fixed_t         floordestheight;
        !           339:        fixed_t         speed;
        !           340: } floormove_t;
        !           341: 
        !           342: #define        FLOORSPEED      FRACUNIT*3
        !           343: 
        !           344: typedef enum
        !           345: {
        !           346:        ok,
        !           347:        crushed,
        !           348:        pastdest
        !           349: } result_e;
        !           350: 
        !           351: result_e       T_MovePlane(sector_t *sector,fixed_t speed,
        !           352:                        fixed_t dest,boolean crush,int floorOrCeiling,int direction);
        !           353: 
        !           354: int            EV_BuildStairs(line_t *line);
        !           355: int            EV_DoFloor(line_t *line,floor_e floortype);
        !           356: void   T_MoveFloor(floormove_t *floor);
        !           357: 
        !           358: /*
        !           359: ===============================================================================
        !           360: 
        !           361:                                                        P_TELEPT
        !           362: 
        !           363: ===============================================================================
        !           364: */
        !           365: int            EV_Teleport( line_t *line,mobj_t *thing );
        !           366: 

unix.superglobalmegacorp.com

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