User:Monster Iestyn/Source Code Documentation/p_local.h

From SRB2 Wiki
Jump to navigation Jump to search
This article or section is incomplete. It doesn't have all of the necessary core information on this topic. Please help the SRB2 Wiki by finishing this article.
Online link GitHub entry
File type C header file
#include guard __P_LOCAL__

Includes

Typedefs

Name Type Description
camera_t
struct camera_s
struct The camera structure.
BasicFF_t
struct BasicFF_s
struct

General

Macros

Macro Defined as Description
FLOATSPEED (FRACUNIT*4) Vertical movement speed for Objects with MF_FLOAT.
VIEWHEIGHTS "41" Default value for cv_viewheight.
MAXSCORE 999999990 Maximum number of points a player can score. This is used by P_AddPlayerScore as the maximum value for player->score (or player->marescore for NiGHTS levels).
MAPBLOCKUNITS 128
MAPBLOCKSIZE (MAPBLOCKUNITS*FRACUNIT)
MAPBLOCKSHIFT (FRACBITS+7) (23)
MAPBMASK (MAPBLOCKSIZE-1)
MAPBTOFRAC (MAPBLOCKSHIFT-FRACBITS) (7)
BMBOUNDFIX(xl, xh, yl, yh)
{if (xl > xh) xl = 0; if (yl > yh) yl = 0;}
MAXRADIUS (32*FRACUNIT)
MAXSTEPMOVE (24*FRACUNIT) The maximum difference in height that can be stepped up/down; height differences above this are considered to be 'dropoffs'.
USERANGE (64*FRACUNIT) Doom's Use button effect range. (Unused in SRB2)
MELEERANGE (64*FRACUNIT) Doom's melee attack range. (Used by P_CheckMeleeRange, P_SkimCheckMeleeRange, and P_LookForPlayers)
MISSILERANGE (32*64*FRACUNIT) Doom's missile attack range. (Used by A_UnidusBall)
AIMINGTOSLOPE(aiming)
FINESINE((aiming>>ANGLETOFINESHIFT) & FINEMASK)
mariomode (maptol & TOL_MARIO)
twodlevel (maptol & TOL_2D)

P_Tick

Externs

Data name Data type Non-extern location(s) Description
thinkercap thinker_t p_tick.c The head of the thinkers linked list.

Function prototypes

Function name Return type Params Defined in Description
P_InitThinkers void none p_tick.c Initalises the thinkers list.
P_AddThinker void thinker_t *thinker p_tick.c Adds a new thinker at the end of the thinkers list.
P_RemoveThinker void thinker_t *thinker p_tick.c Changes the thinker's function to P_RemoveThinkerDelayed, so that later the thinker will be removed automatically as part of the thinker process (after all references to the thinker have been removed).

P_User

camera_t

Data name Data type Description
chase boolean
aiming angle_t
viewheight fixed_t
startangle angle_t
x
y
z
fixed_t
angle angle_t
*subsector struct subsector_s
floorz fixed_t
ceilingz fixed_t
radius fixed_t
height fixed_t
relativex fixed_t
momx
momy
momz
fixed_t

Externs

Data name Data type Non-extern location(s) Description
camera
camera2
camera_t p_user.c The cameras for Player 1 and Player 2, respectively.
cv_cam_dist
cv_cam_still
cv_cam_height
consvar_t p_user.c cam_dist, cam_still, cam_height console variable structs
cv_cam_speed
cv_cam_rotate
cv_cam_rotspeed
consvar_t p_user.c cam_speed, cam_rotate, cam_rotspeed console variable structs
cv_cam2_dist
cv_cam2_still
cv_cam2_height
consvar_t p_user.c cam2_dist, cam2_still, cam2_height console variable structs
cv_cam2_speed
cv_cam2_rotate
cv_cam2_rotspeed
consvar_t p_user.c cam2_speed, cam2_rotate, cam2_rotspeed console variable structs
t_cam_dist
t_cam_height
t_cam_rotate
fixed_t p_user.c When the Camera Scanner special effect is active on Player 1, these are used as temporary copies of the old values for cv_cam_dist, cv_cam_still and cv_cam_height, respectively. Otherwise, they will all have values of -42.
t_cam2_dist
t_cam2_height
t_cam2_rotate
fixed_t p_user.c When the Camera Scanner special effect is active on Player 2, these are used as temporary copies of the old values for cv_cam2_dist, cv_cam2_still and cv_cam2_height, respectively. Otherwise, they will all have values of -42.

Function prototypes

