heretic2-sdk/Toolkit/Programming/GameCode/game/g_HitLocation.h
1998-11-24 00:00:00 +00:00

61 lines
1.5 KiB
C

#ifndef G_HITLOCATION_H
#define G_HITLOCATION_H
// Enumerated hit locations
typedef enum HitLocation_e
{
hl_Null = -1,
hl_NoneSpecific = 0,
hl_Head,
hl_TorsoFront,
hl_TorsoBack,
hl_ArmUpperLeft,
hl_ArmLowerLeft,
hl_ArmUpperRight,
hl_ArmLowerRight,
hl_LegUpperLeft,
hl_LegLowerLeft,
hl_LegUpperRight,
hl_LegLowerRight,
hl_BipedPoints,
hl_WingedPoints,
hl_extra14,
hl_extra15,
hl_MeleeHit,//16
hl_Max,
//50/50 HITLOCS
hl_Half_LLL_LRL,//left lower leg and right lower leg
hl_Half_ULL_URL,//left upper leg and right upper leg
hl_Half_FT_BT,//front and back torso
hl_Half_FT_URA,//front torso and upper right arm
hl_Half_FT_ULA,//front torso and upper left arm
hl_Half_FT_LRA,//front torso and lower right arm
hl_Half_FT_LLA,//front torso and lower left arm
hl_Half_BT_URA,//back torso and upper right arm
hl_Half_BT_ULA,//back torso and upper left arm
hl_Half_BT_LRA,//back torso and lower right arm
hl_Half_BT_LLA,//back torso and lower left arm
} HitLocation_t;
typedef enum BloodType_e
{
BLOODTYPE_NONE,
BLOODTYPE_RED,
BLOODTYPE_GREEN,
BLOODTYPE_STONE_CHIPS,
BLOODTYPE_WOOD_CHIPS,
NUM_BLOOTYPES
} BloodType_t;
typedef struct HlDef_t
{
vec3_t *LocTable;
int NumLocs;
} HlDef_t;
HitLocation_t T_GetHitLocation(struct edict_s *target, struct edict_s *inflictor, vec3_t point);
HitLocation_t MG_GetHitLocation(edict_t *target, edict_t *inflictor, vec3_t ppoint, vec3_t pdir);
#define TOTAL_ZONES 125//5 upper, 5 forward, 5 lateral
#endif