New Super Mario Bros. U Headers
Loading...
Searching...
No Matches
SndObjectCommon.h
Go to the documentation of this file.
1#pragma once
2
3#include <sound/Snd2DCalc.h>
4#include <sound/SndObjectBase.h>
5
6#include <heap/seadDisposer.h>
7#include <math/seadVector.h>
8
9#include <nw/snd/snd_SoundHandle.h>
10
11inline nw::snd::OutputLine operator|(const nw::snd::OutputLine& lhs, const nw::snd::OutputLine& rhs)
12{
13 return (nw::snd::OutputLine)((u32)lhs | (u32)rhs);
14}
15
16inline nw::snd::OutputLine& operator|=(nw::snd::OutputLine& lhs, const nw::snd::OutputLine& rhs)
17{
18 lhs = lhs | rhs;
19 return lhs;
20}
21
22class NMSndObject : public NMSndObjectBase // vtbl Address: 0x1017DD7C
23{
24public:
25 static const u32 cPlayableSoundNum = 4;
27
28public:
29 class SoundHandlePrm : public sead::IDisposer // vtbl Address: 0x1017DB14
30 {
31 public:
33 : mVolume(1.0f)
34 {
35 }
36
40
41 private:
44
45 friend class NMSndObject;
46 };
47 static_assert(sizeof(SoundHandlePrm) == 0x18);
48
49public:
50 // Address: 0x029BC52C
51 NMSndObject(ObjType type, nw::snd::OutputLine line_flag);
52
53 // Address: 0x029BC850
54 void calc(const sead::Vector2f& pos);
55
56protected:
57 // Address: 0x029BC8C8
58 nw::snd::SoundHandle* startSound_(const char* label, nw::snd::OutputLine line_flag);
59 // Address: 0x029BCAC4
60 nw::snd::SoundHandle* holdSound_(const char* label, nw::snd::OutputLine line_flag);
61
62 // Address: 0x029BCC3C
63 nw::snd::SoundHandle* startSound_(const char* label, s16 seq_var, nw::snd::OutputLine line_flag);
64 // Address: 0x029BCDE8
65 nw::snd::SoundHandle* holdSound_(const char* label, s16 seq_var, nw::snd::OutputLine line_flag);
66
67 // Address: 0x029BCFA4
68 nw::snd::SoundHandle* startSound_(const char* label, const sead::Vector2f& pos, nw::snd::OutputLine line_flag);
69 // Address: 0x029BD148
70 nw::snd::SoundHandle* holdSound_(const char* label, const sead::Vector2f& pos, nw::snd::OutputLine line_flag);
71
72public:
73 virtual void startSound(const char* label, nw::snd::OutputLine line_flag)
74 {
75 startSound_(label, line_flag);
76 }
77
78 virtual void startSound(const char* label, s16 seq_var, nw::snd::OutputLine line_flag)
79 {
80 startSound_(label, seq_var, line_flag);
81 }
82
83 virtual void startSound(const char* label, const sead::Vector2f& pos, nw::snd::OutputLine line_flag)
84 {
85 startSound_(label, pos, line_flag);
86 }
87
88 virtual void holdSound(const char* label, nw::snd::OutputLine line_flag)
89 {
90 holdSound_(label, line_flag);
91 }
92
93 virtual void holdSound(const char* label, s16 seq_var, nw::snd::OutputLine line_flag)
94 {
95 holdSound_(label, seq_var, line_flag);
96 }
97
98 virtual void holdSound(const char* label, const sead::Vector2f& pos, nw::snd::OutputLine line_flag)
99 {
100 holdSound_(label, pos, line_flag);
101 }
102
103 // Address: Deleted
104 virtual void prepareSound(const char* label, nw::snd::OutputLine line_flag);
105
106protected:
110};
111static_assert(sizeof(NMSndObject) == 0x11C);
112
113class NMSndObjectCmn : public NMSndObjectBase // vtbl Address: 0x1017DDEC
114{
115public:
116 static const u32 cPlayableSoundNum = 12;
118
119public:
120 class SoundHandlePrm // Name unknown
121 {
122 public:
124 : mID(-1)
125 , _c(1.0f)
126 , mPriority(64)
127 {
128 }
129
130 private:
136
137 friend class NMSndObjectCmn;
138 };
139 static_assert(sizeof(SoundHandlePrm) == 0x14);
140
141public:
142 // Address: 0x029BD358
143 NMSndObjectCmn(nw::snd::OutputLine line_flag);
144
145protected:
146 // Address: 0x029BD65C
147 nw::snd::SoundHandle* startSound_(const char* label, const sead::Vector2f& pos, nw::snd::OutputLine line_flag);
148 // Address: 0x029BDA2C
149 nw::snd::SoundHandle* startSound_(const char* label, const sead::Vector2f& pos, s16 seq_var, nw::snd::OutputLine line_flag);
150
151 // Address: 0x029BDE98
152 nw::snd::SoundHandle* holdSound_(const char* label, s32 handle_id, const sead::Vector2f& pos, nw::snd::OutputLine line_flag);
153 // Address: 0x029BE094
154 nw::snd::SoundHandle* holdSound_(const char* label, s32 handle_id, const sead::Vector2f& pos, s16 seq_var, nw::snd::OutputLine line_flag);
155
156public:
157 virtual void startSound(const char* label, const sead::Vector2f& pos, nw::snd::OutputLine line_flag)
158 {
159 startSound_(label, pos, line_flag);
160 }
161
162 virtual void startSound(const char* label, const sead::Vector2f& pos, s16 seq_var, nw::snd::OutputLine line_flag)
163 {
164 startSound_(label, pos, seq_var, line_flag);
165 }
166
167 void holdSound(const char* label, s32 handle_id, const sead::Vector2f& pos, nw::snd::OutputLine line_flag)
168 {
169 holdSound_(label, handle_id, pos, line_flag);
170 }
171
172 void holdSound(const char* label, s32 handle_id, const sead::Vector2f& pos, s16 seq_var, nw::snd::OutputLine line_flag)
173 {
174 holdSound_(label, handle_id, pos, seq_var, line_flag);
175 }
176
177protected:
179};
180static_assert(sizeof(NMSndObjectCmn) == 0x18C);
181
182class NMNonPosSndObject : public NMSndObjectBase // vtbl Address: 0x1017DE34
183{
184public:
186 {
187 public:
189 {
190 }
191
192 private:
194
195 friend class NMNonPosSndObject;
196 };
197 static_assert(sizeof(SoundHandlePrm) == 4);
198
199public:
200 // Address: 0x029BE2F0
201 NMNonPosSndObject(nw::snd::OutputLine line_flag, s32 playable_sound_num);
202 // Address: 0x029BE3A4
204
205protected:
206 // Address: 0x029BE428
207 nw::snd::SoundHandle* startSound_(const char* label, nw::snd::OutputLine line_flag);
208 // Address: Deleted
209 nw::snd::SoundHandle* startSound_(const char* label, s16 seq_var, nw::snd::OutputLine line_flag);
210
211 // Address: 0x029BE578
212 nw::snd::SoundHandle* holdSound_(const char* label, nw::snd::OutputLine line_flag);
213 // Address: 0x029BE648
214 nw::snd::SoundHandle* holdSound_(const char* label, s16 seq_var, nw::snd::OutputLine line_flag);
215
216public:
217 virtual void startSound(const char* label, nw::snd::OutputLine line_flag)
218 {
219 startSound_(label, line_flag);
220 }
221
222 virtual void startSound(const char* label, s16 seq_var, nw::snd::OutputLine line_flag)
223 {
224 startSound_(label, seq_var, line_flag);
225 }
226
227 virtual void holdSound(const char* label, nw::snd::OutputLine line_flag)
228 {
229 holdSound_(label, line_flag);
230 }
231
232 virtual void holdSound(const char* label, s16 seq_var, nw::snd::OutputLine line_flag)
233 {
234 holdSound_(label, seq_var, line_flag);
235 }
236
237protected:
239};
240static_assert(sizeof(NMNonPosSndObject) == 0x78);
friend BgCheckFlag & operator|=(BgCheckFlag &lhs, const BgCheckFlag &rhs)
Definition ActorCollision.h:36
friend BgCheckFlag operator|(const BgCheckFlag &lhs, const BgCheckFlag &rhs)
Definition ActorCollision.h:31
Definition SndObjectCommon.h:186
SoundHandlePrm()
Definition SndObjectCommon.h:188
nw::snd::SoundHandle mSoundHandle
Definition SndObjectCommon.h:193
Definition SndObjectCommon.h:183
nw::snd::SoundHandle * holdSound_(const char *label, s16 seq_var, nw::snd::OutputLine line_flag)
nw::snd::SoundHandle * startSound_(const char *label, s16 seq_var, nw::snd::OutputLine line_flag)
virtual void startSound(const char *label, s16 seq_var, nw::snd::OutputLine line_flag)
Definition SndObjectCommon.h:222
nw::snd::SoundHandle * holdSound_(const char *label, nw::snd::OutputLine line_flag)
virtual void holdSound(const char *label, nw::snd::OutputLine line_flag)
Definition SndObjectCommon.h:227
virtual void startSound(const char *label, nw::snd::OutputLine line_flag)
Definition SndObjectCommon.h:217
SoundHandlePrm * mSoundHandlePrm
Definition SndObjectCommon.h:238
~NMNonPosSndObject() override
nw::snd::SoundHandle * startSound_(const char *label, nw::snd::OutputLine line_flag)
virtual void holdSound(const char *label, s16 seq_var, nw::snd::OutputLine line_flag)
Definition SndObjectCommon.h:232
NMNonPosSndObject(nw::snd::OutputLine line_flag, s32 playable_sound_num)
Definition SndObjectCommon.h:121
nw::snd::SoundHandle mSoundHandle
Definition SndObjectCommon.h:131
SoundHandlePrm()
Definition SndObjectCommon.h:123
f32 _c
Definition SndObjectCommon.h:134
s32 mID
Definition SndObjectCommon.h:132
f32 mVolume
Definition SndObjectCommon.h:133
s32 mPriority
Definition SndObjectCommon.h:135
Definition SndObjectCommon.h:114
static const u32 cPlayableSoundNum
Definition SndObjectCommon.h:116
nw::snd::SoundHandle * startSound_(const char *label, const sead::Vector2f &pos, nw::snd::OutputLine line_flag)
nw::snd::SoundHandle * holdSound_(const char *label, s32 handle_id, const sead::Vector2f &pos, nw::snd::OutputLine line_flag)
virtual void startSound(const char *label, const sead::Vector2f &pos, s16 seq_var, nw::snd::OutputLine line_flag)
Definition SndObjectCommon.h:162
void holdSound(const char *label, s32 handle_id, const sead::Vector2f &pos, nw::snd::OutputLine line_flag)
Definition SndObjectCommon.h:167
NMSndObjectCmn(nw::snd::OutputLine line_flag)
nw::snd::SoundHandle * startSound_(const char *label, const sead::Vector2f &pos, s16 seq_var, nw::snd::OutputLine line_flag)
SoundHandlePrm mSoundHandlePrm[cHandleNum]
Definition SndObjectCommon.h:178
void holdSound(const char *label, s32 handle_id, const sead::Vector2f &pos, s16 seq_var, nw::snd::OutputLine line_flag)
Definition SndObjectCommon.h:172
static const u32 cHandleNum
Definition SndObjectCommon.h:117
nw::snd::SoundHandle * holdSound_(const char *label, s32 handle_id, const sead::Vector2f &pos, s16 seq_var, nw::snd::OutputLine line_flag)
virtual void startSound(const char *label, const sead::Vector2f &pos, nw::snd::OutputLine line_flag)
Definition SndObjectCommon.h:157
Definition SndObjectCommon.h:30
SoundHandlePrm()
Definition SndObjectCommon.h:32
nw::snd::SoundHandle mSoundHandle
Definition SndObjectCommon.h:42
f32 mVolume
Definition SndObjectCommon.h:43
~SoundHandlePrm() override
Definition SndObjectCommon.h:37
Definition SndObjectCommon.h:23
Snd2DCalc::Param mSnd2DCalcPrm
Definition SndObjectCommon.h:107
nw::snd::SoundHandle * holdSound_(const char *label, nw::snd::OutputLine line_flag)
nw::snd::SoundHandle * holdSound_(const char *label, const sead::Vector2f &pos, nw::snd::OutputLine line_flag)
virtual void holdSound(const char *label, nw::snd::OutputLine line_flag)
Definition SndObjectCommon.h:88
NMSndObject(ObjType type, nw::snd::OutputLine line_flag)
nw::snd::SoundHandle * startSound_(const char *label, const sead::Vector2f &pos, nw::snd::OutputLine line_flag)
SoundHandlePrm mSoundHandlePrm[cHandleNum]
Definition SndObjectCommon.h:108
static const u32 cPlayableSoundNum
Definition SndObjectCommon.h:25
virtual void startSound(const char *label, nw::snd::OutputLine line_flag)
Definition SndObjectCommon.h:73
sead::Vector2f mPos
Definition SndObjectCommon.h:109
virtual void prepareSound(const char *label, nw::snd::OutputLine line_flag)
virtual void startSound(const char *label, s16 seq_var, nw::snd::OutputLine line_flag)
Definition SndObjectCommon.h:78
nw::snd::SoundHandle * startSound_(const char *label, s16 seq_var, nw::snd::OutputLine line_flag)
nw::snd::SoundHandle * startSound_(const char *label, nw::snd::OutputLine line_flag)
static const u32 cHandleNum
Definition SndObjectCommon.h:26
virtual void holdSound(const char *label, const sead::Vector2f &pos, nw::snd::OutputLine line_flag)
Definition SndObjectCommon.h:98
virtual void startSound(const char *label, const sead::Vector2f &pos, nw::snd::OutputLine line_flag)
Definition SndObjectCommon.h:83
void calc(const sead::Vector2f &pos)
virtual void holdSound(const char *label, s16 seq_var, nw::snd::OutputLine line_flag)
Definition SndObjectCommon.h:93
nw::snd::SoundHandle * holdSound_(const char *label, s16 seq_var, nw::snd::OutputLine line_flag)