Annotation of doom/p_local.h, revision 1.1.1.2

1.1.1.2 ! root        1: 
        !             2: // P_local.h
1.1       root        3: 
                      4: #ifndef __P_LOCAL__
                      5: #define __P_LOCAL__
                      6: 
                      7: #ifndef __R_LOCAL__
1.1.1.2 ! root        8: #include "R_local.h"
1.1       root        9: #endif
                     10: 
1.1.1.2 ! root       11: #define STARTREDPALS   1
        !            12: #define STARTBONUSPALS 9
        !            13: #define NUMREDPALS             8
        !            14: #define NUMBONUSPALS   4
1.1       root       15: 
1.1.1.2 ! root       16: #define FOOTCLIPSIZE   10*FRACUNIT
1.1       root       17: 
1.1.1.2 ! root       18: #define TOCENTER -8
        !            19: #define        FLOATSPEED (FRACUNIT*4)
1.1       root       20: 
1.1.1.2 ! root       21: #define        MAXHEALTH 100
        !            22: #define MAXCHICKENHEALTH 30
        !            23: #define        VIEWHEIGHT (41*FRACUNIT)
1.1       root       24: 
1.1.1.2 ! root       25: // mapblocks are used to check movement against lines and things
1.1       root       26: #define MAPBLOCKUNITS  128
                     27: #define        MAPBLOCKSIZE    (MAPBLOCKUNITS*FRACUNIT)
                     28: #define        MAPBLOCKSHIFT   (FRACBITS+7)
                     29: #define        MAPBMASK                (MAPBLOCKSIZE-1)
                     30: #define        MAPBTOFRAC              (MAPBLOCKSHIFT-FRACBITS)
                     31: 
1.1.1.2 ! root       32: // player radius for movement checking
        !            33: #define PLAYERRADIUS 16*FRACUNIT
1.1       root       34: 
1.1.1.2 ! root       35: // MAXRADIUS is for precalculated sector block boxes
        !            36: // the spider demon is larger, but we don't have any moving sectors
        !            37: // nearby
        !            38: #define MAXRADIUS 32*FRACUNIT
        !            39: 
        !            40: #define        GRAVITY FRACUNIT
        !            41: #define        MAXMOVE (30*FRACUNIT)
        !            42: 
        !            43: #define        USERANGE (64*FRACUNIT)
        !            44: #define        MELEERANGE (64*FRACUNIT)
        !            45: #define        MISSILERANGE (32*64*FRACUNIT)
1.1       root       46: 
                     47: typedef enum
                     48: {
                     49:        DI_EAST,
                     50:        DI_NORTHEAST,
                     51:        DI_NORTH,
                     52:        DI_NORTHWEST,
                     53:        DI_WEST,
                     54:        DI_SOUTHWEST,
                     55:        DI_SOUTH,
                     56:        DI_SOUTHEAST,
                     57:        DI_NODIR,
                     58:        NUMDIRS
                     59: } dirtype_t;
                     60: 
1.1.1.2 ! root       61: #define BASETHRESHOLD 100 // follow a player exlusively for 3 seconds
1.1       root       62: 
1.1.1.2 ! root       63: // ***** P_TICK *****
1.1       root       64: 
1.1.1.2 ! root       65: extern thinker_t thinkercap; // both the head and tail of the thinker list
        !            66: extern int TimerGame; // tic countdown for deathmatch
