60 lines
1.8 KiB
C++
60 lines
1.8 KiB
C++
//========= 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
|