Function name Return type Params Defined in Description
P_GetPlayerHeight fixed_t player_t *player p_user.c
P_GetPlayerSpinHeight fixed_t player_t *player p_user.c
P_GetPlayerControlDirection INT32 player_t *player p_user.c
P_AddPlayerScore void player_t *player,
UINT32 amount
p_user.c
P_ResetCamera void player_t *player,
camera_t *thiscam
p_user.c
P_TryCameraMove boolean fixed_t x,
fixed_t y,
camera_t *thiscam
p_map.c
P_SlideCameraMove void camera_t *thiscam p_map.c
P_MoveChaseCamera boolean player_t *player,
camera_t *thiscam,
boolean resetcalled
p_user.c
P_PlayerInPain boolean player_t *player p_user.c
P_DoPlayerPain void player_t *player,
mobj_t *source,
mobj_t *inflictor
p_user.c
P_ResetPlayer void player_t *player p_user.c
P_IsLocalPlayer boolean player_t *player p_user.c
P_IsObjectInGoop boolean mobj_t *mo p_user.c
P_IsObjectOnGround boolean mobj_t *mo p_user.c
P_IsObjectOnGroundIn boolean mobj_t *mo,
sector_t *sec
p_user.c
P_InSpaceSector boolean mobj_t *mo p_user.c
P_InQuicksand boolean mobj_t *mo p_user.c
P_SetObjectMomZ void mobj_t *mo,
fixed_t value,
boolean relative
p_user.c
P_RestoreMusic void player_t *player p_user.c
P_SpawnShieldOrb void player_t *player p_user.c
P_SpawnGhostMobj mobj_t * mobj_t *mo p_user.c
P_GivePlayerRings void player_t *player,
INT32 num_rings
p_user.c
P_GivePlayerRings void player_t *player,
INT32 numlives
p_user.c
P_GetNextEmerald UINT8 none p_user.c
P_GiveEmerald void boolean spawnObj p_user.c
P_ResetScore void player_t *player p_user.c
P_AutoPause boolean none p_user.c
P_DoJumpShield void player_t *player p_user.c
P_BlackOw void player_t *player p_user.c
P_ElementalFireTrail void player_t *player p_user.c
P_DoPityCheck void player_t *player p_user.c
P_PlayerThink void player_t *player p_user.c The main thinker function for players. This runs before all other thinkers have been run for the current tic.
P_PlayerAfterThink void player_t *player p_user.c The thinker function for players that runs after all other thinkers have been run for the current tic.
P_DoPlayerExit void player_t *player p_user.c
P_NightserizePlayer void player_t *player,
INT32 ptime
p_user.c
P_InstaThrust void mobj_t *mo,
angle_t angle,
fixed_t move
p_user.c
P_ReturnThrustX fixed_t mobj_t *mo,
angle_t angle,
fixed_t move
p_user.c
P_ReturnThrustY fixed_t mobj_t *mo,
angle_t angle,
fixed_t move
p_user.c
P_InstaThrustEvenIn2D void mobj_t *mo,
angle_t angle,
fixed_t move
p_user.c
P_LookForEnemies boolean player_t *player p_user.c
P_NukeEnemies void mobj_t *inflictor,
mobj_t *source,
fixed_t radius
p_user.c
P_HomingAttack void mobj_t *source,
mobj_t *enemy
p_user.c
P_SuperReady boolean player_t *player p_user.c
P_DoJump void player_t *player,
boolean soundandstate
p_user.c
P_AnalogMove boolean player_t *player p_user.c
P_TransferToNextMare boolean player_t *player p_user.c
P_FindLowestMare UINT8 none p_user.c
P_FindEmerald void none p_user.c
P_TransferToAxis boolean player_t *player,
INT32 axisnum
p_user.c
P_PlayerMoving boolean INT32 pnum p_user.c
P_SpawnThokMobj void player_t *player p_user.c
P_SpawnSpinMobj void player_t *player,
mobjtype_t type
p_user.c
P_Telekinesis void player_t *player,
fixed_t thrust,
fixed_t range
p_user.c
P_PlayLivesJingle void player_t *player p_user.c

Macros

Macro Defined as Description
P_PlayRinglossSound(s)
S_StartSound(s, (mariomode) ? sfx_mario8 : sfx_altow1 + P_RandomKey(4));
P_PlayDeathSound(s)
S_StartSound(s, sfx_altdi1 + P_RandomKey(4));
P_PlayVictorySound(s)
S_StartSound(s, sfx_victr1 + P_RandomKey(4));

P_Mobj

Macros

