This repository has been archived on 2024-06-13. You can view files and clone it, but cannot push or open issues or pull requests.
nekohook/modules/source2013/sdk/game/server/soundscape_system.h
2020-08-04 13:13:01 -04:00

58 lines
1.6 KiB
C++

//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
//=============================================================================//
#ifndef SOUNDSCAPE_SYSTEM_H
#define SOUNDSCAPE_SYSTEM_H
#ifdef _WIN32
#pragma once
#endif
#include "stringregistry.h"
#include "tier1/utlstring.h"
class CEnvSoundscape;
struct clusterSoundscapeList_t {
unsigned short soundscapeCount;
unsigned short firstSoundscape;
};
class CSoundscapeSystem : public CAutoGameSystemPerFrame {
public:
CSoundscapeSystem(char const *name) : CAutoGameSystemPerFrame(name) {}
// game system
virtual bool Init(void);
virtual void Shutdown(void);
virtual void FrameUpdatePostEntityThink(void);
virtual void LevelInitPreEntity(void);
virtual void LevelInitPostEntity();
virtual void AddSoundscapeFile(const char *filename);
int GetSoundscapeIndex(const char *pName);
bool IsValidIndex(int index);
void FlushSoundscapes(void);
void AddSoundscapeEntity(CEnvSoundscape *pSoundscape);
void RemoveSoundscapeEntity(CEnvSoundscape *pSoundscape);
void PrintDebugInfo(void);
void AddSoundscapeSounds(KeyValues *pSoundscape, int soundscapeIndex);
void PrecacheSounds(int soundscapeIndex);
private:
CStringRegistry m_soundscapes;
int m_soundscapeCount;
CUtlVector<CEnvSoundscape *> m_soundscapeEntities;
CUtlVector<clusterSoundscapeList_t> m_soundscapesInCluster;
CUtlVector<unsigned short> m_soundscapeIndexList;
int m_activeIndex;
CUtlVector<CUtlVector<CUtlString> > m_soundscapeSounds;
};
extern CSoundscapeSystem g_SoundscapeSystem;
#endif // SOUNDSCAPE_SYSTEM_H