From f67ffc739c21774a0456bd17adfb0d3356b7141b Mon Sep 17 00:00:00 2001 From: rei-2 <174158077+rei-2@users.noreply.github.com> Date: Mon, 8 Jun 2026 16:32:47 -0400 Subject: [PATCH] display weapon and viewmodel flip in player conditions for nonlocal players commit project setting changes from bfbbe427 --- Amalgam/Amalgam.vcxproj | 2 +- Amalgam/Amalgam.vcxproj.filters | 2 +- Amalgam/src/Features/Visuals/ESP/ESP.cpp | 9 +- .../PlayerConditions/PlayerConditions.cpp | 9 + Amalgam/src/SDK/Definitions/Definitions.h | 787 +++++++-------- .../SDK/Definitions/Main/CTFWeaponBase.cpp | 916 +++++++++--------- .../src/SDK/Definitions/Main/CTFWeaponBase.h | 1 + 7 files changed, 844 insertions(+), 882 deletions(-) diff --git a/Amalgam/Amalgam.vcxproj b/Amalgam/Amalgam.vcxproj index bc57ca7b..cc42536d 100644 --- a/Amalgam/Amalgam.vcxproj +++ b/Amalgam/Amalgam.vcxproj @@ -961,7 +961,7 @@ - + diff --git a/Amalgam/Amalgam.vcxproj.filters b/Amalgam/Amalgam.vcxproj.filters index fb612f99..8235169a 100644 --- a/Amalgam/Amalgam.vcxproj.filters +++ b/Amalgam/Amalgam.vcxproj.filters @@ -86,7 +86,7 @@ - + diff --git a/Amalgam/src/Features/Visuals/ESP/ESP.cpp b/Amalgam/src/Features/Visuals/ESP/ESP.cpp index a3547375..6add3be2 100644 --- a/Amalgam/src/Features/Visuals/ESP/ESP.cpp +++ b/Amalgam/src/Features/Visuals/ESP/ESP.cpp @@ -6,9 +6,6 @@ #include "../../Simulation/MovementSimulation/MovementSimulation.h" #include "../../Simulation/ProjectileSimulation/ProjectileSimulation.h" -MAKE_SIGNATURE(CTFPlayerSharedUtils_GetEconItemViewByLoadoutSlot, "client.dll", "48 89 6C 24 ? 56 41 54 41 55 41 56 41 57 48 83 EC", 0x0); -MAKE_SIGNATURE(CEconItemView_GetItemName, "client.dll", "40 53 48 83 EC ? 48 8B D9 C6 81 ? ? ? ? ? E8 ? ? ? ? 48 8B 8B", 0x0); - static inline void StorePlayer(CTFPlayer* pPlayer, CTFPlayer* pLocal, Group_t* pGroup, std::unordered_map& mCache) { int iIndex = pPlayer->entindex(); @@ -134,11 +131,7 @@ static inline void StorePlayer(CTFPlayer* pPlayer, CTFPlayer* pLocal, Group_t* p if (pGroup->m_iESP & ESPEnum::WeaponIcon && pWeapon) tCache.m_pWeaponIcon = pWeapon->GetWeaponIcon(); if (pGroup->m_iESP & ESPEnum::WeaponText && pWeapon) - { - auto pAttributeManager = U::Memory.CallVirtual<1, void*>(uintptr_t(pWeapon) + 3096); - auto pCurItemData = reinterpret_cast(uintptr_t(pAttributeManager) + 144); - tCache.m_vText.emplace_back(ALIGN_BOTTOM, SDK::ConvertWideToUTF8(S::CEconItemView_GetItemName.Call(pCurItemData)), Vars::Menu::Theme::Active.Value, Vars::Menu::Theme::Background.Value); - } + tCache.m_vText.emplace_back(ALIGN_BOTTOM, SDK::ConvertWideToUTF8(pWeapon->GetWeaponName()), Vars::Menu::Theme::Active.Value, Vars::Menu::Theme::Background.Value); if (pGroup->m_iESP & ESPEnum::LagCompensation && !pPlayer->IsDormant() && !bLocal) { diff --git a/Amalgam/src/Features/Visuals/PlayerConditions/PlayerConditions.cpp b/Amalgam/src/Features/Visuals/PlayerConditions/PlayerConditions.cpp index 35221bf2..2ca0821d 100644 --- a/Amalgam/src/Features/Visuals/PlayerConditions/PlayerConditions.cpp +++ b/Amalgam/src/Features/Visuals/PlayerConditions/PlayerConditions.cpp @@ -4,6 +4,15 @@ std::vector CPlayerConditions::Get(CTFPlayer* pEntity) { std::vector vConditions = {}; + if (pEntity->entindex() != I::EngineClient->GetLocalPlayer()) + { + if (auto pWeapon = pEntity->m_hActiveWeapon()->As()) + { + bool bFlip = pEntity->m_bFlipViewModels(); + vConditions.emplace_back(std::format("{}{}{}", bFlip ? "< " : "", SDK::ConvertWideToUTF8(pWeapon->GetWeaponName()), bFlip ? "" : " >")); + } + } + if (pEntity->InCond(TF_COND_INVULNERABLE) || pEntity->InCond(TF_COND_INVULNERABLE_HIDE_UNLESS_DAMAGED) || pEntity->InCond(TF_COND_INVULNERABLE_USER_BUFF) || diff --git a/Amalgam/src/SDK/Definitions/Definitions.h b/Amalgam/src/SDK/Definitions/Definitions.h index 50ac31c6..0a073b58 100644 --- a/Amalgam/src/SDK/Definitions/Definitions.h +++ b/Amalgam/src/SDK/Definitions/Definitions.h @@ -1271,376 +1271,376 @@ public: enum class ETFClassID { - CTFWearableRazorback = 341, - CTFWearableDemoShield = 338, - CTFWearableLevelableItem = 340, - CTFWearableCampaignItem = 337, + CAI_BaseNPC = 0, + CBotNPC = 0, + CBossAlpha = 0, + CBotNPCMinion = 0, + CPropJeep = 0, + CPropVehicleChoreoGeneric = 0, + C_TFWeaponBuilder = 0, + CTFBuffBanner = 0, + CBaseAnimating = 1, + CBaseAnimatingOverlay = 2, + CBaseAttributableItem = 3, + CBaseCombatCharacter = 4, + CBaseCombatWeapon = 5, + CBaseDoor = 6, + CBaseEntity = 7, + CBaseFlex = 8, + CBaseGrenade = 9, + CBaseObject = 10, + CBaseObjectUpgrade = 11, + CBaseParticleEntity = 12, + CBasePlayer = 13, + CBaseProjectile = 14, + CBasePropDoor = 15, + CBaseTeamObjectiveResource = 16, + CBaseTempEntity = 17, + CBaseViewModel = 18, + CBeam = 19, + CBoneFollower = 20, + CBonusDuckPickup = 21, + CBonusPack = 22, + CBonusRoundLogic = 23, + CBreakableProp = 24, + CBreakableSurface = 25, + CCaptureFlag = 26, + CCaptureFlagReturnIcon = 27, + CCaptureZone = 28, + CColorCorrection = 29, + CColorCorrectionVolume = 30, + CCurrencyPack = 31, + CDynamicLight = 32, + CDynamicProp = 33, + CEconEntity = 34, + CEconWearable = 35, + CEmbers = 36, + CEntityDissolve = 37, + CEntityFlame = 38, + CEntityParticleTrail = 39, + CEnvDetailController = 40, + CEnvParticleScript = 41, + CEnvProjectedTexture = 42, + CEnvQuadraticBeam = 43, + CEnvScreenEffect = 44, + CEnvScreenOverlay = 45, + CEnvTonemapController = 46, + CEnvWind = 47, + CEyeballBoss = 48, + CFireSmoke = 49, + CFireTrail = 50, + CFish = 51, + CFogController = 52, + CFunc_Dust = 53, + CFunc_LOD = 54, + CFuncAreaPortalWindow = 55, + CFuncConveyor = 56, + CFuncForceField = 57, + CFuncLadder = 58, + CFuncMonitor = 59, + CFuncOccluder = 60, + CFuncPasstimeGoal = 61, + CFuncReflectiveGlass = 62, + CFuncRespawnRoom = 63, + CFuncRespawnRoomVisualizer = 64, + CFuncRotating = 65, + CFuncSmokeVolume = 66, + CFuncTrackTrain = 67, + CGameRulesProxy = 68, + CHalloweenGiftPickup = 69, + CHalloweenPickup = 70, + CHalloweenSoulPack = 71, + CHandleTest = 72, + CHeadlessHatman = 73, + CHightower_TeleportVortex = 74, + CInfoLadderDismount = 75, + CInfoLightingRelative = 76, + CInfoOverlayAccessor = 77, + CLaserDot = 78, + CLightGlow = 79, + CMannVsMachineStats = 80, + CMaterialModifyControl = 81, + CMerasmus = 82, + CMerasmusDancer = 83, + CMonsterResource = 84, + CObjectCartDispenser = 85, + CObjectDispenser = 86, + CObjectSapper = 87, + CObjectSentrygun = 88, + CObjectTeleporter = 89, + CParticleFire = 90, + CParticlePerformanceMonitor = 91, + CParticleSystem = 92, + CPasstimeBall = 93, + CPasstimeGun = 94, + CPhysBox = 95, + CPhysBoxMultiplayer = 96, + CPhysicsProp = 97, + CPhysicsPropMultiplayer = 98, + CPhysMagnet = 99, + CPlasma = 100, + CPlayerDestructionDispenser = 101, + CPlayerResource = 102, + CPointCamera = 103, + CPointCommentaryNode = 104, + CPointWorldText = 105, + CPoseController = 106, + CPrecipitation = 107, + CPropVehicleDriveable = 108, + CRagdollManager = 109, + CRagdollProp = 110, + CRagdollPropAttached = 111, + CRobotDispenser = 112, + CRopeKeyframe = 113, + CSceneEntity = 114, + CShadowControl = 115, + CSlideshowDisplay = 116, + CSmokeStack = 117, + CSniperDot = 118, + CSpotlightEnd = 119, + CSprite = 120, + CSpriteOriented = 121, + CSpriteTrail = 122, + CSteamJet = 123, + CSun = 124, + CTeam = 125, + CTeamplayRoundBasedRulesProxy = 126, + CTeamRoundTimer = 127, + CTeamTrainWatcher = 128, + CTEArmorRicochet = 129, + CTEBaseBeam = 130, + CTEBeamEntPoint = 131, + CTEBeamEnts = 132, + CTEBeamFollow = 133, + CTEBeamLaser = 134, + CTEBeamPoints = 135, + CTEBeamRing = 136, + CTEBeamRingPoint = 137, + CTEBeamSpline = 138, + CTEBloodSprite = 139, + CTEBloodStream = 140, + CTEBreakModel = 141, + CTEBSPDecal = 142, + CTEBubbles = 143, + CTEBubbleTrail = 144, + CTEClientProjectile = 145, + CTEDecal = 146, + CTEDust = 147, + CTEDynamicLight = 148, + CTEEffectDispatch = 149, + CTEEnergySplash = 150, + CTEExplosion = 151, + CTEFireBullets = 152, + CTEFizz = 153, + CTEFootprintDecal = 154, + CTEGaussExplosion = 155, + CTEGlowSprite = 156, + CTEImpact = 157, + CTEKillPlayerAttachments = 158, + CTELargeFunnel = 159, + CTeleportVortex = 160, + CTEMetalSparks = 161, + CTEMuzzleFlash = 162, + CTEParticleSystem = 163, + CTEPhysicsProp = 164, + CTEPlayerAnimEvent = 165, + CTEPlayerDecal = 166, + CTEProjectedDecal = 167, + CTEShatterSurface = 168, + CTEShowLine = 169, + CTesla = 170, + CTESmoke = 171, + CTESparks = 172, + CTESprite = 173, + CTESpriteSpray = 174, + CTest_ProxyToggle_Networkable = 175, + CTestTraceline = 176, + CTETFBlood = 177, + CTETFExplosion = 178, + CTETFParticleEffect = 179, + CTEWorldDecal = 180, + CTFAmmoPack = 181, + CTFBall_Ornament = 182, + CTFBaseBoss = 183, + CTFBaseProjectile = 184, CTFBaseRocket = 185, - CTFWeaponBaseMerasmusGrenade = 325, - CTFWeaponBaseMelee = 324, - CTFWeaponBaseGun = 323, - CTFWeaponBaseGrenadeProj = 322, - CTFWeaponBase = 321, - CTFWearableRobotArm = 342, - CTFRobotArm = 287, - CTFWrench = 344, + CTFBat = 186, + CTFBat_Fish = 187, + CTFBat_Giftwrap = 188, + CTFBat_Wood = 189, + CTFBonesaw = 190, + CTFBotHintEngineerNest = 191, + CTFBottle = 192, + CTFBreakableMelee = 193, + CTFBreakableSign = 194, + CTFBuffItem = 195, + CTFCannon = 196, + CTFChargedSMG = 197, + CTFCleaver = 198, + CTFClub = 199, + CTFCompoundBow = 200, + CTFCrossbow = 201, + CTFDRGPomson = 202, + CTFDroppedWeapon = 203, + CTFFireAxe = 204, + CTFFists = 205, + CTFFlameManager = 206, + CTFFlameRocket = 207, + CTFFlameThrower = 208, + CTFFlareGun = 209, + CTFFlareGun_Revenge = 210, + CTFGameRulesProxy = 211, + CTFGasManager = 212, + CTFGenericBomb = 213, + CTFGlow = 214, + CTFGrapplingHook = 215, + CTFGrenadeLauncher = 216, + CTFGrenadePipebombProjectile = 217, + CTFHalloweenMinigame = 218, + CTFHalloweenMinigame_FallingPlatforms = 219, + CTFHellZap = 220, + CTFItem = 221, + CTFJar = 222, + CTFJarGas = 223, + CTFJarMilk = 224, + CTFKatana = 225, + CTFKnife = 226, + CTFLaserPointer = 227, + CTFLunchBox = 228, + CTFLunchBox_Drink = 229, + CTFMechanicalArm = 230, + CTFMedigunShield = 231, + CTFMiniGame = 232, + CTFMinigameLogic = 233, + CTFMinigun = 234, + CTFObjectiveResource = 235, + CTFParachute = 236, + CTFParachute_Primary = 237, + CTFParachute_Secondary = 238, + CTFParticleCannon = 239, + CTFPasstimeLogic = 240, + CTFPEPBrawlerBlaster = 241, + CTFPipebombLauncher = 242, + CTFPistol = 243, + CTFPistol_Scout = 244, + CTFPistol_ScoutPrimary = 245, + CTFPistol_ScoutSecondary = 246, + CTFPlayer = 247, + CTFPlayerDestructionLogic = 248, + CTFPlayerResource = 249, + CTFPointManager = 250, + CTFPowerupBottle = 251, + CTFProjectile_Arrow = 252, + CTFProjectile_BallOfFire = 253, + CTFProjectile_Cleaver = 254, + CTFProjectile_EnergyBall = 255, + CTFProjectile_EnergyRing = 256, + CTFProjectile_Flare = 257, + CTFProjectile_GrapplingHook = 258, + CTFProjectile_HealingBolt = 259, + CTFProjectile_Jar = 260, + CTFProjectile_JarGas = 261, + CTFProjectile_JarMilk = 262, + CTFProjectile_MechanicalArmOrb = 263, + CTFProjectile_Rocket = 264, + CTFProjectile_SentryRocket = 265, + CTFProjectile_SpellBats = 266, + CTFProjectile_SpellFireball = 267, + CTFProjectile_SpellKartBats = 268, + CTFProjectile_SpellKartOrb = 269, + CTFProjectile_SpellLightningOrb = 270, + CTFProjectile_SpellMeteorShower = 271, + CTFProjectile_SpellMirv = 272, + CTFProjectile_SpellPumpkin = 273, + CTFProjectile_SpellSpawnBoss = 274, + CTFProjectile_SpellSpawnHorde = 275, + CTFProjectile_SpellSpawnZombie = 276, + CTFProjectile_SpellTransposeTeleport = 277, + CTFProjectile_Throwable = 278, CTFProjectile_ThrowableBreadMonster = 279, CTFProjectile_ThrowableBrick = 280, CTFProjectile_ThrowableRepel = 281, - CTFProjectile_Throwable = 278, - CTFThrowable = 319, - CTFSyringeGun = 315, - CTFKatana = 225, - CTFSword = 314, - CSniperDot = 118, - CTFSniperRifleClassic = 308, - CTFSniperRifleDecap = 309, - CTFSniperRifle = 307, - CTFChargedSMG = 197, - CTFSMG = 306, - CTFSlap = 305, - CTFShovel = 304, - CTFShotgunBuildingRescue = 303, - CTFPEPBrawlerBlaster = 241, - CTFSodaPopper = 310, - CTFShotgun_Revenge = 301, - CTFScatterGun = 297, - CTFShotgun_Pyro = 300, - CTFShotgun_HWG = 299, - CTFShotgun_Soldier = 302, - CTFShotgun = 298, - CTFRocketPack = 296, - CTFCrossbow = 201, - CTFRocketLauncher_Mortar = 295, - CTFRocketLauncher_AirStrike = 293, - CTFRocketLauncher_DirectHit = 294, - CTFRocketLauncher = 292, - CTFRevolver = 286, - CTFDRGPomson = 202, - CTFRaygun = 284, - CTFPistol_ScoutSecondary = 246, - CTFPistol_ScoutPrimary = 245, - CTFPistol_Scout = 244, - CTFPistol = 243, - CTFPipebombLauncher = 242, - CTFWeaponPDA_Spy = 332, - CTFWeaponPDA_Engineer_Destroy = 331, - CTFWeaponPDA_Engineer_Build = 330, - CTFWeaponPDAExpansion_Teleporter = 334, - CTFWeaponPDAExpansion_Dispenser = 333, - CTFWeaponPDA = 329, - CTFParticleCannon = 239, - CTFParachute_Secondary = 238, - CTFParachute_Primary = 237, - CTFParachute = 236, - CTFMinigun = 234, - CTFMedigunShield = 231, - CWeaponMedigun = 352, - CTFProjectile_MechanicalArmOrb = 263, - CTFMechanicalArm = 230, - CTFLunchBox_Drink = 229, - CTFLunchBox = 228, - CLaserDot = 78, - CTFLaserPointer = 227, - CTFKnife = 226, - CTFGasManager = 212, - CTFProjectile_JarGas = 261, - CTFJarGas = 223, - CTFProjectile_Cleaver = 254, - CTFProjectile_JarMilk = 262, - CTFProjectile_Jar = 260, - CTFCleaver = 198, - CTFJarMilk = 224, - CTFJar = 222, - CTFWeaponInvis = 328, - CTFCannon = 196, - CTFGrenadeLauncher = 216, - CTFGrenadePipebombProjectile = 217, - CTFGrapplingHook = 215, - CTFFlareGun_Revenge = 210, - CTFFlareGun = 209, - CTFFlameRocket = 207, - CTFFlameThrower = 208, - CTFFists = 205, - CTFFireAxe = 204, - CTFWeaponFlameBall = 327, - CTFCompoundBow = 200, - CTFClub = 199, - CTFBuffItem = 195, - CTFStickBomb = 312, - CTFBreakableSign = 194, - CTFBottle = 192, - CTFBreakableMelee = 193, - CTFBonesaw = 190, - CTFBall_Ornament = 182, - CTFStunBall = 313, - CTFBat_Giftwrap = 188, - CTFBat_Wood = 189, - CTFBat_Fish = 187, - CTFBat = 186, - CTFProjectile_EnergyRing = 256, - CTFDroppedWeapon = 203, - CTFWeaponSapper = 335, - CTFWeaponBuilder = 326, - C_TFWeaponBuilder = 0, - CTFProjectile_Rocket = 264, - CTFProjectile_Flare = 257, - CTFProjectile_EnergyBall = 255, - CTFProjectile_GrapplingHook = 258, - CTFProjectile_HealingBolt = 259, - CTFProjectile_Arrow = 252, - CMannVsMachineStats = 80, - CTFTankBoss = 316, - CTFBaseBoss = 183, - CBossAlpha = 0, - NextBotCombatCharacter = 357, - CTFProjectile_SpellKartBats = 268, - CTFProjectile_SpellKartOrb = 269, - CTFHellZap = 220, - CTFProjectile_SpellLightningOrb = 270, - CTFProjectile_SpellTransposeTeleport = 277, - CTFProjectile_SpellMeteorShower = 271, - CTFProjectile_SpellSpawnBoss = 274, - CTFProjectile_SpellMirv = 272, - CTFProjectile_SpellPumpkin = 273, - CTFProjectile_SpellSpawnHorde = 275, - CTFProjectile_SpellSpawnZombie = 276, - CTFProjectile_SpellBats = 266, - CTFProjectile_SpellFireball = 267, - CTFSpellBook = 311, - CHightower_TeleportVortex = 74, - CTeleportVortex = 160, - CZombie = 354, - CMerasmusDancer = 83, - CMerasmus = 82, - CHeadlessHatman = 73, - CEyeballBoss = 48, - CTFBotHintEngineerNest = 191, - CBotNPCMinion = 0, - CBotNPC = 0, - CPasstimeGun = 94, - CTFViewModel = 320, - CRobotDispenser = 112, - CTFRobotDestruction_Robot = 288, - CTFReviveMarker = 285, CTFPumpkinBomb = 282, - CTFProjectile_BallOfFire = 253, - CTFBaseProjectile = 184, - CTFPointManager = 250, - CBaseObjectUpgrade = 11, - CTFRobotDestructionLogic = 291, + CTFRagdoll = 283, + CTFRaygun = 284, + CTFReviveMarker = 285, + CTFRevolver = 286, + CTFRobotArm = 287, + CTFRobotDestruction_Robot = 288, CTFRobotDestruction_RobotGroup = 289, CTFRobotDestruction_RobotSpawn = 290, - CTFPlayerDestructionLogic = 248, - CPlayerDestructionDispenser = 101, - CTFMinigameLogic = 233, - CTFHalloweenMinigame_FallingPlatforms = 219, - CTFHalloweenMinigame = 218, - CTFMiniGame = 232, - CTFPowerupBottle = 251, - CTFItem = 221, - CHalloweenSoulPack = 71, - CTFGenericBomb = 213, - CBonusRoundLogic = 23, - CTFGameRulesProxy = 211, - CTETFParticleEffect = 179, - CTETFExplosion = 178, - CTETFBlood = 177, - CTFFlameManager = 206, - CHalloweenGiftPickup = 69, - CBonusDuckPickup = 21, - CHalloweenPickup = 70, - CCaptureFlagReturnIcon = 27, - CCaptureFlag = 26, - CBonusPack = 22, - CTFTeam = 318, + CTFRobotDestructionLogic = 291, + CTFRocketLauncher = 292, + CTFRocketLauncher_AirStrike = 293, + CTFRocketLauncher_DirectHit = 294, + CTFRocketLauncher_Mortar = 295, + CTFRocketPack = 296, + CTFScatterGun = 297, + CTFShotgun = 298, + CTFShotgun_HWG = 299, + CTFShotgun_Pyro = 300, + CTFShotgun_Revenge = 301, + CTFShotgun_Soldier = 302, + CTFShotgunBuildingRescue = 303, + CTFShovel = 304, + CTFSlap = 305, + CTFSMG = 306, + CTFSniperRifle = 307, + CTFSniperRifleClassic = 308, + CTFSniperRifleDecap = 309, + CTFSodaPopper = 310, + CTFSpellBook = 311, + CTFStickBomb = 312, + CTFStunBall = 313, + CTFSword = 314, + CTFSyringeGun = 315, + CTFTankBoss = 316, CTFTauntProp = 317, - CTFPlayerResource = 249, - CTFPlayer = 247, - CTFRagdoll = 283, - CTEPlayerAnimEvent = 165, - CTFPasstimeLogic = 240, - CPasstimeBall = 93, - CTFObjectiveResource = 235, - CTFGlow = 214, - CTEFireBullets = 152, - CTFBuffBanner = 0, - CTFAmmoPack = 181, - CObjectTeleporter = 89, - CObjectSentrygun = 88, - CTFProjectile_SentryRocket = 265, - CObjectSapper = 87, - CObjectCartDispenser = 85, - CObjectDispenser = 86, - CMonsterResource = 84, - CFuncRespawnRoomVisualizer = 64, - CFuncRespawnRoom = 63, - CFuncPasstimeGoal = 61, - CFuncForceField = 57, - CCaptureZone = 28, - CCurrencyPack = 31, - CBaseObject = 10, - CTestTraceline = 176, - CTEWorldDecal = 180, - CTESpriteSpray = 174, - CTESprite = 173, - CTESparks = 172, - CTESmoke = 171, - CTEShowLine = 169, - CTEProjectedDecal = 167, - CTEPlayerDecal = 166, - CTEPhysicsProp = 164, - CTEParticleSystem = 163, - CTEMuzzleFlash = 162, - CTELargeFunnel = 159, - CTEKillPlayerAttachments = 158, - CTEImpact = 157, - CTEGlowSprite = 156, - CTEShatterSurface = 168, - CTEFootprintDecal = 154, - CTEFizz = 153, - CTEExplosion = 151, - CTEEnergySplash = 150, - CTEEffectDispatch = 149, - CTEDynamicLight = 148, - CTEDecal = 146, - CTEClientProjectile = 145, - CTEBubbleTrail = 144, - CTEBubbles = 143, - CTEBSPDecal = 142, - CTEBreakModel = 141, - CTEBloodStream = 140, - CTEBloodSprite = 139, - CTEBeamSpline = 138, - CTEBeamRingPoint = 137, - CTEBeamRing = 136, - CTEBeamPoints = 135, - CTEBeamLaser = 134, - CTEBeamFollow = 133, - CTEBeamEnts = 132, - CTEBeamEntPoint = 131, - CTEBaseBeam = 130, - CTEArmorRicochet = 129, - CTEMetalSparks = 161, - CSteamJet = 123, - CSmokeStack = 117, + CTFTeam = 318, + CTFThrowable = 319, + CTFViewModel = 320, + CTFWeaponBase = 321, + CTFWeaponBaseGrenadeProj = 322, + CTFWeaponBaseGun = 323, + CTFWeaponBaseMelee = 324, + CTFWeaponBaseMerasmusGrenade = 325, + CTFWeaponBuilder = 326, + CTFWeaponFlameBall = 327, + CTFWeaponInvis = 328, + CTFWeaponPDA = 329, + CTFWeaponPDA_Engineer_Build = 330, + CTFWeaponPDA_Engineer_Destroy = 331, + CTFWeaponPDA_Spy = 332, + CTFWeaponPDAExpansion_Dispenser = 333, + CTFWeaponPDAExpansion_Teleporter = 334, + CTFWeaponSapper = 335, + CTFWearable = 336, + CTFWearableCampaignItem = 337, + CTFWearableDemoShield = 338, + CTFWearableItem = 339, + CTFWearableLevelableItem = 340, + CTFWearableRazorback = 341, + CTFWearableRobotArm = 342, + CTFWearableVM = 343, + CTFWrench = 344, + CVGuiScreen = 345, + CVoteController = 346, + CWaterBullet = 347, + CWaterLODControl = 348, + CWeaponIFMBase = 349, + CWeaponIFMBaseCamera = 350, + CWeaponIFMSteadyCam = 351, + CWeaponMedigun = 352, + CWorld = 353, + CZombie = 354, DustTrail = 355, - CFireTrail = 50, - SporeTrail = 362, - SporeExplosion = 361, + MovieExplosion = 356, + NextBotCombatCharacter = 357, + ParticleSmokeGrenade = 358, RocketTrail = 359, SmokeTrail = 360, - CPropVehicleDriveable = 108, - ParticleSmokeGrenade = 358, - CParticleFire = 90, - MovieExplosion = 356, - CTEGaussExplosion = 155, - CEnvQuadraticBeam = 43, - CEmbers = 36, - CEnvWind = 47, - CPrecipitation = 107, - CBaseTempEntity = 17, - CWeaponIFMSteadyCam = 351, - CWeaponIFMBaseCamera = 350, - CWeaponIFMBase = 349, - CTFWearableVM = 343, - CTFWearable = 336, - CTFWearableItem = 339, - CEconWearable = 35, - CBaseAttributableItem = 3, - CEconEntity = 34, - CHandleTest = 72, - CTeamplayRoundBasedRulesProxy = 126, - CTeamRoundTimer = 127, - CSpriteTrail = 122, - CSpriteOriented = 121, - CSprite = 120, - CRagdollPropAttached = 111, - CRagdollProp = 110, - CPoseController = 106, - CGameRulesProxy = 68, - CInfoLadderDismount = 75, - CFuncLadder = 58, - CEnvDetailController = 40, - CWorld = 353, - CWaterLODControl = 348, - CWaterBullet = 347, - CVoteController = 346, - CVGuiScreen = 345, - CPropJeep = 0, - CPropVehicleChoreoGeneric = 0, - CTest_ProxyToggle_Networkable = 175, - CTesla = 170, - CTeamTrainWatcher = 128, - CBaseTeamObjectiveResource = 16, - CTeam = 125, - CSun = 124, - CParticlePerformanceMonitor = 91, - CSpotlightEnd = 119, - CSlideshowDisplay = 116, - CShadowControl = 115, - CSceneEntity = 114, - CRopeKeyframe = 113, - CRagdollManager = 109, - CPhysicsPropMultiplayer = 98, - CPhysBoxMultiplayer = 96, - CBasePropDoor = 15, - CDynamicProp = 33, - CPointWorldText = 105, - CPointCommentaryNode = 104, - CPointCamera = 103, - CPlayerResource = 102, - CPlasma = 100, - CPhysMagnet = 99, - CPhysicsProp = 97, - CPhysBox = 95, - CParticleSystem = 92, - CMaterialModifyControl = 81, - CLightGlow = 79, - CInfoOverlayAccessor = 77, - CFuncTrackTrain = 67, - CFuncSmokeVolume = 66, - CFuncRotating = 65, - CFuncReflectiveGlass = 62, - CFuncOccluder = 60, - CFuncMonitor = 59, - CFunc_LOD = 54, - CTEDust = 147, - CFunc_Dust = 53, - CFuncConveyor = 56, - CBreakableSurface = 25, - CFuncAreaPortalWindow = 55, - CFish = 51, - CEntityFlame = 38, - CFireSmoke = 49, - CEnvTonemapController = 46, - CEnvScreenEffect = 44, - CEnvScreenOverlay = 45, - CEnvProjectedTexture = 42, - CEnvParticleScript = 41, - CFogController = 52, - CEntityParticleTrail = 39, - CEntityDissolve = 37, - CDynamicLight = 32, - CColorCorrectionVolume = 30, - CColorCorrection = 29, - CBreakableProp = 24, - CBasePlayer = 13, - CBaseFlex = 8, - CBaseEntity = 7, - CBaseDoor = 6, - CBaseCombatCharacter = 4, - CBaseAnimatingOverlay = 2, - CBoneFollower = 20, - CBaseAnimating = 1, - CInfoLightingRelative = 76, - CAI_BaseNPC = 0, - CBeam = 19, - CBaseViewModel = 18, - CBaseProjectile = 14, - CBaseParticleEntity = 12, - CBaseGrenade = 9, - CBaseCombatWeapon = 5 + SporeExplosion = 361, + SporeTrail = 362 }; enum @@ -1889,19 +1889,11 @@ enum ETFWeapons Scout_t_TheFanOWar = 355, Scout_t_TheAtomizer = 450, Scout_t_ThreeRuneBlade = 452, - Scout_t_TheConscientiousObjector = 474, Scout_t_UnarmedCombat = 572, Scout_t_TheWrapAssassin = 648, Scout_t_FestiveBat = 660, - Scout_t_TheFreedomStaff = 880, - Scout_t_TheBatOuttaHell = 939, - Scout_t_TheMemoryMaker = 954, Scout_t_FestiveHolyMackerel = 999, - Scout_t_TheHamShank = 1013, - Scout_t_TheNecroSmasher = 1123, - Scout_t_TheCrossingGuard = 1127, Scout_t_Batsaber = 30667, - Scout_t_PrinnyMachete = 30758, Soldier_m_RocketLauncher = 18, Soldier_m_RocketLauncherR = 205, Soldier_m_TheDirectHit = 127, @@ -1963,15 +1955,7 @@ enum ETFWeapons Soldier_t_TheHalfZatoichi = 357, Soldier_t_TheMarketGardener = 416, Soldier_t_TheDisciplinaryAction = 447, - Soldier_t_TheConscientiousObjector = 474, Soldier_t_TheEscapePlan = 775, - Soldier_t_TheFreedomStaff = 880, - Soldier_t_TheBatOuttaHell = 939, - Soldier_t_TheMemoryMaker = 954, - Soldier_t_TheHamShank = 1013, - Soldier_t_TheNecroSmasher = 1123, - Soldier_t_TheCrossingGuard = 1127, - Soldier_t_PrinnyMachete = 30758, Pyro_m_FlameThrower = 21, Pyro_m_FlameThrowerR = 208, Pyro_m_TheBackburner = 40, @@ -2033,20 +2017,12 @@ enum ETFWeapons Pyro_t_SharpenedVolcanoFragment = 348, Pyro_t_ThePostalPummeler = 457, Pyro_t_TheMaul = 466, - Pyro_t_TheConscientiousObjector = 474, Pyro_t_TheThirdDegree = 593, Pyro_t_TheLollichop = 739, Pyro_t_NeonAnnihilator = 813, Pyro_t_NeonAnnihilatorG = 834, - Pyro_t_TheFreedomStaff = 880, - Pyro_t_TheBatOuttaHell = 939, - Pyro_t_TheMemoryMaker = 954, Pyro_t_TheFestiveAxtinguisher = 1000, - Pyro_t_TheHamShank = 1013, - Pyro_t_TheNecroSmasher = 1123, - Pyro_t_TheCrossingGuard = 1127, Pyro_t_HotHand = 1181, - Pyro_t_PrinnyMachete = 30758, Demoman_m_GrenadeLauncher = 19, Demoman_m_GrenadeLauncherR = 206, Demoman_m_TheLochnLoad = 308, @@ -2105,17 +2081,9 @@ enum ETFWeapons Demoman_t_TheClaidheamhMor = 327, Demoman_t_TheHalfZatoichi = 357, Demoman_t_ThePersianPersuader = 404, - Demoman_t_TheConscientiousObjector = 474, Demoman_t_NessiesNineIron = 482, Demoman_t_TheScottishHandshake = 609, - Demoman_t_TheFreedomStaff = 880, - Demoman_t_TheBatOuttaHell = 939, - Demoman_t_TheMemoryMaker = 954, - Demoman_t_TheHamShank = 1013, Demoman_t_FestiveEyelander = 1082, - Demoman_t_TheNecroSmasher = 1123, - Demoman_t_TheCrossingGuard = 1127, - Demoman_t_PrinnyMachete = 30758, Heavy_m_Minigun = 15, Heavy_m_MinigunR = 202, Heavy_m_Natascha = 41, @@ -2177,19 +2145,11 @@ enum ETFWeapons Heavy_t_WarriorsSpirit = 310, Heavy_t_FistsofSteel = 331, Heavy_t_TheEvictionNotice = 426, - Heavy_t_TheConscientiousObjector = 474, Heavy_t_ApocoFists = 587, Heavy_t_TheHolidayPunch = 656, - Heavy_t_TheFreedomStaff = 880, - Heavy_t_TheBatOuttaHell = 939, - Heavy_t_TheMemoryMaker = 954, - Heavy_t_TheHamShank = 1013, Heavy_t_FestiveGlovesofRunningUrgently = 1084, Heavy_t_TheBreadBite = 1100, - Heavy_t_TheNecroSmasher = 1123, - Heavy_t_TheCrossingGuard = 1127, Heavy_t_GlovesofRunningUrgentlyMvM = 1184, - Heavy_t_PrinnyMachete = 30758, Engi_m_EngineersShotgun = 9, Engi_m_ShotgunR = 199, Engi_m_TheFrontierJustice = 141, @@ -2246,7 +2206,6 @@ enum ETFWeapons Engi_t_DiamondBotkillerWrenchMkI = 911, Engi_t_SilverBotkillerWrenchMkII = 960, Engi_t_GoldBotkillerWrenchMkII = 969, - Engi_t_TheNecroSmasher = 1123, Engi_t_Nutcracker = 15073, Engi_t_Autumn = 15074, Engi_t_Boneyard = 15075, @@ -2254,7 +2213,6 @@ enum ETFWeapons Engi_t_TopShelf = 15140, Engi_t_TorquedtoHell = 15114, Engi_t_Airwolf = 15156, - Engi_t_PrinnyMachete = 30758, Engi_p_ConstructionPDA = 25, Engi_p_ConstructionPDAR = 737, Engi_p_DestructionPDA = 26, @@ -2297,16 +2255,8 @@ enum ETFWeapons Medic_t_TheVitaSaw = 173, Medic_t_Amputator = 304, Medic_t_TheSolemnVow = 413, - Medic_t_TheConscientiousObjector = 474, - Medic_t_TheFreedomStaff = 880, - Medic_t_TheBatOuttaHell = 939, - Medic_t_TheMemoryMaker = 954, Medic_t_FestiveUbersaw = 1003, - Medic_t_TheHamShank = 1013, - Medic_t_TheNecroSmasher = 1123, - Medic_t_TheCrossingGuard = 1127, Medic_t_FestiveBonesaw = 1143, - Medic_t_PrinnyMachete = 30758, Sniper_m_SniperRifle = 14, Sniper_m_SniperRifleR = 201, Sniper_m_TheHuntsman = 56, @@ -2366,14 +2316,6 @@ enum ETFWeapons Sniper_t_TheTribalmansShiv = 171, Sniper_t_TheBushwacka = 232, Sniper_t_TheShahanshah = 401, - Sniper_t_TheConscientiousObjector = 474, - Sniper_t_TheFreedomStaff = 880, - Sniper_t_TheBatOuttaHell = 939, - Sniper_t_TheMemoryMaker = 954, - Sniper_t_TheHamShank = 1013, - Sniper_t_TheNecroSmasher = 1123, - Sniper_t_TheCrossingGuard = 1127, - Sniper_t_PrinnyMachete = 30758, Spy_m_Revolver = 24, Spy_m_RevolverR = 210, Spy_m_TheAmbassador = 61, @@ -2427,7 +2369,6 @@ enum ETFWeapons Spy_t_TopShelf = 15119, Spy_t_Blitzkrieg = 15143, Spy_t_Airwolf = 15144, - Spy_t_PrinnyMachete = 30758, Spy_d_DisguiseKitPDA = 27, Spy_w_InvisWatch = 30, Spy_w_InvisWatchR = 212, @@ -2437,7 +2378,15 @@ enum ETFWeapons Spy_w_TheQuackenbirdt = 947, Misc_t_FryingPan = 264, Misc_t_GoldFryingPan = 1071, - Misc_t_Saxxy = 423 + Misc_t_Saxxy = 423, + Misc_t_TheConscientiousObjector = 474, + Misc_t_TheFreedomStaff = 880, + Misc_t_TheBatOuttaHell = 939, + Misc_t_TheMemoryMaker = 954, + Misc_t_TheHamShank = 1013, + Misc_t_TheNecroSmasher = 1123, + Misc_t_TheCrossingGuard = 1127, + Misc_t_PrinnyMachete = 30758 }; enum struct EWeaponType diff --git a/Amalgam/src/SDK/Definitions/Main/CTFWeaponBase.cpp b/Amalgam/src/SDK/Definitions/Main/CTFWeaponBase.cpp index 96ec4c8c..2c4f255b 100644 --- a/Amalgam/src/SDK/Definitions/Main/CTFWeaponBase.cpp +++ b/Amalgam/src/SDK/Definitions/Main/CTFWeaponBase.cpp @@ -2,6 +2,9 @@ #include "../../SDK.h" +MAKE_SIGNATURE(CTFPlayerSharedUtils_GetEconItemViewByLoadoutSlot, "client.dll", "48 89 6C 24 ? 56 41 54 41 55 41 56 41 57 48 83 EC", 0x0); +MAKE_SIGNATURE(CEconItemView_GetItemName, "client.dll", "40 53 48 83 EC ? 48 8B D9 C6 81 ? ? ? ? ? E8 ? ? ? ? 48 8B 8B", 0x0); + bool CTFWeaponBase::HasPrimaryAmmoForShot() { if (IsEnergyWeapon()) @@ -163,6 +166,466 @@ float CTFWeaponBase::GetRange() return 8192.f; } +const wchar_t* CTFWeaponBase::GetWeaponName() +{ + auto pAttributeManager = U::Memory.CallVirtual<1, void*>(uintptr_t(this) + 3096); + auto pCurItemData = reinterpret_cast(uintptr_t(pAttributeManager) + 144); + return S::CEconItemView_GetItemName.Call(pCurItemData); +} + +#define ReturnTexture(string) { static CHudTexture* pTexture = H::Draw.GetIcon(string); return pTexture; } +CHudTexture* CTFWeaponBase::GetWeaponIcon() // wow this is stupid +{ + switch (m_iItemDefinitionIndex()) + { + case Scout_m_Scattergun: + case Scout_m_ScattergunR: + case Scout_m_FestiveScattergun: + case Scout_m_SilverBotkillerScattergunMkI: + case Scout_m_GoldBotkillerScattergunMkI: + case Scout_m_RustBotkillerScattergunMkI: + case Scout_m_BloodBotkillerScattergunMkI: + case Scout_m_CarbonadoBotkillerScattergunMkI: + case Scout_m_DiamondBotkillerScattergunMkI: + case Scout_m_SilverBotkillerScattergunMkII: + case Scout_m_GoldBotkillerScattergunMkII: + case Scout_m_NightTerror: + case Scout_m_TartanTorpedo: + case Scout_m_CountryCrusher: + case Scout_m_BackcountryBlaster: + case Scout_m_SpruceDeuce: + case Scout_m_CurrentEvent: + case Scout_m_MacabreWeb: + case Scout_m_Nutcracker: + case Scout_m_BlueMew: + case Scout_m_FlowerPower: + case Scout_m_ShottoHell: + case Scout_m_CoffinNail: + case Scout_m_KillerBee: + case Scout_m_Corsair: ReturnTexture("d_scattergun"); + case Scout_m_ForceANature: + case Scout_m_FestiveForceANature: ReturnTexture("d_force_a_nature"); + case Scout_m_TheShortstop: ReturnTexture("d_shortstop"); + case Scout_m_TheSodaPopper: ReturnTexture("d_soda_popper"); + case Scout_m_BabyFacesBlaster: ReturnTexture("d_pep_brawlerblaster"); + case Scout_m_TheBackScatter: ReturnTexture("d_back_scatter"); + case Scout_s_ScoutsPistol: + case Scout_s_PistolR: + case Engi_s_EngineersPistol: + case Scout_s_RedRockRoscoe: + case Scout_s_HickoryHolepuncher: + case Scout_s_BlackDahlia: + case Scout_s_MacabreWeb: + case Scout_s_Nutcracker: + case Scout_s_BlueMew: + case Scout_s_ShottoHell: + case Scout_s_Blitzkrieg: + case Engi_s_HomemadeHeater: + case Engi_s_LocalHero: + case Engi_s_SandstoneSpecial: + case Engi_s_BrainCandy: + case Engi_s_DressedToKill: ReturnTexture("d_pistol"); + case Scout_s_BonkAtomicPunch: + case Scout_s_FestiveBonk: ReturnTexture("d_taunt_scout"); // Bonk has no icon but there is a taunt kill that says bonk so we'll use that + case Scout_s_Lugermorph: + case Scout_s_VintageLugermorph: ReturnTexture("d_maxgun"); + case Scout_s_TheWinger: ReturnTexture("d_the_winger"); + case Scout_s_PrettyBoysPocketPistol: ReturnTexture("d_pep_pistol"); + case Scout_s_TheFlyingGuillotine: + case Scout_s_TheFlyingGuillotineG: ReturnTexture("d_guillotine"); + case Scout_s_TheCAPPER: ReturnTexture("d_the_capper"); + case Scout_t_Bat: + case Scout_t_BatR: + case Scout_t_FestiveBat: ReturnTexture("d_bat"); + case Scout_t_TheSandman: ReturnTexture("d_sandman"); + case Scout_t_TheHolyMackerel: + case Scout_t_FestiveHolyMackerel: ReturnTexture("d_holymackerel"); + case Scout_t_TheCandyCane: ReturnTexture("d_candy_cane"); + case Scout_t_TheBostonBasher: ReturnTexture("d_boston_basher"); + case Scout_t_SunonaStick: ReturnTexture("d_lava_bat"); + case Scout_t_TheFanOWar: ReturnTexture("d_warfan"); + case Scout_t_TheAtomizer: ReturnTexture("d_atomizer"); + case Scout_t_ThreeRuneBlade: ReturnTexture("d_scout_sword"); + case Scout_t_UnarmedCombat: ReturnTexture("d_unarmed_combat"); + case Scout_t_TheWrapAssassin: ReturnTexture("d_wrap_assassin"); + case Scout_t_Batsaber: ReturnTexture("d_batsaber"); + case Soldier_m_RocketLauncher: + case Soldier_m_RocketLauncherR: + case Soldier_m_FestiveRocketLauncher: + case Soldier_m_RocketJumper: + case Soldier_m_SilverBotkillerRocketLauncherMkI: + case Soldier_m_GoldBotkillerRocketLauncherMkI: + case Soldier_m_RustBotkillerRocketLauncherMkI: + case Soldier_m_BloodBotkillerRocketLauncherMkI: + case Soldier_m_CarbonadoBotkillerRocketLauncherMkI: + case Soldier_m_DiamondBotkillerRocketLauncherMkI: + case Soldier_m_SilverBotkillerRocketLauncherMkII: + case Soldier_m_GoldBotkillerRocketLauncherMkII: + case Soldier_m_WoodlandWarrior: + case Soldier_m_SandCannon: + case Soldier_m_AmericanPastoral: + case Soldier_m_SmalltownBringdown: + case Soldier_m_ShellShocker: + case Soldier_m_AquaMarine: + case Soldier_m_Autumn: + case Soldier_m_BlueMew: + case Soldier_m_BrainCandy: + case Soldier_m_CoffinNail: // shared with Soldier_m_CoffinNail + case Soldier_m_HighRollers: + case Soldier_m_Warhawk: ReturnTexture("d_tf_projectile_rocket"); + case Soldier_m_TheDirectHit: ReturnTexture("d_rocketlauncher_directhit"); + case Soldier_m_TheBlackBox: + case Soldier_m_FestiveBlackBox: ReturnTexture("d_blackbox"); + case Soldier_m_TheLibertyLauncher: ReturnTexture("d_liberty_launcher"); + case Soldier_m_TheCowMangler5000: ReturnTexture("d_cow_mangler"); + case Soldier_m_TheOriginal: ReturnTexture("d_quake_rl"); + case Soldier_m_TheBeggarsBazooka: ReturnTexture("d_dumpster_device"); + case Soldier_m_TheAirStrike: ReturnTexture("d_airstrike"); + case Soldier_s_SoldiersShotgun: + case Soldier_s_ShotgunR: + case Soldier_s_FestiveShotgun: + case Pyro_s_PyrosShotgun: + case Heavy_s_HeavysShotgun: + case Engi_m_EngineersShotgun: + case Soldier_s_BackwoodsBoomstick: + case Soldier_s_RusticRuiner: + case Soldier_s_CivicDuty: + case Soldier_s_LightningRod: + case Soldier_s_Autumn: + case Soldier_s_FlowerPower: + case Soldier_s_CoffinNail: + case Soldier_s_DressedtoKill: + case Soldier_s_RedBear: ReturnTexture("d_shotgun_soldier"); + case Soldier_s_TheReserveShooter: ReturnTexture("d_reserve_shooter"); + case Soldier_s_TheRighteousBison: ReturnTexture("d_righteous_bison"); + case Soldier_s_PanicAttack: ReturnTexture("d_panic_attack"); + case Soldier_t_Shovel: + case Soldier_t_ShovelR: ReturnTexture("d_shovel"); + case Soldier_t_TheEqualizer: + case Soldier_t_TheEscapePlan: ReturnTexture("d_pickaxe"); + case Soldier_t_ThePainTrain: ReturnTexture("d_paintrain"); + case Soldier_t_TheHalfZatoichi: ReturnTexture("d_demokatana"); + case Soldier_t_TheMarketGardener: ReturnTexture("d_market_gardener"); + case Soldier_t_TheDisciplinaryAction: ReturnTexture("d_disciplinary_action"); + case Pyro_m_FlameThrower: + case Pyro_m_FlameThrowerR: + case Pyro_m_FestiveFlameThrower: + case Pyro_m_SilverBotkillerFlameThrowerMkI: + case Pyro_m_GoldBotkillerFlameThrowerMkI: + case Pyro_m_RustBotkillerFlameThrowerMkI: + case Pyro_m_BloodBotkillerFlameThrowerMkI: + case Pyro_m_CarbonadoBotkillerFlameThrowerMkI: + case Pyro_m_DiamondBotkillerFlameThrowerMkI: + case Pyro_m_SilverBotkillerFlameThrowerMkII: + case Pyro_m_GoldBotkillerFlameThrowerMkII: + case Pyro_m_ForestFire: + case Pyro_m_BarnBurner: + case Pyro_m_BovineBlazemaker: + case Pyro_m_EarthSkyandFire: + case Pyro_m_FlashFryer: + case Pyro_m_TurbineTorcher: + case Pyro_m_Autumn: + case Pyro_m_PumpkinPatch: + case Pyro_m_Nutcracker: + case Pyro_m_Balloonicorn: + case Pyro_m_Rainbow: + case Pyro_m_CoffinNail: + case Pyro_m_Warhawk: ReturnTexture("d_flamethrower"); + case Pyro_m_TheBackburner: + case Pyro_m_FestiveBackburner: ReturnTexture("d_backburner"); + case Pyro_m_TheDegreaser: ReturnTexture("d_degreaser"); + case Pyro_m_ThePhlogistinator: ReturnTexture("d_phlogistinator"); + case Pyro_m_TheRainblower: ReturnTexture("d_rainblower"); + case Pyro_m_DragonsFury: ReturnTexture("d_dragons_fury"); + case Pyro_s_TheFlareGun: + case Pyro_s_FestiveFlareGun: ReturnTexture("d_flaregun"); + case Pyro_s_TheDetonator: ReturnTexture("d_detonator"); + case Pyro_s_TheManmelter: ReturnTexture("d_manmelter"); + case Pyro_s_TheScorchShot: ReturnTexture("d_scorch_shot"); + case Pyro_s_ThermalThruster: ReturnTexture("d_rocketpack"); + case Pyro_t_FireAxe: + case Pyro_t_FireAxeR: ReturnTexture("d_fireaxe"); + case Pyro_t_TheAxtinguisher: + case Pyro_t_TheFestiveAxtinguisher: ReturnTexture("d_axtinguisher"); + case Pyro_t_Homewrecker: ReturnTexture("d_sledgehammer"); + case Pyro_t_ThePowerjack: ReturnTexture("d_powerjack"); + case Pyro_t_TheBackScratcher: ReturnTexture("d_back_scratcher"); + case Pyro_t_SharpenedVolcanoFragment: ReturnTexture("d_lava_axe"); + case Pyro_t_ThePostalPummeler: ReturnTexture("d_mailbox"); + case Pyro_t_TheMaul: ReturnTexture("d_the_maul"); + case Pyro_t_TheThirdDegree: ReturnTexture("d_thirddegree"); + case Pyro_t_TheLollichop: ReturnTexture("d_lollichop"); + case Pyro_t_NeonAnnihilator: + case Pyro_t_NeonAnnihilatorG: ReturnTexture("d_annihilator"); + case Pyro_t_HotHand: ReturnTexture("d_hot_hand"); + case Demoman_m_GrenadeLauncher: + case Demoman_m_GrenadeLauncherR: + case Demoman_m_FestiveGrenadeLauncher: + case Demoman_m_Autumn: + case Demoman_m_MacabreWeb: + case Demoman_m_Rainbow: + case Demoman_m_SweetDreams: + case Demoman_m_CoffinNail: + case Demoman_m_TopShelf: + case Demoman_m_Warhawk: + case Demoman_m_ButcherBird: ReturnTexture("d_tf_projectile_pipe"); + case Demoman_m_TheLochnLoad: ReturnTexture("d_loch_n_load"); + case Demoman_m_TheLooseCannon: ReturnTexture("d_loose_cannon_explosion"); + case Demoman_m_TheIronBomber: ReturnTexture("d_iron_bomber"); + case Demoman_s_StickybombLauncher: + case Demoman_s_StickybombLauncherR: + case Demoman_s_FestiveStickybombLauncher: + case Demoman_s_StickyJumper: + case Demoman_s_SilverBotkillerStickybombLauncherMkI: + case Demoman_s_GoldBotkillerStickybombLauncherMkI: + case Demoman_s_RustBotkillerStickybombLauncherMkI: + case Demoman_s_BloodBotkillerStickybombLauncherMkI: + case Demoman_s_CarbonadoBotkillerStickybombLauncherMkI: + case Demoman_s_DiamondBotkillerStickybombLauncherMkI: + case Demoman_s_SilverBotkillerStickybombLauncherMkII: + case Demoman_s_GoldBotkillerStickybombLauncherMkII: + case Demoman_s_SuddenFlurry: + case Demoman_s_CarpetBomber: + case Demoman_s_BlastedBombardier: + case Demoman_s_RooftopWrangler: + case Demoman_s_LiquidAsset: + case Demoman_s_PinkElephant: + case Demoman_s_Autumn: + case Demoman_s_PumpkinPatch: + case Demoman_s_MacabreWeb: + case Demoman_s_SweetDreams: + case Demoman_s_CoffinNail: + case Demoman_s_DressedtoKill: + case Demoman_s_Blitzkrieg: ReturnTexture("d_tf_projectile_pipe_remote"); + case Demoman_s_TheScottishResistance: ReturnTexture("d_sticky_resistance"); + case Demoman_s_TheCharginTarge: + case Demoman_s_FestiveTarge: ReturnTexture("d_demoshield"); + case Demoman_s_TheSplendidScreen: ReturnTexture("d_splendid_screen"); + case Demoman_s_TheTideTurner: ReturnTexture("d_tide_turner"); + case Demoman_s_TheQuickiebombLauncher: ReturnTexture("d_quickiebomb_launcher"); + case Demoman_t_Bottle: + case Demoman_t_BottleR: ReturnTexture("d_bottle"); + case Demoman_t_TheEyelander: + case Demoman_t_FestiveEyelander: ReturnTexture("d_sword"); + case Demoman_t_TheScotsmansSkullcutter: ReturnTexture("d_battleaxe"); + case Demoman_t_HorselessHeadlessHorsemannsHeadtaker: ReturnTexture("d_headtaker"); + case Demoman_t_UllapoolCaber: ReturnTexture("d_ullapool_caber_explosion"); + case Demoman_t_TheClaidheamhMor: ReturnTexture("d_claidheamohmor"); + case Demoman_t_ThePersianPersuader: ReturnTexture("d_persian_persuader"); + case Demoman_t_NessiesNineIron: ReturnTexture("d_nessieclub"); + case Demoman_t_TheScottishHandshake: ReturnTexture("d_scotland_shard"); + case Heavy_m_Minigun: + case Heavy_m_MinigunR: + case Heavy_m_FestiveMinigun: + case Heavy_m_SilverBotkillerMinigunMkI: + case Heavy_m_GoldBotkillerMinigunMkI: + case Heavy_m_RustBotkillerMinigunMkI: + case Heavy_m_BloodBotkillerMinigunMkI: + case Heavy_m_CarbonadoBotkillerMinigunMkI: + case Heavy_m_DiamondBotkillerMinigunMkI: + case Heavy_m_SilverBotkillerMinigunMkII: + case Heavy_m_GoldBotkillerMinigunMkII: + case Heavy_m_KingoftheJungle: + case Heavy_m_IronWood: + case Heavy_m_AntiqueAnnihilator: + case Heavy_m_WarRoom: + case Heavy_m_CitizenPain: + case Heavy_m_BrickHouse: + case Heavy_m_MacabreWeb: + case Heavy_m_PumpkinPatch: + case Heavy_m_Nutcracker: + case Heavy_m_BrainCandy: + case Heavy_m_MisterCuddles: + case Heavy_m_CoffinNail: + case Heavy_m_DressedtoKill: + case Heavy_m_TopShelf: + case Heavy_m_ButcherBird: ReturnTexture("d_minigun"); + case Heavy_m_Natascha: ReturnTexture("d_natascha"); + case Heavy_m_IronCurtain: + case Heavy_m_Deflector_mvm: ReturnTexture("d_iron_curtain"); + case Heavy_m_TheBrassBeast: ReturnTexture("d_brass_beast"); + case Heavy_m_Tomislav: ReturnTexture("d_tomislav"); + case Heavy_m_TheHuoLongHeater: + case Heavy_m_TheHuoLongHeaterG: ReturnTexture("d_long_heatmaker"); + case Heavy_s_TheFamilyBusiness: ReturnTexture("d_family_business"); + case Heavy_t_Fists: + case Heavy_t_FistsR: ReturnTexture("d_fists"); + case Heavy_t_TheKillingGlovesofBoxing: ReturnTexture("d_gloves"); + case Heavy_t_GlovesofRunningUrgently: + case Heavy_t_FestiveGlovesofRunningUrgently: + case Heavy_t_GlovesofRunningUrgentlyMvM: ReturnTexture("d_gloves_running_urgently"); + case Heavy_t_WarriorsSpirit: ReturnTexture("d_warrior_spirit"); + case Heavy_t_FistsofSteel: ReturnTexture("d_steel_fists"); + case Heavy_t_TheEvictionNotice: ReturnTexture("d_eviction_notice"); + case Heavy_t_ApocoFists: ReturnTexture("d_apocofists"); + case Heavy_t_TheHolidayPunch: ReturnTexture("d_holiday_punch"); + case Heavy_t_TheBreadBite: ReturnTexture("d_bread_bite"); + case Engi_m_TheFrontierJustice: + case Engi_m_FestiveFrontierJustice: ReturnTexture("d_frontier_kill"); + case Engi_m_TheWidowmaker: ReturnTexture("d_widowmaker"); + case Engi_m_ThePomson6000: ReturnTexture("d_pomson"); + case Engi_m_TheRescueRanger: ReturnTexture("d_rescue_ranger"); + case Engi_s_TheWrangler: + case Engi_s_FestiveWrangler: ReturnTexture("d_wrangler_kill"); + case Engi_s_TheShortCircuit: ReturnTexture("d_short_circuit"); + case Engi_s_TheGigarCounter: ReturnTexture("d_giger_counter"); + case Engi_t_Wrench: + case Engi_t_WrenchR: + case Engi_t_FestiveWrench: + case Engi_t_GoldenWrench: + case Engi_t_SilverBotkillerWrenchMkI: + case Engi_t_GoldBotkillerWrenchMkI: + case Engi_t_RustBotkillerWrenchMkI: + case Engi_t_BloodBotkillerWrenchMkI: + case Engi_t_CarbonadoBotkillerWrenchMkI: + case Engi_t_DiamondBotkillerWrenchMkI: + case Engi_t_SilverBotkillerWrenchMkII: + case Engi_t_GoldBotkillerWrenchMkII: + case Engi_t_Nutcracker: + case Engi_t_Autumn: + case Engi_t_Boneyard: + case Engi_t_DressedtoKill: + case Engi_t_TopShelf: + case Engi_t_TorquedtoHell: + case Engi_t_Airwolf: ReturnTexture("d_wrench"); + case Engi_t_TheGunslinger: ReturnTexture("d_robot_arm_kill"); + case Engi_t_TheSouthernHospitality: ReturnTexture("d_southern_comfort_kill"); + case Engi_t_TheJag: ReturnTexture("d_wrench_jag"); + case Engi_t_TheEurekaEffect: ReturnTexture("d_eureka_effect"); + case Medic_m_SyringeGun: + case Medic_m_SyringeGunR: ReturnTexture("d_syringegun_medic"); + case Medic_m_TheBlutsauger: ReturnTexture("d_blutsauger"); + case Medic_m_CrusadersCrossbow: + case Medic_m_FestiveCrusadersCrossbow: ReturnTexture("d_crusaders_crossbow"); + case Medic_m_TheOverdose: ReturnTexture("d_proto_syringe"); + case Medic_t_Bonesaw: + case Medic_t_BonesawR: + case Medic_t_FestiveBonesaw: ReturnTexture("d_bonesaw"); + case Medic_t_TheUbersaw: + case Medic_t_FestiveUbersaw: ReturnTexture("d_ubersaw"); + case Medic_t_TheVitaSaw: ReturnTexture("d_battleneedle"); + case Medic_t_Amputator: ReturnTexture("d_amputator"); + case Medic_t_TheSolemnVow: ReturnTexture("d_solemn_vow"); + case Sniper_m_SniperRifle: + case Sniper_m_SniperRifleR: + case Sniper_m_FestiveSniperRifle: + case Sniper_m_TheAWPerHand: + case Sniper_m_SilverBotkillerSniperRifleMkI: + case Sniper_m_GoldBotkillerSniperRifleMkI: + case Sniper_m_RustBotkillerSniperRifleMkI: + case Sniper_m_BloodBotkillerSniperRifleMkI: + case Sniper_m_CarbonadoBotkillerSniperRifleMkI: + case Sniper_m_DiamondBotkillerSniperRifleMkI: + case Sniper_m_SilverBotkillerSniperRifleMkII: + case Sniper_m_GoldBotkillerSniperRifleMkII: + case Sniper_m_NightOwl: + case Sniper_m_PurpleRange: + case Sniper_m_LumberFromDownUnder: + case Sniper_m_ShotintheDark: + case Sniper_m_Bogtrotter: + case Sniper_m_Thunderbolt: + case Sniper_m_PumpkinPatch: + case Sniper_m_Boneyard: + case Sniper_m_Wildwood: + case Sniper_m_Balloonicorn: + case Sniper_m_Rainbow: + case Sniper_m_CoffinNail: + case Sniper_m_DressedtoKill: ReturnTexture("d_headshot"); + case Sniper_m_TheHuntsman: + case Sniper_m_FestiveHuntsman: + case Sniper_m_TheFortifiedCompound: ReturnTexture("d_huntsman"); + case Sniper_m_TheSydneySleeper: ReturnTexture("d_sydney_sleeper"); + case Sniper_m_TheBazaarBargain: ReturnTexture("d_bazaar_bargain"); + case Sniper_m_TheMachina: ReturnTexture("d_machina"); + case Sniper_m_TheHitmansHeatmaker: ReturnTexture("d_pro_rifle"); + case Sniper_m_TheClassic: ReturnTexture("d_the_classic"); + case Sniper_m_ShootingStar: ReturnTexture("d_shooting_star"); + case Sniper_s_SMG: + case Sniper_s_SMGR: + case Sniper_s_FestiveSMG: + case Sniper_s_WoodsyWidowmaker: + case Sniper_s_PlaidPotshotter: + case Sniper_s_TreadplateTormenter: + case Sniper_s_TeamSprayer: + case Sniper_s_LowProfile: + case Sniper_s_Wildwood: + case Sniper_s_BlueMew: + case Sniper_s_HighRollers: + case Sniper_s_Blitzkrieg: ReturnTexture("d_smg"); + case Sniper_s_TheCleanersCarbine: ReturnTexture("d_pro_smg"); + case Sniper_t_Kukri: + case Sniper_t_KukriR: ReturnTexture("d_club"); + case Sniper_t_TheTribalmansShiv: ReturnTexture("d_tribalkukri"); + case Sniper_t_TheBushwacka: ReturnTexture("d_bushwacka"); + case Sniper_t_TheShahanshah: ReturnTexture("d_shahanshah"); + case Spy_m_Revolver: + case Spy_m_RevolverR: + case Spy_m_FestiveRevolver: + case Spy_m_PsychedelicSlugger: + case Spy_m_OldCountry: + case Spy_m_Mayor: + case Spy_m_DeadReckoner: + //case Spy_m_Boneyard: // shared with Spy_t_Boneyard + case Spy_m_Wildwood: + case Spy_m_MacabreWeb: + case Spy_m_FlowerPower: + case Spy_m_TopShelf: + //case Spy_m_CoffinNail: // shared with Soldier_m_CoffinNail + case Spy_m_Blitzkrieg: ReturnTexture("d_revolver"); + case Spy_m_TheAmbassador: + case Spy_m_FestiveAmbassador: ReturnTexture("d_ambassador"); + case Spy_m_BigKill: ReturnTexture("d_samrevolver"); + case Spy_m_LEtranger: ReturnTexture("d_letranger"); + case Spy_m_TheEnforcer: ReturnTexture("d_enforcer"); + case Spy_m_TheDiamondback: ReturnTexture("d_diamondback"); + case Spy_s_Sapper: + case Spy_s_SapperR: + case Spy_s_FestiveSapper: ReturnTexture("d_obj_attachment_sapper"); + case Spy_s_TheRedTapeRecorder: + case Spy_s_TheRedTapeRecorderG: ReturnTexture("d_recorder"); + case Spy_s_TheApSapG: ReturnTexture("d_psapper"); + case Spy_s_TheSnackAttack: ReturnTexture("d_snack_attack"); + case Spy_t_Knife: + case Spy_t_KnifeR: + case Spy_t_FestiveKnife: + case Spy_t_SilverBotkillerKnifeMkI: + case Spy_t_GoldBotkillerKnifeMkI: + case Spy_t_RustBotkillerKnifeMkI: + case Spy_t_BloodBotkillerKnifeMkI: + case Spy_t_CarbonadoBotkillerKnifeMkI: + case Spy_t_DiamondBotkillerKnifeMkI: + case Spy_t_SilverBotkillerKnifeMkII: + case Spy_t_GoldBotkillerKnifeMkII: + case Spy_t_Boneyard: + case Spy_t_BlueMew: + case Spy_t_BrainCandy: + case Spy_t_StabbedtoHell: + case Spy_t_DressedtoKill: + case Spy_t_TopShelf: + case Spy_t_Blitzkrieg: + case Spy_t_Airwolf: ReturnTexture("d_knife"); + case Spy_t_YourEternalReward: ReturnTexture("d_eternal_reward"); + case Spy_t_ConniversKunai: ReturnTexture("d_kunai"); + case Spy_t_TheBigEarner: ReturnTexture("d_big_earner"); + case Spy_t_TheWangaPrick: ReturnTexture("d_voodoo_pin"); + case Spy_t_TheSharpDresser: ReturnTexture("d_sharp_dresser"); + case Spy_t_TheSpycicle: ReturnTexture("d_spy_cicle"); + case Spy_t_TheBlackRose: ReturnTexture("d_black_rose"); + case Spy_d_DisguiseKitPDA: ReturnTexture("hud_spy_disguise_menu_icon"); + case Misc_t_FryingPan: + case Misc_t_GoldFryingPan: ReturnTexture("d_fryingpan"); + case Misc_t_TheConscientiousObjector: ReturnTexture("d_nonnonviolent_protest"); + case Misc_t_TheBatOuttaHell: ReturnTexture("d_skull"); + case Misc_t_TheFreedomStaff: ReturnTexture("d_freedom_staff"); + case Misc_t_TheMemoryMaker: ReturnTexture("d_memory_maker"); + case Misc_t_TheHamShank: ReturnTexture("d_ham_shank"); + case Misc_t_TheNecroSmasher: ReturnTexture("d_necro_smasher"); + case Misc_t_TheCrossingGuard: ReturnTexture("d_crossing_guard"); + case Misc_t_PrinnyMachete: ReturnTexture("d_prinny_machete"); + } + ReturnTexture("d_skull"); +} + int CWeaponMedigun::GetMedigunType() @@ -263,457 +726,4 @@ int CTFGrenadeLauncher::GetDetonateType() int CTFFlareGun::GetFlareGunType() { return SDK::AttribHookValue(0, "set_weapon_mode", this); -} - - - -#define ReturnTexture(string) { static CHudTexture* pTexture = H::Draw.GetIcon(string); return pTexture; } -CHudTexture* CTFWeaponBase::GetWeaponIcon() // wow this is stupid -{ - switch (m_iItemDefinitionIndex()) - { - case 13: - case 200: - case 669: - case 799: - case 808: - case 888: - case 897: - case 906: - case 915: - case 964: - case 973: - case 15002: - case 15015: - case 15021: - case 15029: - case 15036: - case 15053: - case 15065: - case 15069: - case 15106: - case 15107: - case 15108: - case 15131: - case 15151: - case 15157: ReturnTexture("d_scattergun"); - case 45: - case 1078: ReturnTexture("d_force_a_nature"); - case 220: ReturnTexture("d_shortstop"); - case 448: ReturnTexture("d_soda_popper"); - case 772: ReturnTexture("d_pep_brawlerblaster"); - case 1103: ReturnTexture("d_back_scatter"); - case 22: - case 23: - case 209: - case 15013: - case 15018: - case 15035: - case 15041: - case 15046: - case 15056: - case 15060: - case 15061: - case 15100: - case 15101: - case 15102: - case 15126: - case 15148: ReturnTexture("d_pistol"); - case 46: - case 1145: ReturnTexture("d_taunt_scout"); // Bonk has no icon but there is a taunt kill that says bonk so we'll use that - case 160: - case 294: ReturnTexture("d_maxgun"); - case 449: ReturnTexture("d_the_winger"); - case 773: ReturnTexture("d_pep_pistol"); - case 812: - case 833: ReturnTexture("d_guillotine"); - case 30666: ReturnTexture("d_the_capper"); - case 0: - case 190: - case 660: ReturnTexture("d_bat"); - case 44: ReturnTexture("d_sandman"); - case 221: - case 999: ReturnTexture("d_holymackerel"); - case 317: ReturnTexture("d_candy_cane"); - case 325: ReturnTexture("d_boston_basher"); - case 349: ReturnTexture("d_lava_bat"); - case 355: ReturnTexture("d_warfan"); - case 450: ReturnTexture("d_atomizer"); - case 452: ReturnTexture("d_scout_sword"); - case 264: - case 1071: ReturnTexture("d_fryingpan"); - case 474: ReturnTexture("d_nonnonviolent_protest"); - case 572: ReturnTexture("d_unarmed_combat"); - case 648: ReturnTexture("d_wrap_assassin"); - case 939: ReturnTexture("d_skull"); - case 880: ReturnTexture("d_freedom_staff"); - case 954: ReturnTexture("d_memory_maker"); - case 1013: ReturnTexture("d_ham_shank"); - case 1123: ReturnTexture("d_necro_smasher"); - case 1127: ReturnTexture("d_crossing_guard"); - case 30667: ReturnTexture("d_batsaber"); - case 30758: ReturnTexture("d_prinny_machete"); - case 18: - case 205: - case 658: - case 800: - case 809: - case 889: - case 898: - case 907: - case 916: - case 965: - case 974: - case 15006: - case 15014: - case 15028: - case 15043: - case 15052: - case 15057: - case 15081: - case 15104: - case 15105: - case 15130: - case 15150: - case 237: ReturnTexture("d_tf_projectile_rocket"); - case 127: ReturnTexture("d_rocketlauncher_directhit"); - case 228: - case 1085: ReturnTexture("d_blackbox"); - case 414: ReturnTexture("d_liberty_launcher"); - case 441: ReturnTexture("d_cow_mangler"); - case 513: ReturnTexture("d_quake_rl"); - case 730: ReturnTexture("d_dumpster_device"); - case 1104: ReturnTexture("d_airstrike"); - case 10: - case 199: - case 15003: - case 15016: - case 15044: - case 15047: - case 15085: - case 15109: - case 15132: - case 15133: - case 15152: - case 1141: - case 12: - case 11: - case 9: ReturnTexture("d_shotgun_soldier"); - case 415: ReturnTexture("d_reserve_shooter"); - case 442: ReturnTexture("d_righteous_bison"); - case 1153: ReturnTexture("d_panic_attack"); - case 6: - case 196: ReturnTexture("d_shovel"); - case 128: - case 775: ReturnTexture("d_pickaxe"); - case 154: ReturnTexture("d_paintrain"); - case 357: ReturnTexture("d_demokatana"); - case 416: ReturnTexture("d_market_gardener"); - case 447: ReturnTexture("d_disciplinary_action"); - case 21: - case 208: - case 659: - case 798: - case 807: - case 887: - case 896: - case 905: - case 914: - case 963: - case 972: - case 15005: - case 15017: - case 15030: - case 15034: - case 15049: - case 15054: - case 15066: - case 15067: - case 15068: - case 15089: - case 15090: - case 15115: - case 15141: ReturnTexture("d_flamethrower"); - case 40: - case 1146: ReturnTexture("d_backburner"); - case 215: ReturnTexture("d_degreaser"); - case 594: ReturnTexture("d_phlogistinator"); - case 741: ReturnTexture("d_rainblower"); - case 1178: ReturnTexture("d_dragons_fury"); - case 39: - case 1081: ReturnTexture("d_flaregun"); - case 740: ReturnTexture("d_scorch_shot"); - case 595: ReturnTexture("d_manmelter"); - case 351: ReturnTexture("d_detonator"); - case 1179: ReturnTexture("d_rocketpack"); - case 2: - case 192: ReturnTexture("d_fireaxe"); - case 38: - case 1000: ReturnTexture("d_axtinguisher"); - case 153: ReturnTexture("d_sledgehammer"); - case 214: ReturnTexture("d_powerjack"); - case 326: ReturnTexture("d_back_scratcher"); - case 348: ReturnTexture("d_lava_axe"); - case 457: ReturnTexture("d_mailbox"); - case 466: ReturnTexture("d_the_maul"); - case 593: ReturnTexture("d_thirddegree"); - case 739: ReturnTexture("d_lollichop"); - case 813: - case 834: ReturnTexture("d_annihilator"); - case 1181: ReturnTexture("d_hot_hand"); - case 19: - case 206: - case 15077: - case 15079: - case 15091: - case 15092: - case 15116: - case 15117: - case 15142: - case 15158: - case 1007: ReturnTexture("d_tf_projectile_pipe"); - case 308: ReturnTexture("d_loch_n_load"); - case 996: ReturnTexture("d_loose_cannon_explosion"); - case 1151: ReturnTexture("d_iron_bomber"); - case 20: - case 207: - case 661: - case 797: - case 806: - case 886: - case 895: - case 904: - case 913: - case 962: - case 971: - case 265: - case 15009: - case 15012: - case 15024: - case 15038: - case 15045: - case 15048: - case 15082: - case 15083: - case 15084: - case 15113: - case 15137: - case 15138: - case 15155: ReturnTexture("d_tf_projectile_pipe_remote"); - case 130: ReturnTexture("d_sticky_resistance"); - case 131: - case 1144: ReturnTexture("d_demoshield"); - case 1099: ReturnTexture("d_tide_turner"); - case 406: ReturnTexture("d_splendid_screen"); - case 1150: ReturnTexture("d_quickiebomb_launcher"); - case 1: - case 191: ReturnTexture("d_bottle"); - case 132: - case 1082: ReturnTexture("d_sword"); - case 172: ReturnTexture("d_battleaxe"); - case 266: ReturnTexture("d_headtaker"); - case 307: ReturnTexture("d_ullapool_caber_explosion"); - case 327: ReturnTexture("d_claidheamohmor"); - case 404: ReturnTexture("d_persian_persuader"); - case 482: ReturnTexture("d_nessieclub"); - case 609: ReturnTexture("d_scotland_shard"); - case 15: - case 202: - case 654: - case 793: - case 802: - case 882: - case 891: - case 900: - case 909: - case 958: - case 967: - case 15004: - case 15020: - case 15026: - case 15031: - case 15040: - case 15055: - case 15086: - case 15087: - case 15088: - case 15098: - case 15099: - case 15123: - case 15124: - case 15125: - case 15147: ReturnTexture("d_minigun"); - case 41: ReturnTexture("d_natascha"); - case 312: ReturnTexture("d_brass_beast"); - case 424: ReturnTexture("d_tomislav"); - case 811: - case 832: ReturnTexture("d_long_heatmaker"); - case 298: - case 850: ReturnTexture("d_iron_curtain"); - case 425: ReturnTexture("d_family_business"); - case 5: - case 195: ReturnTexture("d_fists"); - case 43: ReturnTexture("d_gloves"); - case 239: - case 1084: - case 1184: ReturnTexture("d_gloves_running_urgently"); - case 310: ReturnTexture("d_warrior_spirit"); - case 331: ReturnTexture("d_steel_fists"); - case 426: ReturnTexture("d_eviction_notice"); - case 587: ReturnTexture("d_apocofists"); - case 656: ReturnTexture("d_holiday_punch"); - case 1100: ReturnTexture("d_bread_bite"); - case 141: - case 1004: ReturnTexture("d_frontier_kill"); - case 527: ReturnTexture("d_widowmaker"); - case 588: ReturnTexture("d_pomson"); - case 997: ReturnTexture("d_rescue_ranger"); - case 140: - case 1086: ReturnTexture("d_wrangler_kill"); - case 528: ReturnTexture("d_short_circuit"); - case 30668: ReturnTexture("d_giger_counter"); - case 7: - case 197: - case 662: - case 795: - case 804: - case 884: - case 893: - case 902: - case 911: - case 960: - case 969: - case 15073: - case 15074: - case 15075: - case 15139: - case 15140: - case 15114: - case 15156: - case 169: ReturnTexture("d_wrench"); - case 142: ReturnTexture("d_robot_arm_kill"); - case 155: ReturnTexture("d_southern_comfort_kill"); - case 329: ReturnTexture("d_wrench_jag"); - case 589: ReturnTexture("d_eureka_effect"); - case 17: - case 204: ReturnTexture("d_syringegun_medic"); - case 36: ReturnTexture("d_blutsauger"); - case 305: - case 1079: ReturnTexture("d_crusaders_crossbow"); - case 412: ReturnTexture("d_proto_syringe"); - case 8: - case 198: - case 1143: ReturnTexture("d_bonesaw"); - case 37: - case 1003: ReturnTexture("d_ubersaw"); - case 173: ReturnTexture("d_battleneedle"); - case 304: ReturnTexture("d_amputator"); - case 413: ReturnTexture("d_solemn_vow"); - case 14: - case 201: - case 664: - case 792: - case 801: - case 881: - case 890: - case 899: - case 908: - case 957: - case 966: - case 15000: - case 15007: - case 15019: - case 15023: - case 15033: - case 15059: - case 15070: - case 15071: - case 15072: - case 15111: - case 15112: - case 15135: - case 15136: - case 851: ReturnTexture("d_headshot"); - case 56: - case 1005: - case 1092: ReturnTexture("d_huntsman"); - case 30665: ReturnTexture("d_shooting_star"); - case 1098: ReturnTexture("d_the_classic"); - case 752: ReturnTexture("d_pro_rifle"); - case 526: ReturnTexture("d_machina"); - case 402: ReturnTexture("d_bazaar_bargain"); - case 230: ReturnTexture("d_sydney_sleeper"); - case 16: - case 203: - case 1149: - case 15001: - case 15022: - case 15032: - case 15037: - case 15058: - case 15076: - case 15110: - case 15134: - case 15153: ReturnTexture("d_smg"); - case 751: ReturnTexture("d_pro_smg"); - case 3: - case 193: ReturnTexture("d_club"); - case 171: ReturnTexture("d_tribalkukri"); - case 232: ReturnTexture("d_bushwacka"); - case 401: ReturnTexture("d_shahanshah"); - case 24: - case 210: - case 1142: - case 15011: - case 15027: - case 15042: - case 15051: - case 15062: - case 15063: - case 15064: - case 15103: - case 15128: - case 15129: - case 15149: ReturnTexture("d_revolver"); - case 61: - case 1006: ReturnTexture("d_ambassador"); - case 161: ReturnTexture("d_samrevolver"); - case 224: ReturnTexture("d_letranger"); - case 460: ReturnTexture("d_enforcer"); - case 525: ReturnTexture("d_diamondback"); - case 735: - case 736: - case 1080: ReturnTexture("d_obj_attachment_sapper"); - case 933: ReturnTexture("d_psapper"); - case 1102: ReturnTexture("d_snack_attack"); - case 810: - case 831: ReturnTexture("d_recorder"); - case 225: ReturnTexture("d_eternal_reward"); - case 356: ReturnTexture("d_kunai"); - case 461: ReturnTexture("d_big_earner"); - case 574: ReturnTexture("d_voodoo_pin"); - case 638: ReturnTexture("d_sharp_dresser"); - case 649: ReturnTexture("d_spy_cicle"); - case 4: - case 194: - case 665: - case 794: - case 803: - case 883: - case 892: - case 901: - case 910: - case 959: - case 968: - case 15094: - case 15095: - case 15096: - case 15118: - case 15119: - case 15143: - case 15144: ReturnTexture("d_knife"); - case 727: ReturnTexture("d_black_rose"); - case 27: ReturnTexture("hud_spy_disguise_menu_icon"); - } - ReturnTexture("d_skull"); } \ No newline at end of file diff --git a/Amalgam/src/SDK/Definitions/Main/CTFWeaponBase.h b/Amalgam/src/SDK/Definitions/Main/CTFWeaponBase.h index 439f4fd4..e92c2da9 100644 --- a/Amalgam/src/SDK/Definitions/Main/CTFWeaponBase.h +++ b/Amalgam/src/SDK/Definitions/Main/CTFWeaponBase.h @@ -241,6 +241,7 @@ public: bool IsRapidFire(); float GetSmackDelay(); float GetRange(); + const wchar_t* GetWeaponName(); CHudTexture* GetWeaponIcon(); };