Macro Defined as Description
ONFLOORZ INT32_MIN
ONCEILINGZ INT32_MAX
ITEMQUESIZE 1024
P_GetFloorZ(mobj, sector, x, y, line)
P_MobjFloorZ(mobj, sector, NULL, x, y, line, false, false)
P_GetCeilingZ(mobj, sector, x, y, line)
P_MobjCeilingZ(mobj, sector, NULL, x, y, line, true, false)
P_GetFOFTopZ(mobj, sector, fof, x, y, line)
P_MobjCeilingZ(mobj, sectors + fof->secnum, sector, x, y, line, false, false)
P_GetFOFBottomZ(mobj, sector, fof, x, y, line)
P_MobjFloorZ(mobj, sectors + fof->secnum, sector, x, y, line, true, false)
P_GetSpecialBottomZ(mobj, src, bound)
P_MobjFloorZ(mobj, src, bound, mobj->x, mobj->y, NULL, src != bound, true)
P_GetSpecialTopZ(mobj, src, bound)
P_MobjCeilingZ(mobj, src, bound, mobj->x, mobj->y, NULL, src == bound, true)
P_CameraGetFloorZ(mobj, sector, x, y, line)
P_CameraFloorZ(mobj, sector, NULL, x, y, line, false, false)
P_CameraGetCeilingZ(mobj, sector, x, y, line)
P_CameraCeilingZ(mobj, sector, NULL, x, y, line, true, false)
P_CameraGetFOFTopZ(mobj, sector, fof, x, y, line)
P_CameraCeilingZ(mobj, sectors + fof->secnum, sector, x, y, line, false, false)
P_CameraGetFOFBottomZ(mobj, sector, fof, x, y, line)
P_CameraFloorZ(mobj, sectors + fof->secnum, sector, x, y, line, true, false)
P_SpawnPlayerMissile(s,t,f)
P_SPMAngle(s,t,s->angle,true,f)
P_SpawnNameFinder(s,t)
P_SPMAngle(s,t,s->angle,true,0)
Declared only if SEENAMES is defined
PAL_WHITE 1
PAL_MIXUP 2
PAL_RECYCLE 3
PAL_NUKE 4

Externs

Data name Data type Non-extern location(s) Description
*itemrespawnque[ITEMQUESIZE] mapthing_t p_mobj.c
itemrespawntime[ITEMQUESIZE] tic_t p_mobj.c
iquehead
iquetail
size_t p_mobj.c
cv_gravity consvar_t d_netcmd.c gravity console variable struct
cv_viewheight consvar_t p_mobj.c viewheight console variable struct

Function prototypes

Function name Return type Params Defined in Attributes Description
P_RespawnSpecials void none p_mobj.c
P_SpawnMobj mobj_t * fixed_t x,
fixed_t y,
fixed_t z,
mobjtype_t type
p_mobj.c
P_RecalcPrecipInSector void sector_t *sector p_mobj.c
P_PrecipitationEffects void none p_mobj.c
P_RemoveMobj void mobj_t *th p_mobj.c
P_MobjWasRemoved boolean mobj_t *th p_mobj.c
P_RemoveSavegameMobj void mobj_t *th p_mobj.c
P_SetPlayerMobjState boolean mobj_t *mobj,
statenum_t state
p_mobj.c
P_SetMobjState boolean mobj_t *mobj,
statenum_t state
p_mobj.c
P_RunShields void none p_mobj.c
P_RunOverlays void none p_mobj.c
P_MobjThinker void mobj_t *mobj p_mobj.c The thinker function for mobjs.
P_RailThinker boolean mobj_t *mobj p_mobj.c The thinker function for Rail Rings (called by P_MobjThinker)
P_PushableThinker void mobj_t *mobj p_mobj.c The thinker function for pushables (called by P_MobjThinker)
P_SceneryThinker void mobj_t *mobj p_mobj.c The thinker function for scenery (called by P_MobjThinker)
P_MobjFloorZ fixed_t mobj_t *mobj,
sector_t *sector,
sector_t *boundsec,
fixed_t x,
fixed_t y,
line_t *line,
boolean lowest,
boolean perfect
p_mobj.c
P_MobjCeilingZ fixed_t mobj_t *mobj,
sector_t *sector,
sector_t *boundsec,
fixed_t x,
fixed_t y,
line_t *line,
boolean lowest,
boolean perfect
p_mobj.c
P_CameraFloorZ fixed_t camera_t *mobj,
sector_t *sector,
sector_t *boundsec,
fixed_t x,
fixed_t y,
line_t *line,
boolean lowest,
boolean perfect
p_mobj.c
P_CameraCeilingZ fixed_t camera_t *mobj,
sector_t *sector,
sector_t *boundsec,
fixed_t x,
fixed_t y,
line_t *line,
boolean lowest,
boolean perfect
p_mobj.c
P_InsideANonSolidFFloor boolean mobj_t *mobj,
ffloor_t *rover
p_mobj.c
P_CheckDeathPitCollide boolean mobj_t *mo p_mobj.c
P_CheckSolidLava boolean mobj_t *mo,
ffloor_t *rover
p_mobj.c
P_SpawnMissile mobj_t * mobj_t *source,
mobj_t *dest,
mobjtype_t type
p_mobj.c
P_SpawnXYZMissile mobj_t * mobj_t *source,
mobj_t *dest,
mobjtype_t type,
fixed_t x,
fixed_t y,
fixed_t z
p_mobj.c
P_SpawnPointMissile mobj_t * mobj_t *source,
fixed_t xa,
fixed_t ya,
fixed_t za,
mobjtype_t type,
fixed_t x,
fixed_t y,
fixed_t z
p_mobj.c
P_SpawnAlteredDirectionMissile mobj_t * mobj_t *source,
mobjtype_t type,
fixed_t x,
fixed_t y,
fixed_t z,
INT32 shiftingAngle
p_mobj.c
P_SPMAngle mobj_t * mobj_t *source,
mobjtype_t type,
angle_t angle,
UINT8 aimtype,
UINT32 flags2
p_mobj.c
P_ColorTeamMissile void mobj_t *missile,
player_t *source
p_mobj.c
P_MobjFlip SINT8 mobj_t *mobj p_mobj.c
P_GetMobjGravity fixed_t mobj_t *mo p_mobj.c
P_WeaponOrPanel boolean mobjtype_t type p_mobj.c FUNCMATH
P_CameraThinker boolean player_t *player,
camera_t *thiscam,
boolean resetcalled
p_mobj.c
P_Attract void mobj_t *source,
mobj_t *enemy,
boolean nightsgrab
p_mobj.c
P_GetClosestAxis mobj_t * mobj_t *source p_mobj.c
P_CanRunOnWater boolean player_t *player,
ffloor_t *rover
p_mobj.c
P_FlashPal void player_t *pl,
UINT16 type,
UINT16 duration
p_mobj.c

