diff --git a/src/game/shared/tf/tf_item_powerup_bottle.cpp b/src/game/shared/tf/tf_item_powerup_bottle.cpp index 0453cfab7..cb848e1cb 100644 --- a/src/game/shared/tf/tf_item_powerup_bottle.cpp +++ b/src/game/shared/tf/tf_item_powerup_bottle.cpp @@ -279,7 +279,7 @@ void CTFPowerupBottle::ReapplyProvision( void ) // Refill weapon clips for ( int i = 0; i < MAX_WEAPONS; i++ ) { - CBaseCombatWeapon *pWeapon = pTFPlayer->GetWeapon(i); + CTFWeaponBase *pWeapon = dynamic_cast(pTFPlayer->GetWeapon(i)); if ( !pWeapon ) continue; @@ -297,7 +297,7 @@ void CTFPowerupBottle::ReapplyProvision( void ) if ( iShareBottle && pHealTarget ) { - CBaseCombatWeapon *pPatientWeapon = pHealTarget->GetWeapon(i); + CTFWeaponBase *pPatientWeapon = dynamic_cast(pHealTarget->GetWeapon(i)); if ( !pPatientWeapon ) continue; diff --git a/src/game/shared/tf/tf_weaponbase.cpp b/src/game/shared/tf/tf_weaponbase.cpp index 4a9ca46ae..4b7dd3f4c 100644 --- a/src/game/shared/tf/tf_weaponbase.cpp +++ b/src/game/shared/tf/tf_weaponbase.cpp @@ -424,6 +424,16 @@ void CTFWeaponBase::Activate( void ) GiveDefaultAmmo(); } +void CTFWeaponBase::GiveDefaultAmmo(void) +{ + BaseClass::GiveDefaultAmmo(); + + if (IsEnergyWeapon()) + { + m_flEnergy = Energy_GetMaxEnergy(); + } +} + // ----------------------------------------------------------------------------- // Purpose: // ----------------------------------------------------------------------------- diff --git a/src/game/shared/tf/tf_weaponbase.h b/src/game/shared/tf/tf_weaponbase.h index d18638e59..1060367ae 100644 --- a/src/game/shared/tf/tf_weaponbase.h +++ b/src/game/shared/tf/tf_weaponbase.h @@ -282,6 +282,7 @@ class CTFWeaponBase : public CBaseCombatWeapon, public IHasOwner, public IHasGen virtual void Spawn(); virtual void Activate( void ); + virtual void GiveDefaultAmmo( void ); virtual void Precache(); virtual bool IsPredicted() const { return true; } virtual void FallInit( void );