mirror of https://github.com/PrimeDecomp/prime.git
37 lines
1.3 KiB
C++
37 lines
1.3 KiB
C++
#ifndef _CSFXMANAGER
|
|
#define _CSFXMANAGER
|
|
|
|
#include "types.h"
|
|
|
|
#include "Kyoto/Audio/CSfxHandle.hpp"
|
|
|
|
class CVector3f;
|
|
class CSfxManager {
|
|
public:
|
|
static void Update(f32 dt);
|
|
static void RemoveEmitter(CSfxHandle handle);
|
|
static void UpdateEmitter(CSfxHandle handle, const CVector3f& pos, const CVector3f& dir,
|
|
uchar maxVol);
|
|
|
|
static const s16 kMaxPriority; // 0xFF
|
|
static const s16 kMedPriority; // 0x7F
|
|
static const u16 kInternalInvalidSfxId; // 0xFFFF
|
|
static const int kAllAreas; // 0xFFFFFFFF
|
|
static CSfxHandle AddEmitter(u16 id, const CVector3f& pos, const CVector3f& dir,
|
|
bool useAcoustics, bool looped, s16 prio = kMedPriority,
|
|
int areaId = kAllAreas);
|
|
static CSfxHandle AddEmitter(u16 id, const CVector3f& pos, const CVector3f& dir, uchar vol,
|
|
bool useAcoustics, bool looped, s16 prio = kMedPriority,
|
|
int areaId = kAllAreas);
|
|
static void Shutdown();
|
|
static u16 TranslateSFXID(u16);
|
|
|
|
static void PitchBend(CSfxHandle handle, int pitch);
|
|
|
|
static CSfxHandle SfxStart(u16 id, u8 vol, u8 pan, bool useAcoustics, s16 prio, bool looped,
|
|
s32 areaId);
|
|
static bool IsPlaying(const CSfxHandle& handle);
|
|
};
|
|
|
|
#endif // _CSFXMANAGER
|