P_Enemy

Externs

Data name Data type Non-extern location(s) Description
*stplyr player_t p_enemy.c
var1 INT32 p_enemy.c
var1 INT32 p_enemy.c

Function prototypes

Function name Return type Params Defined in Description
P_CheckMeleeRange boolean mobj_t *actor p_enemy.c
P_JetbCheckMeleeRange boolean mobj_t *actor p_enemy.c
P_FaceStabCheckMeleeRange boolean mobj_t *actor p_enemy.c
P_SkimCheckMeleeRange boolean mobj_t *actor p_enemy.c
P_CheckMissileRange boolean mobj_t *actor p_enemy.c
P_NewChaseDir void mobj_t *actor p_enemy.c
P_LookForPlayers boolean mobj_t *actor,
boolean allaround,
boolean tracer,
fixed_t dist
p_enemy.c

P_Map

Externs

Data name Data type Non-extern location(s) Description
floatok boolean p_map.c
tmfloorz fixed_t p_map.c
tmceilingz fixed_t p_map.c
*tmfloorthing
*tmhitthing
*tmthing
mobj_t p_map.c
*mapcampointer player_t p_map.c
tmx fixed_t p_map.c
tmy fixed_t p_map.c
*tmfloorslope
*tmceilingslope
pslope_t p_map.c Declared only if ESLOPE is defined
*ceilingline line_t p_map.c
*blockingline line_t p_map.c
*sector_list msecnode_t p_map.c
*precipsector_list mprecipsecnode_t p_map.c

Function prototypes

