//========= Copyright Valve Corporation, All rights reserved. ============// // // Purpose: // // $NoKeywords: $ //=============================================================================// #ifndef EFFECTS_H #define EFFECTS_H #ifdef _WIN32 #pragma once #endif class CBaseEntity; class Vector; //----------------------------------------------------------------------------- // The rotor wash shooter. It emits gibs when pushed by a rotor wash //----------------------------------------------------------------------------- abstract_class IRotorWashShooter { public: virtual CBaseEntity *DoWashPush(float flWashStartTime, const Vector &vecForce) = 0; }; //----------------------------------------------------------------------------- // Gets at the interface if the entity supports it //----------------------------------------------------------------------------- IRotorWashShooter *GetRotorWashShooter(CBaseEntity *pEntity); class CEnvQuadraticBeam : public CPointEntity { DECLARE_CLASS(CEnvQuadraticBeam, CPointEntity); public: void Spawn(); void SetSpline(const Vector &control, const Vector &target) { m_targetPosition = target; m_controlPosition = control; } void SetScrollRate(float rate) { m_scrollRate = rate; } void SetWidth(float width) { m_flWidth = width; } private: CNetworkVector(m_targetPosition); CNetworkVector(m_controlPosition); CNetworkVar(float, m_scrollRate); CNetworkVar(float, m_flWidth); DECLARE_DATADESC(); DECLARE_SERVERCLASS(); }; CEnvQuadraticBeam *CreateQuadraticBeam(const char *pSpriteName, const Vector &start, const Vector &control, const Vector &end, float width, CBaseEntity *pOwner); #endif // EFFECTS_H