From 8d41b58635bdc4b68d54dc42e6bbc05095d3765e Mon Sep 17 00:00:00 2001 From: smallmodel <15067410+smallmodel@users.noreply.github.com> Date: Fri, 11 Aug 2023 01:33:49 +0200 Subject: [PATCH] Using hitloc enum instead of macros --- code/fgame/entity.cpp | 2 +- code/fgame/player.cpp | 40 ++++++++-------- code/fgame/player_conditionals.cpp | 42 ++++++++--------- code/fgame/sentient.cpp | 2 +- code/fgame/sentient.h | 22 --------- code/fgame/weaputils.cpp | 76 +++++++++++++++--------------- code/qcommon/q_shared.h | 25 ++++++++++ 7 files changed, 106 insertions(+), 103 deletions(-) diff --git a/code/fgame/entity.cpp b/code/fgame/entity.cpp index e19eef52..8d73d2cc 100644 --- a/code/fgame/entity.cpp +++ b/code/fgame/entity.cpp @@ -5873,7 +5873,7 @@ void Entity::EventNormalDamage(Event *ev) e1.AddInteger(0); //knockback e1.AddInteger(DAMAGE_NONE); //damageflags e1.AddInteger(MOD_NONE); //meansofdeath - e1.AddInteger(LOCATION_GENERAL); //location + e1.AddInteger(HITLOC_GENERAL); //location ProcessEvent(e1); } diff --git a/code/fgame/player.cpp b/code/fgame/player.cpp index 6481280e..d31ef614 100644 --- a/code/fgame/player.cpp +++ b/code/fgame/player.cpp @@ -6422,7 +6422,7 @@ void Player::NextPainTime(Event *ev) if (time >= 0.0f) { pain = 0.0f; pain_type = MOD_NONE; - pain_location = LOCATION_MISS; + pain_location = HITLOC_MISS; m_pLegsPainCond->clearCheck(); m_pTorsoPainCond->clearCheck(); @@ -7010,25 +7010,25 @@ void Player::InitDeathmatch(void) m_fWeapSelectTime = level.time - 9.0f; if (!g_realismmode->integer) { - m_fDamageMultipliers[LOCATION_HEAD] = 2.0f; - m_fDamageMultipliers[LOCATION_HELMET] = 2.0f; - m_fDamageMultipliers[LOCATION_NECK] = 2.0f; - m_fDamageMultipliers[LOCATION_TORSO_UPPER] = 1.0f; - m_fDamageMultipliers[LOCATION_TORSO_MID] = 0.95f; - m_fDamageMultipliers[LOCATION_TORSO_LOWER] = 0.90f; - m_fDamageMultipliers[LOCATION_PELVIS] = 0.85f; - m_fDamageMultipliers[LOCATION_R_ARM_UPPER] = 0.80f; - m_fDamageMultipliers[LOCATION_L_ARM_UPPER] = 0.80f; - m_fDamageMultipliers[LOCATION_R_LEG_UPPER] = 0.80f; - m_fDamageMultipliers[LOCATION_L_LEG_UPPER] = 0.80f; - m_fDamageMultipliers[LOCATION_R_ARM_LOWER] = 0.60f; - m_fDamageMultipliers[LOCATION_L_ARM_LOWER] = 0.60f; - m_fDamageMultipliers[LOCATION_R_LEG_LOWER] = 0.60f; - m_fDamageMultipliers[LOCATION_L_LEG_LOWER] = 0.60f; - m_fDamageMultipliers[LOCATION_R_HAND] = 0.50f; - m_fDamageMultipliers[LOCATION_L_HAND] = 0.50f; - m_fDamageMultipliers[LOCATION_R_FOOT] = 0.50f; - m_fDamageMultipliers[LOCATION_L_FOOT] = 0.50f; + m_fDamageMultipliers[HITLOC_HEAD] = 2.0f; + m_fDamageMultipliers[HITLOC_HELMET] = 2.0f; + m_fDamageMultipliers[HITLOC_NECK] = 2.0f; + m_fDamageMultipliers[HITLOC_TORSO_UPPER] = 1.0f; + m_fDamageMultipliers[HITLOC_TORSO_MID] = 0.95f; + m_fDamageMultipliers[HITLOC_TORSO_LOWER] = 0.90f; + m_fDamageMultipliers[HITLOC_PELVIS] = 0.85f; + m_fDamageMultipliers[HITLOC_R_ARM_UPPER] = 0.80f; + m_fDamageMultipliers[HITLOC_L_ARM_UPPER] = 0.80f; + m_fDamageMultipliers[HITLOC_R_LEG_UPPER] = 0.80f; + m_fDamageMultipliers[HITLOC_L_LEG_UPPER] = 0.80f; + m_fDamageMultipliers[HITLOC_R_ARM_LOWER] = 0.60f; + m_fDamageMultipliers[HITLOC_L_ARM_LOWER] = 0.60f; + m_fDamageMultipliers[HITLOC_R_LEG_LOWER] = 0.60f; + m_fDamageMultipliers[HITLOC_L_LEG_LOWER] = 0.60f; + m_fDamageMultipliers[HITLOC_R_HAND] = 0.50f; + m_fDamageMultipliers[HITLOC_L_HAND] = 0.50f; + m_fDamageMultipliers[HITLOC_R_FOOT] = 0.50f; + m_fDamageMultipliers[HITLOC_L_FOOT] = 0.50f; } if (current_team) { diff --git a/code/fgame/player_conditionals.cpp b/code/fgame/player_conditionals.cpp index 1b933867..454eb5eb 100644 --- a/code/fgame/player_conditionals.cpp +++ b/code/fgame/player_conditionals.cpp @@ -1235,47 +1235,47 @@ qboolean Player::CondPainLocation(Conditional& condition) sLocationName = condition.getParm(1); if (!sLocationName.icmp("miss")) { - iLocationNum = LOCATION_MISS; + iLocationNum = HITLOC_MISS; } else if (!sLocationName.icmp("general")) { - iLocationNum = LOCATION_GENERAL; + iLocationNum = HITLOC_GENERAL; } else if (!sLocationName.icmp("head")) { - iLocationNum = LOCATION_HEAD; + iLocationNum = HITLOC_HEAD; } else if (!sLocationName.icmp("helmet")) { - iLocationNum = LOCATION_HELMET; + iLocationNum = HITLOC_HELMET; } else if (!sLocationName.icmp("neck")) { - iLocationNum = LOCATION_NECK; + iLocationNum = HITLOC_NECK; } else if (!sLocationName.icmp("torso_upper")) { - iLocationNum = LOCATION_TORSO_UPPER; + iLocationNum = HITLOC_TORSO_UPPER; } else if (!sLocationName.icmp("torso_mid")) { - iLocationNum = LOCATION_TORSO_MID; + iLocationNum = HITLOC_TORSO_MID; } else if (!sLocationName.icmp("torso_lower")) { - iLocationNum = LOCATION_TORSO_LOWER; + iLocationNum = HITLOC_TORSO_LOWER; } else if (!sLocationName.icmp("pelvis")) { - iLocationNum = LOCATION_PELVIS; + iLocationNum = HITLOC_PELVIS; } else if (!sLocationName.icmp("r_arm_upper")) { - iLocationNum = LOCATION_R_ARM_UPPER; + iLocationNum = HITLOC_R_ARM_UPPER; } else if (!sLocationName.icmp("l_arm_upper")) { - iLocationNum = LOCATION_L_ARM_UPPER; + iLocationNum = HITLOC_L_ARM_UPPER; } else if (!sLocationName.icmp("r_leg_upper")) { - iLocationNum = LOCATION_R_LEG_UPPER; + iLocationNum = HITLOC_R_LEG_UPPER; } else if (!sLocationName.icmp("l_leg_upper")) { - iLocationNum = LOCATION_L_LEG_UPPER; + iLocationNum = HITLOC_L_LEG_UPPER; } else if (!sLocationName.icmp("r_arm_lower")) { - iLocationNum = LOCATION_R_ARM_LOWER; + iLocationNum = HITLOC_R_ARM_LOWER; } else if (!sLocationName.icmp("l_arm_lower")) { - iLocationNum = LOCATION_L_ARM_LOWER; + iLocationNum = HITLOC_L_ARM_LOWER; } else if (!sLocationName.icmp("r_leg_lower")) { - iLocationNum = LOCATION_R_LEG_LOWER; + iLocationNum = HITLOC_R_LEG_LOWER; } else if (!sLocationName.icmp("l_leg_lower")) { - iLocationNum = LOCATION_L_LEG_LOWER; + iLocationNum = HITLOC_L_LEG_LOWER; } else if (!sLocationName.icmp("r_hand")) { - iLocationNum = LOCATION_R_HAND; + iLocationNum = HITLOC_R_HAND; } else if (!sLocationName.icmp("l_hand")) { - iLocationNum = LOCATION_L_HAND; + iLocationNum = HITLOC_L_HAND; } else if (!sLocationName.icmp("r_foot")) { - iLocationNum = LOCATION_R_FOOT; + iLocationNum = HITLOC_R_FOOT; } else if (!sLocationName.icmp("l_foot")) { - iLocationNum = LOCATION_L_FOOT; + iLocationNum = HITLOC_L_FOOT; } else { Com_Printf("CondPainLocation: Unknown player hit location %s\n", sLocationName.c_str()); } diff --git a/code/fgame/sentient.cpp b/code/fgame/sentient.cpp index 49ac83bd..40c7a2f7 100644 --- a/code/fgame/sentient.cpp +++ b/code/fgame/sentient.cpp @@ -1208,7 +1208,7 @@ int Sentient::CheckHitLocation(int iLocation) if (WearingHelmet()) { return iLocation; } else { - return LOCATION_HEAD; + return HITLOC_HEAD; } } diff --git a/code/fgame/sentient.h b/code/fgame/sentient.h index ff063ca6..b481145a 100644 --- a/code/fgame/sentient.h +++ b/code/fgame/sentient.h @@ -30,28 +30,6 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #include "animate.h" #include "vehicle.h" -#define LOCATION_MISS -2 -#define LOCATION_GENERAL -1 -#define LOCATION_HEAD 0 -#define LOCATION_HELMET 1 -#define LOCATION_NECK 2 -#define LOCATION_TORSO_UPPER 3 -#define LOCATION_TORSO_MID 4 -#define LOCATION_TORSO_LOWER 5 -#define LOCATION_PELVIS 6 -#define LOCATION_R_ARM_UPPER 7 -#define LOCATION_L_ARM_UPPER 8 -#define LOCATION_R_LEG_UPPER 9 -#define LOCATION_L_LEG_UPPER 10 -#define LOCATION_R_ARM_LOWER 11 -#define LOCATION_L_ARM_LOWER 12 -#define LOCATION_R_LEG_LOWER 13 -#define LOCATION_L_LEG_LOWER 14 -#define LOCATION_R_HAND 15 -#define LOCATION_L_HAND 16 -#define LOCATION_R_FOOT 17 -#define LOCATION_L_FOOT 18 - extern Event EV_Sentient_Attack; extern Event EV_Sentient_Charge; extern Event EV_Sentient_ReleaseAttack; diff --git a/code/fgame/weaputils.cpp b/code/fgame/weaputils.cpp index 25e69b26..ee32058a 100644 --- a/code/fgame/weaputils.cpp +++ b/code/fgame/weaputils.cpp @@ -2169,37 +2169,37 @@ void BulletAttack_Stat(Entity* owner, Entity* target, trace_t* trace, Weapon* we switch (trace->location) { - case LOCATION_HEAD: - case LOCATION_HELMET: - case LOCATION_NECK: + case HITLOC_HEAD: + case HITLOC_HELMET: + case HITLOC_NECK: weap->m_iNumHeadShots++; break; - case LOCATION_TORSO_UPPER: - case LOCATION_TORSO_MID: - case LOCATION_TORSO_LOWER: + case HITLOC_TORSO_UPPER: + case HITLOC_TORSO_MID: + case HITLOC_TORSO_LOWER: weap->m_iNumTorsoShots++; break; - case LOCATION_PELVIS: + case HITLOC_PELVIS: weap->m_iNumGroinShots++; break; - case LOCATION_R_ARM_UPPER: - case LOCATION_R_ARM_LOWER: - case LOCATION_R_HAND: + case HITLOC_R_ARM_UPPER: + case HITLOC_R_ARM_LOWER: + case HITLOC_R_HAND: weap->m_iNumRightArmShots++; break; - case LOCATION_L_ARM_UPPER: - case LOCATION_L_ARM_LOWER: - case LOCATION_L_HAND: + case HITLOC_L_ARM_UPPER: + case HITLOC_L_ARM_LOWER: + case HITLOC_L_HAND: weap->m_iNumLeftArmShots++; break; - case LOCATION_R_LEG_UPPER: - case LOCATION_R_LEG_LOWER: - case LOCATION_R_FOOT: + case HITLOC_R_LEG_UPPER: + case HITLOC_R_LEG_LOWER: + case HITLOC_R_FOOT: weap->m_iNumRightLegShots++; break; - case LOCATION_L_LEG_UPPER: - case LOCATION_L_LEG_LOWER: - case LOCATION_L_FOOT: + case HITLOC_L_LEG_UPPER: + case HITLOC_L_LEG_LOWER: + case HITLOC_L_FOOT: weap->m_iNumLeftLegShots++; break; default: @@ -2214,37 +2214,37 @@ void BulletAttack_Stat(Entity* owner, Entity* target, trace_t* trace, Weapon* we switch (trace->location) { - case LOCATION_HEAD: - case LOCATION_HELMET: - case LOCATION_NECK: + case HITLOC_HEAD: + case HITLOC_HELMET: + case HITLOC_NECK: p->m_iNumHeadShots++; break; - case LOCATION_TORSO_UPPER: - case LOCATION_TORSO_MID: - case LOCATION_TORSO_LOWER: + case HITLOC_TORSO_UPPER: + case HITLOC_TORSO_MID: + case HITLOC_TORSO_LOWER: p->m_iNumTorsoShots++; break; - case LOCATION_PELVIS: + case HITLOC_PELVIS: p->m_iNumGroinShots++; break; - case LOCATION_R_ARM_UPPER: - case LOCATION_R_ARM_LOWER: - case LOCATION_R_HAND: + case HITLOC_R_ARM_UPPER: + case HITLOC_R_ARM_LOWER: + case HITLOC_R_HAND: p->m_iNumRightArmShots++; break; - case LOCATION_L_ARM_UPPER: - case LOCATION_L_ARM_LOWER: - case LOCATION_L_HAND: + case HITLOC_L_ARM_UPPER: + case HITLOC_L_ARM_LOWER: + case HITLOC_L_HAND: p->m_iNumLeftArmShots++; break; - case LOCATION_R_LEG_UPPER: - case LOCATION_R_LEG_LOWER: - case LOCATION_R_FOOT: + case HITLOC_R_LEG_UPPER: + case HITLOC_R_LEG_LOWER: + case HITLOC_R_FOOT: p->m_iNumRightLegShots++; break; - case LOCATION_L_LEG_UPPER: - case LOCATION_L_LEG_LOWER: - case LOCATION_L_FOOT: + case HITLOC_L_LEG_UPPER: + case HITLOC_L_LEG_LOWER: + case HITLOC_L_FOOT: p->m_iNumLeftLegShots++; break; default: diff --git a/code/qcommon/q_shared.h b/code/qcommon/q_shared.h index 02808c79..9794f0ae 100644 --- a/code/qcommon/q_shared.h +++ b/code/qcommon/q_shared.h @@ -1404,6 +1404,31 @@ typedef struct cplane_s { byte pad[2]; } cplane_t; +// body hit location +typedef enum hitloc_e { + HITLOC_MISS = -2, + HITLOC_GENERAL = -1, + HITLOC_HEAD = 0, + HITLOC_HELMET, + HITLOC_NECK, + HITLOC_TORSO_UPPER, + HITLOC_TORSO_MID, + HITLOC_TORSO_LOWER, + HITLOC_PELVIS, + HITLOC_R_ARM_UPPER, + HITLOC_L_ARM_UPPER, + HITLOC_R_LEG_UPPER, + HITLOC_L_LEG_UPPER, + HITLOC_R_ARM_LOWER, + HITLOC_L_ARM_LOWER, + HITLOC_R_LEG_LOWER, + HITLOC_L_LEG_LOWER, + HITLOC_R_HAND, + HITLOC_L_HAND, + HITLOC_R_FOOT, + HITLOC_L_FOOT, + NUMBODYLOCATIONS +} hitloc_t; // a trace is returned when a box is swept through the world typedef struct {