From 4d9f5406d5ea006d8ff10f342b4e9b571e993090 Mon Sep 17 00:00:00 2001 From: DESTROYGIRL <170364626+DESTROYGIRL@users.noreply.github.com> Date: Sun, 3 Aug 2025 21:09:43 +0100 Subject: [PATCH 1/2] fix misinterpret --- src/game/shared/neo/weapons/weapon_knife.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/game/shared/neo/weapons/weapon_knife.cpp b/src/game/shared/neo/weapons/weapon_knife.cpp index 2952f45c3e..cb14b429a1 100644 --- a/src/game/shared/neo/weapons/weapon_knife.cpp +++ b/src/game/shared/neo/weapons/weapon_knife.cpp @@ -113,7 +113,18 @@ bool CWeaponKnife::CanBePickedUpByClass(int classId) bool CWeaponKnife::ShouldDraw() { auto owner = static_cast(GetOwner()); - return (owner && owner->IsAlive() && owner->GetActiveWeapon() == this); + bool draw = (owner && owner->IsAlive() && owner->GetActiveWeapon() == this); + + if (draw) // DG: Disable shadows manually because it doesn't do it on its own + { + RemoveEffects(EF_NOSHADOW); + } + else + { + AddEffects(EF_NOSHADOW); + } + + return draw; } #else bool CWeaponKnife::IsViewable() From 01ee7f14170622532735737636d652b15cb37ea7 Mon Sep 17 00:00:00 2001 From: Rain Date: Sat, 8 Aug 2026 20:33:44 +0300 Subject: [PATCH 2/2] review feedback: add HACK comment also avoid spamming effect changes with GetEffects check --- src/game/shared/neo/weapons/weapon_knife.cpp | 21 ++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/src/game/shared/neo/weapons/weapon_knife.cpp b/src/game/shared/neo/weapons/weapon_knife.cpp index cb14b429a1..25654033b9 100644 --- a/src/game/shared/neo/weapons/weapon_knife.cpp +++ b/src/game/shared/neo/weapons/weapon_knife.cpp @@ -112,16 +112,21 @@ bool CWeaponKnife::CanBePickedUpByClass(int classId) #ifdef CLIENT_DLL bool CWeaponKnife::ShouldDraw() { - auto owner = static_cast(GetOwner()); - bool draw = (owner && owner->IsAlive() && owner->GetActiveWeapon() == this); + const auto owner = static_cast(GetOwner()); + const bool draw = (owner && owner->IsAlive() && owner->GetActiveWeapon() == this); + const bool noShadow = !draw; - if (draw) // DG: Disable shadows manually because it doesn't do it on its own - { - RemoveEffects(EF_NOSHADOW); - } - else + // NEO HACK (Rain): should be moved to some more appropriate location + if (!!(GetEffects() & EF_NOSHADOW) != noShadow) { - AddEffects(EF_NOSHADOW); + if (draw) // DG: Disable shadows manually because it doesn't do it on its own + { + RemoveEffects(EF_NOSHADOW); + } + else + { + AddEffects(EF_NOSHADOW); + } } return draw;