diff options
| author | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
|---|---|---|
| committer | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
| commit | 3bf9df6b2785fa6d951086978a3e66f49427166a (patch) | |
| tree | 2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /game/server/soundscape.h | |
| download | archived-source-engine-2018-hl2-src-master.tar.xz archived-source-engine-2018-hl2-src-master.zip | |
Diffstat (limited to 'game/server/soundscape.h')
| -rw-r--r-- | game/server/soundscape.h | 116 |
1 files changed, 116 insertions, 0 deletions
diff --git a/game/server/soundscape.h b/game/server/soundscape.h new file mode 100644 index 0000000..3e5e826 --- /dev/null +++ b/game/server/soundscape.h @@ -0,0 +1,116 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +//=============================================================================// + +#ifndef SOUNDSCAPE_H +#define SOUNDSCAPE_H +#ifdef _WIN32 +#pragma once +#endif + +class CEnvSoundscape; + +struct ss_update_t +{ + CBasePlayer *pPlayer; + CEnvSoundscape *pCurrentSoundscape; + Vector playerPosition; + float currentDistance; + int traceCount; + bool bInRange; +}; + +class CEnvSoundscape : public CPointEntity +{ +public: + DECLARE_CLASS( CEnvSoundscape, CPointEntity ); + DECLARE_DATADESC(); + + CEnvSoundscape(); + ~CEnvSoundscape(); + + bool KeyValue( const char *szKeyName, const char *szValue ); + void Spawn( void ); + void Precache( void ); + void UpdateForPlayer( ss_update_t &update ); + void WriteAudioParamsTo( audioparams_t &audio ); + virtual int UpdateTransmitState(); + bool InRangeOfPlayer( CBasePlayer *pPlayer ); + void DrawDebugGeometryOverlays( void ); + + void InputEnable( inputdata_t &inputdata ); + void InputDisable( inputdata_t &inputdata ); + void InputToggleEnabled( inputdata_t &inputdata ); + + string_t GetSoundscapeName() const {return m_soundscapeName;} + + +private: + + bool IsEnabled( void ) const; + void Disable( void ); + void Enable( void ); + + +public: + COutputEvent m_OnPlay; + float m_flRadius; + string_t m_soundscapeName; + int m_soundscapeIndex; + int m_soundscapeEntityId; + string_t m_positionNames[NUM_AUDIO_LOCAL_SOUNDS]; + + // If this is set, then this soundscape ignores all its parameters and uses + // those of this soundscape. + CHandle<CEnvSoundscape> m_hProxySoundscape; + + +private: + + bool m_bDisabled; +}; + + +class CEnvSoundscapeProxy : public CEnvSoundscape +{ +public: + DECLARE_CLASS( CEnvSoundscapeProxy, CEnvSoundscape ); + DECLARE_DATADESC(); + + CEnvSoundscapeProxy(); + virtual void Activate(); + + // Here just to stop it falling back to CEnvSoundscape's, and + // printing bogus errors about missing soundscapes. + virtual void Precache() { return; } + +private: + string_t m_MainSoundscapeName; +}; + + +class CEnvSoundscapeTriggerable : public CEnvSoundscape +{ +friend class CTriggerSoundscape; + +public: + DECLARE_CLASS( CEnvSoundscapeTriggerable, CEnvSoundscape ); + DECLARE_DATADESC(); + + CEnvSoundscapeTriggerable(); + + // Overrides the base class's think and prevents it from running at all. + virtual void Think(); + + +private: + + // Passed through from CTriggerSoundscape. + void DelegateStartTouch( CBaseEntity *pEnt ); + void DelegateEndTouch( CBaseEntity *pEnt ); +}; + + +#endif // SOUNDSCAPE_H |