New Super Mario Bros. U Headers
Loading...
Searching...
No Matches
GameAudio.h
Go to the documentation of this file.
1#pragma once
2
3#include <sound/SndObjectEnemy.h>
4#include <sound/SndObjectMap.h>
5#include <sound/SndObjectPlayer.h>
6
8{
9public:
10 static GameAudio* instance() { return sInstance; }
11
12public:
13 // Address: 0x02029368
14 static void convertAudioObjctPos(sead::Vector2f* screen_pos, const sead::Vector2f& bg_pos);
15
16 static void convertAudioObjctPos(sead::Vector2f* screen_pos, const sead::Vector3f& bg_pos)
17 {
18 convertAudioObjctPos(screen_pos, sead::Vector2f(bg_pos.x, bg_pos.y));
19 }
20
21 // Address: 0x020299C4
22 static void breakdownSE(s32 combo_count, const sead::Vector3f& pos);
23
24 // Address: 0x02029ACC
25 static void setClapSE();
26
27 // Address: 0x0202B144
28 static nw::snd::OutputLine getRemotePlayer(s32 player_no);
29
30 // Address: 0x0202B184
31 static SndObjctPly::PlyMode getPlyMode(PlayerMode player_mode);
32
33public:
34 class SoundID
35 {
36 public:
37 SoundID(const char* label)
38 : mLabel(label)
39 {
40 }
41
42 operator const char*() const
43 {
44 return mLabel;
45 }
46
47 template <typename T>
48 void startSound(T& obj, const sead::Vector3f& pos, nw::snd::OutputLine line_flag = nw::snd::OUTPUT_LINE_MAIN) const
49 {
50 obj.startSound(mLabel, pos, line_flag);
51 }
52
53 void startSoundEmy(const sead::Vector3f& pos, nw::snd::OutputLine line_flag = nw::snd::OUTPUT_LINE_MAIN) const
54 {
55 startSound(*getAudioObjEmy(), pos, line_flag);
56 }
57
58 void startSoundMap(const sead::Vector3f& pos, nw::snd::OutputLine line_flag = nw::snd::OUTPUT_LINE_MAIN) const
59 {
60 startSound(*getAudioObjMap(), pos, line_flag);
61 }
62
63 private:
64 const char* mLabel;
65 };
66 static_assert(sizeof(SoundID) == 4);
67
68public:
70 {
71 public:
72 AudioObjctEmy(ObjType type = ObjType(0), nw::snd::OutputLine line_flag = nw::snd::OUTPUT_LINE_MAIN)
74 {
75 }
76
77 void startSound(const char* label, nw::snd::OutputLine line_flag = nw::snd::OUTPUT_LINE_MAIN) override
78 {
79 SndObjctEmy::startSound(label, line_flag);
80 }
81
82 void holdSound(const char* label, nw::snd::OutputLine line_flag = nw::snd::OUTPUT_LINE_MAIN) override
83 {
84 SndObjctEmy::holdSound(label, line_flag);
85 }
86
87 void startSound(const char* label, s16 seq_var, nw::snd::OutputLine line_flag = nw::snd::OUTPUT_LINE_MAIN) override
88 {
89 SndObjctEmy::startSound(label, seq_var, line_flag);
90 }
91
92 void holdSound(const char* label, s16 seq_var, nw::snd::OutputLine line_flag = nw::snd::OUTPUT_LINE_MAIN) override
93 {
94 SndObjctEmy::holdSound(label, seq_var, line_flag);
95 }
96
97 void startSound(const char* label, const sead::Vector2f& pos, nw::snd::OutputLine line_flag = nw::snd::OUTPUT_LINE_MAIN) override
98 {
99 sead::Vector2f screen_pos;
100 convertAudioObjctPos(&screen_pos, pos);
101 SndObjctEmy::startSound(label, screen_pos, line_flag);
102 }
103
104 void startSound(const char* label, const sead::Vector3f& pos, nw::snd::OutputLine line_flag = nw::snd::OUTPUT_LINE_MAIN)
105 {
106 sead::Vector2f screen_pos;
107 convertAudioObjctPos(&screen_pos, pos);
108 SndObjctEmy::startSound(label, screen_pos, line_flag);
109 }
110
111 void holdSound(const char* label, const sead::Vector2f& pos, nw::snd::OutputLine line_flag = nw::snd::OUTPUT_LINE_MAIN) override
112 {
113 sead::Vector2f screen_pos;
114 convertAudioObjctPos(&screen_pos, pos);
115 SndObjctEmy::holdSound(label, screen_pos, line_flag);
116 }
117
118 void holdSound(const char* label, const sead::Vector3f& pos, nw::snd::OutputLine line_flag = nw::snd::OUTPUT_LINE_MAIN)
119 {
120 sead::Vector2f screen_pos;
121 convertAudioObjctPos(&screen_pos, pos);
122 SndObjctEmy::holdSound(label, screen_pos, line_flag);
123 }
124
125 void calc(const sead::Vector2f& pos)
126 {
127 sead::Vector2f screen_pos;
128 convertAudioObjctPos(&screen_pos, pos);
129 SndObjctEmy::calc(screen_pos);
130 }
131
132 void calc(const sead::Vector3f& pos)
133 {
134 sead::Vector2f screen_pos;
135 convertAudioObjctPos(&screen_pos, pos);
136 SndObjctEmy::calc(screen_pos);
137 }
138 };
139 static_assert(sizeof(AudioObjctEmy) == sizeof(SndObjctEmy));
140
142 {
143 public:
144 AudioObjctCmnEmy(nw::snd::OutputLine line_flag = nw::snd::OUTPUT_LINE_MAIN)
146 {
147 }
148
149 void startSound(const char* label, const sead::Vector2f& pos, nw::snd::OutputLine line_flag = nw::snd::OUTPUT_LINE_MAIN) override
150 {
151 sead::Vector2f screen_pos;
152 convertAudioObjctPos(&screen_pos, pos);
153 SndObjctCmnEmy::startSound(label, screen_pos, line_flag);
154 }
155
156 void startSound(const char* label, const sead::Vector3f& pos, nw::snd::OutputLine line_flag = nw::snd::OUTPUT_LINE_MAIN)
157 {
158 sead::Vector2f screen_pos;
159 convertAudioObjctPos(&screen_pos, pos);
160 SndObjctCmnEmy::startSound(label, screen_pos, line_flag);
161 }
162
163 void startSound(const char* label, const sead::Vector2f& pos, s16 seq_var, nw::snd::OutputLine line_flag = nw::snd::OUTPUT_LINE_MAIN) override
164 {
165 sead::Vector2f screen_pos;
166 convertAudioObjctPos(&screen_pos, pos);
167 SndObjctCmnEmy::startSound(label, screen_pos, seq_var, line_flag);
168 }
169
170 void startSound(const char* label, const sead::Vector3f& pos, s16 seq_var, nw::snd::OutputLine line_flag = nw::snd::OUTPUT_LINE_MAIN)
171 {
172 sead::Vector2f screen_pos;
173 convertAudioObjctPos(&screen_pos, pos);
174 SndObjctCmnEmy::startSound(label, screen_pos, seq_var, line_flag);
175 }
176
177 void holdSound(const char* label, s32 handle_id, const sead::Vector2f& pos, nw::snd::OutputLine line_flag = nw::snd::OUTPUT_LINE_MAIN)
178 {
179 sead::Vector2f screen_pos;
180 convertAudioObjctPos(&screen_pos, pos);
181 SndObjctCmnEmy::holdSound(label, handle_id, screen_pos, line_flag);
182 }
183
184 void holdSound(const char* label, s32 handle_id, const sead::Vector3f& pos, nw::snd::OutputLine line_flag = nw::snd::OUTPUT_LINE_MAIN)
185 {
186 sead::Vector2f screen_pos;
187 convertAudioObjctPos(&screen_pos, pos);
188 SndObjctCmnEmy::holdSound(label, handle_id, screen_pos, line_flag);
189 }
190
191 void holdSound(const char* label, s32 handle_id, const sead::Vector2f& pos, s16 seq_var, nw::snd::OutputLine line_flag = nw::snd::OUTPUT_LINE_MAIN)
192 {
193 sead::Vector2f screen_pos;
194 convertAudioObjctPos(&screen_pos, pos);
195 SndObjctCmnEmy::holdSound(label, handle_id, screen_pos, seq_var, line_flag);
196 }
197
198 void holdSound(const char* label, s32 handle_id, const sead::Vector3f& pos, s16 seq_var, nw::snd::OutputLine line_flag = nw::snd::OUTPUT_LINE_MAIN)
199 {
200 sead::Vector2f screen_pos;
201 convertAudioObjctPos(&screen_pos, pos);
202 SndObjctCmnEmy::holdSound(label, handle_id, screen_pos, seq_var, line_flag);
203 }
204 };
205 static_assert(sizeof(AudioObjctCmnEmy) == sizeof(SndObjctCmnEmy));
206
208 {
209 public:
210 AudioObjctCmnMap(nw::snd::OutputLine line_flag = nw::snd::OUTPUT_LINE_MAIN)
212 {
213 }
214
215 void startSound(const char* label, const sead::Vector2f& pos, nw::snd::OutputLine line_flag = nw::snd::OUTPUT_LINE_MAIN) override
216 {
217 sead::Vector2f screen_pos;
218 convertAudioObjctPos(&screen_pos, pos);
219 SndObjctCmnMap::startSound(label, screen_pos, line_flag);
220 }
221
222 void startSound(const char* label, const sead::Vector3f& pos, nw::snd::OutputLine line_flag = nw::snd::OUTPUT_LINE_MAIN)
223 {
224 sead::Vector2f screen_pos;
225 convertAudioObjctPos(&screen_pos, pos);
226 SndObjctCmnMap::startSound(label, screen_pos, line_flag);
227 }
228
229 void startSound(const char* label, const sead::Vector2f& pos, s16 seq_var, nw::snd::OutputLine line_flag = nw::snd::OUTPUT_LINE_MAIN) override
230 {
231 sead::Vector2f screen_pos;
232 convertAudioObjctPos(&screen_pos, pos);
233 SndObjctCmnMap::startSound(label, screen_pos, seq_var, line_flag);
234 }
235
236 void startSound(const char* label, const sead::Vector3f& pos, s16 seq_var, nw::snd::OutputLine line_flag = nw::snd::OUTPUT_LINE_MAIN)
237 {
238 sead::Vector2f screen_pos;
239 convertAudioObjctPos(&screen_pos, pos);
240 SndObjctCmnMap::startSound(label, screen_pos, seq_var, line_flag);
241 }
242
243 void holdSound(const char* label, s32 handle_id, const sead::Vector2f& pos, nw::snd::OutputLine line_flag = nw::snd::OUTPUT_LINE_MAIN)
244 {
245 sead::Vector2f screen_pos;
246 convertAudioObjctPos(&screen_pos, pos);
247 SndObjctCmnMap::holdSound(label, handle_id, screen_pos, line_flag);
248 }
249
250 void holdSound(const char* label, s32 handle_id, const sead::Vector3f& pos, nw::snd::OutputLine line_flag = nw::snd::OUTPUT_LINE_MAIN)
251 {
252 sead::Vector2f screen_pos;
253 convertAudioObjctPos(&screen_pos, pos);
254 SndObjctCmnMap::holdSound(label, handle_id, screen_pos, line_flag);
255 }
256
257 void holdSound(const char* label, s32 handle_id, const sead::Vector2f& pos, s16 seq_var, nw::snd::OutputLine line_flag = nw::snd::OUTPUT_LINE_MAIN)
258 {
259 sead::Vector2f screen_pos;
260 convertAudioObjctPos(&screen_pos, pos);
261 SndObjctCmnMap::holdSound(label, handle_id, screen_pos, seq_var, line_flag);
262 }
263
264 void holdSound(const char* label, s32 handle_id, const sead::Vector3f& pos, s16 seq_var, nw::snd::OutputLine line_flag = nw::snd::OUTPUT_LINE_MAIN)
265 {
266 sead::Vector2f screen_pos;
267 convertAudioObjctPos(&screen_pos, pos);
268 SndObjctCmnMap::holdSound(label, handle_id, screen_pos, seq_var, line_flag);
269 }
270 };
271 static_assert(sizeof(AudioObjctCmnMap) == sizeof(SndObjctCmnMap));
272
274 {
275 public:
276 AudioObjctPly(ObjType type = ObjType(0), nw::snd::OutputLine line_flag = nw::snd::OUTPUT_LINE_MAIN)
278 {
279 }
280
281 void startSound(const char* label, nw::snd::OutputLine line_flag = nw::snd::OUTPUT_LINE_MAIN) override
282 {
283 SndObjctPly::startSound(label, line_flag);
284 }
285
286 void holdSound(const char* label, nw::snd::OutputLine line_flag = nw::snd::OUTPUT_LINE_MAIN) override
287 {
288 SndObjctPly::holdSound(label, line_flag);
289 }
290
291 void startSound(const char* label, s16 seq_var, nw::snd::OutputLine line_flag = nw::snd::OUTPUT_LINE_MAIN) override
292 {
293 SndObjctPly::startSound(label, seq_var, line_flag);
294 }
295
296 void holdSound(const char* label, s16 seq_var, nw::snd::OutputLine line_flag = nw::snd::OUTPUT_LINE_MAIN) override
297 {
298 SndObjctPly::holdSound(label, seq_var, line_flag);
299 }
300
301 void startSound(const char* label, const sead::Vector2f& pos, nw::snd::OutputLine line_flag = nw::snd::OUTPUT_LINE_MAIN) override
302 {
303 sead::Vector2f screen_pos;
304 convertAudioObjctPos(&screen_pos, pos);
305 SndObjctPly::startSound(label, screen_pos, line_flag);
306 }
307
308 void startSound(const char* label, const sead::Vector3f& pos, nw::snd::OutputLine line_flag = nw::snd::OUTPUT_LINE_MAIN)
309 {
310 sead::Vector2f screen_pos;
311 convertAudioObjctPos(&screen_pos, pos);
312 SndObjctPly::startSound(label, screen_pos, line_flag);
313 }
314
315 void holdSound(const char* label, const sead::Vector2f& pos, nw::snd::OutputLine line_flag = nw::snd::OUTPUT_LINE_MAIN) override
316 {
317 sead::Vector2f screen_pos;
318 convertAudioObjctPos(&screen_pos, pos);
319 SndObjctPly::holdSound(label, screen_pos, line_flag);
320 }
321
322 void holdSound(const char* label, const sead::Vector3f& pos, nw::snd::OutputLine line_flag = nw::snd::OUTPUT_LINE_MAIN)
323 {
324 sead::Vector2f screen_pos;
325 convertAudioObjctPos(&screen_pos, pos);
326 SndObjctPly::holdSound(label, screen_pos, line_flag);
327 }
328
329 void calc(const sead::Vector2f& pos)
330 {
331 sead::Vector2f screen_pos;
332 convertAudioObjctPos(&screen_pos, pos);
333 SndObjctPly::calc(screen_pos);
334 }
335
336 void calc(const sead::Vector3f& pos)
337 {
338 sead::Vector2f screen_pos;
339 convertAudioObjctPos(&screen_pos, pos);
340 SndObjctPly::calc(screen_pos);
341 }
342
343 void startPlyVoiceSound(PlayerVoiceID voice_id, nw::snd::OutputLine line_flag = nw::snd::OUTPUT_LINE_MAIN)
344 {
345 SndObjctPly::startPlyVoiceSound(voice_id, line_flag);
346 }
347 };
348 static_assert(sizeof(AudioObjctPly) == sizeof(SndObjctPly));
349
350public:
351 // 0x02028F2C
352 void initSound();
353
354public:
357
358private:
359 // Address: 0x101C63E0
361 // Address: 0x101C63CC
363 // Address: 0x101C63D0
365};
Definition GameAudio.h:142
void holdSound(const char *label, s32 handle_id, const sead::Vector2f &pos, s16 seq_var, nw::snd::OutputLine line_flag=nw::snd::OUTPUT_LINE_MAIN)
Definition GameAudio.h:191
void startSound(const char *label, const sead::Vector2f &pos, nw::snd::OutputLine line_flag=nw::snd::OUTPUT_LINE_MAIN) override
Definition GameAudio.h:149
void holdSound(const char *label, s32 handle_id, const sead::Vector2f &pos, nw::snd::OutputLine line_flag=nw::snd::OUTPUT_LINE_MAIN)
Definition GameAudio.h:177
void startSound(const char *label, const sead::Vector2f &pos, s16 seq_var, nw::snd::OutputLine line_flag=nw::snd::OUTPUT_LINE_MAIN) override
Definition GameAudio.h:163
AudioObjctCmnEmy(nw::snd::OutputLine line_flag=nw::snd::OUTPUT_LINE_MAIN)
Definition GameAudio.h:144
Definition GameAudio.h:208
void holdSound(const char *label, s32 handle_id, const sead::Vector2f &pos, s16 seq_var, nw::snd::OutputLine line_flag=nw::snd::OUTPUT_LINE_MAIN)
Definition GameAudio.h:257
void startSound(const char *label, const sead::Vector2f &pos, nw::snd::OutputLine line_flag=nw::snd::OUTPUT_LINE_MAIN) override
Definition GameAudio.h:215
void startSound(const char *label, const sead::Vector2f &pos, s16 seq_var, nw::snd::OutputLine line_flag=nw::snd::OUTPUT_LINE_MAIN) override
Definition GameAudio.h:229
void holdSound(const char *label, s32 handle_id, const sead::Vector2f &pos, nw::snd::OutputLine line_flag=nw::snd::OUTPUT_LINE_MAIN)
Definition GameAudio.h:243
AudioObjctCmnMap(nw::snd::OutputLine line_flag=nw::snd::OUTPUT_LINE_MAIN)
Definition GameAudio.h:210
Definition GameAudio.h:70
void startSound(const char *label, nw::snd::OutputLine line_flag=nw::snd::OUTPUT_LINE_MAIN) override
Definition GameAudio.h:77
AudioObjctEmy(ObjType type=ObjType(0), nw::snd::OutputLine line_flag=nw::snd::OUTPUT_LINE_MAIN)
Definition GameAudio.h:72
void holdSound(const char *label, const sead::Vector2f &pos, nw::snd::OutputLine line_flag=nw::snd::OUTPUT_LINE_MAIN) override
Definition GameAudio.h:111
void startSound(const char *label, const sead::Vector2f &pos, nw::snd::OutputLine line_flag=nw::snd::OUTPUT_LINE_MAIN) override
Definition GameAudio.h:97
void holdSound(const char *label, nw::snd::OutputLine line_flag=nw::snd::OUTPUT_LINE_MAIN) override
Definition GameAudio.h:82
void calc(const sead::Vector2f &pos)
Definition GameAudio.h:125
void holdSound(const char *label, s16 seq_var, nw::snd::OutputLine line_flag=nw::snd::OUTPUT_LINE_MAIN) override
Definition GameAudio.h:92
void startSound(const char *label, s16 seq_var, nw::snd::OutputLine line_flag=nw::snd::OUTPUT_LINE_MAIN) override
Definition GameAudio.h:87
Definition GameAudio.h:274
void holdSound(const char *label, s16 seq_var, nw::snd::OutputLine line_flag=nw::snd::OUTPUT_LINE_MAIN) override
Definition GameAudio.h:296
void calc(const sead::Vector2f &pos)
Definition GameAudio.h:329
void holdSound(const char *label, nw::snd::OutputLine line_flag=nw::snd::OUTPUT_LINE_MAIN) override
Definition GameAudio.h:286
void startSound(const char *label, nw::snd::OutputLine line_flag=nw::snd::OUTPUT_LINE_MAIN) override
Definition GameAudio.h:281
void holdSound(const char *label, const sead::Vector2f &pos, nw::snd::OutputLine line_flag=nw::snd::OUTPUT_LINE_MAIN) override
Definition GameAudio.h:315
AudioObjctPly(ObjType type=ObjType(0), nw::snd::OutputLine line_flag=nw::snd::OUTPUT_LINE_MAIN)
Definition GameAudio.h:276
void startSound(const char *label, s16 seq_var, nw::snd::OutputLine line_flag=nw::snd::OUTPUT_LINE_MAIN) override
Definition GameAudio.h:291
void startPlyVoiceSound(PlayerVoiceID voice_id, nw::snd::OutputLine line_flag=nw::snd::OUTPUT_LINE_MAIN)
Definition GameAudio.h:343
void startSound(const char *label, const sead::Vector2f &pos, nw::snd::OutputLine line_flag=nw::snd::OUTPUT_LINE_MAIN) override
Definition GameAudio.h:301
Definition GameAudio.h:35
const char * mLabel
Definition GameAudio.h:64
SoundID(const char *label)
Definition GameAudio.h:37
operator const char *() const
Definition GameAudio.h:42
void startSoundMap(const sead::Vector3f &pos, nw::snd::OutputLine line_flag=nw::snd::OUTPUT_LINE_MAIN) const
Definition GameAudio.h:58
void startSoundEmy(const sead::Vector3f &pos, nw::snd::OutputLine line_flag=nw::snd::OUTPUT_LINE_MAIN) const
Definition GameAudio.h:53
void startSound(T &obj, const sead::Vector3f &pos, nw::snd::OutputLine line_flag=nw::snd::OUTPUT_LINE_MAIN) const
Definition GameAudio.h:48
Definition GameAudio.h:8
static GameAudio * sInstance
Definition GameAudio.h:360
void initSound()
static void setClapSE()
static GameAudio * instance()
Definition GameAudio.h:10
static SndObjctPly::PlyMode getPlyMode(PlayerMode player_mode)
static nw::snd::OutputLine getRemotePlayer(s32 player_no)
static AudioObjctCmnMap * getAudioObjMap()
Definition GameAudio.h:356
static AudioObjctCmnEmy * getAudioObjEmy()
Definition GameAudio.h:355
static AudioObjctCmnEmy * sAudioObjEmy
Definition GameAudio.h:362
static void convertAudioObjctPos(sead::Vector2f *screen_pos, const sead::Vector2f &bg_pos)
static AudioObjctCmnMap * sAudioObjMap
Definition GameAudio.h:364
static void breakdownSE(s32 combo_count, const sead::Vector3f &pos)