69 lines
1.7 KiB
C++
69 lines
1.7 KiB
C++
//========= Copyright © 1996-2005, 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
|