NSMBW-Decomp
A decompilation of New Super Mario Bros. Wii
Loading...
Searching...
No Matches
snd_Sound3DActor.h
1
2#ifndef NW4R_SND_SOUND_3D_ACTOR_H
3#define NW4R_SND_SOUND_3D_ACTOR_H
4
5#include "nw4r/snd/snd_BasicSound.h"
6#include "nw4r/snd/snd_SoundActor.h"
7#include "nw4r/snd/snd_Sound3DManager.h"
8#include "nw4r/types_nw4r.h"
9
10#include "nw4r/math.h"
11
12namespace nw4r {
13namespace snd {
14
15class Sound3DActor : public SoundActor, public detail::BasicSound::AmbientInfo::AmbientArgUpdateCallback {
16public:
17 Sound3DActor(SoundArchivePlayer &rPlayer, Sound3DManager &rManager);
18 virtual ~Sound3DActor();
19
20 virtual StartResult SetupSound(SoundHandle *pHandle, ulong soundId, const StartInfo *pStartInfo, void *) override;
21
22 // AmbientArgUpdateCallback
23 virtual void at_0x0c(void *arg, detail::BasicSound* sound) override;
24
25 const nw4r::math::VEC3 &GetPosition() const {
26 return mPosition;
27 }
28 void SetPosition(const math::VEC3 &rPosition);
29
30 void SetUserParam(ulong userParam) {
31 mUserParam = userParam;
32 }
33
34private:
35 static void ClearUpdateCallback(SoundHandle &rHandle);
36
37private:
38 Sound3DManager &m3DManager; // at 0x58
39 SoundArchivePlayer *mSoundArchivePlayer; // at 0x5C
40 ulong mUserParam; // at 0x60
41 math::VEC3 mPosition; // at 0x64
42 math::VEC3 mVelocity; // at 0x70
43 bool mSkipVelocityUpdate; // at 0x7C
44};
45
46} // namespace snd
47} // namespace nw4r
48
49#endif