Function name Return type Params Defined in Description
P_MapStart void none p_map.c
P_MapEnd void none p_map.c
P_UnsetThingPosition void mobj_t *thing p_maputil.c
P_SetThingPosition void mobj_t *thing p_maputil.c
P_SetUnderlayPosition void mobj_t *thing p_maputil.c
P_CheckPosition boolean mobj_t *thing,
fixed_t x,
fixed_t y
p_map.c
P_CheckCameraPosition boolean fixed_t x,
fixed_t y,
camera_t *thiscam
p_map.c
P_TryMove boolean mobj_t *thing,
fixed_t x,
fixed_t y,
boolean allowdropoff
p_map.c
P_Move boolean mobj_t *actor,
fixed_t speed
p_enemy.c
P_TeleportMove boolean mobj_t *thing,
fixed_t x,
fixed_t y,
fixed_t z
p_map.c
P_SlideMove void mobj_t *mo p_map.c
P_BounceMove void mobj_t *mo p_map.c
P_CheckSight boolean mobj_t *t1,
mobj_t *t2
p_sight.c
P_CheckHoopPosition void mobj_t *hoopthing,
fixed_t x,
fixed_t y,
fixed_t z,
fixed_t radius
p_map.c
P_CheckSector void sector_t *sector,
boolean crunch
p_map.c
P_DelSeclist void msecnode_t *node p_map.c
P_DelPrecipSeclist void mprecipsecnode_t *node p_map.c
P_CreateSecNodeList void mobj_t *thing,
fixed_t x,
fixed_t y
p_map.c
P_Initsecnode void none p_map.c
P_RadiusAttack void mobj_t *spot,
mobj_t *source,
fixed_t damagedist
p_map.c
P_FloorzAtPos fixed_t fixed_t x,
fixed_t y,
fixed_t z,
fixed_t height
p_map.c
PIT_PushableMoved boolean mobj_t *thing p_map.c
P_DoSpring boolean mobj_t *spring,
mobj_t *object
p_map.c

P_Setup

Externs

Data name Data type Non-extern location(s) Description
*rejectmatrix UINT8 p_setup.c
*blockmaplump INT32 p_setup.c
*blockmap INT32 p_setup.c
bmapwidth INT32 p_setup.c
bmapheight INT32 p_setup.c
bmaporgx fixed_t p_setup.c
bmaporgy fixed_t p_setup.c
**blocklinks mobj_t p_setup.c

P_Inter

BasicFF_t

Data name Data type Description
ForceX INT32
ForceY INT32
*player const player_t
Duration UINT32
Gain INT32
Magnitude INT32

Function prototypes

Function name Return type Params Defined in Description
P_ForceFeed void const player_t *player,
INT32 attack,
INT32 fade,
tic_t duration,
INT32 period
p_inter.c
P_ForceConstant void const BasicFF_t *FFInfo p_inter.c
P_RampConstant void const BasicFF_t *FFInfo,
INT32 Start,
INT32 End
p_inter.c
P_RemoveShield void player_t *player p_inter.c
P_DamageMobj boolean mobj_t *target,
mobj_t *inflictor,
mobj_t *source,
INT32 damage
p_inter.c
P_KillMobj void mobj_t *target,
mobj_t *inflictor,
mobj_t *source
p_inter.c
P_PlayerRingBurst void player_t *player,
INT32 num_rings
p_inter.c
P_PlayerWeaponPanelBurst void player_t *player p_inter.c
P_PlayerWeaponAmmoBurst void player_t *player p_inter.c
P_PlayerEmeraldBurst void player_t *player,
boolean toss
p_inter.c
P_TouchSpecialThing void mobj_t *special,
mobj_t *toucher,
boolean heightcheck
p_inter.c
P_PlayerFlagBurst void player_t *player,
boolean toss
p_inter.c
P_CheckTimeLimit void none p_inter.c
P_CheckPointLimit void none p_inter.c
P_CheckSurvivors void none p_inter.c
P_CheckRacers boolean none p_inter.c
P_ClearStarPost void INT32 postnum p_inter.c
P_ResetStarposts void none p_inter.c
P_CanPickupItem boolean player_t *player,
boolean weapon
p_inter.c
P_DoNightsScore void player_t *player p_inter.c

P_Spec/Other

Externs

Data name Data type Non-extern location(s) Description
ceilmovesound INT32 p_ceilng.c

Macros

Macro Defined as Description
CARRYFACTOR ((3*FRACUNIT)/32)

Function prototypes

Function name Return type Params Defined in Description
P_MixUp void mobj_t *thing,
fixed_t x,
fixed_t y,
fixed_t z,
angle_t angle,
INT16 starpostx,
INT16 starposty,
INT16 starpostz,
INT32 starpostnum,
tic_t starposttime,
angle_t starpostangle,
INT32 flags2
p_telept.c
P_Teleport boolean mobj_t *thing,
fixed_t x,
fixed_t y,
fixed_t z,
angle_t angle,
boolean flash,
boolean dontstopmove
p_telept.c
P_SetMobjStateNF boolean mobj_t *mobj,
statenum_t state
p_mobj.c
P_CheckMissileSpawn boolean mobj_t *th p_mobj.c
P_Thrust void mobj_t *mo,
angle_t angle,
fixed_t move
p_user.c
P_DoSuperTransformation void player_t *player,
boolean giverings
p_user.c
P_ExplodeMissile void mobj_t *mo p_mobj.c
P_CheckGravity void mobj_t *mo,
boolean affect
p_mobj.c