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