New Super Mario Bros. U Headers
Loading...
Searching...
No Matches
Bomhei.h
Go to the documentation of this file.
1#pragma once
2
3#include <actor/Profile.h>
4#include <collision/ActorCollisionDrcTouchCallback.h>
5#include <effect/EffectObj.h>
6#include <enemy/CarryEnemy.h>
7#include <enemy/EnemyBoyoMgr.h>
8#include <enemy/EnemyChibiYoshiEatData.h>
9#include <enemy/EnemyEatData.h>
10#include <graphics/Light.h>
11#include <map_obj/MaskDraw.h>
12
13// vtbl Address: 0x1005D73C
15{
16public:
18 : _4(0)
19 {
20 }
21
22 // Address: 0x022D053C
23 bool ccSetTouchNormal(ActorCollisionCheck* cc, const sead::Vector2f& pos) override;
24 // Address: 0x022D0584
25 void ccOnTouch(ActorCollisionCheck* cc, const sead::Vector2f& pos) override;
26
27protected:
29};
30static_assert(sizeof(BomheiDrcTouchCB) == 8);
31
32class JointBlendModel;
33class ModelResource;
34
35// vtbl Address: 0x1005D794
36class Bomhei : public CarryEnemy
37{
38 // getRuntimeTypeInfoStatic()::typeInfo initialization guard variable Address: 0x101E9F80
39 // getRuntimeTypeInfoStatic()::typeInfo Address: 0x101E9FC4
40 SEAD_RTTI_OVERRIDE(Bomhei, CarryEnemy)
41
42public:
43 // Address: 0x1005D49C
45
46public:
47 // Address: 0x022D0334
48 Bomhei(const ActorCreateParameter& param);
49 virtual ~Bomhei() { }
50
51protected:
52 // Address: 0x022D159C
53 Result create() override;
54 // Address: 0x022D19B8
56 // Address: 0x022D1BD0
57 bool draw() override;
58 // Address: 0x022D1C38
59 Result doDelete() override;
60
61 // Address: 0x022D2F48
63
64 // Address: 0x022D3C3C
65 bool smokeDamageEnable_Poison_(f32 surface_pos_y) override;
66
67public:
68 // Address: 0x022D3F08
70 // Address: 0x022D3F60
71 void waterSplashEffect(const sead::Vector3f&) override;
72 // Address: 0x022D3F74
73 void yoganSplashEffect(const sead::Vector3f&) override;
74 // Address: 0x022D3F88
75 void poisonSplashEffect(const sead::Vector3f&) override;
76
77 // Address: 0x022D42A8
79
80 // Address: 0x022D2D10
82 // Address: 0x022D2F28
84
86 {
88 }
89
90 // Address: 0x022D2B20
91 bool etcDamageCheck(ActorCollisionCheck* cc_self, ActorCollisionCheck* cc_other) override;
92
93 // Address: 0x022D2274
94 void vsEnemyHitCheck_Normal(ActorCollisionCheck* cc_self, ActorCollisionCheck* cc_other) override;
95 // Address: 0x022D24B0
96 void vsYoshiHitCheck_Normal(ActorCollisionCheck* cc_self, ActorCollisionCheck* cc_other) override;
97
98 // Address: 0x022D2B10
99 bool hitCallback_Spin(ActorCollisionCheck* cc_self, ActorCollisionCheck* cc_other) override;
100 // Address: 0x022D26AC
101 bool hitCallback_HipAttk(ActorCollisionCheck* cc_self, ActorCollisionCheck* cc_other) override;
102 // Address: 0x022D280C
103 bool hitCallback_YoshiHipAttk(ActorCollisionCheck* cc_self, ActorCollisionCheck* cc_other) override;
104 // Address: 0x022D2928
105 bool hitCallback_Fire(ActorCollisionCheck* cc_self, ActorCollisionCheck* cc_other) override;
106 // Address: 0x022D2AB4
107 bool hitCallback_Ice(ActorCollisionCheck* cc_self, ActorCollisionCheck* cc_other) override;
108 // Address: 0x022D2A00
109 bool hitCallback_YoshiFire(ActorCollisionCheck* cc_self, ActorCollisionCheck* cc_other) override;
110
111 // Address: 0x022D214C
112 void fumiScoreSet(Actor*) override;
113
114 // StateID_DieFall Address: 0x101FF288
115 // initializeState_DieFall Address: 0x022D6074
116 // executeState_DieFall Address: 0x022D60A8
117 // finalizeState_DieFall Address: 0x022D60AC
118 DECLARE_STATE_VIRTUAL_ID_OVERRIDE(Bomhei, DieFall)
119 // StateID_Ice Address: 0x101FF2AC
120 // initializeState_Ice Address: 0x022D60B0
121 // executeState_Ice Address: 0x022D60C0
122 // finalizeState_Ice Address: 0x022D60C4
124
125 // Address: 0x022D1FBC
127 // Address: 0x022D20EC
128 void reactSpinFumiProc(Actor*) override;
129 // Address: 0x022D1C94
130 void playerHitCheck_Awake(ActorCollisionCheck* cc_self, ActorCollisionCheck* cc_other) override;
131 // Address: 0x022D30E0
132 void playerHitCheck_Sleep_Base(ActorCollisionCheck* cc_self, ActorCollisionCheck* cc_other) override;
133 // Address: 0x022D4450
134 void setPutOnChangeState(Actor* player) override;
135 // Address: 0x022D4468
136 void setThrowChangeState(Actor* player, bool hard) override;
137
138 // StateID_Carry Address: 0x101FF21C
139 // initializeState_Carry Address: 0x022D512C
140 // executeState_Carry Address: 0x022D5170
141 // finalizeState_Carry Address: 0x022D5290
142 DECLARE_STATE_VIRTUAL_ID_OVERRIDE(Bomhei, Carry)
143 // StateID_Sleep Address: 0x101FF264
144 // initializeState_Sleep Address: 0x022D5E74
145 // executeState_Sleep Address: 0x022D5F1C
146 // finalizeState_Sleep Address: 0x022D6068
148 // StateID_Slide Address: 0x101FF240
149 // initializeState_Slide Address: 0x022D5BF0
150 // executeState_Slide Address: 0x022D5CC0
151 // finalizeState_Slide Address: 0x022D5E58
153
154 // Address: 0x022D3F9C
155 virtual s32 vf574(u32, f32*);
156
157protected:
158 // Address: 0x022D128C
159 void calcMdl_();
160
161public:
162 // StateID_Walk Address: 0x101FF0A8
163 // initializeState_Walk Address: 0x022D46CC
164 // executeState_Walk Address: 0x022D4790
165 // finalizeState_Walk Address: 0x022D7BD8
166 DECLARE_STATE_ID(Bomhei, Walk)
167 // StateID_Turn Address: 0x101FF0C8
168 // initializeState_Turn Address: 0x022D48C0
169 // executeState_Turn Address: 0x022D48DC
170 // finalizeState_Turn Address: 0x022D7BDC
172 // StateID_Wakidashi Address: 0x101FF0E8
173 // initializeState_Wakidashi Address: 0x022D4960
174 // executeState_Wakidashi Address: 0x022D4BC8
175 // finalizeState_Wakidashi Address: 0x022D4C20
177 // StateID_InIceLump Address: 0x101FF108
178 // initializeState_InIceLump Address: 0x022D4C78
179 // executeState_InIceLump Address: 0x022D7BE0
180 // finalizeState_InIceLump Address: 0x022D4D1C
182 // StateID_CannonHop Address: 0x101FF128
183 // initializeState_CannonHop Address: 0x022D4D2C
184 // executeState_CannonHop Address: 0x022D4DA4
185 // finalizeState_CannonHop Address: 0x022D4F28
187 // StateID_Explode Address: 0x101FF148
188 // initializeState_Explode Address: 0x022D4F5C
189 // executeState_Explode Address: 0x022D5048
190 // finalizeState_Explode Address: 0x022D7BE4
192 // StateID_ThrowKoopaJr_Single Address: 0x101FF168
193 // initializeState_ThrowKoopaJr_Single Address: 0x022D52D0
194 // executeState_ThrowKoopaJr_Single Address: 0x022D53FC
195 // finalizeState_ThrowKoopaJr_Single Address: 0x022D5764
197 // StateID_ThrowKoopaJr_Multi Address: 0x101FF188
198 // initializeState_ThrowKoopaJr_Multi Address: 0x022D57A4
199 // executeState_ThrowKoopaJr_Multi Address: 0x022D58DC
200 // finalizeState_ThrowKoopaJr_Multi Address: 0x022D5BB0
202 // StateID_Kick Address: 0x101FF1A8
203 // initializeState_Kick Address: 0x022D60FC
204 // executeState_Kick Address: 0x022D622C
205 // finalizeState_Kick Address: 0x022D6404
207 // StateID_AfterIce Address: 0x101FF1C8
208 // initializeState_AfterIce Address: 0x022D6410
209 // executeState_AfterIce Address: 0x022D6448
210 // finalizeState_AfterIce Address: 0x022D7BE8
212 // StateID_KameckIce Address: 0x101FF1E8
213 // initializeState_KameckIce Address: 0x022D65CC
214 // executeState_KameckIce Address: 0x022D7BEC
215 // finalizeState_KameckIce Address: 0x022D6634
217
218 // Address: 0x022D0680
220 // Address: 0x022D0A30
221 void explode();
222
223protected:
232 u32 _1918; // nybble11 & 4
240 u32 mCoinsLeftToSpawn; // Initialized to 3
253 u32 _1b7c[4 / sizeof(u32)];
254};
255static_assert(sizeof(Bomhei) == 0x1B80);
Definition Bomhei.h:15
bool ccSetTouchNormal(ActorCollisionCheck *cc, const sead::Vector2f &pos) override
void ccOnTouch(ActorCollisionCheck *cc, const sead::Vector2f &pos) override
BomheiDrcTouchCB()
Definition Bomhei.h:17
u32 _4
Definition Bomhei.h:28
Definition Bomhei.h:37
bool execute() override
Main execution/logic callback for the actor. Called every frame (the game runs at exactly 60 FPS).
void yoganSplashEffect(const sead::Vector3f &) override
Light mLight
Definition Bomhei.h:243
Result doDelete() override
bool createIceActor() override
Callback for spawning ice blocks when frozen by an ice flower.
void vsYoshiHitCheck_Normal(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other) override
void reactSpinFumiProc(Actor *) override
bool hitCallback_Ice(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other) override
void setThrowChangeState(Actor *player, bool hard) override
void blockHitInit_() override
void playerHitCheck_Awake(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other) override
s32 mDeleteTimer
Definition Bomhei.h:235
EnemyEatData mEatData
Definition Bomhei.h:228
void allEnemyDeathEffSet() override
ActorCollisionCheck mCollisionCheck2
Definition Bomhei.h:249
void returnState_Ice() override
void poisonSplashEffect(const sead::Vector3f &) override
u32 mKoopaJrBombId
Definition Bomhei.h:252
ModelResource * mModelResource
Definition Bomhei.h:225
bool vf18C() override
bool hitCallback_HipAttk(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other) override
f32 _1a44
Definition Bomhei.h:247
virtual ~Bomhei()
Definition Bomhei.h:49
u32 mBehaviorType
Definition Bomhei.h:230
bool hitCallback_YoshiHipAttk(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other) override
EffectObj mEffect
Definition Bomhei.h:244
void vsEnemyHitCheck_Normal(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other) override
void calcMdl_()
bool smokeDamageEnable_Poison_(f32 surface_pos_y) override
EnemyChibiYoshiEatData mChibiYoshiEatData
Definition Bomhei.h:229
u32 _1b7c[4/sizeof(u32)]
Definition Bomhei.h:253
void playerHitCheck_Sleep_Base(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other) override
s32 mFuseTimer
Definition Bomhei.h:234
bool draw() override
Main rendering callback for the actor. Called every frame (the game runs at exactly 60 FPS).
bool etcDamageCheck(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other) override
s32 mCurrentSklAnimIndex
Definition Bomhei.h:226
u8 _192d
Definition Bomhei.h:238
sead::BitFlag16 mBomHeiFlag
Definition Bomhei.h:227
Result create() override
Main initialization/setup callback for the actor.
Bomhei(const ActorCreateParameter &param)
void explode()
u8 _1b74
Definition Bomhei.h:250
EnemyBoyoMgr mBoyoMgr
Definition Bomhei.h:245
u8 _1b75
Definition Bomhei.h:251
u32 mCoinsLeftToSpawn
Definition Bomhei.h:240
sead::Vector3f _1930
Definition Bomhei.h:239
s32 mSpawnTimer
Definition Bomhei.h:233
bool hitCallback_Spin(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other) override
f32 mLightAttenuation
Definition Bomhei.h:241
CircleLightMask mLightMask
Definition Bomhei.h:242
void calcMdl_Base() override
Definition Bomhei.h:85
bool hitCallback_YoshiFire(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other) override
u32 _1918
Definition Bomhei.h:232
void setPutOnChangeState(Actor *player) override
BomheiDrcTouchCB mDrcTouchCallback
Definition Bomhei.h:246
bool mIsEffectCreated
Definition Bomhei.h:237
u32 _1928
Definition Bomhei.h:236
void waterSplashEffect(const sead::Vector3f &) override
JointBlendModel * mBlendModel
Definition Bomhei.h:224
ActorState * mKoopaJr
Definition Bomhei.h:248
bool hitCallback_Fire(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other) override
u32 mCannonDirection
Definition Bomhei.h:231
void fumiScoreSet(Actor *) override
Definition JointBlendModel.h:7
Definition ModelResource.h:14