hitbox changes, misc fixes

This commit is contained in:
rei-2
2025-10-12 22:59:31 -04:00
parent 2ac70d082a
commit afc54e065f
9 changed files with 715 additions and 182 deletions
@@ -55,62 +55,27 @@ bool CAimbotGlobal::PlayerBoneInFOV(CTFPlayer* pTarget, Vec3 vLocalPos, Vec3 vLo
bool CAimbotGlobal::IsHitboxValid(CBaseEntity* pEntity, int nHitbox, int iHitboxes)
{
switch (H::Entities.GetModel(pEntity->entindex()))
switch (pEntity->GetHitboxToBase(nHitbox))
{
case FNV1A::Hash32Const("models/vsh/player/saxton_hale.mdl"):
case FNV1A::Hash32Const("models/vsh/player/hell_hale.mdl"):
case FNV1A::Hash32Const("models/vsh/player/santa_hale.mdl"):
{
switch (nHitbox)
{
case -1: return true;
case HITBOX_SAXTON_HEAD: return iHitboxes & Vars::Aimbot::Hitscan::HitboxesEnum::Head;
case HITBOX_SAXTON_BODY:
case HITBOX_SAXTON_THORAX:
case HITBOX_SAXTON_CHEST:
case HITBOX_SAXTON_UPPER_CHEST:
case HITBOX_SAXTON_NECK: return iHitboxes & Vars::Aimbot::Hitscan::HitboxesEnum::Body;
case HITBOX_SAXTON_PELVIS: return iHitboxes & Vars::Aimbot::Hitscan::HitboxesEnum::Pelvis;
case HITBOX_SAXTON_LEFT_UPPER_ARM:
case HITBOX_SAXTON_LEFT_FOREARM:
case HITBOX_SAXTON_LEFT_HAND:
case HITBOX_SAXTON_RIGHT_UPPER_ARM:
case HITBOX_SAXTON_RIGHT_FOREARM:
case HITBOX_SAXTON_RIGHT_HAND: return iHitboxes & Vars::Aimbot::Hitscan::HitboxesEnum::Arms;
case HITBOX_SAXTON_LEFT_THIGH:
case HITBOX_SAXTON_LEFT_CALF:
case HITBOX_SAXTON_LEFT_FOOT:
case HITBOX_SAXTON_RIGHT_THIGH:
case HITBOX_SAXTON_RIGHT_CALF:
case HITBOX_SAXTON_RIGHT_FOOT: return iHitboxes & Vars::Aimbot::Hitscan::HitboxesEnum::Legs;
}
break;
}
default:
{
switch (nHitbox)
{
case -1: return true;
case HITBOX_HEAD: return iHitboxes & Vars::Aimbot::Hitscan::HitboxesEnum::Head;
case HITBOX_BODY:
case HITBOX_THORAX:
case HITBOX_CHEST:
case HITBOX_UPPER_CHEST: return iHitboxes & Vars::Aimbot::Hitscan::HitboxesEnum::Body;
case HITBOX_PELVIS: return iHitboxes & Vars::Aimbot::Hitscan::HitboxesEnum::Pelvis;
case HITBOX_LEFT_UPPER_ARM:
case HITBOX_LEFT_FOREARM:
case HITBOX_LEFT_HAND:
case HITBOX_RIGHT_UPPER_ARM:
case HITBOX_RIGHT_FOREARM:
case HITBOX_RIGHT_HAND: return iHitboxes & Vars::Aimbot::Hitscan::HitboxesEnum::Arms;
case HITBOX_LEFT_THIGH:
case HITBOX_LEFT_CALF:
case HITBOX_LEFT_FOOT:
case HITBOX_RIGHT_THIGH:
case HITBOX_RIGHT_CALF:
case HITBOX_RIGHT_FOOT: return iHitboxes & Vars::Aimbot::Hitscan::HitboxesEnum::Legs;
}
}
case -1: return true;
case HITBOX_HEAD: return iHitboxes & Vars::Aimbot::Hitscan::HitboxesEnum::Head;
case HITBOX_SPINE0:
case HITBOX_SPINE1:
case HITBOX_SPINE2:
case HITBOX_SPINE3: return iHitboxes & Vars::Aimbot::Hitscan::HitboxesEnum::Body;
case HITBOX_PELVIS: return iHitboxes & Vars::Aimbot::Hitscan::HitboxesEnum::Pelvis;
case HITBOX_LEFT_UPPERARM:
case HITBOX_LEFT_FOREARM:
case HITBOX_LEFT_HAND:
case HITBOX_RIGHT_UPPERARM:
case HITBOX_RIGHT_FOREARM:
case HITBOX_RIGHT_HAND: return iHitboxes & Vars::Aimbot::Hitscan::HitboxesEnum::Arms;
case HITBOX_LEFT_THIGH:
case HITBOX_LEFT_CALF:
case HITBOX_LEFT_FOOT:
case HITBOX_RIGHT_THIGH:
case HITBOX_RIGHT_CALF:
case HITBOX_RIGHT_FOOT: return iHitboxes & Vars::Aimbot::Hitscan::HitboxesEnum::Legs;
}
return false;
@@ -136,60 +101,26 @@ bool CAimbotGlobal::ShouldMultipoint(CBaseEntity* pEntity, int nHitbox, int iHit
if (!iHitboxes)
return true;
switch (H::Entities.GetModel(pEntity->entindex()))
switch (pEntity->GetHitboxToBase(nHitbox))
{
case FNV1A::Hash32Const("models/vsh/player/saxton_hale.mdl"):
case FNV1A::Hash32Const("models/vsh/player/hell_hale.mdl"):
case FNV1A::Hash32Const("models/vsh/player/santa_hale.mdl"):
{
switch (nHitbox)
{
case HITBOX_SAXTON_HEAD: return iHitboxes & Vars::Aimbot::Hitscan::HitboxesEnum::Head;
case HITBOX_SAXTON_BODY:
case HITBOX_SAXTON_THORAX:
case HITBOX_SAXTON_CHEST:
case HITBOX_SAXTON_UPPER_CHEST:
case HITBOX_SAXTON_NECK:
case HITBOX_SAXTON_PELVIS: return iHitboxes & Vars::Aimbot::Hitscan::HitboxesEnum::Body;
case HITBOX_SAXTON_LEFT_UPPER_ARM:
case HITBOX_SAXTON_LEFT_FOREARM:
case HITBOX_SAXTON_LEFT_HAND:
case HITBOX_SAXTON_RIGHT_UPPER_ARM:
case HITBOX_SAXTON_RIGHT_FOREARM:
case HITBOX_SAXTON_RIGHT_HAND: return iHitboxes & Vars::Aimbot::Hitscan::HitboxesEnum::Arms;
case HITBOX_SAXTON_LEFT_THIGH:
case HITBOX_SAXTON_LEFT_CALF:
case HITBOX_SAXTON_LEFT_FOOT:
case HITBOX_SAXTON_RIGHT_THIGH:
case HITBOX_SAXTON_RIGHT_CALF:
case HITBOX_SAXTON_RIGHT_FOOT: return iHitboxes & Vars::Aimbot::Hitscan::HitboxesEnum::Legs;
}
break;
}
default:
{
switch (nHitbox)
{
case HITBOX_HEAD: return iHitboxes & Vars::Aimbot::Hitscan::HitboxesEnum::Head;
case HITBOX_BODY:
case HITBOX_THORAX:
case HITBOX_CHEST:
case HITBOX_UPPER_CHEST:
case HITBOX_PELVIS: return iHitboxes & Vars::Aimbot::Hitscan::HitboxesEnum::Body;
case HITBOX_LEFT_UPPER_ARM:
case HITBOX_LEFT_FOREARM:
case HITBOX_LEFT_HAND:
case HITBOX_RIGHT_UPPER_ARM:
case HITBOX_RIGHT_FOREARM:
case HITBOX_RIGHT_HAND: return iHitboxes & Vars::Aimbot::Hitscan::HitboxesEnum::Arms;
case HITBOX_LEFT_THIGH:
case HITBOX_LEFT_CALF:
case HITBOX_LEFT_FOOT:
case HITBOX_RIGHT_THIGH:
case HITBOX_RIGHT_CALF:
case HITBOX_RIGHT_FOOT: return iHitboxes & Vars::Aimbot::Hitscan::HitboxesEnum::Legs;
}
}
case HITBOX_HEAD: return iHitboxes & Vars::Aimbot::Hitscan::HitboxesEnum::Head;
case HITBOX_SPINE0:
case HITBOX_SPINE1:
case HITBOX_SPINE2:
case HITBOX_SPINE3:
case HITBOX_PELVIS: return iHitboxes & Vars::Aimbot::Hitscan::HitboxesEnum::Body;
case HITBOX_LEFT_UPPERARM:
case HITBOX_LEFT_FOREARM:
case HITBOX_LEFT_HAND:
case HITBOX_RIGHT_UPPERARM:
case HITBOX_RIGHT_FOREARM:
case HITBOX_RIGHT_HAND: return iHitboxes & Vars::Aimbot::Hitscan::HitboxesEnum::Arms;
case HITBOX_LEFT_THIGH:
case HITBOX_LEFT_CALF:
case HITBOX_LEFT_FOOT:
case HITBOX_RIGHT_THIGH:
case HITBOX_RIGHT_CALF:
case HITBOX_RIGHT_FOOT: return iHitboxes & Vars::Aimbot::Hitscan::HitboxesEnum::Legs;
}
return false;
@@ -231,36 +231,14 @@ int CAimbotHitscan::GetHitboxPriority(int nHitbox, CTFPlayer* pLocal, CTFWeaponB
int iMiscPriority = bHeadOnly ? -1 : 2;
int iLimbPriority = bHeadOnly ? -1 : 3;
switch (H::Entities.GetModel(pTarget->entindex()))
switch (pTarget->GetHitboxToBase(nHitbox))
{
case FNV1A::Hash32Const("models/vsh/player/saxton_hale.mdl"):
case FNV1A::Hash32Const("models/vsh/player/hell_hale.mdl"):
case FNV1A::Hash32Const("models/vsh/player/santa_hale.mdl"):
{
switch (nHitbox)
{
case HITBOX_SAXTON_HEAD: return iHeadPriority;
case HITBOX_SAXTON_BODY:
case HITBOX_SAXTON_THORAX:
case HITBOX_SAXTON_CHEST:
case HITBOX_SAXTON_UPPER_CHEST: return iBodyPriority;
case HITBOX_SAXTON_NECK:
case HITBOX_SAXTON_PELVIS: return iMiscPriority;
}
break;
}
default:
{
switch (nHitbox)
{
case HITBOX_HEAD: return iHeadPriority;
case HITBOX_BODY:
case HITBOX_THORAX:
case HITBOX_CHEST:
case HITBOX_UPPER_CHEST: return iBodyPriority;
case HITBOX_PELVIS: return iMiscPriority;
}
}
case HITBOX_HEAD: return iHeadPriority;
case HITBOX_SPINE0:
case HITBOX_SPINE1:
case HITBOX_SPINE2:
case HITBOX_SPINE3: return iBodyPriority;
case HITBOX_PELVIS: return iMiscPriority;
}
return iLimbPriority;
@@ -3,6 +3,7 @@
#include "../Aimbot.h"
#include "../../Simulation/MovementSimulation/MovementSimulation.h"
#include "../../Simulation/ProjectileSimulation/ProjectileSimulation.h"
#include "../../EnginePrediction/EnginePrediction.h"
#include "../../Ticks/Ticks.h"
#include "../../Visuals/Visuals.h"
#include "../AutoAirblast/AutoAirblast.h"
@@ -1185,8 +1186,10 @@ bool CAimbotProjectile::TestAngle(CTFPlayer* pLocal, CTFWeaponBase* pWeapon, Tar
}
bool bDidHit = false, bPrimeTime = false;
const Vec3 vOriginal = tTarget.m_pEntity->GetAbsOrigin();
const RestoreInfo_t tOriginal = { tTarget.m_pEntity->GetAbsOrigin(), tTarget.m_pEntity->m_vecMins(), tTarget.m_pEntity->m_vecMaxs() };
tTarget.m_pEntity->SetAbsOrigin(tTarget.m_vPos);
tTarget.m_pEntity->m_vecMins() = { -24, -24, tTarget.m_pEntity->m_vecMins().z };
tTarget.m_pEntity->m_vecMaxs() = { 24, 24, tTarget.m_pEntity->m_vecMaxs().z };
for (int n = 1; n <= iSimTime; n++)
{
Vec3 vOld = F::ProjSim.GetOrigin();
@@ -1305,7 +1308,7 @@ bool CAimbotProjectile::TestAngle(CTFPlayer* pLocal, CTFWeaponBase* pWeapon, Tar
if (!aBones)
break;
Vec3 vOffset = vOriginal - tTarget.m_vPos;
Vec3 vOffset = tOriginal.m_vOrigin - tTarget.m_vPos;
Vec3 vPos = trace.endpos + F::ProjSim.GetVelocity().Normalized() * 16 + vOffset;
float flClosest = 0.f; int iClosest = -1;
@@ -1344,7 +1347,9 @@ bool CAimbotProjectile::TestAngle(CTFPlayer* pLocal, CTFWeaponBase* pWeapon, Tar
break;
}
}
tTarget.m_pEntity->SetAbsOrigin(vOriginal);
tTarget.m_pEntity->SetAbsOrigin(tOriginal.m_vOrigin);
tTarget.m_pEntity->m_vecMins() = tOriginal.m_vMins;
tTarget.m_pEntity->m_vecMaxs() = tOriginal.m_vMaxs;
if (bDidHit && pProjectilePath)
{
+14 -10
View File
@@ -433,7 +433,7 @@ void CCritHack::Event(IGameEvent* pEvent, uint32_t uHash, CTFPlayer* pLocal)
auto pVictim = I::ClientEntityList->GetClientEntity(iVictim)->As<CTFPlayer>();
if (!iHealth)
iDamage = std::min(iDamage, tHistory.m_iNewHealth);
iDamage = std::clamp(iDamage, 0, tHistory.m_iNewHealth);
else if (pVictim && (pVictim->m_bFeignDeathReady() || pVictim->InCond(TF_COND_FEIGN_DEATH))) // damage number is spoofed upon sending, correct it
{
int iOldHealth = (tHistory.m_mHistory.contains(iHealth) ? tHistory.m_mHistory[iHealth].m_iOldHealth : tHistory.m_iNewHealth) % 32768;
@@ -467,6 +467,10 @@ void CCritHack::Event(IGameEvent* pEvent, uint32_t uHash, CTFPlayer* pLocal)
return;
}
}
const int iInsanePlayerDamage = pGameRules->m_bPlayingMannVsMachine() ? 5000 : 1500;
if (iDamage > iInsanePlayerDamage)
return;
}
//m_flLastDamageTime = I::GlobalVars->curtime;
@@ -665,16 +669,16 @@ void CCritHack::Draw(CTFPlayer* pLocal)
{
if (auto pPlayerStats = S::CTFGameStats_FindPlayerStats.Call<PlayerStats_t*>(s_pCTFGameStats, pPlayer2))
{
int iRangedDamage = pPlayerStats->statsCurrentRound.m_iStat[TFSTAT_DAMAGE_RANGED] /*= m_iRangedDamage*/;
int iCritDamage = pPlayerStats->statsCurrentRound.m_iStat[TFSTAT_DAMAGE_RANGED_CRIT_RANDOM] /*= m_iCritDamage = 0*/;
int iDamage = pPlayerStats->statsCurrentRound.m_iStat[TFSTAT_DAMAGE] /*= m_iRangedDamage + m_iMeleeDamage*/;
int& iRangedDamage = pPlayerStats->statsCurrentRound.m_iStat[TFSTAT_DAMAGE_RANGED];
int& iCritDamage = pPlayerStats->statsCurrentRound.m_iStat[TFSTAT_DAMAGE_RANGED_CRIT_RANDOM];
int& iDamage = pPlayerStats->statsCurrentRound.m_iStat[TFSTAT_DAMAGE];
H::Draw.StringOutlined(fFont, x, y += nTall, Vars::Menu::Theme::Active.Value, Vars::Menu::Theme::Background.Value, align, std::format(
"RangedDamage: {}, CritDamage: {}", iRangedDamage, iCritDamage
).c_str());
H::Draw.StringOutlined(fFont, x, y += nTall, Vars::Menu::Theme::Active.Value, Vars::Menu::Theme::Background.Value, align, std::format(
"AllDamage: {} ({})", iDamage, iDamage - iRangedDamage
).c_str());
//iRangedDamage = m_iRangedDamage;
//iCritDamage = m_iCritDamage = 0;
//iDamage = m_iRangedDamage + m_iMeleeDamage;
H::Draw.StringOutlined(fFont, x, y += nTall, Vars::Menu::Theme::Active.Value, Vars::Menu::Theme::Background.Value, align, std::format("RangedDamage: {}, CritDamage: {}", iRangedDamage, iCritDamage).c_str());
H::Draw.StringOutlined(fFont, x, y += nTall, Vars::Menu::Theme::Active.Value, Vars::Menu::Theme::Background.Value, align, std::format("AllDamage: {} ({})", iDamage, iDamage - iRangedDamage).c_str());
}
}
}
@@ -2005,6 +2005,9 @@ namespace ImGui
case VK_CONTROL: return "control";
case VK_LCONTROL: return "lcontrol";
case VK_RCONTROL: return "rcontrol";
case VK_MENU: return "alt";
case VK_LMENU: return "lalt";
case VK_RMENU: return "ralt";
case VK_NUMPAD0: return "num0";
case VK_NUMPAD1: return "num1";
case VK_NUMPAD2: return "num2";
+21 -18
View File
@@ -779,24 +779,27 @@ void CESP::DrawPlayers()
matrix3x4 aBones[MAXSTUDIOBONES];
if (pPlayer->SetupBones(aBones, MAXSTUDIOBONES, BONE_USED_BY_ANYTHING, I::GlobalVars->curtime))
{
switch (H::Entities.GetModel(pPlayer->entindex()))
{
case FNV1A::Hash32Const("models/vsh/player/saxton_hale.mdl"):
case FNV1A::Hash32Const("models/vsh/player/hell_hale.mdl"):
case FNV1A::Hash32Const("models/vsh/player/santa_hale.mdl"):
DrawBones(pPlayer, aBones, { HITBOX_SAXTON_HEAD, HITBOX_SAXTON_CHEST, HITBOX_SAXTON_PELVIS }, tCache.m_tColor);
DrawBones(pPlayer, aBones, { HITBOX_SAXTON_CHEST, HITBOX_SAXTON_LEFT_UPPER_ARM, HITBOX_SAXTON_LEFT_FOREARM, HITBOX_SAXTON_LEFT_HAND }, tCache.m_tColor);
DrawBones(pPlayer, aBones, { HITBOX_SAXTON_CHEST, HITBOX_SAXTON_RIGHT_UPPER_ARM, HITBOX_SAXTON_RIGHT_FOREARM, HITBOX_SAXTON_RIGHT_HAND }, tCache.m_tColor);
DrawBones(pPlayer, aBones, { HITBOX_SAXTON_PELVIS, HITBOX_SAXTON_LEFT_THIGH, HITBOX_SAXTON_LEFT_CALF, HITBOX_SAXTON_LEFT_FOOT }, tCache.m_tColor);
DrawBones(pPlayer, aBones, { HITBOX_SAXTON_PELVIS, HITBOX_SAXTON_RIGHT_THIGH, HITBOX_SAXTON_RIGHT_CALF, HITBOX_SAXTON_RIGHT_FOOT }, tCache.m_tColor);
break;
default:
DrawBones(pPlayer, aBones, { HITBOX_HEAD, HITBOX_CHEST, HITBOX_PELVIS }, tCache.m_tColor);
DrawBones(pPlayer, aBones, { HITBOX_CHEST, HITBOX_LEFT_UPPER_ARM, HITBOX_LEFT_FOREARM, HITBOX_LEFT_HAND }, tCache.m_tColor);
DrawBones(pPlayer, aBones, { HITBOX_CHEST, HITBOX_RIGHT_UPPER_ARM, HITBOX_RIGHT_FOREARM, HITBOX_RIGHT_HAND }, tCache.m_tColor);
DrawBones(pPlayer, aBones, { HITBOX_PELVIS, HITBOX_LEFT_THIGH, HITBOX_LEFT_CALF, HITBOX_LEFT_FOOT }, tCache.m_tColor);
DrawBones(pPlayer, aBones, { HITBOX_PELVIS, HITBOX_RIGHT_THIGH, HITBOX_RIGHT_CALF, HITBOX_RIGHT_FOOT }, tCache.m_tColor);
}
int iHead = pPlayer->GetBaseToHitbox(HITBOX_HEAD);
int iSpine2 = pPlayer->GetBaseToHitbox(HITBOX_SPINE2);
int iPelvis = pPlayer->GetBaseToHitbox(HITBOX_PELVIS);
int iLeftUpperarm = pPlayer->GetBaseToHitbox(HITBOX_LEFT_UPPERARM);
int iLeftForearm = pPlayer->GetBaseToHitbox(HITBOX_LEFT_FOREARM);
int iLeftHand = pPlayer->GetBaseToHitbox(HITBOX_LEFT_HAND);
int iRightUpperarm = pPlayer->GetBaseToHitbox(HITBOX_RIGHT_UPPERARM);
int iRightForearm = pPlayer->GetBaseToHitbox(HITBOX_RIGHT_FOREARM);
int iRightHand = pPlayer->GetBaseToHitbox(HITBOX_RIGHT_HAND);
int iLeftThigh = pPlayer->GetBaseToHitbox(HITBOX_LEFT_THIGH);
int iLeftCalf = pPlayer->GetBaseToHitbox(HITBOX_LEFT_CALF);
int iLeftFoot = pPlayer->GetBaseToHitbox(HITBOX_LEFT_FOOT);
int iRightThigh = pPlayer->GetBaseToHitbox(HITBOX_RIGHT_THIGH);
int iRightCalf = pPlayer->GetBaseToHitbox(HITBOX_RIGHT_CALF);
int iRightFoot = pPlayer->GetBaseToHitbox(HITBOX_RIGHT_FOOT);
DrawBones(pPlayer, aBones, { iHead, iSpine2, iPelvis }, tCache.m_tColor);
DrawBones(pPlayer, aBones, { iSpine2, iLeftUpperarm, iLeftForearm, iLeftHand }, tCache.m_tColor);
DrawBones(pPlayer, aBones, { iSpine2, iRightUpperarm, iRightForearm, iRightHand }, tCache.m_tColor);
DrawBones(pPlayer, aBones, { iPelvis, iLeftThigh, iLeftCalf, iLeftFoot }, tCache.m_tColor);
DrawBones(pPlayer, aBones, { iPelvis, iRightThigh, iRightCalf, iRightFoot }, tCache.m_tColor);
}
}
+202 -13
View File
@@ -610,18 +610,18 @@ enum Collision_Group_t
class CThreadMutex;
typedef CThreadMutex CSourceMutex;
enum ETFHitboxes
enum EHitboxes
{
HITBOX_HEAD,
HITBOX_PELVIS,
HITBOX_BODY,
HITBOX_THORAX,
HITBOX_CHEST,
HITBOX_UPPER_CHEST,
HITBOX_LEFT_UPPER_ARM,
HITBOX_SPINE0,
HITBOX_SPINE1,
HITBOX_SPINE2,
HITBOX_SPINE3,
HITBOX_LEFT_UPPERARM,
HITBOX_LEFT_FOREARM,
HITBOX_LEFT_HAND,
HITBOX_RIGHT_UPPER_ARM,
HITBOX_RIGHT_UPPERARM,
HITBOX_RIGHT_FOREARM,
HITBOX_RIGHT_HAND,
HITBOX_LEFT_THIGH,
@@ -647,16 +647,205 @@ enum ESaxtonHitboxes
HITBOX_SAXTON_RIGHT_HAND,
HITBOX_SAXTON_LEFT_FOREARM,
HITBOX_SAXTON_RIGHT_FOREARM,
HITBOX_SAXTON_LEFT_UPPER_ARM,
HITBOX_SAXTON_RIGHT_UPPER_ARM,
HITBOX_SAXTON_LEFT_UPPERARM,
HITBOX_SAXTON_RIGHT_UPPERARM,
HITBOX_SAXTON_PELVIS,
HITBOX_SAXTON_BODY,
HITBOX_SAXTON_THORAX,
HITBOX_SAXTON_CHEST,
HITBOX_SAXTON_UPPER_CHEST,
HITBOX_SAXTON_SPINE0,
HITBOX_SAXTON_SPINE1,
HITBOX_SAXTON_SPINE2,
HITBOX_SAXTON_SPINE3,
HITBOX_SAXTON_MAX
};
#pragma region Zombie Infection
// these models are all terrible
// 1: scout, 2: soldier, 3: pyro, 4: demoman, 5: heavy, 6: engineer, 7: medic, 8: sniper, 9: spy
// reused where possible
// not adding garbage hitboxes that shouldn't exist
enum EZombie128Hitboxes
{
HITBOX_ZOMBIE128_PELVIS,
HITBOX_ZOMBIE128_SPINE0,
HITBOX_ZOMBIE128_SPINE1,
HITBOX_ZOMBIE128_SPINE2,
HITBOX_ZOMBIE128_SPINE3,
HITBOX_ZOMBIE128_NECK,
HITBOX_ZOMBIE128_HEAD,
HITBOX_ZOMBIE128_LEFT_COLLAR,
HITBOX_ZOMBIE128_RIGHT_COLLAR,
HITBOX_ZOMBIE128_LEFT_UPPERARM,
HITBOX_ZOMBIE128_RIGHT_UPPERARM,
HITBOX_ZOMBIE128_LEFT_FOREARM,
HITBOX_ZOMBIE128_RIGHT_FOREARM,
HITBOX_ZOMBIE128_LEFT_THIGH,
HITBOX_ZOMBIE128_RIGHT_THIGH,
HITBOX_ZOMBIE128_LEFT_CALF,
HITBOX_ZOMBIE128_RIGHT_CALF,
HITBOX_ZOMBIE128_LEFT_FOOT,
HITBOX_ZOMBIE128_RIGHT_FOOT,
HITBOX_ZOMBIE128_LEFT_HAND,
HITBOX_ZOMBIE128_RIGHT_HAND,
HITBOX_ZOMBIE128_MAX
};
enum EZombie3Hitboxes
{
HITBOX_ZOMBIE3_PELVIS,
HITBOX_ZOMBIE3_SPINE0,
HITBOX_ZOMBIE3_SPINE1,
HITBOX_ZOMBIE3_SPINE2,
HITBOX_ZOMBIE3_SPINE3,
HITBOX_ZOMBIE3_NECK,
HITBOX_ZOMBIE3_HEAD,
HITBOX_ZOMBIE3_LEFT_COLLAR,
HITBOX_ZOMBIE3_LEFT_UPPERARM,
HITBOX_ZOMBIE3_LEFT_FOREARM,
HITBOX_ZOMBIE3_LEFT_HAND,
HITBOX_ZOMBIE3_RIGHT_COLLAR,
HITBOX_ZOMBIE3_RIGHT_UPPERARM,
HITBOX_ZOMBIE3_RIGHT_FOREARM,
HITBOX_ZOMBIE3_RIGHT_HAND,
HITBOX_ZOMBIE3_LEFT_THIGH,
HITBOX_ZOMBIE3_LEFT_CALF,
HITBOX_ZOMBIE3_LEFT_FOOT,
HITBOX_ZOMBIE3_RIGHT_THIGH = 19,
HITBOX_ZOMBIE3_RIGHT_CALF,
HITBOX_ZOMBIE3_RIGHT_FOOT,
HITBOX_ZOMBIE3_MAX
};
enum EZombie4Hitboxes
{
HITBOX_ZOMBIE4_PELVIS,
HITBOX_ZOMBIE4_SPINE0,
HITBOX_ZOMBIE4_SPINE1,
HITBOX_ZOMBIE4_SPINE2,
HITBOX_ZOMBIE4_SPINE3,
HITBOX_ZOMBIE4_LEFT_COLLAR,
HITBOX_ZOMBIE4_LEFT_UPPERARM,
HITBOX_ZOMBIE4_RIGHT_COLLAR,
HITBOX_ZOMBIE4_RIGHT_UPPERARM,
HITBOX_ZOMBIE4_LEFT_THIGH,
HITBOX_ZOMBIE4_LEFT_CALF,
HITBOX_ZOMBIE4_RIGHT_THIGH,
HITBOX_ZOMBIE4_RIGHT_CALF,
HITBOX_ZOMBIE4_LEFT_FOREARM,
HITBOX_ZOMBIE4_RIGHT_FOREARM,
HITBOX_ZOMBIE4_NECK,
HITBOX_ZOMBIE4_HEAD,
HITBOX_ZOMBIE4_LEFT_HAND,
HITBOX_ZOMBIE4_RIGHT_HAND,
HITBOX_ZOMBIE4_LEFT_FOOT,
HITBOX_ZOMBIE4_RIGHT_FOOT,
HITBOX_ZOMBIE4_MAX
};
enum EZombie5Hitboxes
{
HITBOX_ZOMBIE5_PELVIS,
HITBOX_ZOMBIE5_SPINE0,
HITBOX_ZOMBIE5_SPINE1,
HITBOX_ZOMBIE5_SPINE2,
HITBOX_ZOMBIE5_SPINE3,
HITBOX_ZOMBIE5_NECK,
HITBOX_ZOMBIE5_HEAD,
HITBOX_ZOMBIE5_LEFT_COLLAR,
HITBOX_ZOMBIE5_RIGHT_COLLAR,
HITBOX_ZOMBIE5_LEFT_UPPERARM,
HITBOX_ZOMBIE5_RIGHT_UPPERARM,
HITBOX_ZOMBIE5_LEFT_FOREARM,
HITBOX_ZOMBIE5_RIGHT_FOREARM,
HITBOX_ZOMBIE5_LEFT_THIGH,
HITBOX_ZOMBIE5_RIGHT_THIGH,
HITBOX_ZOMBIE5_LEFT_CALF,
HITBOX_ZOMBIE5_RIGHT_CALF,
HITBOX_ZOMBIE5_LEFT_HAND,
HITBOX_ZOMBIE5_RIGHT_HAND,
HITBOX_ZOMBIE5_LEFT_FOOT,
HITBOX_ZOMBIE5_RIGHT_FOOT,
HITBOX_ZOMBIE5_MAX
};
enum EZombie6Hitboxes
{
HITBOX_ZOMBIE6_PELVIS,
HITBOX_ZOMBIE6_RIGHT_THIGH,
HITBOX_ZOMBIE6_RIGHT_CALF,
HITBOX_ZOMBIE6_SPINE0,
HITBOX_ZOMBIE6_SPINE1,
HITBOX_ZOMBIE6_SPINE2,
HITBOX_ZOMBIE6_SPINE3,
HITBOX_ZOMBIE6_NECK,
HITBOX_ZOMBIE6_HEAD,
HITBOX_ZOMBIE6_LEFT_THIGH,
HITBOX_ZOMBIE6_LEFT_CALF,
HITBOX_ZOMBIE6_LEFT_COLLAR,
HITBOX_ZOMBIE6_LEFT_UPPERARM,
HITBOX_ZOMBIE6_LEFT_FOREARM,
HITBOX_ZOMBIE6_RIGHT_COLLAR,
HITBOX_ZOMBIE6_RIGHT_UPPERARM,
HITBOX_ZOMBIE6_RIGHT_FOREARM,
HITBOX_ZOMBIE6_LEFT_FOOT,
HITBOX_ZOMBIE6_RIGHT_FOOT,
HITBOX_ZOMBIE6_RIGHT_HAND,
HITBOX_ZOMBIE6_LEFT_HAND,
HITBOX_ZOMBIE6_MAX
};
enum EZombie7Hitboxes
{
HITBOX_ZOMBIE7_PELVIS,
HITBOX_ZOMBIE7_SPINE0,
HITBOX_ZOMBIE7_SPINE1,
HITBOX_ZOMBIE7_SPINE2,
HITBOX_ZOMBIE7_SPINE3,
HITBOX_ZOMBIE7_NECK,
HITBOX_ZOMBIE7_HEAD,
HITBOX_ZOMBIE7_LEFT_COLLAR,
HITBOX_ZOMBIE7_RIGHT_COLLAR,
HITBOX_ZOMBIE7_LEFT_UPPERARM,
HITBOX_ZOMBIE7_RIGHT_UPPERARM,
HITBOX_ZOMBIE7_LEFT_FOREARM,
HITBOX_ZOMBIE7_RIGHT_FOREARM,
HITBOX_ZOMBIE7_LEFT_THIGH,
HITBOX_ZOMBIE7_RIGHT_THIGH,
HITBOX_ZOMBIE7_LEFT_CALF,
HITBOX_ZOMBIE7_RIGHT_CALF,
HITBOX_ZOMBIE7_LEFT_HAND,
HITBOX_ZOMBIE7_RIGHT_HAND,
HITBOX_ZOMBIE7_LEFT_FOOT = 22,
HITBOX_ZOMBIE7_RIGHT_FOOT,
HITBOX_ZOMBIE7_MAX
};
enum EZombie9Hitboxes
{
HITBOX_ZOMBIE9_PELVIS,
HITBOX_ZOMBIE9_SPINE0,
HITBOX_ZOMBIE9_SPINE1,
HITBOX_ZOMBIE9_SPINE2,
HITBOX_ZOMBIE9_SPINE3,
HITBOX_ZOMBIE9_NECK,
HITBOX_ZOMBIE9_HEAD,
HITBOX_ZOMBIE9_LEFT_COLLAR,
HITBOX_ZOMBIE9_RIGHT_COLLAR,
HITBOX_ZOMBIE9_LEFT_UPPERARM,
HITBOX_ZOMBIE9_RIGHT_UPPERARM,
HITBOX_ZOMBIE9_LEFT_FOREARM,
HITBOX_ZOMBIE9_RIGHT_FOREARM,
HITBOX_ZOMBIE9_LEFT_HAND,
HITBOX_ZOMBIE9_RIGHT_HAND,
HITBOX_ZOMBIE9_LEFT_THIGH,
HITBOX_ZOMBIE9_RIGHT_THIGH,
HITBOX_ZOMBIE9_LEFT_CALF,
HITBOX_ZOMBIE9_RIGHT_CALF,
HITBOX_ZOMBIE9_LEFT_FOOT,
HITBOX_ZOMBIE9_RIGHT_FOOT,
HITBOX_ZOMBIE9_MAX
};
#pragma endregion
enum MinigunState_t
{
AC_STATE_IDLE = 0,
@@ -51,4 +51,422 @@ int CBaseEntity::SolidMask()
return MASK_PLAYERSOLID;
}
return MASK_SOLID;
}
}
#pragma region Model hitboxes
// stupid, we shouldn't need to do this
int CBaseEntity::GetHitboxToBase(int nHitbox)
{
switch (H::Entities.GetModel(entindex()))
{
case FNV1A::Hash32Const("models/vsh/player/saxton_hale.mdl"):
case FNV1A::Hash32Const("models/vsh/player/hell_hale.mdl"):
case FNV1A::Hash32Const("models/vsh/player/santa_hale.mdl"):
switch (nHitbox)
{
case HITBOX_SAXTON_HEAD: return HITBOX_HEAD;
case HITBOX_SAXTON_SPINE0: return HITBOX_SPINE0;
case HITBOX_SAXTON_SPINE1: return HITBOX_SPINE1;
case HITBOX_SAXTON_SPINE2: return HITBOX_SPINE2;
case HITBOX_SAXTON_SPINE3: return HITBOX_SPINE3;
case HITBOX_SAXTON_NECK:
case HITBOX_SAXTON_PELVIS: return HITBOX_PELVIS;
case HITBOX_SAXTON_LEFT_UPPERARM: return HITBOX_LEFT_UPPERARM;
case HITBOX_SAXTON_LEFT_FOREARM: return HITBOX_LEFT_FOREARM;
case HITBOX_SAXTON_LEFT_HAND: return HITBOX_LEFT_HAND;
case HITBOX_SAXTON_RIGHT_UPPERARM: return HITBOX_RIGHT_UPPERARM;
case HITBOX_SAXTON_RIGHT_FOREARM: return HITBOX_RIGHT_FOREARM;
case HITBOX_SAXTON_RIGHT_HAND: return HITBOX_RIGHT_HAND;
case HITBOX_SAXTON_LEFT_THIGH: return HITBOX_LEFT_THIGH;
case HITBOX_SAXTON_LEFT_CALF: return HITBOX_LEFT_CALF;
case HITBOX_SAXTON_LEFT_FOOT: return HITBOX_LEFT_FOOT;
case HITBOX_SAXTON_RIGHT_THIGH: return HITBOX_RIGHT_THIGH;
case HITBOX_SAXTON_RIGHT_CALF: return HITBOX_RIGHT_CALF;
case HITBOX_SAXTON_RIGHT_FOOT: return HITBOX_RIGHT_FOOT;
}
break;
case FNV1A::Hash32Const("models/player/scout_infected.mdl"):
case FNV1A::Hash32Const("models/player/soldier_infected.mdl"):
case FNV1A::Hash32Const("models/player/sniper_infected.mdl"):
switch (nHitbox)
{
case HITBOX_ZOMBIE128_HEAD: return HITBOX_HEAD;
case HITBOX_ZOMBIE128_SPINE0: return HITBOX_SPINE0;
case HITBOX_ZOMBIE128_SPINE1: return HITBOX_SPINE1;
case HITBOX_ZOMBIE128_SPINE2: return HITBOX_SPINE2;
case HITBOX_ZOMBIE128_SPINE3: return HITBOX_SPINE3;
case HITBOX_ZOMBIE128_NECK:
case HITBOX_ZOMBIE128_PELVIS: return HITBOX_PELVIS;
case HITBOX_ZOMBIE128_LEFT_COLLAR:
case HITBOX_ZOMBIE128_LEFT_UPPERARM: return HITBOX_LEFT_UPPERARM;
case HITBOX_ZOMBIE128_LEFT_FOREARM: return HITBOX_LEFT_FOREARM;
case HITBOX_ZOMBIE128_LEFT_HAND: return HITBOX_LEFT_HAND;
case HITBOX_ZOMBIE128_RIGHT_COLLAR:
case HITBOX_ZOMBIE128_RIGHT_UPPERARM: return HITBOX_RIGHT_UPPERARM;
case HITBOX_ZOMBIE128_RIGHT_FOREARM: return HITBOX_RIGHT_FOREARM;
case HITBOX_ZOMBIE128_RIGHT_HAND: return HITBOX_RIGHT_HAND;
case HITBOX_ZOMBIE128_LEFT_THIGH: return HITBOX_LEFT_THIGH;
case HITBOX_ZOMBIE128_LEFT_CALF: return HITBOX_LEFT_CALF;
case HITBOX_ZOMBIE128_LEFT_FOOT: return HITBOX_LEFT_FOOT;
case HITBOX_ZOMBIE128_RIGHT_THIGH: return HITBOX_RIGHT_THIGH;
case HITBOX_ZOMBIE128_RIGHT_CALF: return HITBOX_RIGHT_CALF;
case HITBOX_ZOMBIE128_RIGHT_FOOT: return HITBOX_RIGHT_FOOT;
}
break;
case FNV1A::Hash32Const("models/player/pyro_infected.mdl"):
switch (nHitbox)
{
case HITBOX_ZOMBIE3_HEAD: return HITBOX_HEAD;
case HITBOX_ZOMBIE3_SPINE0: return HITBOX_SPINE0;
case HITBOX_ZOMBIE3_SPINE1: return HITBOX_SPINE1;
case HITBOX_ZOMBIE3_SPINE2: return HITBOX_SPINE2;
case HITBOX_ZOMBIE3_SPINE3: return HITBOX_SPINE3;
case HITBOX_ZOMBIE3_NECK:
case HITBOX_ZOMBIE3_PELVIS: return HITBOX_PELVIS;
case HITBOX_ZOMBIE3_LEFT_COLLAR:
case HITBOX_ZOMBIE3_LEFT_UPPERARM: return HITBOX_LEFT_UPPERARM;
case HITBOX_ZOMBIE3_LEFT_FOREARM: return HITBOX_LEFT_FOREARM;
case HITBOX_ZOMBIE3_LEFT_HAND: return HITBOX_LEFT_HAND;
case HITBOX_ZOMBIE3_RIGHT_COLLAR:
case HITBOX_ZOMBIE3_RIGHT_UPPERARM: return HITBOX_RIGHT_UPPERARM;
case HITBOX_ZOMBIE3_RIGHT_FOREARM: return HITBOX_RIGHT_FOREARM;
case HITBOX_ZOMBIE3_RIGHT_HAND: return HITBOX_RIGHT_HAND;
case HITBOX_ZOMBIE3_LEFT_THIGH: return HITBOX_LEFT_THIGH;
case HITBOX_ZOMBIE3_LEFT_CALF: return HITBOX_LEFT_CALF;
case HITBOX_ZOMBIE3_LEFT_FOOT: return HITBOX_LEFT_FOOT;
case HITBOX_ZOMBIE3_RIGHT_THIGH: return HITBOX_RIGHT_THIGH;
case HITBOX_ZOMBIE3_RIGHT_CALF: return HITBOX_RIGHT_CALF;
case HITBOX_ZOMBIE3_RIGHT_FOOT: return HITBOX_RIGHT_FOOT;
}
break;
case FNV1A::Hash32Const("models/player/demo_infected.mdl"):
switch (nHitbox)
{
case HITBOX_ZOMBIE4_HEAD: return HITBOX_HEAD;
case HITBOX_ZOMBIE4_SPINE0: return HITBOX_SPINE0;
case HITBOX_ZOMBIE4_SPINE1: return HITBOX_SPINE1;
case HITBOX_ZOMBIE4_SPINE2: return HITBOX_SPINE2;
case HITBOX_ZOMBIE4_SPINE3: return HITBOX_SPINE3;
case HITBOX_ZOMBIE4_NECK:
case HITBOX_ZOMBIE4_PELVIS: return HITBOX_PELVIS;
case HITBOX_ZOMBIE4_LEFT_COLLAR:
case HITBOX_ZOMBIE4_LEFT_UPPERARM: return HITBOX_LEFT_UPPERARM;
case HITBOX_ZOMBIE4_LEFT_FOREARM: return HITBOX_LEFT_FOREARM;
case HITBOX_ZOMBIE4_LEFT_HAND: return HITBOX_LEFT_HAND;
case HITBOX_ZOMBIE4_RIGHT_COLLAR:
case HITBOX_ZOMBIE4_RIGHT_UPPERARM: return HITBOX_RIGHT_UPPERARM;
case HITBOX_ZOMBIE4_RIGHT_FOREARM: return HITBOX_RIGHT_FOREARM;
case HITBOX_ZOMBIE4_RIGHT_HAND: return HITBOX_RIGHT_HAND;
case HITBOX_ZOMBIE4_LEFT_THIGH: return HITBOX_LEFT_THIGH;
case HITBOX_ZOMBIE4_LEFT_CALF: return HITBOX_LEFT_CALF;
case HITBOX_ZOMBIE4_LEFT_FOOT: return HITBOX_LEFT_FOOT;
case HITBOX_ZOMBIE4_RIGHT_THIGH: return HITBOX_RIGHT_THIGH;
case HITBOX_ZOMBIE4_RIGHT_CALF: return HITBOX_RIGHT_CALF;
case HITBOX_ZOMBIE4_RIGHT_FOOT: return HITBOX_RIGHT_FOOT;
}
break;
case FNV1A::Hash32Const("models/player/heavy_infected.mdl"):
switch (nHitbox)
{
case HITBOX_ZOMBIE5_HEAD: return HITBOX_HEAD;
case HITBOX_ZOMBIE5_SPINE0: return HITBOX_SPINE0;
case HITBOX_ZOMBIE5_SPINE1: return HITBOX_SPINE1;
case HITBOX_ZOMBIE5_SPINE2: return HITBOX_SPINE2;
case HITBOX_ZOMBIE5_SPINE3: return HITBOX_SPINE3;
case HITBOX_ZOMBIE5_NECK:
case HITBOX_ZOMBIE5_PELVIS: return HITBOX_PELVIS;
case HITBOX_ZOMBIE5_LEFT_COLLAR:
case HITBOX_ZOMBIE5_LEFT_UPPERARM: return HITBOX_LEFT_UPPERARM;
case HITBOX_ZOMBIE5_LEFT_FOREARM: return HITBOX_LEFT_FOREARM;
case HITBOX_ZOMBIE5_LEFT_HAND: return HITBOX_LEFT_HAND;
case HITBOX_ZOMBIE5_RIGHT_COLLAR:
case HITBOX_ZOMBIE5_RIGHT_UPPERARM: return HITBOX_RIGHT_UPPERARM;
case HITBOX_ZOMBIE5_RIGHT_FOREARM: return HITBOX_RIGHT_FOREARM;
case HITBOX_ZOMBIE5_RIGHT_HAND: return HITBOX_RIGHT_HAND;
case HITBOX_ZOMBIE5_LEFT_THIGH: return HITBOX_LEFT_THIGH;
case HITBOX_ZOMBIE5_LEFT_CALF: return HITBOX_LEFT_CALF;
case HITBOX_ZOMBIE5_LEFT_FOOT: return HITBOX_LEFT_FOOT;
case HITBOX_ZOMBIE5_RIGHT_THIGH: return HITBOX_RIGHT_THIGH;
case HITBOX_ZOMBIE5_RIGHT_CALF: return HITBOX_RIGHT_CALF;
case HITBOX_ZOMBIE5_RIGHT_FOOT: return HITBOX_RIGHT_FOOT;
}
break;
case FNV1A::Hash32Const("models/player/engineer_infected.mdl"):
switch (nHitbox)
{
case HITBOX_ZOMBIE6_HEAD: return HITBOX_HEAD;
case HITBOX_ZOMBIE6_SPINE0: return HITBOX_SPINE0;
case HITBOX_ZOMBIE6_SPINE1: return HITBOX_SPINE1;
case HITBOX_ZOMBIE6_SPINE2: return HITBOX_SPINE2;
case HITBOX_ZOMBIE6_SPINE3: return HITBOX_SPINE3;
case HITBOX_ZOMBIE6_NECK:
case HITBOX_ZOMBIE6_PELVIS: return HITBOX_PELVIS;
case HITBOX_ZOMBIE6_LEFT_COLLAR:
case HITBOX_ZOMBIE6_LEFT_UPPERARM: return HITBOX_LEFT_UPPERARM;
case HITBOX_ZOMBIE6_LEFT_FOREARM: return HITBOX_LEFT_FOREARM;
case HITBOX_ZOMBIE6_LEFT_HAND: return HITBOX_LEFT_HAND;
case HITBOX_ZOMBIE6_RIGHT_COLLAR:
case HITBOX_ZOMBIE6_RIGHT_UPPERARM: return HITBOX_RIGHT_UPPERARM;
case HITBOX_ZOMBIE6_RIGHT_FOREARM: return HITBOX_RIGHT_FOREARM;
case HITBOX_ZOMBIE6_RIGHT_HAND: return HITBOX_RIGHT_HAND;
case HITBOX_ZOMBIE6_LEFT_THIGH: return HITBOX_LEFT_THIGH;
case HITBOX_ZOMBIE6_LEFT_CALF: return HITBOX_LEFT_CALF;
case HITBOX_ZOMBIE6_LEFT_FOOT: return HITBOX_LEFT_FOOT;
case HITBOX_ZOMBIE6_RIGHT_THIGH: return HITBOX_RIGHT_THIGH;
case HITBOX_ZOMBIE6_RIGHT_CALF: return HITBOX_RIGHT_CALF;
case HITBOX_ZOMBIE6_RIGHT_FOOT: return HITBOX_RIGHT_FOOT;
}
break;
case FNV1A::Hash32Const("models/player/medic_infected.mdl"):
switch (nHitbox)
{
case HITBOX_ZOMBIE7_HEAD: return HITBOX_HEAD;
case HITBOX_ZOMBIE7_SPINE0: return HITBOX_SPINE0;
case HITBOX_ZOMBIE7_SPINE1: return HITBOX_SPINE1;
case HITBOX_ZOMBIE7_SPINE2: return HITBOX_SPINE2;
case HITBOX_ZOMBIE7_SPINE3: return HITBOX_SPINE3;
case HITBOX_ZOMBIE7_NECK:
case HITBOX_ZOMBIE7_PELVIS: return HITBOX_PELVIS;
case HITBOX_ZOMBIE7_LEFT_COLLAR:
case HITBOX_ZOMBIE7_LEFT_UPPERARM: return HITBOX_LEFT_UPPERARM;
case HITBOX_ZOMBIE7_LEFT_FOREARM: return HITBOX_LEFT_FOREARM;
case HITBOX_ZOMBIE7_LEFT_HAND: return HITBOX_LEFT_HAND;
case HITBOX_ZOMBIE7_RIGHT_COLLAR:
case HITBOX_ZOMBIE7_RIGHT_UPPERARM: return HITBOX_RIGHT_UPPERARM;
case HITBOX_ZOMBIE7_RIGHT_FOREARM: return HITBOX_RIGHT_FOREARM;
case HITBOX_ZOMBIE7_RIGHT_HAND: return HITBOX_RIGHT_HAND;
case HITBOX_ZOMBIE7_LEFT_THIGH: return HITBOX_LEFT_THIGH;
case HITBOX_ZOMBIE7_LEFT_CALF: return HITBOX_LEFT_CALF;
case HITBOX_ZOMBIE7_LEFT_FOOT: return HITBOX_LEFT_FOOT;
case HITBOX_ZOMBIE7_RIGHT_THIGH: return HITBOX_RIGHT_THIGH;
case HITBOX_ZOMBIE7_RIGHT_CALF: return HITBOX_RIGHT_CALF;
case HITBOX_ZOMBIE7_RIGHT_FOOT: return HITBOX_RIGHT_FOOT;
}
break;
case FNV1A::Hash32Const("models/player/spy_infected.mdl"):
switch (nHitbox)
{
case HITBOX_ZOMBIE9_HEAD: return HITBOX_HEAD;
case HITBOX_ZOMBIE9_SPINE0: return HITBOX_SPINE0;
case HITBOX_ZOMBIE9_SPINE1: return HITBOX_SPINE1;
case HITBOX_ZOMBIE9_SPINE2: return HITBOX_SPINE2;
case HITBOX_ZOMBIE9_SPINE3: return HITBOX_SPINE3;
case HITBOX_ZOMBIE9_NECK:
case HITBOX_ZOMBIE9_PELVIS: return HITBOX_PELVIS;
case HITBOX_ZOMBIE9_LEFT_COLLAR:
case HITBOX_ZOMBIE9_LEFT_UPPERARM: return HITBOX_LEFT_UPPERARM;
case HITBOX_ZOMBIE9_LEFT_FOREARM: return HITBOX_LEFT_FOREARM;
case HITBOX_ZOMBIE9_LEFT_HAND: return HITBOX_LEFT_HAND;
case HITBOX_ZOMBIE9_RIGHT_COLLAR:
case HITBOX_ZOMBIE9_RIGHT_UPPERARM: return HITBOX_RIGHT_UPPERARM;
case HITBOX_ZOMBIE9_RIGHT_FOREARM: return HITBOX_RIGHT_FOREARM;
case HITBOX_ZOMBIE9_RIGHT_HAND: return HITBOX_RIGHT_HAND;
case HITBOX_ZOMBIE9_LEFT_THIGH: return HITBOX_LEFT_THIGH;
case HITBOX_ZOMBIE9_LEFT_CALF: return HITBOX_LEFT_CALF;
case HITBOX_ZOMBIE9_LEFT_FOOT: return HITBOX_LEFT_FOOT;
case HITBOX_ZOMBIE9_RIGHT_THIGH: return HITBOX_RIGHT_THIGH;
case HITBOX_ZOMBIE9_RIGHT_CALF: return HITBOX_RIGHT_CALF;
case HITBOX_ZOMBIE9_RIGHT_FOOT: return HITBOX_RIGHT_FOOT;
}
break;
}
return nHitbox;
}
int CBaseEntity::GetBaseToHitbox(int nHitbox)
{
switch (H::Entities.GetModel(entindex()))
{
case FNV1A::Hash32Const("models/vsh/player/saxton_hale.mdl"):
case FNV1A::Hash32Const("models/vsh/player/hell_hale.mdl"):
case FNV1A::Hash32Const("models/vsh/player/santa_hale.mdl"):
switch (nHitbox)
{
case HITBOX_HEAD: return HITBOX_SAXTON_HEAD;
case HITBOX_SPINE0: return HITBOX_SAXTON_SPINE0;
case HITBOX_SPINE1: return HITBOX_SAXTON_SPINE1;
case HITBOX_SPINE2: return HITBOX_SAXTON_SPINE2;
case HITBOX_SPINE3: return HITBOX_SAXTON_SPINE3;
case HITBOX_PELVIS: return HITBOX_SAXTON_PELVIS;
case HITBOX_LEFT_UPPERARM: return HITBOX_SAXTON_LEFT_UPPERARM;
case HITBOX_LEFT_FOREARM: return HITBOX_SAXTON_LEFT_FOREARM;
case HITBOX_LEFT_HAND: return HITBOX_SAXTON_LEFT_HAND;
case HITBOX_RIGHT_UPPERARM: return HITBOX_SAXTON_RIGHT_UPPERARM;
case HITBOX_RIGHT_FOREARM: return HITBOX_SAXTON_RIGHT_FOREARM;
case HITBOX_RIGHT_HAND: return HITBOX_SAXTON_RIGHT_HAND;
case HITBOX_LEFT_THIGH: return HITBOX_SAXTON_LEFT_THIGH;
case HITBOX_LEFT_CALF: return HITBOX_SAXTON_LEFT_CALF;
case HITBOX_LEFT_FOOT: return HITBOX_SAXTON_LEFT_FOOT;
case HITBOX_RIGHT_THIGH: return HITBOX_SAXTON_RIGHT_THIGH;
case HITBOX_RIGHT_CALF: return HITBOX_SAXTON_RIGHT_CALF;
case HITBOX_RIGHT_FOOT: return HITBOX_SAXTON_RIGHT_FOOT;
}
break;
case FNV1A::Hash32Const("models/player/scout_infected.mdl"):
case FNV1A::Hash32Const("models/player/soldier_infected.mdl"):
case FNV1A::Hash32Const("models/player/sniper_infected.mdl"):
switch (nHitbox)
{
case HITBOX_HEAD: return HITBOX_ZOMBIE128_HEAD;
case HITBOX_SPINE0: return HITBOX_ZOMBIE128_SPINE0;
case HITBOX_SPINE1: return HITBOX_ZOMBIE128_SPINE1;
case HITBOX_SPINE2: return HITBOX_ZOMBIE128_SPINE2;
case HITBOX_SPINE3: return HITBOX_ZOMBIE128_SPINE3;
case HITBOX_PELVIS: return HITBOX_ZOMBIE128_PELVIS;
case HITBOX_LEFT_UPPERARM: return HITBOX_ZOMBIE128_LEFT_UPPERARM;
case HITBOX_LEFT_FOREARM: return HITBOX_ZOMBIE128_LEFT_FOREARM;
case HITBOX_LEFT_HAND: return HITBOX_ZOMBIE128_LEFT_HAND;
case HITBOX_RIGHT_UPPERARM: return HITBOX_ZOMBIE128_RIGHT_UPPERARM;
case HITBOX_RIGHT_FOREARM: return HITBOX_ZOMBIE128_RIGHT_FOREARM;
case HITBOX_RIGHT_HAND: return HITBOX_ZOMBIE128_RIGHT_HAND;
case HITBOX_LEFT_THIGH: return HITBOX_ZOMBIE128_LEFT_THIGH;
case HITBOX_LEFT_CALF: return HITBOX_ZOMBIE128_LEFT_CALF;
case HITBOX_LEFT_FOOT: return HITBOX_ZOMBIE128_LEFT_FOOT;
case HITBOX_RIGHT_THIGH: return HITBOX_ZOMBIE128_RIGHT_THIGH;
case HITBOX_RIGHT_CALF: return HITBOX_ZOMBIE128_RIGHT_CALF;
case HITBOX_RIGHT_FOOT: return HITBOX_ZOMBIE128_RIGHT_FOOT;
}
break;
case FNV1A::Hash32Const("models/player/pyro_infected.mdl"):
switch (nHitbox)
{
case HITBOX_HEAD: return HITBOX_ZOMBIE3_HEAD;
case HITBOX_SPINE0: return HITBOX_ZOMBIE3_SPINE0;
case HITBOX_SPINE1: return HITBOX_ZOMBIE3_SPINE1;
case HITBOX_SPINE2: return HITBOX_ZOMBIE3_SPINE2;
case HITBOX_SPINE3: return HITBOX_ZOMBIE3_SPINE3;
case HITBOX_PELVIS: return HITBOX_ZOMBIE3_PELVIS;
case HITBOX_LEFT_UPPERARM: return HITBOX_ZOMBIE3_LEFT_UPPERARM;
case HITBOX_LEFT_FOREARM: return HITBOX_ZOMBIE3_LEFT_FOREARM;
case HITBOX_LEFT_HAND: return HITBOX_ZOMBIE3_LEFT_HAND;
case HITBOX_RIGHT_UPPERARM: return HITBOX_ZOMBIE3_RIGHT_UPPERARM;
case HITBOX_RIGHT_FOREARM: return HITBOX_ZOMBIE3_RIGHT_FOREARM;
case HITBOX_RIGHT_HAND: return HITBOX_ZOMBIE3_RIGHT_HAND;
case HITBOX_LEFT_THIGH: return HITBOX_ZOMBIE3_LEFT_THIGH;
case HITBOX_LEFT_CALF: return HITBOX_ZOMBIE3_LEFT_CALF;
case HITBOX_LEFT_FOOT: return HITBOX_ZOMBIE3_LEFT_FOOT;
case HITBOX_RIGHT_THIGH: return HITBOX_ZOMBIE3_RIGHT_THIGH;
case HITBOX_RIGHT_CALF: return HITBOX_ZOMBIE3_RIGHT_CALF;
case HITBOX_RIGHT_FOOT: return HITBOX_ZOMBIE3_RIGHT_FOOT;
}
break;
case FNV1A::Hash32Const("models/player/demo_infected.mdl"):
switch (nHitbox)
{
case HITBOX_HEAD: return HITBOX_ZOMBIE4_HEAD;
case HITBOX_SPINE0: return HITBOX_ZOMBIE4_SPINE0;
case HITBOX_SPINE1: return HITBOX_ZOMBIE4_SPINE1;
case HITBOX_SPINE2: return HITBOX_ZOMBIE4_SPINE2;
case HITBOX_SPINE3: return HITBOX_ZOMBIE4_SPINE3;
case HITBOX_PELVIS: return HITBOX_ZOMBIE4_PELVIS;
case HITBOX_LEFT_UPPERARM: return HITBOX_ZOMBIE4_LEFT_UPPERARM;
case HITBOX_LEFT_FOREARM: return HITBOX_ZOMBIE4_LEFT_FOREARM;
case HITBOX_LEFT_HAND: return HITBOX_ZOMBIE4_LEFT_HAND;
case HITBOX_RIGHT_UPPERARM: return HITBOX_ZOMBIE4_RIGHT_UPPERARM;
case HITBOX_RIGHT_FOREARM: return HITBOX_ZOMBIE4_RIGHT_FOREARM;
case HITBOX_RIGHT_HAND: return HITBOX_ZOMBIE4_RIGHT_HAND;
case HITBOX_LEFT_THIGH: return HITBOX_ZOMBIE4_LEFT_THIGH;
case HITBOX_LEFT_CALF: return HITBOX_ZOMBIE4_LEFT_CALF;
case HITBOX_LEFT_FOOT: return HITBOX_ZOMBIE4_LEFT_FOOT;
case HITBOX_RIGHT_THIGH: return HITBOX_ZOMBIE4_RIGHT_THIGH;
case HITBOX_RIGHT_CALF: return HITBOX_ZOMBIE4_RIGHT_CALF;
case HITBOX_RIGHT_FOOT: return HITBOX_ZOMBIE4_RIGHT_FOOT;
}
break;
case FNV1A::Hash32Const("models/player/heavy_infected.mdl"):
switch (nHitbox)
{
case HITBOX_HEAD: return HITBOX_ZOMBIE5_HEAD;
case HITBOX_SPINE0: return HITBOX_ZOMBIE5_SPINE0;
case HITBOX_SPINE1: return HITBOX_ZOMBIE5_SPINE1;
case HITBOX_SPINE2: return HITBOX_ZOMBIE5_SPINE2;
case HITBOX_SPINE3: return HITBOX_ZOMBIE5_SPINE3;
case HITBOX_PELVIS: return HITBOX_ZOMBIE5_PELVIS;
case HITBOX_LEFT_UPPERARM: return HITBOX_ZOMBIE5_LEFT_UPPERARM;
case HITBOX_LEFT_FOREARM: return HITBOX_ZOMBIE5_LEFT_FOREARM;
case HITBOX_LEFT_HAND: return HITBOX_ZOMBIE5_LEFT_HAND;
case HITBOX_RIGHT_UPPERARM: return HITBOX_ZOMBIE5_RIGHT_UPPERARM;
case HITBOX_RIGHT_FOREARM: return HITBOX_ZOMBIE5_RIGHT_FOREARM;
case HITBOX_RIGHT_HAND: return HITBOX_ZOMBIE5_RIGHT_HAND;
case HITBOX_LEFT_THIGH: return HITBOX_ZOMBIE5_LEFT_THIGH;
case HITBOX_LEFT_CALF: return HITBOX_ZOMBIE5_LEFT_CALF;
case HITBOX_LEFT_FOOT: return HITBOX_ZOMBIE5_LEFT_FOOT;
case HITBOX_RIGHT_THIGH: return HITBOX_ZOMBIE5_RIGHT_THIGH;
case HITBOX_RIGHT_CALF: return HITBOX_ZOMBIE5_RIGHT_CALF;
case HITBOX_RIGHT_FOOT: return HITBOX_ZOMBIE5_RIGHT_FOOT;
}
break;
case FNV1A::Hash32Const("models/player/engineer_infected.mdl"):
switch (nHitbox)
{
case HITBOX_HEAD: return HITBOX_ZOMBIE6_HEAD;
case HITBOX_SPINE0: return HITBOX_ZOMBIE6_SPINE0;
case HITBOX_SPINE1: return HITBOX_ZOMBIE6_SPINE1;
case HITBOX_SPINE2: return HITBOX_ZOMBIE6_SPINE2;
case HITBOX_SPINE3: return HITBOX_ZOMBIE6_SPINE3;
case HITBOX_PELVIS: return HITBOX_ZOMBIE6_PELVIS;
case HITBOX_LEFT_UPPERARM: return HITBOX_ZOMBIE6_LEFT_UPPERARM;
case HITBOX_LEFT_FOREARM: return HITBOX_ZOMBIE6_LEFT_FOREARM;
case HITBOX_LEFT_HAND: return HITBOX_ZOMBIE6_LEFT_HAND;
case HITBOX_RIGHT_UPPERARM: return HITBOX_ZOMBIE6_RIGHT_UPPERARM;
case HITBOX_RIGHT_FOREARM: return HITBOX_ZOMBIE6_RIGHT_FOREARM;
case HITBOX_RIGHT_HAND: return HITBOX_ZOMBIE6_RIGHT_HAND;
case HITBOX_LEFT_THIGH: return HITBOX_ZOMBIE6_LEFT_THIGH;
case HITBOX_LEFT_CALF: return HITBOX_ZOMBIE6_LEFT_CALF;
case HITBOX_LEFT_FOOT: return HITBOX_ZOMBIE6_LEFT_FOOT;
case HITBOX_RIGHT_THIGH: return HITBOX_ZOMBIE6_RIGHT_THIGH;
case HITBOX_RIGHT_CALF: return HITBOX_ZOMBIE6_RIGHT_CALF;
case HITBOX_RIGHT_FOOT: return HITBOX_ZOMBIE6_RIGHT_FOOT;
}
break;
case FNV1A::Hash32Const("models/player/medic_infected.mdl"):
switch (nHitbox)
{
case HITBOX_HEAD: return HITBOX_ZOMBIE7_HEAD;
case HITBOX_SPINE0: return HITBOX_ZOMBIE7_SPINE0;
case HITBOX_SPINE1: return HITBOX_ZOMBIE7_SPINE1;
case HITBOX_SPINE2: return HITBOX_ZOMBIE7_SPINE2;
case HITBOX_SPINE3: return HITBOX_ZOMBIE7_SPINE3;
case HITBOX_PELVIS: return HITBOX_ZOMBIE7_PELVIS;
case HITBOX_LEFT_UPPERARM: return HITBOX_ZOMBIE7_LEFT_UPPERARM;
case HITBOX_LEFT_FOREARM: return HITBOX_ZOMBIE7_LEFT_FOREARM;
case HITBOX_LEFT_HAND: return HITBOX_ZOMBIE7_LEFT_HAND;
case HITBOX_RIGHT_UPPERARM: return HITBOX_ZOMBIE7_RIGHT_UPPERARM;
case HITBOX_RIGHT_FOREARM: return HITBOX_ZOMBIE7_RIGHT_FOREARM;
case HITBOX_RIGHT_HAND: return HITBOX_ZOMBIE7_RIGHT_HAND;
case HITBOX_LEFT_THIGH: return HITBOX_ZOMBIE7_LEFT_THIGH;
case HITBOX_LEFT_CALF: return HITBOX_ZOMBIE7_LEFT_CALF;
case HITBOX_LEFT_FOOT: return HITBOX_ZOMBIE7_LEFT_FOOT;
case HITBOX_RIGHT_THIGH: return HITBOX_ZOMBIE7_RIGHT_THIGH;
case HITBOX_RIGHT_CALF: return HITBOX_ZOMBIE7_RIGHT_CALF;
case HITBOX_RIGHT_FOOT: return HITBOX_ZOMBIE7_RIGHT_FOOT;
}
break;
case FNV1A::Hash32Const("models/player/spy_infected.mdl"):
switch (nHitbox)
{
case HITBOX_HEAD: return HITBOX_ZOMBIE9_HEAD;
case HITBOX_SPINE0: return HITBOX_ZOMBIE9_SPINE0;
case HITBOX_SPINE1: return HITBOX_ZOMBIE9_SPINE1;
case HITBOX_SPINE2: return HITBOX_ZOMBIE9_SPINE2;
case HITBOX_SPINE3: return HITBOX_ZOMBIE9_SPINE3;
case HITBOX_PELVIS: return HITBOX_ZOMBIE9_PELVIS;
case HITBOX_LEFT_UPPERARM: return HITBOX_ZOMBIE9_LEFT_UPPERARM;
case HITBOX_LEFT_FOREARM: return HITBOX_ZOMBIE9_LEFT_FOREARM;
case HITBOX_LEFT_HAND: return HITBOX_ZOMBIE9_LEFT_HAND;
case HITBOX_RIGHT_UPPERARM: return HITBOX_ZOMBIE9_RIGHT_UPPERARM;
case HITBOX_RIGHT_FOREARM: return HITBOX_ZOMBIE9_RIGHT_FOREARM;
case HITBOX_RIGHT_HAND: return HITBOX_ZOMBIE9_RIGHT_HAND;
case HITBOX_LEFT_THIGH: return HITBOX_ZOMBIE9_LEFT_THIGH;
case HITBOX_LEFT_CALF: return HITBOX_ZOMBIE9_LEFT_CALF;
case HITBOX_LEFT_FOOT: return HITBOX_ZOMBIE9_LEFT_FOOT;
case HITBOX_RIGHT_THIGH: return HITBOX_ZOMBIE9_RIGHT_THIGH;
case HITBOX_RIGHT_CALF: return HITBOX_ZOMBIE9_RIGHT_CALF;
case HITBOX_RIGHT_FOOT: return HITBOX_ZOMBIE9_RIGHT_FOOT;
}
break;
}
return nHitbox;
}
#pragma endregion
@@ -297,4 +297,6 @@ public:
Vec3 GetRenderCenter();
int IsInValidTeam();
int SolidMask();
int GetHitboxToBase(int nHitbox);
int GetBaseToHitbox(int nHitbox);
};