diff options
Diffstat (limited to 'game/server/hl2/grenade_beam.h')
| -rw-r--r-- | game/server/hl2/grenade_beam.h | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/game/server/hl2/grenade_beam.h b/game/server/hl2/grenade_beam.h new file mode 100644 index 0000000..76203f6 --- /dev/null +++ b/game/server/hl2/grenade_beam.h @@ -0,0 +1,74 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: Projectile shot by mortar synth +// +// $Workfile: $ +// $Date: $ +// +//----------------------------------------------------------------------------- +// $Log: $ +// +// $NoKeywords: $ +//=============================================================================// + +#ifndef GRENADEBEAM_H +#define GRENADEBEAM_H + +#include "basegrenade_shared.h" + +#define GRENADEBEAM_MAXBEAMS 2 +#define GRENADEBEAM_MAXHITS GRENADEBEAM_MAXBEAMS-1 + +class CGrenadeBeam; +class CBeam; + +// End of the grenade beam +class CGrenadeBeamChaser : public CBaseAnimating +{ +public: + DECLARE_CLASS( CGrenadeBeamChaser, CBaseAnimating ); + DECLARE_DATADESC(); + + static CGrenadeBeamChaser* ChaserCreate( CGrenadeBeam *pTarget ); + + void Spawn( void ); + void ChaserThink(); + + CGrenadeBeam* m_pTarget; +}; + +class CGrenadeBeam : public CBaseGrenade +{ +public: + DECLARE_CLASS( CGrenadeBeam, CBaseGrenade ); + DECLARE_DATADESC(); + + static CGrenadeBeam* Create( CBaseEntity* pOwner, const Vector &vStart); + +public: + void Spawn( void ); + void Precache( void ); + void Format( color32 clrColor, float flWidth); + void GrenadeBeamTouch( CBaseEntity *pOther ); + void KillBeam(); + void CreateBeams(void); + void UpdateBeams(void); + //void DebugBeams(void); + void GetChaserTargetPos(Vector *vPosition); + void GetNextTargetPos(Vector *vPosition); + int UpdateTransmitState(void); + void Shoot(Vector vDirection, float flSpeed, float flLifetime, float flLag, float flDamage ); + + Vector m_vLaunchPos; + float m_flBeamWidth; + float m_flBeamSpeed; + float m_flBeamLag; + float m_flLaunchTime; + float m_flLastTouchTime; + EHANDLE m_hBeamChaser; + int m_nNumHits; + Vector m_pHitLocation[GRENADEBEAM_MAXHITS]; + CBeam* m_pBeam[GRENADEBEAM_MAXBEAMS]; +}; + +#endif //GRENADEBEAM_H |