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>
15static_assert(
sizeof(BossDrcTouchCB) ==
sizeof(ActorCollisionDrcTouchCallback));
21 SEAD_RTTI_OVERRIDE(
Boss, Enemy)
37 AttentionMgr::instance()->release(mAttentionLookat);
38 ActorCollisionCheckMgr::instance()->release(mCollisionCheckDrcTouch);
39 return cResult_Success;
44 ActorCollisionCheckMgr::instance()->release(mCollisionCheck);
45 ActorCollisionCheckMgr::instance()->release(mCollisionCheckDrcTouch);
50 ActorCollisionCheckMgr::instance()->entry(mCollisionCheck);
51 ActorCollisionCheckMgr::instance()->entry(mCollisionCheckDrcTouch);
57 void getBox_(sead::BoundBox2f& box)
override
60 mPos.x - 48.0f, mPos.y,
61 mPos.x + 48.0f, mPos.y + 96.0f
80 bool hitCallback_Star(ActorCollisionCheck* cc_self, ActorCollisionCheck* cc_other)
override;
82 bool hitCallback_Slip(ActorCollisionCheck* cc_self, ActorCollisionCheck* cc_other)
override
88 bool hitCallback_Spin(ActorCollisionCheck* cc_self, ActorCollisionCheck* cc_other)
override;
102 bool hitCallback_Fire(ActorCollisionCheck* cc_self, ActorCollisionCheck* cc_other)
override;
104 bool hitCallback_Ice(ActorCollisionCheck* cc_self, ActorCollisionCheck* cc_other)
override;
126 DECLARE_STATE_VIRTUAL_ID_OVERRIDE(
Boss, DieFumi)
186 return !mIceMgr.hasIce();
192 mIcePos.y = mPos.y - 2.5f;
195 mIceScale.set(40.0f, 48.0f, 40.0f);
271 createCoinBattleSmallScore_(actor, mPos, 3);
276 createCoinBattleSmallScore_(actor, mPos, 4);
291 changeState(StateID_DieFumi);
300 changeState(StateID_DieFire);
305 setFumiDamage(actor);
321 changeState(StateID_DieSlide);
332 changeState(StateID_DieStar);
341 changeState(StateID_DieQuake);
350 changeState(StateID_DieShell);
439 mAudioObj.startSound(
"SE_BOSS_CMN_STOMPED", mAudioObjSeqVar);
444 mAudioObj.startSound(
"SE_BOSS_CMN_STOMPED_LAST1", mAudioObjSeqVar);
450 mAudioObj.startSound(
"SE_BOSS_CMN_DAMAGE_STAR_DEF", mAudioObjSeqVar);
455 mAudioObj.startSound(
"SE_BOSS_CMN_DAMAGE_STAR_LAST", mAudioObjSeqVar);
461 mAudioObj.startSound(
"SE_BOSS_CMN_DAMAGE_DEF", mAudioObjSeqVar);
466 mAudioObj.startSound(
"SE_BOSS_CMN_DAMAGE_LAST", mAudioObjSeqVar);
471 if (life_IsDmgSection())
472 mAudioObj.startSound(
"SE_BOSS_CMN_DAMAGE_FIRE_DEF", mAudioObjSeqVar);
474 mAudioObj.startSound(
"SE_BOSS_CMN_DAMAGE_FIRE", mAudioObjSeqVar);
479 mAudioObj.startSound(
"SE_BOSS_CMN_DAMAGE_LAST_F_MODE", mAudioObjSeqVar);
480 mAudioObj.startSound(
"SE_BOSS_CMN_DAMAGE_FIRE_LAST", mAudioObjSeqVar);
485 if (life_IsDmgSection())
486 mAudioObj.startSound(
"SE_BOSS_CMN_DAMAGE_FIRE_DEF", mAudioObjSeqVar, nw::snd::OUTPUT_LINE_MAIN | nw::snd::OUTPUT_LINE_DRC);
488 mAudioObj.startSound(
"SE_BOSS_CMN_DAMAGE_FIRE", mAudioObjSeqVar, nw::snd::OUTPUT_LINE_MAIN | nw::snd::OUTPUT_LINE_DRC);
493 mAudioObj.startSound(
"SE_BOSS_CMN_DAMAGE_LAST_F_MODE", mAudioObjSeqVar);
494 mAudioObj.startSound(
"SE_BOSS_CMN_DAMAGE_FIRE_LAST", mAudioObjSeqVar, nw::snd::OUTPUT_LINE_MAIN | nw::snd::OUTPUT_LINE_DRC);
499 mAudioObj.startSound(
"SE_BOSS_CMN_DAMAGE_STAR_DEF", mAudioObjSeqVar);
504 mAudioObj.startSound(
"SE_BOSS_CMN_DAMAGE_LAST_F_MODE", mAudioObjSeqVar);
523 mAttentionLookat.getPos().set(
524 mPos.x + mCenterOffset.x,
525 mPos.y + mCenterOffset.y
582static_assert(
sizeof(
Boss) == 0x1B78);
bool ccSetTouchNormal(ActorCollisionCheck *cc, const sead::Vector2f &pos) override
bool mIsShock
Definition Boss.h:564
virtual void firedmgSE()
Definition Boss.h:469
virtual s32 life_GetDamage_Shell() const =0
virtual void damageLVo()
Definition Boss.h:517
sead::SafeArray< s32, 4 > _1890
Definition Boss.h:566
virtual void setBlockHitDead()
Definition Boss.h:359
virtual bool life_IsTwoDamage() const
Definition Boss.h:213
virtual void damageProc()
Definition Boss.h:369
virtual void setHipatkDamage(Actor *actor)
Definition Boss.h:303
virtual bool isFumiInvalid() const
Definition Boss.h:378
virtual void stardmgSE()
Definition Boss.h:448
bool hitCallback_Spin(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other) override
virtual void vf7EC()
Definition Boss.h:543
virtual void setSlideDamage(Actor *actor)
Definition Boss.h:314
void getBox_(sead::BoundBox2f &box) override
Definition Boss.h:57
virtual void onFreeze()
Definition Boss.h:189
virtual void tenmetsuProc()
Definition Boss.h:245
void removeCollisionCheck() override
Definition Boss.h:42
void postExecute(MainState state) override
Callback invoked unconditionally after the execute phase completes. It executes even if preExecute() ...
f32 mAccelY_PreIce
Definition Boss.h:577
virtual void setQuakeDamage()
Definition Boss.h:335
bool hitCallback_Fire(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other) override
virtual void fumideadSE()
Definition Boss.h:442
virtual void quakedeadSE()
Definition Boss.h:502
bool hitCallback_HipAttk(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other) override
virtual void hitFireEffect()
Definition Boss.h:424
bool hitCallback_Star(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other) override
virtual void setStarDead(Actor *actor)
Definition Boss.h:330
virtual void setFumiDamage(Actor *actor)
Definition Boss.h:285
virtual void shelldmgSE()
Definition Boss.h:459
virtual void setBlockHitDamage()
Definition Boss.h:354
bool isQuakeDamage() override
virtual bool life_IsDmgSection() const
Definition Boss.h:218
void setDeathInfo_Quake(s32) override
virtual void tenmetsuReady()
Definition Boss.h:241
virtual s32 getTenmetsuTime_Shell()
Definition Boss.h:259
virtual void calcModel()
Definition Boss.h:539
ActorCollisionCheck mCollisionCheckDrcTouch
Definition Boss.h:571
bool setTouchDrcDamage_(const sead::Vector2f &pos) override
bool hitCallback_WireNet(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other) override
Definition Boss.h:90
virtual void firedeadSE()
Definition Boss.h:477
virtual bool isFreezeable() const
Definition Boss.h:184
virtual bool isShellInvalid() const
Definition Boss.h:405
virtual void setShellDamage(Actor *actor)
Definition Boss.h:344
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:82
void createCoinBattleSmallScore_(Actor *actor, const sead::Vector3f &pos, u32 type) const
s16 mAudioObjSeqVar
Definition Boss.h:568
virtual s32 life_GetDamage_Star() const =0
virtual void fumiDeadVo()
Definition Boss.h:507
virtual bool isFumiDmgInvalid() const
Definition Boss.h:383
bool createIceActor() override
Callback for spawning ice blocks when frozen by an ice flower.
virtual void setFireDead(Actor *actor)
Definition Boss.h:298
sead::Vector3f mSpeed_PreIce
Definition Boss.h:576
s32 mLifeHP
Definition Boss.h:561
virtual u32 vf6D4()
Definition Boss.h:364
virtual void tenmetsuFin()
Definition Boss.h:249
virtual bool isStarInvalid() const
Definition Boss.h:411
virtual void createCBSmallScoreDead(Actor *actor) const
Definition Boss.h:274
AttentionLookat mAttentionLookat
Definition Boss.h:569
sead::Vector3f mIceScale
Definition Boss.h:574
BossDrcTouchCB mDrcTouchCallback
Definition Boss.h:572
virtual void life_DamageRev(s32 damage)
Definition Boss.h:223
virtual void vf7F4()
Definition Boss.h:547
bool preExecute() override
Callback invoked before the execute operation.
virtual void calcLookatPos()
Definition Boss.h:521
void calcMdl_Base() override
Definition Boss.h:70
virtual void createCBSmallScoreDamage(Actor *actor) const
Definition Boss.h:269
void reviveCollisionCheck() override
Definition Boss.h:48
virtual void iceBreak()
Definition Boss.h:177
u32 _186e_PreIce
Definition Boss.h:580
virtual void setShellDead(Actor *actor)
Definition Boss.h:348
bool hitCallback_Shell(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other) override
EnemyBoyoMgr mBoyoMgr
Definition Boss.h:570
void setDeathInfo_IceBreak() override
Definition Boss.h:108
virtual void hitShellEffect()
Definition Boss.h:429
virtual s32 life_GetDamage_PenguinSlide() const =0
virtual void setFireDamage(Actor *actor)
Definition Boss.h:294
virtual void setQuakeDead()
Definition Boss.h:339
virtual bool life_IsNonDamage() const
Definition Boss.h:201
virtual void setStarDamage(Actor *actor)
Definition Boss.h:325
virtual s32 life_GetDamage_HipAtk() const =0
virtual void fumiProc(Actor *)
virtual bool isFireInvalid() const
Definition Boss.h:393
virtual void setSlideDead(Actor *actor)
Definition Boss.h:319
bool hitCallback_Ice(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other) override
virtual bool life_IsOneDamage() const
Definition Boss.h:207
Result create() override
Main initialization/setup callback for the actor.
s32 _1888
Definition Boss.h:563
u32 _186c_PreIce
Definition Boss.h:579
virtual void setHipatkDead(Actor *actor)
Definition Boss.h:308
virtual void deadAllKill()
void vsYoshiHitCheck_Normal(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other) override
virtual void fumidmgEffect()
Definition Boss.h:420
virtual s32 life_GetDamage_Fumi() const =0
virtual bool isSlideInvalid() const
Definition Boss.h:399
virtual void vf57C()
Definition Boss.h:172
virtual s32 life_GetDamage_Quake() const =0
virtual void stardeadSE()
Definition Boss.h:453
virtual void createModel()
Definition Boss.h:535
virtual bool isIceInvalid() const
Definition Boss.h:388
virtual void shelldeadSE()
Definition Boss.h:464
virtual void setFumiDead(Actor *actor)
Definition Boss.h:289
GameAudio::AudioObjctEmy mAudioObj
Definition Boss.h:567
void fumiScoreSet(Actor *) override
Definition Boss.h:118
virtual void firedeadSE_Drc()
Definition Boss.h:491
virtual void damageSVo()
Definition Boss.h:512
void vsPlayerHitCheck_Normal(ActorCollisionCheck *cc_self, ActorCollisionCheck *cc_other) override
bool mIsDemoWait
Definition Boss.h:565
f32 mAccelF_PreIce
Definition Boss.h:578
sead::Vector3f mIcePos
Definition Boss.h:573
virtual void fumidmgSE()
Definition Boss.h:437
virtual void firedmgSE_Drc()
Definition Boss.h:483
virtual void quakedmgSE()
Definition Boss.h:497
sead::Vector3f mPos_PreIce
Definition Boss.h:575
virtual s32 life_GetDamage_BlockHit() const =0
virtual s32 getTenmetsuTime_Press()
Definition Boss.h:264
virtual bool createInit()
Definition Boss.h:551
virtual void fumideadEffect()
Definition Boss.h:416
void returnState_Ice() override
virtual void deadProc()
Definition Boss.h:373
virtual void vf744()
Definition Boss.h:433
s32 _1884
Definition Boss.h:562
virtual s32 getTenmetsuTime_Fire()
Definition Boss.h:253
Result doDelete() override
Main deletion callback for the actor.
Definition Boss.h:35