From 009dd46bfce3cede4148ee60f9ff544570b61f1c Mon Sep 17 00:00:00 2001 From: Bitl Date: Tue, 9 Dec 2025 19:12:31 -0700 Subject: [PATCH 01/13] [TF] Fix regressions caused by recent Caber change --- src/game/server/tf/tf_gamestats.cpp | 2 +- src/game/server/tf/tf_player.cpp | 2 +- src/game/shared/tf/tf_gamerules.cpp | 2 +- src/game/shared/tf/tf_shareddefs.h | 1 + src/game/shared/tf/tf_weapon_bottle.cpp | 2 +- 5 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/game/server/tf/tf_gamestats.cpp b/src/game/server/tf/tf_gamestats.cpp index ad45ccf87ff..9450b8ac285 100644 --- a/src/game/server/tf/tf_gamestats.cpp +++ b/src/game/server/tf/tf_gamestats.cpp @@ -1070,7 +1070,7 @@ void CTFGameStats::Event_PlayerDamage( CBasePlayer *pBasePlayer, const CTakeDama IncrementStat( pAttacker, TFSTAT_BLASTDAMAGE, iDamageTaken ); } // Ranged stats - if ( !( info.GetDamageType() & DMG_MELEE ) ) + if ( !( info.GetDamageType() & DMG_MELEE ) && !( info.GetDamageType() & DMG_STICKBOMB ) ) { IncrementStat( pAttacker, TFSTAT_DAMAGE_RANGED, iDamageTaken ); diff --git a/src/game/server/tf/tf_player.cpp b/src/game/server/tf/tf_player.cpp index fa944e35611..07e77548a8d 100644 --- a/src/game/server/tf/tf_player.cpp +++ b/src/game/server/tf/tf_player.cpp @@ -11268,7 +11268,7 @@ void CTFPlayer::Event_KilledOther( CBaseEntity *pVictim, const CTakeDamageInfo & flRefill *= 0.2; } - if ( flRefill > 0 && ((info.GetDamageType() & DMG_MELEE) || ( info.GetDamageCustom() == TF_DMG_CUSTOM_CHARGE_IMPACT ) ) ) + if ( flRefill > 0 && ((info.GetDamageType() & DMG_MELEE) || ( info.GetDamageType() & DMG_STICKBOMB ) || ( info.GetDamageCustom() == TF_DMG_CUSTOM_CHARGE_IMPACT ) ) ) { m_Shared.SetDemomanChargeMeter( m_Shared.GetDemomanChargeMeter() + flRefill * 100.0f ); } diff --git a/src/game/shared/tf/tf_gamerules.cpp b/src/game/shared/tf/tf_gamerules.cpp index c3ec6c0d998..4a8e7685357 100644 --- a/src/game/shared/tf/tf_gamerules.cpp +++ b/src/game/shared/tf/tf_gamerules.cpp @@ -7258,7 +7258,7 @@ float CTFGameRules::ApplyOnDamageAliveModifyRules( const CTakeDamageInfo &info, outParams.bPlayDamageReductionSound = CheckMedicResist( TF_COND_MEDIGUN_SMALL_BULLET_RESIST, TF_COND_MEDIGUN_UBER_BULLET_RESIST, pVictim, flRawDamage, flDamageBase, bCrit, flDamageBonus ); } - if ( info.GetDamageType() & DMG_MELEE ) + if ( info.GetDamageType() & DMG_MELEE || info.GetDamageType() & DMG_STICKBOMB ) { CALL_ATTRIB_HOOK_FLOAT_ON_OTHER( pVictim, flDamageBase, mult_dmgtaken_from_melee ); } diff --git a/src/game/shared/tf/tf_shareddefs.h b/src/game/shared/tf/tf_shareddefs.h index f3b5a91a61f..ad5dfb4c27d 100644 --- a/src/game/shared/tf/tf_shareddefs.h +++ b/src/game/shared/tf/tf_shareddefs.h @@ -1169,6 +1169,7 @@ extern const char *g_pszHintMessages[]; #define DMG_FROM_OTHER_SAPPER (DMG_IGNITE) // USED TO DAMAGE SAPPERS ON MATCHED TELEPORTERS #define DMG_MELEE (DMG_BLAST_SURFACE) #define DMG_DONT_COUNT_DAMAGE_TOWARDS_CRIT_RATE (DMG_DISSOLVE) // DON'T USE THIS FOR EXPLOSION DAMAGE YOU WILL MAKE BRANDON SAD AND KYLE SADDER +#define DMG_STICKBOMB (DMG_PHYSGUN) // This can only ever be used on a TakeHealth call, since it re-uses a dmg flag that means something else #define DMG_IGNORE_MAXHEALTH (DMG_BULLET) diff --git a/src/game/shared/tf/tf_weapon_bottle.cpp b/src/game/shared/tf/tf_weapon_bottle.cpp index ff74cff1227..fc63c2a8677 100644 --- a/src/game/shared/tf/tf_weapon_bottle.cpp +++ b/src/game/shared/tf/tf_weapon_bottle.cpp @@ -254,7 +254,7 @@ void CTFStickBomb::Smack( void ) TE_TFExplosion( filter, 0.0f, explosion, Vector(0,0,1), TF_WEAPON_GRENADELAUNCHER, pTFPlayer->entindex(), -1, SPECIAL1, iCustomParticleIndex ); - int dmgType = DMG_BLAST | DMG_USEDISTANCEMOD | DMG_MELEE; + int dmgType = DMG_BLAST | DMG_USEDISTANCEMOD | DMG_STICKBOMB; if ( IsCurrentAttackACrit() ) dmgType |= DMG_CRITICAL; From d1bf64c7379cc56dcc414e37e652652ccbd38415 Mon Sep 17 00:00:00 2001 From: Bitl Date: Tue, 9 Dec 2025 19:58:14 -0700 Subject: [PATCH 02/13] Update tf_weapon_grenade_pipebomb.cpp --- src/game/shared/tf/tf_weapon_grenade_pipebomb.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/game/shared/tf/tf_weapon_grenade_pipebomb.cpp b/src/game/shared/tf/tf_weapon_grenade_pipebomb.cpp index 9421f01c3b2..bba9f4dbb75 100644 --- a/src/game/shared/tf/tf_weapon_grenade_pipebomb.cpp +++ b/src/game/shared/tf/tf_weapon_grenade_pipebomb.cpp @@ -967,13 +967,13 @@ int CTFGrenadePipebombProjectile::OnTakeDamage( const CTakeDamageInfo &info ) bool bSameTeam = ( info.GetAttacker()->GetTeamNumber() == GetTeamNumber() ); if ( !bSameTeam && CanTakeDamage() ) { - if ( m_bTouched && HasStickyEffects() && ( info.GetDamageType() & (DMG_BULLET|DMG_BUCKSHOT|DMG_BLAST|DMG_SONIC|DMG_MELEE) ) ) + if ( m_bTouched && HasStickyEffects() && ( info.GetDamageType() & ( DMG_BULLET | DMG_BUCKSHOT | DMG_BLAST | DMG_SONIC | DMG_MELEE | DMG_STICKBOMB ) ) ) { Vector vecForce = info.GetDamageForce(); bool bBreakPipes = false; - if ( info.GetDamageType() & (DMG_BULLET|DMG_MELEE) ) + if ( info.GetDamageType() & ( DMG_BULLET | DMG_MELEE ) ) { vecForce *= tf_grenade_forcefrom_bullet.GetFloat(); bBreakPipes = true; @@ -987,7 +987,7 @@ int CTFGrenadePipebombProjectile::OnTakeDamage( const CTakeDamageInfo &info ) vecForce *= tf_grenade_forcefrom_buckshot.GetFloat(); bBreakPipes = true; } - else if ( info.GetDamageType() & DMG_BLAST ) + else if ( info.GetDamageType() & ( DMG_BLAST | DMG_STICKBOMB ) ) { // if we're also supposed to ignite then just destroy the sticky bomb (Cow Mangler alt-fire) if ( info.GetDamageType() & DMG_IGNITE ) From d6e720a167552381326ec64d48fe80237d7dd42d Mon Sep 17 00:00:00 2001 From: Bitl Date: Tue, 9 Dec 2025 22:20:12 -0700 Subject: [PATCH 03/13] Replace DMG_STICKBOMB with existing TF_DMG_CUSTOM_STICKBOMB_EXPLOSION definition --- src/game/server/tf/tf_gamestats.cpp | 2 +- src/game/server/tf/tf_player.cpp | 2 +- src/game/shared/tf/tf_shareddefs.h | 1 - src/game/shared/tf/tf_weapon_bottle.cpp | 2 +- src/game/shared/tf/tf_weapon_grenade_pipebomb.cpp | 5 +++-- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/game/server/tf/tf_gamestats.cpp b/src/game/server/tf/tf_gamestats.cpp index 9450b8ac285..ad45ccf87ff 100644 --- a/src/game/server/tf/tf_gamestats.cpp +++ b/src/game/server/tf/tf_gamestats.cpp @@ -1070,7 +1070,7 @@ void CTFGameStats::Event_PlayerDamage( CBasePlayer *pBasePlayer, const CTakeDama IncrementStat( pAttacker, TFSTAT_BLASTDAMAGE, iDamageTaken ); } // Ranged stats - if ( !( info.GetDamageType() & DMG_MELEE ) && !( info.GetDamageType() & DMG_STICKBOMB ) ) + if ( !( info.GetDamageType() & DMG_MELEE ) ) { IncrementStat( pAttacker, TFSTAT_DAMAGE_RANGED, iDamageTaken ); diff --git a/src/game/server/tf/tf_player.cpp b/src/game/server/tf/tf_player.cpp index 07e77548a8d..806e36933a9 100644 --- a/src/game/server/tf/tf_player.cpp +++ b/src/game/server/tf/tf_player.cpp @@ -11268,7 +11268,7 @@ void CTFPlayer::Event_KilledOther( CBaseEntity *pVictim, const CTakeDamageInfo & flRefill *= 0.2; } - if ( flRefill > 0 && ((info.GetDamageType() & DMG_MELEE) || ( info.GetDamageType() & DMG_STICKBOMB ) || ( info.GetDamageCustom() == TF_DMG_CUSTOM_CHARGE_IMPACT ) ) ) + if ( flRefill > 0 && ((info.GetDamageType() & DMG_MELEE) || ( info.GetDamageCustom() == TF_DMG_CUSTOM_STICKBOMB_EXPLOSION ) || ( info.GetDamageCustom() == TF_DMG_CUSTOM_CHARGE_IMPACT ) ) ) { m_Shared.SetDemomanChargeMeter( m_Shared.GetDemomanChargeMeter() + flRefill * 100.0f ); } diff --git a/src/game/shared/tf/tf_shareddefs.h b/src/game/shared/tf/tf_shareddefs.h index ad5dfb4c27d..f3b5a91a61f 100644 --- a/src/game/shared/tf/tf_shareddefs.h +++ b/src/game/shared/tf/tf_shareddefs.h @@ -1169,7 +1169,6 @@ extern const char *g_pszHintMessages[]; #define DMG_FROM_OTHER_SAPPER (DMG_IGNITE) // USED TO DAMAGE SAPPERS ON MATCHED TELEPORTERS #define DMG_MELEE (DMG_BLAST_SURFACE) #define DMG_DONT_COUNT_DAMAGE_TOWARDS_CRIT_RATE (DMG_DISSOLVE) // DON'T USE THIS FOR EXPLOSION DAMAGE YOU WILL MAKE BRANDON SAD AND KYLE SADDER -#define DMG_STICKBOMB (DMG_PHYSGUN) // This can only ever be used on a TakeHealth call, since it re-uses a dmg flag that means something else #define DMG_IGNORE_MAXHEALTH (DMG_BULLET) diff --git a/src/game/shared/tf/tf_weapon_bottle.cpp b/src/game/shared/tf/tf_weapon_bottle.cpp index fc63c2a8677..69eb64663d6 100644 --- a/src/game/shared/tf/tf_weapon_bottle.cpp +++ b/src/game/shared/tf/tf_weapon_bottle.cpp @@ -254,7 +254,7 @@ void CTFStickBomb::Smack( void ) TE_TFExplosion( filter, 0.0f, explosion, Vector(0,0,1), TF_WEAPON_GRENADELAUNCHER, pTFPlayer->entindex(), -1, SPECIAL1, iCustomParticleIndex ); - int dmgType = DMG_BLAST | DMG_USEDISTANCEMOD | DMG_STICKBOMB; + int dmgType = DMG_BLAST | DMG_USEDISTANCEMOD; if ( IsCurrentAttackACrit() ) dmgType |= DMG_CRITICAL; diff --git a/src/game/shared/tf/tf_weapon_grenade_pipebomb.cpp b/src/game/shared/tf/tf_weapon_grenade_pipebomb.cpp index bba9f4dbb75..8342b839539 100644 --- a/src/game/shared/tf/tf_weapon_grenade_pipebomb.cpp +++ b/src/game/shared/tf/tf_weapon_grenade_pipebomb.cpp @@ -965,9 +965,10 @@ int CTFGrenadePipebombProjectile::OnTakeDamage( const CTakeDamageInfo &info ) } bool bSameTeam = ( info.GetAttacker()->GetTeamNumber() == GetTeamNumber() ); + if ( !bSameTeam && CanTakeDamage() ) { - if ( m_bTouched && HasStickyEffects() && ( info.GetDamageType() & ( DMG_BULLET | DMG_BUCKSHOT | DMG_BLAST | DMG_SONIC | DMG_MELEE | DMG_STICKBOMB ) ) ) + if ( m_bTouched && HasStickyEffects() && ( ( info.GetDamageType() & ( DMG_BULLET | DMG_BUCKSHOT | DMG_BLAST | DMG_SONIC | DMG_MELEE ) || ( info.GetDamageCustom() == TF_DMG_CUSTOM_STICKBOMB_EXPLOSION ) ) ) ) { Vector vecForce = info.GetDamageForce(); @@ -987,7 +988,7 @@ int CTFGrenadePipebombProjectile::OnTakeDamage( const CTakeDamageInfo &info ) vecForce *= tf_grenade_forcefrom_buckshot.GetFloat(); bBreakPipes = true; } - else if ( info.GetDamageType() & ( DMG_BLAST | DMG_STICKBOMB ) ) + else if ( info.GetDamageType() & ( DMG_BLAST ) || ( info.GetDamageCustom() == TF_DMG_CUSTOM_STICKBOMB_EXPLOSION ) ) { // if we're also supposed to ignite then just destroy the sticky bomb (Cow Mangler alt-fire) if ( info.GetDamageType() & DMG_IGNITE ) From 87987e6b6133a352aefe213dc183bb758f379424 Mon Sep 17 00:00:00 2001 From: Bitl Date: Tue, 9 Dec 2025 22:23:31 -0700 Subject: [PATCH 04/13] fix compile error --- src/game/shared/tf/tf_gamerules.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/game/shared/tf/tf_gamerules.cpp b/src/game/shared/tf/tf_gamerules.cpp index 4a8e7685357..4029e0527e5 100644 --- a/src/game/shared/tf/tf_gamerules.cpp +++ b/src/game/shared/tf/tf_gamerules.cpp @@ -7258,7 +7258,7 @@ float CTFGameRules::ApplyOnDamageAliveModifyRules( const CTakeDamageInfo &info, outParams.bPlayDamageReductionSound = CheckMedicResist( TF_COND_MEDIGUN_SMALL_BULLET_RESIST, TF_COND_MEDIGUN_UBER_BULLET_RESIST, pVictim, flRawDamage, flDamageBase, bCrit, flDamageBonus ); } - if ( info.GetDamageType() & DMG_MELEE || info.GetDamageType() & DMG_STICKBOMB ) + if ( ( info.GetDamageType() & DMG_MELEE ) || ( info.GetDamageCustom() == TF_DMG_CUSTOM_STICKBOMB_EXPLOSION ) ) { CALL_ATTRIB_HOOK_FLOAT_ON_OTHER( pVictim, flDamageBase, mult_dmgtaken_from_melee ); } From 58394006a360b510f50736a4371c675eaf60fa80 Mon Sep 17 00:00:00 2001 From: Bitl Date: Tue, 9 Dec 2025 22:24:14 -0700 Subject: [PATCH 05/13] formatting fixes --- src/game/server/tf/tf_player.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/game/server/tf/tf_player.cpp b/src/game/server/tf/tf_player.cpp index 806e36933a9..0253fe56f56 100644 --- a/src/game/server/tf/tf_player.cpp +++ b/src/game/server/tf/tf_player.cpp @@ -11268,7 +11268,7 @@ void CTFPlayer::Event_KilledOther( CBaseEntity *pVictim, const CTakeDamageInfo & flRefill *= 0.2; } - if ( flRefill > 0 && ((info.GetDamageType() & DMG_MELEE) || ( info.GetDamageCustom() == TF_DMG_CUSTOM_STICKBOMB_EXPLOSION ) || ( info.GetDamageCustom() == TF_DMG_CUSTOM_CHARGE_IMPACT ) ) ) + if ( flRefill > 0 && ( ( info.GetDamageType() & DMG_MELEE ) || ( info.GetDamageCustom() == TF_DMG_CUSTOM_STICKBOMB_EXPLOSION ) || ( info.GetDamageCustom() == TF_DMG_CUSTOM_CHARGE_IMPACT ) ) ) { m_Shared.SetDemomanChargeMeter( m_Shared.GetDemomanChargeMeter() + flRefill * 100.0f ); } From 003a0c1bbbb31e8d927fcdf1d4e94db884fdbe5c Mon Sep 17 00:00:00 2001 From: Bitl Date: Tue, 9 Dec 2025 22:26:29 -0700 Subject: [PATCH 06/13] revert pipebomb code --- src/game/shared/tf/tf_weapon_grenade_pipebomb.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/game/shared/tf/tf_weapon_grenade_pipebomb.cpp b/src/game/shared/tf/tf_weapon_grenade_pipebomb.cpp index 8342b839539..0d2043fee20 100644 --- a/src/game/shared/tf/tf_weapon_grenade_pipebomb.cpp +++ b/src/game/shared/tf/tf_weapon_grenade_pipebomb.cpp @@ -965,16 +965,15 @@ int CTFGrenadePipebombProjectile::OnTakeDamage( const CTakeDamageInfo &info ) } bool bSameTeam = ( info.GetAttacker()->GetTeamNumber() == GetTeamNumber() ); - if ( !bSameTeam && CanTakeDamage() ) { - if ( m_bTouched && HasStickyEffects() && ( ( info.GetDamageType() & ( DMG_BULLET | DMG_BUCKSHOT | DMG_BLAST | DMG_SONIC | DMG_MELEE ) || ( info.GetDamageCustom() == TF_DMG_CUSTOM_STICKBOMB_EXPLOSION ) ) ) ) + if ( m_bTouched && HasStickyEffects() && ( info.GetDamageType() & (DMG_BULLET|DMG_BUCKSHOT|DMG_BLAST|DMG_SONIC|DMG_MELEE) ) ) { Vector vecForce = info.GetDamageForce(); bool bBreakPipes = false; - if ( info.GetDamageType() & ( DMG_BULLET | DMG_MELEE ) ) + if ( info.GetDamageType() & (DMG_BULLET|DMG_MELEE) ) { vecForce *= tf_grenade_forcefrom_bullet.GetFloat(); bBreakPipes = true; @@ -988,7 +987,7 @@ int CTFGrenadePipebombProjectile::OnTakeDamage( const CTakeDamageInfo &info ) vecForce *= tf_grenade_forcefrom_buckshot.GetFloat(); bBreakPipes = true; } - else if ( info.GetDamageType() & ( DMG_BLAST ) || ( info.GetDamageCustom() == TF_DMG_CUSTOM_STICKBOMB_EXPLOSION ) ) + else if ( info.GetDamageType() & DMG_BLAST ) { // if we're also supposed to ignite then just destroy the sticky bomb (Cow Mangler alt-fire) if ( info.GetDamageType() & DMG_IGNITE ) From f84e27b8fcc0d29104063c608b38a1ff6102729f Mon Sep 17 00:00:00 2001 From: Bitl Date: Tue, 9 Dec 2025 22:26:46 -0700 Subject: [PATCH 07/13] Update tf_weapon_grenade_pipebomb.cpp --- src/game/shared/tf/tf_weapon_grenade_pipebomb.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/game/shared/tf/tf_weapon_grenade_pipebomb.cpp b/src/game/shared/tf/tf_weapon_grenade_pipebomb.cpp index 0d2043fee20..9421f01c3b2 100644 --- a/src/game/shared/tf/tf_weapon_grenade_pipebomb.cpp +++ b/src/game/shared/tf/tf_weapon_grenade_pipebomb.cpp @@ -987,7 +987,7 @@ int CTFGrenadePipebombProjectile::OnTakeDamage( const CTakeDamageInfo &info ) vecForce *= tf_grenade_forcefrom_buckshot.GetFloat(); bBreakPipes = true; } - else if ( info.GetDamageType() & DMG_BLAST ) + else if ( info.GetDamageType() & DMG_BLAST ) { // if we're also supposed to ignite then just destroy the sticky bomb (Cow Mangler alt-fire) if ( info.GetDamageType() & DMG_IGNITE ) From bca9c77d1b00796f2a20adeee4450a496f9684cb Mon Sep 17 00:00:00 2001 From: Bitl Date: Wed, 10 Dec 2025 19:28:10 -0700 Subject: [PATCH 08/13] Implement suggestions from https://github.com/ValveSoftware/Source-1-Games/issues/7738 --- src/game/shared/tf/tf_weapon_bottle.cpp | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/game/shared/tf/tf_weapon_bottle.cpp b/src/game/shared/tf/tf_weapon_bottle.cpp index 69eb64663d6..e6587c8f615 100644 --- a/src/game/shared/tf/tf_weapon_bottle.cpp +++ b/src/game/shared/tf/tf_weapon_bottle.cpp @@ -259,12 +259,26 @@ void CTFStickBomb::Smack( void ) dmgType |= DMG_CRITICAL; float flDamage = 75.0f; - CALL_ATTRIB_HOOK_FLOAT( flDamage, mult_dmg ); + + float flAdjDamage = flDamage; + CALL_ATTRIB_HOOK_FLOAT( flAdjDamage, mult_dmg ); + + if ( flAdjDamage != flDamage ) + { + flDamage = flAdjDamage; + } CTakeDamageInfo info( pTFPlayer, pTFPlayer, this, explosion, explosion, flDamage, dmgType, TF_DMG_CUSTOM_STICKBOMB_EXPLOSION, &explosion ); - float flRadius = 100.f; - CALL_ATTRIB_HOOK_FLOAT( flRadius, mult_explosion_radius ); + float flRadius = 100.0f; + + float flAdjRadius = flRadius; + CALL_ATTRIB_HOOK_FLOAT( flAdjRadius, mult_explosion_radius ); + + if ( flAdjRadius != flRadius ) + { + flRadius = flAdjRadius; + } CTFRadiusDamageInfo radiusinfo( &info, explosion, flRadius ); TFGameRules()->RadiusDamage( radiusinfo ); From b0b032c32ea6880006a53e2c167be30e1cf6a58f Mon Sep 17 00:00:00 2001 From: Bitl Date: Wed, 10 Dec 2025 19:50:30 -0700 Subject: [PATCH 09/13] Update tf_weapon_bottle.cpp --- src/game/shared/tf/tf_weapon_bottle.cpp | 24 ++---------------------- 1 file changed, 2 insertions(+), 22 deletions(-) diff --git a/src/game/shared/tf/tf_weapon_bottle.cpp b/src/game/shared/tf/tf_weapon_bottle.cpp index e6587c8f615..a84b87add04 100644 --- a/src/game/shared/tf/tf_weapon_bottle.cpp +++ b/src/game/shared/tf/tf_weapon_bottle.cpp @@ -258,29 +258,9 @@ void CTFStickBomb::Smack( void ) if ( IsCurrentAttackACrit() ) dmgType |= DMG_CRITICAL; - float flDamage = 75.0f; + CTakeDamageInfo info( pTFPlayer, pTFPlayer, this, explosion, explosion, 75.0f, dmgType, TF_DMG_CUSTOM_STICKBOMB_EXPLOSION, &explosion ); - float flAdjDamage = flDamage; - CALL_ATTRIB_HOOK_FLOAT( flAdjDamage, mult_dmg ); - - if ( flAdjDamage != flDamage ) - { - flDamage = flAdjDamage; - } - - CTakeDamageInfo info( pTFPlayer, pTFPlayer, this, explosion, explosion, flDamage, dmgType, TF_DMG_CUSTOM_STICKBOMB_EXPLOSION, &explosion ); - - float flRadius = 100.0f; - - float flAdjRadius = flRadius; - CALL_ATTRIB_HOOK_FLOAT( flAdjRadius, mult_explosion_radius ); - - if ( flAdjRadius != flRadius ) - { - flRadius = flAdjRadius; - } - - CTFRadiusDamageInfo radiusinfo( &info, explosion, flRadius ); + CTFRadiusDamageInfo radiusinfo( &info, explosion, 100.0f ); TFGameRules()->RadiusDamage( radiusinfo ); } #endif From 3ceeabe0c87b6c419eb61c2b8a0c991d24e0d020 Mon Sep 17 00:00:00 2001 From: Bitl Date: Wed, 10 Dec 2025 20:44:11 -0700 Subject: [PATCH 10/13] Revert "Update tf_weapon_bottle.cpp" This reverts commit b0b032c32ea6880006a53e2c167be30e1cf6a58f. --- src/game/shared/tf/tf_weapon_bottle.cpp | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/src/game/shared/tf/tf_weapon_bottle.cpp b/src/game/shared/tf/tf_weapon_bottle.cpp index a84b87add04..e6587c8f615 100644 --- a/src/game/shared/tf/tf_weapon_bottle.cpp +++ b/src/game/shared/tf/tf_weapon_bottle.cpp @@ -258,9 +258,29 @@ void CTFStickBomb::Smack( void ) if ( IsCurrentAttackACrit() ) dmgType |= DMG_CRITICAL; - CTakeDamageInfo info( pTFPlayer, pTFPlayer, this, explosion, explosion, 75.0f, dmgType, TF_DMG_CUSTOM_STICKBOMB_EXPLOSION, &explosion ); + float flDamage = 75.0f; - CTFRadiusDamageInfo radiusinfo( &info, explosion, 100.0f ); + float flAdjDamage = flDamage; + CALL_ATTRIB_HOOK_FLOAT( flAdjDamage, mult_dmg ); + + if ( flAdjDamage != flDamage ) + { + flDamage = flAdjDamage; + } + + CTakeDamageInfo info( pTFPlayer, pTFPlayer, this, explosion, explosion, flDamage, dmgType, TF_DMG_CUSTOM_STICKBOMB_EXPLOSION, &explosion ); + + float flRadius = 100.0f; + + float flAdjRadius = flRadius; + CALL_ATTRIB_HOOK_FLOAT( flAdjRadius, mult_explosion_radius ); + + if ( flAdjRadius != flRadius ) + { + flRadius = flAdjRadius; + } + + CTFRadiusDamageInfo radiusinfo( &info, explosion, flRadius ); TFGameRules()->RadiusDamage( radiusinfo ); } #endif From 141a823b17a7aeac9b8511c6ef1785e69e522345 Mon Sep 17 00:00:00 2001 From: Bitl Date: Wed, 10 Dec 2025 20:44:14 -0700 Subject: [PATCH 11/13] Revert "Implement suggestions from https://github.com/ValveSoftware/Source-1-Games/issues/7738" This reverts commit bca9c77d1b00796f2a20adeee4450a496f9684cb. --- src/game/shared/tf/tf_weapon_bottle.cpp | 20 +++----------------- 1 file changed, 3 insertions(+), 17 deletions(-) diff --git a/src/game/shared/tf/tf_weapon_bottle.cpp b/src/game/shared/tf/tf_weapon_bottle.cpp index e6587c8f615..69eb64663d6 100644 --- a/src/game/shared/tf/tf_weapon_bottle.cpp +++ b/src/game/shared/tf/tf_weapon_bottle.cpp @@ -259,26 +259,12 @@ void CTFStickBomb::Smack( void ) dmgType |= DMG_CRITICAL; float flDamage = 75.0f; - - float flAdjDamage = flDamage; - CALL_ATTRIB_HOOK_FLOAT( flAdjDamage, mult_dmg ); - - if ( flAdjDamage != flDamage ) - { - flDamage = flAdjDamage; - } + CALL_ATTRIB_HOOK_FLOAT( flDamage, mult_dmg ); CTakeDamageInfo info( pTFPlayer, pTFPlayer, this, explosion, explosion, flDamage, dmgType, TF_DMG_CUSTOM_STICKBOMB_EXPLOSION, &explosion ); - float flRadius = 100.0f; - - float flAdjRadius = flRadius; - CALL_ATTRIB_HOOK_FLOAT( flAdjRadius, mult_explosion_radius ); - - if ( flAdjRadius != flRadius ) - { - flRadius = flAdjRadius; - } + float flRadius = 100.f; + CALL_ATTRIB_HOOK_FLOAT( flRadius, mult_explosion_radius ); CTFRadiusDamageInfo radiusinfo( &info, explosion, flRadius ); TFGameRules()->RadiusDamage( radiusinfo ); From 655e2db3f15eea5f2c93f9643b065169dec4608f Mon Sep 17 00:00:00 2001 From: Bitl Date: Thu, 11 Dec 2025 01:24:39 -0700 Subject: [PATCH 12/13] Reapply "Implement suggestions from https://github.com/ValveSoftware/Source-1-Games/issues/7738" This reverts commit 141a823b17a7aeac9b8511c6ef1785e69e522345. --- src/game/shared/tf/tf_weapon_bottle.cpp | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/game/shared/tf/tf_weapon_bottle.cpp b/src/game/shared/tf/tf_weapon_bottle.cpp index 69eb64663d6..e6587c8f615 100644 --- a/src/game/shared/tf/tf_weapon_bottle.cpp +++ b/src/game/shared/tf/tf_weapon_bottle.cpp @@ -259,12 +259,26 @@ void CTFStickBomb::Smack( void ) dmgType |= DMG_CRITICAL; float flDamage = 75.0f; - CALL_ATTRIB_HOOK_FLOAT( flDamage, mult_dmg ); + + float flAdjDamage = flDamage; + CALL_ATTRIB_HOOK_FLOAT( flAdjDamage, mult_dmg ); + + if ( flAdjDamage != flDamage ) + { + flDamage = flAdjDamage; + } CTakeDamageInfo info( pTFPlayer, pTFPlayer, this, explosion, explosion, flDamage, dmgType, TF_DMG_CUSTOM_STICKBOMB_EXPLOSION, &explosion ); - float flRadius = 100.f; - CALL_ATTRIB_HOOK_FLOAT( flRadius, mult_explosion_radius ); + float flRadius = 100.0f; + + float flAdjRadius = flRadius; + CALL_ATTRIB_HOOK_FLOAT( flAdjRadius, mult_explosion_radius ); + + if ( flAdjRadius != flRadius ) + { + flRadius = flAdjRadius; + } CTFRadiusDamageInfo radiusinfo( &info, explosion, flRadius ); TFGameRules()->RadiusDamage( radiusinfo ); From 6f8f9f901ec82892177e9761314439ff6491eef9 Mon Sep 17 00:00:00 2001 From: Bitl Date: Thu, 11 Dec 2025 01:24:50 -0700 Subject: [PATCH 13/13] Reapply "Update tf_weapon_bottle.cpp" This reverts commit 3ceeabe0c87b6c419eb61c2b8a0c991d24e0d020. --- src/game/shared/tf/tf_weapon_bottle.cpp | 24 ++---------------------- 1 file changed, 2 insertions(+), 22 deletions(-) diff --git a/src/game/shared/tf/tf_weapon_bottle.cpp b/src/game/shared/tf/tf_weapon_bottle.cpp index e6587c8f615..a84b87add04 100644 --- a/src/game/shared/tf/tf_weapon_bottle.cpp +++ b/src/game/shared/tf/tf_weapon_bottle.cpp @@ -258,29 +258,9 @@ void CTFStickBomb::Smack( void ) if ( IsCurrentAttackACrit() ) dmgType |= DMG_CRITICAL; - float flDamage = 75.0f; + CTakeDamageInfo info( pTFPlayer, pTFPlayer, this, explosion, explosion, 75.0f, dmgType, TF_DMG_CUSTOM_STICKBOMB_EXPLOSION, &explosion ); - float flAdjDamage = flDamage; - CALL_ATTRIB_HOOK_FLOAT( flAdjDamage, mult_dmg ); - - if ( flAdjDamage != flDamage ) - { - flDamage = flAdjDamage; - } - - CTakeDamageInfo info( pTFPlayer, pTFPlayer, this, explosion, explosion, flDamage, dmgType, TF_DMG_CUSTOM_STICKBOMB_EXPLOSION, &explosion ); - - float flRadius = 100.0f; - - float flAdjRadius = flRadius; - CALL_ATTRIB_HOOK_FLOAT( flAdjRadius, mult_explosion_radius ); - - if ( flAdjRadius != flRadius ) - { - flRadius = flAdjRadius; - } - - CTFRadiusDamageInfo radiusinfo( &info, explosion, flRadius ); + CTFRadiusDamageInfo radiusinfo( &info, explosion, 100.0f ); TFGameRules()->RadiusDamage( radiusinfo ); } #endif