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