1.1       root       67: 
1.1.1.2 ! root       68: void P_InitThinkers(void);
        !            69: void P_AddThinker(thinker_t *thinker);
        !            70: void P_RemoveThinker(thinker_t *thinker);
        !            71: 
        !            72: // ***** P_PSPR *****
        !            73: 
        !            74: #define USE_GWND_AMMO_1 1
        !            75: #define USE_GWND_AMMO_2 1
        !            76: #define USE_CBOW_AMMO_1 1
        !            77: #define USE_CBOW_AMMO_2 1
        !            78: #define USE_BLSR_AMMO_1 1
        !            79: #define USE_BLSR_AMMO_2 5
        !            80: #define USE_SKRD_AMMO_1 1
        !            81: #define USE_SKRD_AMMO_2 5
        !            82: #define USE_PHRD_AMMO_1 1
        !            83: #define USE_PHRD_AMMO_2 1
        !            84: #define USE_MACE_AMMO_1 1
        !            85: #define USE_MACE_AMMO_2 5
        !            86: 
        !            87: void P_OpenWeapons(void);
        !            88: void P_CloseWeapons(void);
        !            89: void P_AddMaceSpot(mapthing_t *mthing);
        !            90: void P_RepositionMace(mobj_t *mo);
        !            91: void P_SetPsprite(player_t *player, int position, statenum_t stnum);
        !            92: void P_SetupPsprites(player_t *curplayer);
        !            93: void P_MovePsprites(player_t *curplayer);
        !            94: void P_DropWeapon(player_t *player);
        !            95: void P_ActivateBeak(player_t *player);
        !            96: void P_PostChickenWeapon(player_t *player, weapontype_t weapon);
        !            97: void P_UpdateBeak(player_t *player, pspdef_t *psp);
        !            98: 
        !            99: // ***** P_USER *****
        !           100: 
        !           101: void P_PlayerThink(player_t *player);
        !           102: void P_Thrust(player_t *player, angle_t angle, fixed_t move);
        !           103: void P_PlayerRemoveArtifact(player_t *player, int slot);
        !           104: void P_PlayerUseArtifact(player_t *player, artitype_t arti);
        !           105: boolean P_UseArtifact(player_t *player, artitype_t arti);
        !           106: int P_GetPlayerNum(player_t *player);
        !           107: 
        !           108: // ***** P_MOBJ *****
        !           109: 
        !           110: #define FLOOR_SOLID 0
        !           111: #define FLOOR_WATER 1
        !           112: #define FLOOR_LAVA 2
        !           113: #define FLOOR_SLUDGE 3
        !           114: 
        !           115: #define ONFLOORZ MININT
        !           116: #define ONCEILINGZ MAXINT
        !           117: #define FLOATRANDZ (MAXINT-1)
        !           118: 
        !           119: extern mobjtype_t PuffType;
        !           120: extern mobj_t *MissileMobj;
        !           121: 
        !           122: mobj_t *P_SpawnMobj(fixed_t x, fixed_t y, fixed_t z, mobjtype_t type);
        !           123: void P_RemoveMobj(mobj_t *th);
        !           124: boolean        P_SetMobjState(mobj_t *mobj, statenum_t state);
        !           125: boolean        P_SetMobjStateNF(mobj_t *mobj, statenum_t state);
        !           126: void P_ThrustMobj(mobj_t *mo, angle_t angle, fixed_t move);
        !           127: int P_FaceMobj(mobj_t *source, mobj_t *target, angle_t *delta);
        !           128: boolean P_SeekerMissile(mobj_t *actor, angle_t thresh, angle_t turnMax);
        !           129: void P_MobjThinker(mobj_t *mobj);
        !           130: void P_BlasterMobjThinker(mobj_t *mobj);
        !           131: void P_SpawnPuff(fixed_t x, fixed_t y, fixed_t z);
        !           132: void P_SpawnBlood(fixed_t x, fixed_t y, fixed_t z, int damage);
        !           133: void P_BloodSplatter(fixed_t x, fixed_t y, fixed_t z, mobj_t *originator);
        !           134: void P_RipperBlood(mobj_t *mo);
        !           135: int P_GetThingFloorType(mobj_t *thing);
        !           136: int P_HitFloor(mobj_t *thing);
        !           137: boolean P_CheckMissileSpawn(mobj_t *missile);
        !           138: mobj_t *P_SpawnMissile(mobj_t *source, mobj_t *dest, mobjtype_t type);
        !           139: mobj_t *P_SpawnMissileAngle(mobj_t *source, mobjtype_t type,
        !           140:        angle_t angle, fixed_t momz);
        !           141: mobj_t *P_SpawnPlayerMissile(mobj_t *source, mobjtype_t type);
        !           142: mobj_t *P_SPMAngle(mobj_t *source, mobjtype_t type, angle_t angle);
        !           143: 
        !           144: // ***** P_ENEMY *****
        !           145: 
        !           146: void P_NoiseAlert (mobj_t *target, mobj_t *emmiter);
        !           147: void P_InitMonsters(void);
        !           148: void P_AddBossSpot(fixed_t x, fixed_t y, angle_t angle);
        !           149: void P_Massacre(void);
        !           150: void P_DSparilTeleport(mobj_t *actor);
1.1       root      151: 
1.1.1.2 ! root      152: // ***** P_MAPUTL *****
1.1       root      153: 
                    154: typedef struct
                    155: {
1.1.1.2 ! root      156:        fixed_t x, y, dx, dy;
1.1       root      157: } divline_t;
                    158: 
1.1.1.2 ! root      159: typedef struct
        !           160: {
        !           161:        fixed_t         frac;           // along trace line
        !           162:        boolean         isaline;
        !           163:        union {
        !           164:                mobj_t  *thing;
        !           165:                line_t  *line;
        !           166:        }                       d;
        !           167: } intercept_t;
        !           168: 
        !           169: #define        MAXINTERCEPTS   128
        !           170: extern intercept_t             intercepts[MAXINTERCEPTS], *intercept_p;
        !           171: typedef boolean (*traverser_t) (intercept_t *in);
        !           172: 
1.1       root      173: 
                    174: fixed_t P_AproxDistance (fixed_t dx, fixed_t dy);
                    175: int    P_PointOnLineSide (fixed_t x, fixed_t y, line_t *line);
                    176: int    P_PointOnDivlineSide (fixed_t x, fixed_t y, divline_t *line);
                    177: void   P_MakeDivline (line_t *li, divline_t *dl);
                    178: fixed_t P_InterceptVector (divline_t *v2, divline_t *v1);
                    179: int    P_BoxOnLineSide (fixed_t *tmbox, line_t *ld);
                    180: 
                    181: extern fixed_t opentop, openbottom, openrange;
                    182: extern fixed_t lowfloor;
                    183: void   P_LineOpening (line_t *linedef);
                    184: 
                    185: boolean P_BlockLinesIterator (int x, int y, boolean(*func)(line_t*) );
                    186: boolean P_BlockThingsIterator (int x, int y, boolean(*func)(mobj_t*) );
                    187: 
