mirror of
https://github.com/nillerusr/source-engine.git
synced 2025-03-17 05:46:33 +00:00
72 lines
2.1 KiB
C
72 lines
2.1 KiB
C
![]() |
#ifndef _INCLUDED_C_ASW_SENTRY_TOP_FLAMER_H
|
||
|
#define _INCLUDED_C_ASW_SENTRY_TOP_FLAMER_H
|
||
|
|
||
|
|
||
|
#include "asw_shareddefs.h"
|
||
|
|
||
|
// class C_ASW_Sentry_Base;
|
||
|
class CASWGenericEmitter;
|
||
|
|
||
|
extern ConVar asw_sentry_emitter_test;
|
||
|
|
||
|
class C_ASW_Sentry_Top_Flamer : public C_ASW_Sentry_Top
|
||
|
{
|
||
|
public:
|
||
|
DECLARE_CLASS( C_ASW_Sentry_Top_Flamer, C_ASW_Sentry_Top );
|
||
|
DECLARE_CLIENTCLASS();
|
||
|
DECLARE_PREDICTABLE();
|
||
|
|
||
|
|
||
|
C_ASW_Sentry_Top_Flamer();
|
||
|
// virtual ~C_ASW_Sentry_Top_Flamer();
|
||
|
|
||
|
|
||
|
virtual void ClientThink( void );
|
||
|
virtual void OnDataChanged( DataUpdateType_t updateType );
|
||
|
|
||
|
inline bool IsPlayingFiringLoopSound( );
|
||
|
virtual bool HasPilotLight() { return true; }
|
||
|
|
||
|
virtual void UpdateOnRemove();
|
||
|
|
||
|
protected:
|
||
|
/////////////// init functions
|
||
|
/// Create any old-school emitters associated with weapon fx
|
||
|
/// Override in child classes ( do not call to base )
|
||
|
//virtual void CreateObsoleteEmitters( void );
|
||
|
|
||
|
|
||
|
/////////////// internal functions
|
||
|
//inline bool ShouldEmittersBeOn( void ) { return m_bFiring || asw_sentry_emitter_test.GetBool(); }
|
||
|
void OnStartFiring(); // can be made virtual if necessary
|
||
|
void OnStopFiring(); // can be made virtual if necessary
|
||
|
|
||
|
/// A vector of old-school particle effects associated with this
|
||
|
/// turret (the old flamer had two, the icer has one, who knows
|
||
|
/// how many others might have)
|
||
|
//CUtlVector< CSmartPtr<CASWGenericEmitter> > m_OldStyleEmitters;
|
||
|
CUtlReference<CNewParticleEffect> m_hFiringEffect;
|
||
|
CNetworkVar(bool, m_bFiring);
|
||
|
CNetworkVar(float, m_flPitchHack); // just for a second to deal with stairs until I get proper pitch gimballing on base class
|
||
|
CSoundPatch* m_pFlamerLoopSound;
|
||
|
|
||
|
const char * m_szParticleEffectFireName;
|
||
|
|
||
|
// sound scripts for begin, during, end (initialize in your constructor)
|
||
|
// allowed to be NULL
|
||
|
const char * m_szBeginFireSoundScriptName;
|
||
|
const char * m_szDuringFireSoundScriptName;
|
||
|
const char * m_szEndFireSoundScriptName;
|
||
|
|
||
|
// shadows of network vars so we can detect their change in OnDataChanged
|
||
|
bool m_bFiringShadow : 1;
|
||
|
|
||
|
};
|
||
|
|
||
|
|
||
|
inline bool C_ASW_Sentry_Top_Flamer::IsPlayingFiringLoopSound( )
|
||
|
{
|
||
|
return m_pFlamerLoopSound != NULL;
|
||
|
}
|
||
|
|
||
|
#endif /* _INCLUDED_C_ASW_SENTRY_TOP_H */
|