Team Fortress 2 Source Code as on 22/4/2020
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

68 lines
1.7 KiB

  1. //========= Copyright Valve Corporation, All rights reserved. ============//
  2. //
  3. // Purpose:
  4. //
  5. // $NoKeywords: $
  6. //=============================================================================//
  7. #ifndef EFFECTS_H
  8. #define EFFECTS_H
  9. #ifdef _WIN32
  10. #pragma once
  11. #endif
  12. class CBaseEntity;
  13. class Vector;
  14. //-----------------------------------------------------------------------------
  15. // The rotor wash shooter. It emits gibs when pushed by a rotor wash
  16. //-----------------------------------------------------------------------------
  17. abstract_class IRotorWashShooter
  18. {
  19. public:
  20. virtual CBaseEntity *DoWashPush( float flWashStartTime, const Vector &vecForce ) = 0;
  21. };
  22. //-----------------------------------------------------------------------------
  23. // Gets at the interface if the entity supports it
  24. //-----------------------------------------------------------------------------
  25. IRotorWashShooter *GetRotorWashShooter( CBaseEntity *pEntity );
  26. class CEnvQuadraticBeam : public CPointEntity
  27. {
  28. DECLARE_CLASS( CEnvQuadraticBeam, CPointEntity );
  29. public:
  30. void Spawn();
  31. void SetSpline( const Vector &control, const Vector &target )
  32. {
  33. m_targetPosition = target;
  34. m_controlPosition = control;
  35. }
  36. void SetScrollRate( float rate )
  37. {
  38. m_scrollRate = rate;
  39. }
  40. void SetWidth( float width )
  41. {
  42. m_flWidth = width;
  43. }
  44. private:
  45. CNetworkVector( m_targetPosition );
  46. CNetworkVector( m_controlPosition );
  47. CNetworkVar( float, m_scrollRate );
  48. CNetworkVar( float, m_flWidth );
  49. DECLARE_DATADESC();
  50. DECLARE_SERVERCLASS();
  51. };
  52. CEnvQuadraticBeam *CreateQuadraticBeam( const char *pSpriteName, const Vector &start, const Vector &control, const Vector &end, float width, CBaseEntity *pOwner );
  53. #endif // EFFECTS_H