hl2_src-leak-2017/src/game/shared/tf/tf_pumpkin_bomb.h

65 lines
1.4 KiB
C++

//========= Copyright Valve Corporation, All rights reserved. ============//
//
// TF Pumpkin Bomb
//
//=============================================================================
#ifndef TF_PUMPKIN_BOMB_H
#define TF_PUMPKIN_BOMB_H
#ifdef _WIN32
#pragma once
#endif
#ifdef CLIENT_DLL
#define CTFPumpkinBomb C_TFPumpkinBomb
#endif
class CTFPumpkinBombShim : public CBaseAnimating
{
virtual void PumpkinTouch( CBaseEntity *pOther ) = 0;
public:
void Touch( CBaseEntity *pOther ) { return PumpkinTouch( pOther ) ; }
};
DECLARE_AUTO_LIST( ITFPumpkinBomb );
class CTFPumpkinBomb : public CTFPumpkinBombShim, public ITFPumpkinBomb
{
DECLARE_CLASS( CTFPumpkinBomb, CBaseAnimating );
DECLARE_NETWORKCLASS();
public:
CTFPumpkinBomb();
~CTFPumpkinBomb() {}
virtual void Precache( void );
virtual void Spawn( void );
void Break( void );
virtual void PumpkinTouch( CBaseEntity *pOther ) OVERRIDE;
void SetInitParams( float scale, float damage, float radius, int iTeam, float flLifeTime );
void RemovePumpkin();
#ifdef GAME_DLL
virtual void Event_Killed( const CTakeDamageInfo &info );
virtual int OnTakeDamage( const CTakeDamageInfo &info );
void SetSpell( bool bSpell ) { m_bIsSpell = bSpell; }
#endif
private:
#ifdef GAME_DLL
bool m_bIsSpell;
#endif
bool m_bDead;
bool m_bPrecached;
int m_iTeam;
float m_flDamage;
float m_flScale;
float m_flRadius;
float m_flLifeTime;
};
#endif //TF_PUMPKIN_BOMB_H