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