2
0
mirror of https://github.com/AxioDL/metaforce.git synced 2025-12-09 02:27:43 +00:00

Additional HUD work

This commit is contained in:
Jack Andersen
2017-04-08 20:14:22 -10:00
parent e070844e8a
commit 9cd421888d
17 changed files with 313 additions and 35 deletions

View File

@@ -71,6 +71,8 @@ public:
bool x14_27_inArea:1;
bool x14_28_available:1;
bool x14_29_useAcoustics:1;
protected:
bool m_isEmitter:1;
public:
virtual ~CBaseSfxWrapper() = default;
virtual void SetActive(bool v) { x14_24_isActive = v; }
@@ -95,6 +97,7 @@ public:
virtual void UpdateEmitterSilent()=0;
virtual void UpdateEmitter()=0;
virtual void SetReverb(float rev)=0;
bool IsEmitter() const { return m_isEmitter; }
void Release() { x14_28_available = true; x4_timeRemaining = 15.f; }
bool Available() const { return x14_28_available; }
@@ -130,7 +133,10 @@ public:
CSfxEmitterWrapper(bool looped, s16 prio, const CAudioSys::C3DEmitterParmData& data,
/*const CSfxHandle& handle,*/ bool useAcoustics, TAreaId area)
: CBaseSfxWrapper(looped, prio, /*handle,*/ useAcoustics, area), x24_parmData(data) {}
: CBaseSfxWrapper(looped, prio, /*handle,*/ useAcoustics, area), x24_parmData(data)
{
m_isEmitter = true;
}
};
class CSfxWrapper : public CBaseSfxWrapper
@@ -151,13 +157,15 @@ public:
void UpdateEmitterSilent();
void UpdateEmitter();
void SetReverb(float rev);
void SetVolume(s16 vol) { x20_vol = vol; }
void SetVolume(float vol) { x20_vol = vol; }
CSfxWrapper(bool looped, s16 prio, u16 sfxId, float vol, float pan,
/*const CSfxHandle& handle,*/ bool useAcoustics, TAreaId area)
: CBaseSfxWrapper(looped, prio, /*handle,*/ useAcoustics, area),
x18_sfxId(sfxId), x20_vol(vol), x22_pan(pan) {}
x18_sfxId(sfxId), x20_vol(vol), x22_pan(pan)
{
m_isEmitter = false;
}
};
static CSfxChannel m_channels[4];
@@ -197,6 +205,7 @@ public:
static float GetReverbAmount();
static void RemoveEmitter(const CSfxHandle&) {}
static void PitchBend(const CSfxHandle& handle, float pitch);
static void SfxVolume(const CSfxHandle& handle, float vol);
static u16 TranslateSFXID(u16);
static void SfxStop(const CSfxHandle& handle);
static CSfxHandle SfxStart(u16 id, float vol, float pan, bool useAcoustics, s16 prio, bool looped, s32 areaId);