58 lines
1.6 KiB
C++
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
|