1.1.1.2 ! root      188: #define PT_ADDLINES            1
        !           189: #define        PT_ADDTHINGS    2
        !           190: #define        PT_EARLYOUT             4
        !           191: 
1.1       root      192: extern divline_t       trace;
1.1.1.2 ! root      193: boolean P_PathTraverse (fixed_t x1, fixed_t y1, fixed_t x2, fixed_t y2,
        !           194:        int flags, boolean (*trav) (intercept_t *));
1.1       root      195: 
                    196: void   P_UnsetThingPosition (mobj_t *thing);
                    197: void   P_SetThingPosition (mobj_t *thing);
                    198: 
1.1.1.2 ! root      199: // ***** P_MAP *****
1.1       root      200: 
1.1.1.2 ! root      201: extern boolean floatok;                                // if true, move would be ok if
        !           202: extern fixed_t tmfloorz, tmceilingz;   // within tmfloorz - tmceilingz
1.1       root      203: 
1.1.1.2 ! root      204: extern line_t *ceilingline;
        !           205: boolean P_TestMobjLocation(mobj_t *mobj);
        !           206: boolean P_CheckPosition(mobj_t *thing, fixed_t x, fixed_t y);
        !           207: mobj_t *P_CheckOnmobj(mobj_t *thing);
        !           208: void P_FakeZMovement(mobj_t *mo);
        !           209: boolean P_TryMove(mobj_t *thing, fixed_t x, fixed_t y);
        !           210: boolean P_TeleportMove(mobj_t *thing, fixed_t x, fixed_t y);
        !           211: void P_SlideMove(mobj_t *mo);
        !           212: boolean P_CheckSight(mobj_t *t1, mobj_t *t2);
        !           213: void P_UseLines(player_t *player);
1.1       root      214: 
                    215: boolean P_ChangeSector (sector_t *sector, boolean crunch);
                    216: 
1.1.1.2 ! root      217: extern mobj_t          *linetarget;                    // who got hit (or NULL)
1.1       root      218: fixed_t P_AimLineAttack (mobj_t *t1, angle_t angle, fixed_t distance);
                    219: 
                    220: void P_LineAttack (mobj_t *t1, angle_t angle, fixed_t distance, fixed_t slope, int damage);
                    221: 
                    222: void P_RadiusAttack (mobj_t *spot, mobj_t *source, int damage);
                    223: 
1.1.1.2 ! root      224: // ***** P_SETUP *****
1.1       root      225: 
1.1.1.2 ! root      226: extern byte *rejectmatrix;                             // for fast sight rejection
        !           227: extern short *blockmaplump;                            // offsets in blockmap are from here
        !           228: extern short *blockmap;
        !           229: extern int bmapwidth, bmapheight;              // in mapblocks
        !           230: extern fixed_t bmaporgx, bmaporgy;             // origin of block map
        !           231: extern mobj_t **blocklinks;                            // for thing chains
1.1       root      232: 
1.1.1.2 ! root      233: // ***** P_INTER *****
1.1       root      234: 
1.1.1.2 ! root      235: extern int maxammo[NUMAMMO];
        !           236: extern int clipammo[NUMAMMO];
1.1       root      237: 
1.1.1.2 ! root      238: void P_SetMessage(player_t *player, char *message, boolean ultmsg);
        !           239: void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher);
        !           240: void P_DamageMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source,
        !           241:        int damage);
        !           242: boolean P_GiveAmmo(player_t *player, ammotype_t ammo, int count);
        !           243: boolean P_GiveArtifact(player_t *player, artitype_t arti, mobj_t *mo);
        !           244: boolean P_GiveBody(player_t *player, int num);
        !           245: boolean P_GivePower(player_t *player, powertype_t power);
        !           246: boolean P_ChickenMorphPlayer(player_t *player);
1.1       root      247: 
1.1.1.2 ! root      248: // ***** AM_MAP *****
1.1       root      249: 
1.1.1.2 ! root      250: boolean AM_Responder(event_t *ev);
        !           251: void AM_Ticker(void);
        !           252: void AM_Drawer(void);
1.1       root      253: 
1.1.1.2 ! root      254: // ***** SB_BAR *****
1.1       root      255: 
1.1.1.2 ! root      256: extern int SB_state;
        !           257: extern int ArtifactFlash;
        !           258: void SB_PaletteFlash(void);
1.1       root      259: 
1.1.1.2 ! root      260: #include "P_spec.h"
1.1       root      261: 
1.1.1.2 ! root      262: #endif // __P_LOCAL__

unix.superglobalmegacorp.com

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