From 8c525eeb93fbc47e15ba09876e8bb32cd3347477 Mon Sep 17 00:00:00 2001 From: SuperCake Date: Fri, 1 May 2026 02:22:55 +0200 Subject: [PATCH 1/2] fix(grenade): initialize creator weapon class to unknown and remove setting it from Spawn --- src/game/server/swarm/asw_grenade_cluster.cpp | 1 - src/game/server/swarm/asw_grenade_cluster.h | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/game/server/swarm/asw_grenade_cluster.cpp b/src/game/server/swarm/asw_grenade_cluster.cpp index be090061a..83d949e7c 100644 --- a/src/game/server/swarm/asw_grenade_cluster.cpp +++ b/src/game/server/swarm/asw_grenade_cluster.cpp @@ -132,7 +132,6 @@ void CASW_Grenade_Cluster::Spawn( void ) SetThink( &CASW_Grenade_Cluster::CheckNearbyDrones ); SetNextThink( gpGlobals->curtime + asw_cluster_grenade_radius_check_interval.GetFloat() ); } - m_CreatorWeaponClass = (Class_T)CLASS_ASW_UNKNOWN; m_bTeslaAmped = false; diff --git a/src/game/server/swarm/asw_grenade_cluster.h b/src/game/server/swarm/asw_grenade_cluster.h index 2db831d99..86ac80368 100644 --- a/src/game/server/swarm/asw_grenade_cluster.h +++ b/src/game/server/swarm/asw_grenade_cluster.h @@ -29,7 +29,7 @@ class CASW_Grenade_Cluster : public CASW_Grenade_Vindicator float m_fDetonateTime; float m_fEarliestAOEDetonationTime; - Class_T m_CreatorWeaponClass; + Class_T m_CreatorWeaponClass = (Class_T)CLASS_ASW_UNKNOWN; void SetAdvancedRicochet(bool bRicochet) { m_bAdvancedRicochet = bRicochet; } // if set, grenade will ricochet with increaced velocity if no world contact explosion specified. bool m_bAdvancedRicochet; From a6f8125599ea64765b38973afba82f271af4b634 Mon Sep 17 00:00:00 2001 From: SuperCake Date: Fri, 1 May 2026 01:48:54 +0200 Subject: [PATCH 2/2] fix(grenade): set weapon creator class before spawn Spawn depends on the creator class to choose the correct model (grenade launcher's vs hand grenade). --- src/game/server/swarm/asw_grenade_cluster.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/game/server/swarm/asw_grenade_cluster.cpp b/src/game/server/swarm/asw_grenade_cluster.cpp index 83d949e7c..f5e5e2fff 100644 --- a/src/game/server/swarm/asw_grenade_cluster.cpp +++ b/src/game/server/swarm/asw_grenade_cluster.cpp @@ -225,6 +225,10 @@ CASW_Grenade_Cluster* CASW_Grenade_Cluster::Cluster_Grenade_Create( float flDama pGrenade->SetAbsAngles( angles ); UTIL_SetOrigin( pGrenade, position ); pGrenade->m_vecInitPos = position; + if ( pCreatorWeapon ) + { + pGrenade->m_CreatorWeaponClass = pCreatorWeapon->Classify(); + } pGrenade->Spawn(); pGrenade->m_flDamage = flDamage; pGrenade->m_DmgRadius = fRadius; @@ -235,7 +239,6 @@ CASW_Grenade_Cluster* CASW_Grenade_Cluster::Cluster_Grenade_Create( float flDama pGrenade->m_hCreatorWeapon = pCreatorWeapon; if ( pCreatorWeapon ) { - pGrenade->m_CreatorWeaponClass = pCreatorWeapon->Classify(); pGrenade->m_ProjectileData.GetForModify().SetFromWeapon( pCreatorWeapon ); }