New Super Mario Bros. U Headers
Loading...
Searching...
No Matches
Boss.h
Go to the documentation of this file.
1#pragma once
2
3#include <actor/AttentionMgr.h>
4#include <collision/ActorCollisionCheckMgr.h>
5#include <collision/ActorCollisionDrcTouchCallback.h>
6#include <enemy/Enemy.h>
7#include <enemy/EnemyBoyoMgr.h>
8#include <player/PlayerEnum.h>
9
10// vtbl Address: 0x10005E2C
12{
13public:
14 // Address: 0x0202b8c0
15 bool ccSetTouchNormal(ActorCollisionCheck* cc, const sead::Vector2f& pos) override;
16};
17static_assert(sizeof(BossDrcTouchCB) == sizeof(ActorCollisionDrcTouchCallback));
18
19// vtbl Address: 0x1000562C
20class Boss : public Enemy
21{
22 // getRuntimeTypeInfoStatic()::typeInfo initialization guard variable Address: 0x101E9F20
23 // getRuntimeTypeInfoStatic()::typeInfo Address: 0x101E9F24
24 SEAD_RTTI_OVERRIDE(Boss, Enemy)
25
26public:
27 // Address: 0x0202B968
29
30protected:
31 // Address: 0x0202BB68
32 Result create() override;
33 // Address: 0x0202BD0C
35 // Address: 0x0202BDDC
36 void postExecute(MainState state) override;
37
38 Result doDelete() override
39 {
40 AttentionMgr::instance()->release(mAttentionLookat);
41 ActorCollisionCheckMgr::instance()->release(mCollisionCheckDrcTouch);
42 return cResult_Success;
43 }
44
46 {
47 ActorCollisionCheckMgr::instance()->release(mCollisionCheck);
48 ActorCollisionCheckMgr::instance()->release(mCollisionCheckDrcTouch);
49 }
50
52 {
53 ActorCollisionCheckMgr::instance()->entry(mCollisionCheck);
54 ActorCollisionCheckMgr::instance()->entry(mCollisionCheckDrcTouch);
55 }
56
57 // Address: 0x0202CE40
58 bool setTouchDrcDamage_(const sead::Vector3f& pos) override;
59
60 void getBox_(sead::BoundBox2f& box) override
61 {
62 box.set(
63 mPos.x - 48.0f, mPos.y,
64 mPos.x + 48.0f, mPos.y + 96.0f
65 );
66 }
67
68 // Address: 0x0202CEAC
70 // Address: 0x0202CF64
72
74 {
76 }
77
78 // Address: 0x0202BFDC
79 void vsPlayerHitCheck_Normal(ActorCollisionCheck* cc_self, ActorCollisionCheck* cc_other) override;
80 // Address: 0x0202C2B4
81 void vsYoshiHitCheck_Normal(ActorCollisionCheck* cc_self, ActorCollisionCheck* cc_other) override;
82 // Address: 0x0202DCC8
83 bool hitCallback_Star(ActorCollisionCheck* cc_self, ActorCollisionCheck* cc_other) override;
84
85 bool hitCallback_Slip(ActorCollisionCheck* cc_self, ActorCollisionCheck* cc_other) override
86 {
87 return false;
88 }
89
90 // Address: 0x0202C5D0
91 bool hitCallback_Spin(ActorCollisionCheck* cc_self, ActorCollisionCheck* cc_other) override;
92
93 bool hitCallback_WireNet(ActorCollisionCheck* cc_self, ActorCollisionCheck* cc_other) override
94 {
95 return false;
96 }
97
98 // Address: 0x0202C3AC
99 bool hitCallback_HipAttk(ActorCollisionCheck* cc_self, ActorCollisionCheck* cc_other) override;
100 // Address: 0x0202C5E0
101 bool hitCallback_PenguinSlide(ActorCollisionCheck* cc_self, ActorCollisionCheck* cc_other) override;
102 // Address: 0x0202C8E0
103 bool hitCallback_Shell(ActorCollisionCheck* cc_self, ActorCollisionCheck* cc_other) override;
104 // Address: 0x0202C6D4
105 bool hitCallback_Fire(ActorCollisionCheck* cc_self, ActorCollisionCheck* cc_other) override;
106 // Address: 0x0202CBCC
107 bool hitCallback_Ice(ActorCollisionCheck* cc_self, ActorCollisionCheck* cc_other) override;
108
109 // Address: 0x0202CCB0
110 void setDeathInfo_Quake(QuakeDeathType type) override;
111
113 {
114 killIce();
117 }
118
119 // Address: 0x0202CE00
121
122 void fumiScoreSet(Actor*) override
123 {
124 }
125
126 // StateID_DieFumi Address: 0x101F09BC
127 // initializeState_DieFumi Address: 0x0202DC9C
128 // executeState_DieFumi Address: 0x0202DCA0
129 // finalizeState_DieFumi Address: 0x0202DCA4
130 DECLARE_STATE_VIRTUAL_ID_OVERRIDE(Boss, DieFumi)
131
132public:
133 // StateID_DieFire Address: 0x101F09E0
134 // initializeState_DieFire Address: 0x0202BECC
135 // executeState_DieFire Address: 0x0202BEDC
136 // finalizeState_DieFire Address: 0x0202BEEC
138 // StateID_DieSlide Address: 0x101F0A04
139 // initializeState_DieSlide Address: 0x0202BEFC
140 // executeState_DieSlide Address: 0x0202BF0C
141 // finalizeState_DieSlide Address: 0x0202BF1C
143 // StateID_DieShell Address: 0x101F0A28
144 // initializeState_DieShell Address: 0x0202BF2C
145 // executeState_DieShell Address: 0x0202BF3C
146 // finalizeState_DieShell Address: 0x0202BF4C
148 // StateID_DieStar Address: 0x101F0A4C
149 // initializeState_DieStar Address: 0x0202BF5C
150 // executeState_DieStar Address: 0x0202BF6C
151 // finalizeState_DieStar Address: 0x0202BF7C
153 // StateID_DieQuake Address: 0x101F0A70
154 // initializeState_DieQuake Address: 0x0202BF8C
155 // executeState_DieQuake Address: 0x0202BF9C
156 // finalizeState_DieQuake Address: 0x0202BFAC
158
159 virtual void enterDemo()
160 {
161 mIsDemoWait = true;
162 }
163
164 virtual void exitDemo()
165 {
166 mIsDemoWait = false;
167 }
168
169 virtual void vf56C()
170 {
171 }
172
173 // Address: 0x0202BFBC
174 virtual void startBattleEdDemo();
175
176 virtual void vf57C()
177 {
178 }
179
180 // Address: Deleted
181 virtual void iceBreak()
182 {
183 killIce();
186 }
187
188 virtual bool isFreezeable() const
189 {
190 return !mIceMgr.hasIce();
191 }
192
193 virtual void onFreeze()
194 {
195 mIcePos.x = mPos.x;
196 mIcePos.y = mPos.y - 2.5f;
197 mIcePos.z = mPos.z;
198
199 mIceScale.set(40.0f, 48.0f, 40.0f);
200 }
201
202 // ------------------------------------ BossLife ------------------------------------ //
203
204 // Address: Deleted
205 virtual bool life_IsNonDamage() const
206 {
207 return false;
208 }
209
210 // Address: Deleted
211 virtual bool life_IsOneDamage() const
212 {
213 return false;
214 }
215
216 // Address: Deleted
217 virtual bool life_IsTwoDamage() const
218 {
219 return false;
220 }
221
222 virtual bool life_IsDmgSection() const
223 {
224 return false;
225 }
226
227 virtual void life_DamageRev(s32 damage)
228 {
229 mLifeHP -= damage;
230 if (mLifeHP <= 0)
231 mLifeHP = 0;
232 }
233
234 virtual s32 life_GetDamage_Fire() const = 0;
235 virtual s32 life_GetDamage_Fumi() const = 0;
236 virtual s32 life_GetDamage_HipAtk() const = 0;
237 virtual s32 life_GetDamage_Star() const = 0;
238 virtual s32 life_GetDamage_PenguinSlide() const = 0;
239 virtual s32 life_GetDamage_BlockHit() const = 0;
240 virtual s32 life_GetDamage_Shell() const = 0;
241 virtual s32 life_GetDamage_Quake() const = 0;
242
243 // ---------------------------------------------------------------------------------------- //
244
245 virtual void tenmetsuReady()
246 {
247 }
248
249 virtual void tenmetsuProc()
250 {
251 }
252
253 virtual void tenmetsuFin()
254 {
255 }
256
258 {
259 return 24;
260 }
261
262 // Address: Deleted
264 {
265 return 24;
266 }
267
269 {
270 return 24;
271 }
272
273 virtual void createCBSmallScoreDamage(Actor* actor) const
274 {
275 createCoinBattleSmallScore_(actor, mPos, 3);
276 }
277
278 virtual void createCBSmallScoreDead(Actor* actor) const
279 {
280 createCoinBattleSmallScore_(actor, mPos, 4);
281 }
282
283 // Address: 0x0202D120
284 virtual void deadAllKill();
285
286 // Address: 0x0202D214
287 virtual void fumiProc(Actor*);
288
289 virtual void setFumiDamage(Actor* actor)
290 {
291 }
292
293 virtual void setFumiDead(Actor* actor)
294 {
295 changeState(StateID_DieFumi);
296 }
297
298 virtual void setFireDamage(Actor* actor)
299 {
300 }
301
302 virtual void setFireDead(Actor* actor)
303 {
304 changeState(StateID_DieFire);
305 }
306
307 virtual void setHipatkDamage(Actor* actor)
308 {
309 setFumiDamage(actor);
310 }
311
312 virtual void setHipatkDead(Actor* actor)
313 {
314 setFumiDead(actor);
315 }
316
317 // Address: Deleted
318 virtual void setSlideDamage(Actor* actor)
319 {
320 }
321
322 // Address: Deleted
323 virtual void setSlideDead(Actor* actor)
324 {
325 changeState(StateID_DieSlide);
326 }
327
328 // Address: Deleted
329 virtual void setStarDamage(Actor* actor)
330 {
331 }
332
333 // Address: Deleted
334 virtual void setStarDead(Actor* actor)
335 {
336 changeState(StateID_DieStar);
337 }
338
339 virtual void setQuakeDamage()
340 {
341 }
342
343 virtual void setQuakeDead()
344 {
345 changeState(StateID_DieQuake);
346 }
347
348 virtual void setShellDamage(Actor* actor)
349 {
350 }
351
352 virtual void setShellDead(Actor* actor)
353 {
354 changeState(StateID_DieShell);
355 }
356
357 // Address: Deleted
358 virtual void setBlockHitDamage() // I think
359 {
360 }
361
362 // Address: Deleted
363 virtual void setBlockHitDead() // I think
364 {
366 }
367
368 virtual u32 vf6D4()
369 {
370 return 1;
371 }
372
373 virtual void damageProc()
374 {
375 }
376
377 virtual void deadProc()
378 {
379 startBattleEdDemo();
380 }
381
382 virtual bool isFumiInvalid() const
383 {
384 return false;
385 }
386
387 virtual bool isFumiDmgInvalid() const
388 {
389 return false;
390 }
391
392 virtual bool isIceInvalid() const
393 {
394 return false;
395 }
396
397 virtual bool isFireInvalid() const
398 {
399 return false;
400 }
401
402 // Address: Deleted
403 virtual bool isSlideInvalid() const
404 {
405 return true;
406 }
407
408 // Address: Deleted
409 virtual bool isShellInvalid() const
410 {
411 return false;
412 }
413
414 // Address: Deleted
415 virtual bool isStarInvalid() const
416 {
417 return false;
418 }
419
420 virtual void fumideadEffect()
421 {
422 }
423
424 virtual void fumidmgEffect()
425 {
426 }
427
428 virtual void hitFireEffect()
429 {
430 }
431
432 // Address: Deleted
433 virtual void hitShellEffect()
434 {
435 }
436
437 virtual void vf744()
438 {
439 }
440
441 virtual void fumidmgSE()
442 {
443 mAudioObj.startSound("SE_BOSS_CMN_STOMPED", mAudioObjSeqVar);
444 }
445
446 virtual void fumideadSE()
447 {
448 mAudioObj.startSound("SE_BOSS_CMN_STOMPED_LAST1", mAudioObjSeqVar);
449 }
450
451 // Address: Deleted
452 virtual void stardmgSE()
453 {
454 mAudioObj.startSound("SE_BOSS_CMN_DAMAGE_STAR_DEF", mAudioObjSeqVar);
455 }
456
457 virtual void stardeadSE()
458 {
459 mAudioObj.startSound("SE_BOSS_CMN_DAMAGE_STAR_LAST", mAudioObjSeqVar);
460 }
461
462 // Address: Deleted
463 virtual void shelldmgSE()
464 {
465 mAudioObj.startSound("SE_BOSS_CMN_DAMAGE_DEF", mAudioObjSeqVar);
466 }
467
468 virtual void shelldeadSE()
469 {
470 mAudioObj.startSound("SE_BOSS_CMN_DAMAGE_LAST", mAudioObjSeqVar);
471 }
472
473 virtual void firedmgSE()
474 {
475 if (life_IsDmgSection())
476 mAudioObj.startSound("SE_BOSS_CMN_DAMAGE_FIRE_DEF", mAudioObjSeqVar);
477 else
478 mAudioObj.startSound("SE_BOSS_CMN_DAMAGE_FIRE", mAudioObjSeqVar);
479 }
480
481 virtual void firedeadSE()
482 {
483 mAudioObj.startSound("SE_BOSS_CMN_DAMAGE_LAST_F_MODE", mAudioObjSeqVar);
484 mAudioObj.startSound("SE_BOSS_CMN_DAMAGE_FIRE_LAST", mAudioObjSeqVar);
485 }
486
487 virtual void firedmgSE_Drc()
488 {
489 if (life_IsDmgSection())
490 mAudioObj.startSound("SE_BOSS_CMN_DAMAGE_FIRE_DEF", mAudioObjSeqVar, nw::snd::OUTPUT_LINE_MAIN | nw::snd::OUTPUT_LINE_DRC);
491 else
492 mAudioObj.startSound("SE_BOSS_CMN_DAMAGE_FIRE", mAudioObjSeqVar, nw::snd::OUTPUT_LINE_MAIN | nw::snd::OUTPUT_LINE_DRC);
493 }
494
495 virtual void firedeadSE_Drc()
496 {
497 mAudioObj.startSound("SE_BOSS_CMN_DAMAGE_LAST_F_MODE", mAudioObjSeqVar);
498 mAudioObj.startSound("SE_BOSS_CMN_DAMAGE_FIRE_LAST", mAudioObjSeqVar, nw::snd::OUTPUT_LINE_MAIN | nw::snd::OUTPUT_LINE_DRC);
499 }
500
501 virtual void quakedmgSE()
502 {
503 mAudioObj.startSound("SE_BOSS_CMN_DAMAGE_STAR_DEF", mAudioObjSeqVar);
504 }
505
506 virtual void quakedeadSE()
507 {
508 mAudioObj.startSound("SE_BOSS_CMN_DAMAGE_LAST_F_MODE", mAudioObjSeqVar);
509 }
510
511 virtual void fumiDeadVo()
512 {
513 }
514
515 // Address: Deleted
516 virtual void damageSVo()
517 {
518 }
519
520 // Address: Deleted
521 virtual void damageLVo()
522 {
523 }
524
525 virtual void calcLookatPos()
526 {
527 mAttentionLookat.getPos().set(
528 mPos.x + mCenterOffset.x,
529 mPos.y + mCenterOffset.y
530 );
531 }
532
533 // Address: 0x0202D3BC
534 virtual bool vf7CC();
535
536 // Address: 0x0202D3F4
537 virtual void initCcDrcTouch();
538
539 virtual void createModel()
540 {
541 }
542
543 virtual void calcModel()
544 {
545 }
546
547 virtual void vf7EC()
548 {
549 }
550
551 virtual void vf7F4()
552 {
553 }
554
555 virtual bool createInit()
556 {
557 return true;
558 }
559
560protected:
561 // Address: 0x0202D0F8
562 void createCoinBattleSmallScore_(Actor* actor, const sead::Vector3f& pos, u32 type) const;
563
564protected:
566 s32 _1884; // Supposedly the number of fireball hits required to take damage
567 s32 _1888; // Unknown counter
568 bool mIsShock; // Is currently shocked from a quake
571 s32,
588};
589static_assert(sizeof(Boss) == 0x1B78);
Definition Boss.h:12
bool ccSetTouchNormal(ActorCollisionCheck *cc, const sead::Vector2f &pos) override
Definition Boss.h:21
bool mIsShock
Definition Boss.h:568
virtual void firedmgSE()
Definition Boss.h:473
virtual s32 life_GetDamage_Shell() const =0
virtual void damageLVo()
Definition Boss.h:521
u32 mStateTimer_PreIce
Definition Boss.h:586
virtual bool vf7CC()
virtual void setBlockHitDead()
Definition Boss.h:363
virtual bool life_IsTwoDamage() const
Definition Boss.h:217
virtual void damageProc()
Definition Boss.h:373
virtual void setHipatkDamage(Actor *actor)
Definition Boss.h:307
virtual bool isFumiInvalid() const
Definition Boss.h:382
virtual void stardmgSE()
Definition Boss.h:452
bool hitCallback_Spin(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other) override
virtual void vf7EC()
Definition Boss.h:547
virtual void setSlideDamage(Actor *actor)
Definition Boss.h:318
void getBox_(sead::BoundBox2f &box) override
Definition Boss.h:60
virtual void onFreeze()
Definition Boss.h:193
virtual void tenmetsuProc()
Definition Boss.h:249
void removeCollisionCheck() override
Definition Boss.h:45
void postExecute(MainState state) override
Callback invoked unconditionally after the execute phase completes. It executes even if preExecute() ...
virtual void setQuakeDamage()
Definition Boss.h:339
bool hitCallback_Fire(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other) override
virtual void fumideadSE()
Definition Boss.h:446
virtual void quakedeadSE()
Definition Boss.h:506
bool hitCallback_HipAttk(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other) override
virtual void hitFireEffect()
Definition Boss.h:428
bool hitCallback_Star(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other) override
virtual void setStarDead(Actor *actor)
Definition Boss.h:334
virtual void setFumiDamage(Actor *actor)
Definition Boss.h:289
virtual void shelldmgSE()
Definition Boss.h:463
virtual void setBlockHitDamage()
Definition Boss.h:358
bool isQuakeDamage() override
virtual bool life_IsDmgSection() const
Definition Boss.h:222
virtual void tenmetsuReady()
Definition Boss.h:245
virtual s32 getTenmetsuTime_Shell()
Definition Boss.h:263
virtual void calcModel()
Definition Boss.h:543
ActorCollisionCheck mCollisionCheckDrcTouch
Definition Boss.h:578
bool hitCallback_WireNet(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other) override
Definition Boss.h:93
virtual void firedeadSE()
Definition Boss.h:481
virtual bool isFreezeable() const
Definition Boss.h:188
virtual bool isShellInvalid() const
Definition Boss.h:409
virtual void setShellDamage(Actor *actor)
Definition Boss.h:348
virtual void initCcDrcTouch()
virtual s32 life_GetDamage_Fire() const =0
bool hitCallback_PenguinSlide(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other) override
bool hitCallback_Slip(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other) override
Definition Boss.h:85
void createCoinBattleSmallScore_(Actor *actor, const sead::Vector3f &pos, u32 type) const
s16 mAudioObjSeqVar
Definition Boss.h:575
virtual s32 life_GetDamage_Star() const =0
virtual void fumiDeadVo()
Definition Boss.h:511
virtual bool isFumiDmgInvalid() const
Definition Boss.h:387
bool createIceActor() override
Callback for spawning ice blocks when frozen by an ice flower.
virtual void setFireDead(Actor *actor)
Definition Boss.h:302
sead::Vector3f mSpeed_PreIce
Definition Boss.h:583
s32 mLifeHP
Definition Boss.h:565
virtual u32 vf6D4()
Definition Boss.h:368
virtual void tenmetsuFin()
Definition Boss.h:253
virtual bool isStarInvalid() const
Definition Boss.h:415
virtual void createCBSmallScoreDead(Actor *actor) const
Definition Boss.h:278
sead::Vector3f mIceScale
Definition Boss.h:581
BossDrcTouchCB mDrcTouchCallback
Definition Boss.h:579
virtual void life_DamageRev(s32 damage)
Definition Boss.h:227
virtual void vf7F4()
Definition Boss.h:551
bool preExecute() override
Callback invoked before the execute operation.
f32 mGravity_PreIce
Definition Boss.h:584
sead::SafeArray< s32, cPlayerNum > _1890
Definition Boss.h:573
virtual void calcLookatPos()
Definition Boss.h:525
void calcMdl_Base() override
Definition Boss.h:73
virtual void createCBSmallScoreDamage(Actor *actor) const
Definition Boss.h:273
void reviveCollisionCheck() override
Definition Boss.h:51
f32 mPow_PreIce
Definition Boss.h:585
virtual void iceBreak()
Definition Boss.h:181
virtual void setShellDead(Actor *actor)
Definition Boss.h:352
bool hitCallback_Shell(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other) override
EnemyBoyoMgr mBoyoMgr
Definition Boss.h:577
void setDeathInfo_IceBreak() override
Definition Boss.h:112
virtual void hitShellEffect()
Definition Boss.h:433
virtual s32 life_GetDamage_PenguinSlide() const =0
bool setTouchDrcDamage_(const sead::Vector3f &pos) override
virtual void setFireDamage(Actor *actor)
Definition Boss.h:298
virtual void setQuakeDead()
Definition Boss.h:343
virtual bool life_IsNonDamage() const
Definition Boss.h:205
virtual void setStarDamage(Actor *actor)
Definition Boss.h:329
virtual s32 life_GetDamage_HipAtk() const =0
virtual void fumiProc(Actor *)
virtual bool isFireInvalid() const
Definition Boss.h:397
virtual void setSlideDead(Actor *actor)
Definition Boss.h:323
bool hitCallback_Ice(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other) override
virtual bool life_IsOneDamage() const
Definition Boss.h:211
Result create() override
Main initialization/setup callback for the actor.
s32 _1888
Definition Boss.h:567
virtual void setHipatkDead(Actor *actor)
Definition Boss.h:312
virtual void deadAllKill()
void vsYoshiHitCheck_Normal(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other) override
virtual void fumidmgEffect()
Definition Boss.h:424
virtual s32 life_GetDamage_Fumi() const =0
virtual bool isSlideInvalid() const
Definition Boss.h:403
virtual void vf57C()
Definition Boss.h:176
virtual s32 life_GetDamage_Quake() const =0
virtual void stardeadSE()
Definition Boss.h:457
virtual void createModel()
Definition Boss.h:539
AttentionInfo mAttentionLookat
Definition Boss.h:576
virtual bool isIceInvalid() const
Definition Boss.h:392
virtual void shelldeadSE()
Definition Boss.h:468
virtual void setFumiDead(Actor *actor)
Definition Boss.h:293
GameAudio::AudioObjctEmy mAudioObj
Definition Boss.h:574
void fumiScoreSet(Actor *) override
Definition Boss.h:122
virtual void firedeadSE_Drc()
Definition Boss.h:495
virtual void damageSVo()
Definition Boss.h:516
void vsPlayerHitCheck_Normal(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other) override
bool mIsDemoWait
Definition Boss.h:569
sead::Vector3f mIcePos
Definition Boss.h:580
virtual void fumidmgSE()
Definition Boss.h:441
virtual void firedmgSE_Drc()
Definition Boss.h:487
virtual void quakedmgSE()
Definition Boss.h:501
void setDeathInfo_Quake(QuakeDeathType type) override
sead::Vector3f mPos_PreIce
Definition Boss.h:582
virtual s32 life_GetDamage_BlockHit() const =0
virtual s32 getTenmetsuTime_Press()
Definition Boss.h:268
virtual bool createInit()
Definition Boss.h:555
virtual void fumideadEffect()
Definition Boss.h:420
void returnState_Ice() override
virtual void deadProc()
Definition Boss.h:377
virtual void vf744()
Definition Boss.h:437
s32 _1884
Definition Boss.h:566
virtual s32 getTenmetsuTime_Fire()
Definition Boss.h:257
Result doDelete() override
Definition Boss.h:38
u32 mStateSubTimer_PreIce
Definition Boss.h:587