New Super Mario Bros. U Headers
Loading...
Searching...
No Matches
BrosBase.h
Go to the documentation of this file.
1#pragma once
2
3#include <actor/EatCallback.h>
4#include <collision/ActorBgCollisionEnemyCheck.h>
5#include <collision/ActorCollisionDrcTouchCallback.h>
6#include <effect/EffectObj.h>
7#include <enemy/Enemy.h>
8#include <enemy/EnemyBoyoMgr.h>
9
10#include <math/seadMatrix.h>
11
12// vtbl Address: 0x1005F6E8
14{
15public:
16 // Address: 0x022DD974
17 bool ccSetTouchNormal(ActorCollisionCheck* cc, const sead::Vector2f& pos) override;
18 // Address: 0x022DDAEC
19 void ccOnTouch(ActorCollisionCheck* cc, const sead::Vector2f& pos) override;
20};
21static_assert(sizeof(BrosDrcTouchCB) == sizeof(ActorCollisionDrcTouchCallback));
22
23class JointBlendModel;
24
25// vtbl Address: 0x1005F078
26class BrosBase : public Enemy
27{
28 // getRuntimeTypeInfoStatic()::typeInfo initialization guard variable Address: 0x101EA308
29 // getRuntimeTypeInfoStatic()::typeInfo Address: 0x101EA30C
30 SEAD_RTTI_OVERRIDE(BrosBase, Enemy)
31
32public:
33 // Address: 0x022DA0AC
35
37 {
38 }
39
40protected:
41 // Address: 0x022DA758
42 Result create() override;
43 // Address: 0x022DAFE8
45 // Address: 0x022DB08C
46 bool draw() override;
47 // Address: 0x022DE848
48 Result doDelete() override;
49
50public:
51 // Address: 0x022DD66C
53
54 // Address: 0x022DD264
55 bool setDamage(ActorCollisionCheck* cc_self, ActorCollisionCheck* cc_other) override;
56 // Address: 0x022DD3D8
58 // Address: 0x022DD484
60 // Address: 0x022DD3C0
62 // Address: 0x022DB0C0
64 // Address: 0x022DB0C4
65 void vsPlayerHitCheck_Normal(ActorCollisionCheck* cc_self, ActorCollisionCheck* cc_other) override;
66 // Address: 0x022DB210
67 void vsYoshiHitCheck_Normal(ActorCollisionCheck* cc_self, ActorCollisionCheck* cc_other) override;
68 // Address: 0x022DB6A0
69 bool hitCallback_Star(ActorCollisionCheck* cc_self, ActorCollisionCheck* cc_other) override;
70 // Address: 0x022DB318
71 bool hitCallback_Spin(ActorCollisionCheck* cc_self, ActorCollisionCheck* cc_other) override;
72 // Address: 0x022DB50C
73 bool hitCallback_HipAttk(ActorCollisionCheck* cc_self, ActorCollisionCheck* cc_other) override;
74 // Address: 0x022DB870
75 bool hitCallback_Ice(ActorCollisionCheck* cc_self, ActorCollisionCheck* cc_other) override;
76 // Address: 0x022DB510
77 bool hitCallback_YoshiBullet(ActorCollisionCheck* cc_self, ActorCollisionCheck* cc_other) override;
78 // Address: 0x022DB954
79 bool hitCallback_ChibiYoshiLight(ActorCollisionCheck* cc_self, ActorCollisionCheck* cc_other) override;
80
81 // StateID_DieFumi Address: 0x101FF488
82 // initializeState_DieFumi Address: 0x022DCE14
83 // executeState_DieFumi Address: 0x022DCEA8
84 // finalizeState_DieFumi Address: 0x022DE860
85 DECLARE_STATE_VIRTUAL_ID_OVERRIDE(BrosBase, DieFumi)
86 // StateID_DieFall Address: 0x101FF4AC
87 // initializeState_DieFall Address: 0x022DCEF4
88 // executeState_DieFall Address: 0x022DCF88
89 // finalizeState_DieFall Address: 0x022DE864
91
92public:
93 // StateID_Move Address: 0x101FF3B0
94 // initializeState_Move Address: 0x022DBE48
95 // executeState_Move Address: 0x022DC000
96 // finalizeState_Move Address: 0x022DE850
98 // StateID_Attack Address: 0x101FF3D4
99 // initializeState_Attack Address: 0x022DC294
100 // executeState_Attack Address: 0x022DC2D4
101 // finalizeState_Attack Address: 0x022DE854
103 // StateID_JumpSt Address: 0x101FF3F8
104 // initializeState_JumpSt Address: 0x022DC5C8
105 // executeState_JumpSt Address: 0x022DC61C
106 // finalizeState_JumpSt Address: 0x022DE858
108 // StateID_Jump Address: 0x101FF41C
109 // initializeState_Jump Address: 0x022DC768
110 // executeState_Jump Address: 0x022DC878
111 // finalizeState_Jump Address: 0x022DC928
113 // StateID_JumpEd Address: 0x101FF440
114 // initializeState_JumpEd Address: 0x022DC934
115 // executeState_JumpEd Address: 0x022DC9AC
116 // finalizeState_JumpEd Address: 0x022DE85C
118 // StateID_AirAttack Address: 0x101FF464
119 // initializeState_AirAttack Address: 0x022DCA88
120 // executeState_AirAttack Address: 0x022DCAD4
121 // finalizeState_AirAttack Address: 0x022DCDFC
123 // StateID_Down Address: 0x101FF4D0
124 // initializeState_Down Address: 0x022DD000
125 // executeState_Down Address: 0x022DD094
126 // finalizeState_Down Address: 0x022DD21C
128
129public:
130 // Address: Deleted
132
133 virtual f32 getCreateWeaponFrm() const
134 {
135 return 0.0f;
136 }
137
138 virtual f32 getAttackFrm() const
139 {
140 return 0.0f;
141 }
142
143 virtual void setSpeed()
144 {
145 }
146
147 // Address: Deleted
148 virtual bool checkAtkArea();
149
150 virtual s32 getColor()
151 {
152 return -1;
153 }
154
155 virtual void setAtkTimer()
156 {
157 }
158
159 // Address: Deleted
161
162 // Address: 0x022DD500
163 virtual void calcMoveDir();
164
165 virtual void setWeaponPos()
166 {
167 }
168
169 virtual void weaponCreate()
170 {
171 }
172
173 virtual void weaponAttack()
174 {
175 }
176
177 virtual void setJumpCnt()
178 {
179 }
180
181 virtual void setJump()
182 {
183 }
184
185 virtual void beginJump()
186 {
187 setJump();
188 changeState(StateID_AirAttack);
189 }
190
191 virtual bool isInvalidBg()
192 {
193 return false;
194 }
195
196 virtual bool isAttackOK() const
197 {
198 return true;
199 }
200
201 virtual void beginAttk()
202 {
203 mRepeatedAttackCount = 1;
204 changeState(StateID_Attack);
205 }
206
207 // Address: 0x022DD598
208 virtual void setAttackAnm();
209
210 virtual void initMoveCnt()
211 {
212 mMoveCnt = 0;
213 }
214
215 virtual void initPosLv()
216 {
217 }
218
219 virtual void initType()
220 {
221 }
222
223 // Address: Deleted
224 virtual void vf63C();
225 // Address: Deleted
226 virtual void vf644();
227
228 virtual void vf64C() // Never overridden
229 {
230 }
231
232 virtual void vf654() // "Drop weapon on kock down" Maybe? (Deletes weapon)
233 {
234 }
235
236 // Address: 0x022DD768
237 virtual bool vf65C(); // "Can be knocked down?" Maybe?
238
239 virtual void entryHIO()
240 {
241 }
242
243 virtual void removeHIO()
244 {
245 }
246
247public:
248 // Address: 0x022DBEEC
250
251 // Address: 0x022DA2EC
252 void initModel();
253
254protected:
275 UniqueID mWeaponID; // I think?
276 bool _19b8;
284 bool _2f39;
290};
291static_assert(sizeof(BrosBase) == 0x3090);
Definition BrosBase.h:27
bool hitCallback_HipAttk(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other) override
sead::Vector3f mStartPos
Definition BrosBase.h:273
EffectObj mEffect
Definition BrosBase.h:277
bool createIceActor() override
Callback for spawning ice blocks when frozen by an ice flower.
s32 mJumpCnt
Definition BrosBase.h:262
bool calcTurnAngle()
void vsYoshiHitCheck_Normal(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other) override
virtual void entryHIO()
Definition BrosBase.h:239
void returnState_Ice() override
u32 _1984
Definition BrosBase.h:265
Result doDelete() override
virtual bool vf65C()
void initModel()
void vsPlayerHitCheck_Normal(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other) override
s32 mMoveCnt
Definition BrosBase.h:263
virtual void setAtkTimer()
Definition BrosBase.h:155
void calcMdl_Base() override
virtual void initMoveCnt()
Definition BrosBase.h:210
u32 mRepeatedAttackCount
Definition BrosBase.h:266
EnemyBoyoMgr mBoyoMgr
Definition BrosBase.h:287
virtual f32 getAttackFrm() const
Definition BrosBase.h:138
ActorBgCollisionEnemyCheck mBgCheckEnemy
Definition BrosBase.h:280
bool hitCallback_YoshiBullet(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other) override
u32 _1990
Definition BrosBase.h:268
virtual void removeHIO()
Definition BrosBase.h:243
virtual void setSpeed()
Definition BrosBase.h:143
virtual void setAttackAnm()
void allEnemyDeathEffSet() override
virtual void vf64C()
Definition BrosBase.h:228
u32 _19a0
Definition BrosBase.h:272
virtual f32 getCreateWeaponFrm() const
Definition BrosBase.h:133
virtual void setJumpCnt()
Definition BrosBase.h:177
bool hitCallback_Star(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other) override
virtual void setJump()
Definition BrosBase.h:181
u8 _3089
Definition BrosBase.h:289
JointBlendModel * mBlendModel
Definition BrosBase.h:255
f32 _1998
Definition BrosBase.h:270
bool hitCallback_ChibiYoshiLight(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other) override
virtual void initPosLv()
Definition BrosBase.h:215
u32 _1a48
Definition BrosBase.h:279
virtual void initType()
Definition BrosBase.h:219
sead::Matrixf mBone14Transform
Definition BrosBase.h:259
virtual void beginAttk()
Definition BrosBase.h:201
u32 _1980
Definition BrosBase.h:264
u32 _198c
Definition BrosBase.h:267
u8 _3088
Definition BrosBase.h:288
bool _2f39
Definition BrosBase.h:284
sead::Matrixf mBone4Transform
Definition BrosBase.h:257
u8 mMoveDir
Definition BrosBase.h:274
sead::Matrixf mBone0Transform
Definition BrosBase.h:258
s32 mAtkTimer
Definition BrosBase.h:261
~BrosBase() override
Definition BrosBase.h:36
virtual bool isAttackOK() const
Definition BrosBase.h:196
virtual s32 getColor()
Definition BrosBase.h:150
bool hitCallback_Ice(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other) override
bool setDamage(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other) override
virtual void calcMoveDir()
Result create() override
Main initialization/setup callback for the actor.
virtual void weaponAttack()
Definition BrosBase.h:173
u32 _2f34
Definition BrosBase.h:282
u32 _199c
Definition BrosBase.h:271
bool draw() override
Main rendering callback for the actor. Called every frame (the game runs at exactly 60 FPS).
f32 _1994
Definition BrosBase.h:269
EatCallback mEatData
Definition BrosBase.h:278
virtual void vf654()
Definition BrosBase.h:232
ActorCollisionCheck mCollisionCheck2
Definition BrosBase.h:285
virtual void vf644()
virtual void setWeaponPos()
Definition BrosBase.h:165
u32 _2f30
Definition BrosBase.h:281
virtual sead::Vector3f getAdjustOffset()
virtual void beginJump()
Definition BrosBase.h:185
sead::Matrixf mBone11Transform
Definition BrosBase.h:260
bool _19b8
Definition BrosBase.h:276
u8 _2f38
Definition BrosBase.h:283
bool hitCallback_Spin(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other) override
virtual void vf63C()
void setIceAnm() override
virtual bool isInvalidBg()
Definition BrosBase.h:191
bool execute() override
Main execution/logic callback for the actor. Called every frame (the game runs at exactly 60 FPS).
virtual bool checkAtkArea()
virtual void weaponCreate()
Definition BrosBase.h:169
sead::Matrixf mBone6Transform
Definition BrosBase.h:256
BrosDrcTouchCB mDrcTouchCallback
Definition BrosBase.h:286
UniqueID mWeaponID
Definition BrosBase.h:275
Definition BrosBase.h:14
bool ccSetTouchNormal(ActorCollisionCheck *cc, const sead::Vector2f &pos) override
void ccOnTouch(ActorCollisionCheck *cc, const sead::Vector2f &pos) override
Definition JointBlendModel.h:7