New Super Mario Bros. U Headers
Loading...
Searching...
No Matches
Shell.h
Go to the documentation of this file.
1#pragma once
2
3#include <collision/ActorCollisionDrcTouchCallback.h>
4#include <enemy/EnemyBoyoMgr.h>
5#include <actor/EatCallback.h>
6#include <effect/EffectObj.h>
7#include <enemy/CarryEnemy.h>
8#include <enemy/EnemyChibiYoshiEatData.h>
9
10// vtbl Address: 0x100A6578
11class Shell : public CarryEnemy
12{
13 // getRuntimeTypeInfoStatic()::typeInfo initialization guard variable Address: 0x101EA158
14 // getRuntimeTypeInfoStatic()::typeInfo Address: 0x101EA154
16
17protected:
18 // vtbl Address: 0x100A6520
20 {
21 public:
23 : _4(0)
24 {
25 }
26
27 // Address: 0x024520F4
28 bool ccSetTouchNormal(ActorCollisionCheck* cc, const sead::Vector2f& pos) override;
29 // Address: 0x0245213C
30 void ccOnTouch(ActorCollisionCheck* cc, const sead::Vector2f& pos) override;
31
32 protected:
34 };
35 static_assert(sizeof(DrcTouchCB) == 8);
36
37public:
45
52 static_assert(sizeof(WaterCheckInfo) == 0x10, "WaterCheckInfo size mismatch");
53
54public:
55 // Address: 0x024521A0
56 Shell(const ActorCreateParameter& param);
57 // Address: 0x02459724
58 virtual ~Shell();
59
60protected:
61 // Address: 0x02452EAC
62 void postCreate(MainState state) override;
63 // Address: 0x02452F34
65 // Address: 0x024536AC
66 void postExecute(MainState state) override;
67
68 // Address: 0x024561A4
70
71public:
72 // Address: 0x02456948
73 void setCarryFall(Actor*, s32) override;
74
75 // Address: 0x0245766C
77
78 // Address: 0x0245970C
79 void waterSplashEffect(const sead::Vector3f&) override;
80 // Address: 0x02459710
81 void yoganSplashEffect(const sead::Vector3f&) override;
82 // Address: 0x02459714
83 void poisonSplashEffect(const sead::Vector3f&) override;
84
85 // Address: 0x024573D4
87 // Address: 0x02457508
88 void endFunsui(f32 speed_y) override;
89 // Address: 0x024596E4
90 bool isFunsui() const override;
91
92public:
93 // Address: 0x024572C4
95
96 // Address: 0x024562C4
98
99 // Address: 0x0245634C
101
102 // Address: 0x02453824
103 bool etcDamageCheck(ActorCollisionCheck* cc_self, ActorCollisionCheck* cc_other) override;
104
105 // Address: 0x02455398
106 void vsEnemyHitCheck_Normal(ActorCollisionCheck* cc_self, ActorCollisionCheck* cc_other) override;
107 // Address: 0x02454D04
108 void vsPlayerHitCheck_Normal(ActorCollisionCheck* cc_self, ActorCollisionCheck* cc_other) override;
109 // Address: 0x02454D08
110 void vsYoshiHitCheck_Normal(ActorCollisionCheck* cc_self, ActorCollisionCheck* cc_other) override;
111 // Address: 0x024558CC
112 void vsChibiYoshiHitCheck_Normal(ActorCollisionCheck* cc_self, ActorCollisionCheck* cc_other) override;
113
114 // Address: 0x02455CE4
115 bool hitCallback_Slip(ActorCollisionCheck* cc_self, ActorCollisionCheck* cc_other) override;
116 // Address: 0x024557D8
117 bool hitCallback_Spin(ActorCollisionCheck* cc_self, ActorCollisionCheck* cc_other) override;
118 // Address: 0x024557BC
119 bool hitCallback_HipAttk(ActorCollisionCheck* cc_self, ActorCollisionCheck* cc_other) override;
120 // Address: 0x024557D4
121 bool hitCallback_YoshiHipAttk(ActorCollisionCheck* cc_self, ActorCollisionCheck* cc_other) override;
122 // Address: 0x02455E2C
123 bool hitCallback_PenguinSlide(ActorCollisionCheck* cc_self, ActorCollisionCheck* cc_other) override;
124 // Address: 0x024557F0
125 bool hitCallback_Shell(ActorCollisionCheck* cc_self, ActorCollisionCheck* cc_other) override;
126 // Address: 0x02455958
127 bool hitCallback_ChibiYoshiLight(ActorCollisionCheck* cc_self, ActorCollisionCheck* cc_other) override;
128
129 // Address: 0x02456674
130 void fumiJumpSet(Actor* player) override;
131 // Address: 0x02456750
132 void fumiScoreSet(Actor* player) override;
133 // Address: 0x0245963C
134 void yoshiFumiScoreSet(Actor* player) override;
135 // Address: 0x024567B4
136 void fumiSE(Actor* player) override;
137
138 // StateID_DieFall Address: 0x10207350
139 // initializeState_DieFall Address: 0x024589F8
140 // executeState_DieFall Address: 0x02458B50
141 // finalizeState_DieFall Address: 0x02458C44
143
144 // Address: 0x02456B04
145 void setPutOnChangeState(Actor* player) override;
146 // Address: 0x02456B20
147 void setThrowChangeState(Actor* player, bool hard) override;
148
149 // StateID_Carry Address: 0x1020729C
150 // initializeState_Carry Address: 0x02457AE8
151 // executeState_Carry Address: 0x02457B90
152 // finalizeState_Carry Address: 0x02457CB4
154 // StateID_Sleep Address: 0x10207278
155 // initializeState_Sleep Address: 0x024576E0
156 // executeState_Sleep Address: 0x02457788
157 // finalizeState_Sleep Address: 0x02457A90
159
160 virtual void vf574() = 0;
161
162 // Address: 0x02452A3C
163 virtual void vf57C(Actor*);
164 // Address: 0x02454E04
165 virtual void vf584();
166 // Address: 0x02455F5C
167 virtual u32 vf58C(u32, f32);
168
169 // Address: 0x02459624
170 virtual void vf594();
171
172 // Address: 0x02459628
173 virtual void vf59C();
174
175 // Address: 0x0245962C
176 virtual u32 vf5A4();
177
178 // Address: 0x02459634
179 virtual u32 vf5AC();
180
181 // Address: 0x024564F0
182 virtual bool vf5B4();
183
184 // Address: 0x02459640
185 virtual u32 vf5BC();
186
187 // Address: 0x02459648
188 virtual u32 vf5C4();
189
190 // Address: 0x02456EE4
191 virtual bool vf5CC();
192
193 virtual void vf5D4() = 0;
194
195 // Address: 0x024575AC
196 virtual EffectID vf5DC();
197
198 // Address: 0x024596EC
199 virtual EffectID vf5E4();
200
201 // Address: 0x024596F4
202 virtual EffectID vf5EC();
203
204 // Address: 0x024596FC
205 virtual EffectID vf5F4();
206
207 // Address: 0x02459704
208 virtual EffectID vf5FC();
209
210 // Address: 0x024575C0
211 virtual EffectID vf604();
212
213 virtual void vf60C() = 0;
214
215 virtual void vf614() = 0;
216
217 // Address: Deleted
218 virtual void vf61C();
219
220 // StateID_Slide Address: 0x102072C0
221 // initializeState_Slide Address: 0x02457CE8
222 // executeState_Slide Address: 0x02457F60
223 // finalizeState_Slide Address: 0x02458368
225
226 // Address: 0x02458614
227 virtual void vf63C();
228 // Address: 0x02458680
229 virtual void vf644();
230
231 // Address: 0x02459718
232 virtual void vf64C();
233
234 // Address: 0x02458754
235 virtual void vf654();
236 // Address: 0x02458794
237 virtual void vf65C();
238
239 // Address: 0x0245971C
240 virtual void vf664();
241
242 // Address: 0x0245887C
243 virtual void vf66C();
244 // Address: 0x024588D8
245 virtual void vf674();
246
247 // Address: 0x02459720
248 virtual void vf67C();
249
250public:
252 {
253 return mDrcTouchCallback;
254 }
255
256protected:
264 bool _18da;
267 bool mBig;
268 bool _18e1;
274 bool _18f0;
309 bool _19b8;
319};
320static_assert(sizeof(Shell) == 0x1A90, "Shell size mismatch");
Definition Shell.h:20
bool ccSetTouchNormal(ActorCollisionCheck *cc, const sead::Vector2f &pos) override
DrcTouchCB()
Definition Shell.h:22
u32 _4
Definition Shell.h:33
void ccOnTouch(ActorCollisionCheck *cc, const sead::Vector2f &pos) override
Definition Shell.h:12
virtual EffectID vf5E4()
virtual void vf674()
virtual u32 vf5AC()
sead::Vector3u _18c0
Definition Shell.h:259
State mState
Definition Shell.h:257
EnemyChibiYoshiEatData mChibiYoshiEatData
Definition Shell.h:287
void blockHitInit_() override
void postCreate(MainState state) override
Callback invoked unconditionally after the create phase completes. It executes even if preCreate() by...
bool _18da
Definition Shell.h:264
u8 _18f1
Definition Shell.h:275
bool hitCallback_YoshiHipAttk(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other) override
virtual EffectID vf604()
u8 _19a0
Definition Shell.h:303
bool hitCallback_Spin(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other) override
virtual bool vf5CC()
virtual void vf64C()
u32 _18ec
Definition Shell.h:273
EffectObj _19bc
Definition Shell.h:313
u32 _19a4
Definition Shell.h:307
virtual void vf61C()
void fumiSE(Actor *player) override
bool hitCallback_Shell(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other) override
void vsChibiYoshiHitCheck_Normal(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other) override
u32 _18dc
Definition Shell.h:266
void vsEnemyHitCheck_Normal(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other) override
void setPutOnChangeState(Actor *player) override
u8 _19a1
Definition Shell.h:304
u32 _1990
Definition Shell.h:299
u32 _1900
Definition Shell.h:281
u32 _1988
Definition Shell.h:294
UniqueID _18e8
Definition Shell.h:272
virtual u32 vf5BC()
u32 _190c
Definition Shell.h:284
virtual EffectID vf5DC()
SEAD_RTTI_OVERRIDE(Shell, CarryEnemy)
void allEnemyDeathEffSet() override
bool hitCallback_HipAttk(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other) override
bool hitCallback_Slip(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other) override
u8 _198c
Definition Shell.h:295
virtual u32 vf5C4()
virtual bool vf5B4()
void fumiScoreSet(Actor *player) override
u32 _18cc
Definition Shell.h:260
u32 _18d4
Definition Shell.h:262
void waterSplashEffect(const sead::Vector3f &) override
virtual EffectID vf5F4()
virtual EffectID vf5FC()
virtual void vf654()
u32 _1994
Definition Shell.h:300
virtual void vf664()
void returnState_Ice() override
virtual void vf5D4()=0
void endFunsui(f32 speed_y) override
virtual void vf65C()
f32 _199c
Definition Shell.h:302
f32 _18e4
Definition Shell.h:271
u8 _18f3
Definition Shell.h:277
virtual ~Shell()
bool mBig
Definition Shell.h:267
virtual void vf594()
u32 _18d0
Definition Shell.h:261
WaterCheckInfo _19a8
Definition Shell.h:308
virtual void vf614()=0
virtual u32 vf5A4()
u8 _198e
Definition Shell.h:297
void setIceAnm() override
virtual void vf67C()
EnemyBoyoMgr mBoyoMgr
Definition Shell.h:289
void setCarryFall(Actor *, s32) override
EatCallback mYoshiEatData
Definition Shell.h:286
u8 _19bb
Definition Shell.h:312
bool etcDamageCheck(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other) override
u8 _1a8d
Definition Shell.h:316
virtual void vf66C()
virtual void vf644()
u8 _19a3
Definition Shell.h:306
virtual void vf584()
bool _18f0
Definition Shell.h:274
DrcTouchCB getDrcTouchCallback() const
Definition Shell.h:251
virtual EffectID vf5EC()
void vsYoshiHitCheck_Normal(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other) override
u8 _198d
Definition Shell.h:296
State
Definition Shell.h:39
@ cState_Invalid
Definition Shell.h:40
@ cState_InShell
Definition Shell.h:41
@ cState_Flying
Definition Shell.h:43
@ cState_Walking
Definition Shell.h:42
u8 _18db
Definition Shell.h:265
DECLARE_STATE_VIRTUAL_ID_OVERRIDE(Shell, DieFall)
f32 _1998
Definition Shell.h:301
void vsPlayerHitCheck_Normal(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other) override
u8 _18f2
Definition Shell.h:276
u8 _1a8f
Definition Shell.h:318
u8 _1a8e
Definition Shell.h:317
u8 _198f
Definition Shell.h:298
bool hitCallback_ChibiYoshiLight(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other) override
u32 _1910
Definition Shell.h:285
void fumiJumpSet(Actor *player) override
State mPreviousState
Definition Shell.h:258
virtual void vf574()=0
void poisonSplashEffect(const sead::Vector3f &) override
u32 _1908
Definition Shell.h:283
bool _19b8
Definition Shell.h:309
bool preExecute() override
Callback invoked before the execute operation.
u8 _19b9
Definition Shell.h:310
u8 _1984
Definition Shell.h:290
u8 _19ba
Definition Shell.h:311
void yoshiFumiScoreSet(Actor *player) override
virtual void vf60C()=0
u8 _19a2
Definition Shell.h:305
u8 _1986
Definition Shell.h:292
void postExecute(MainState state) override
Callback invoked unconditionally after the execute phase completes. It executes even if preExecute() ...
u8 _1985
Definition Shell.h:291
bool hitCallback_PenguinSlide(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other) override
virtual u32 vf58C(u32, f32)
u32 _1904
Definition Shell.h:282
u32 _18f8
Definition Shell.h:279
u8 _18e2
Definition Shell.h:269
void yoganSplashEffect(const sead::Vector3f &) override
virtual void vf59C()
EffectObj _1a24
Definition Shell.h:314
u32 _18fc
Definition Shell.h:280
u8 _1987
Definition Shell.h:293
bool isFunsui() const override
bool _18e1
Definition Shell.h:268
void setThrowChangeState(Actor *player, bool hard) override
Shell(const ActorCreateParameter &param)
u32 _18f4
Definition Shell.h:278
u16 _18d8
Definition Shell.h:263
u8 _18e3
Definition Shell.h:270
void beginFunsui() override
DrcTouchCB mDrcTouchCallback
Definition Shell.h:288
virtual void vf63C()
virtual void vf57C(Actor *)
bool vf18C() override
u8 _1a8c
Definition Shell.h:315
Definition Shell.h:47
u32 _c
Definition Shell.h:50
u8 _0
Definition Shell.h:48
sead::Vector2f _4
Definition Shell.h:49