SMG-Decomp
A decompilation of Super Mario Galaxy 1
Loading...
Searching...
No Matches
SkeletalFishBoss.hpp
1#pragma once
2
3#include "Game/LiveActor/LiveActor.hpp"
4#include "Game/LiveActor/PartsModel.hpp"
5#include "Game/Util/JointController.hpp"
6
14
16public:
17
18 typedef void (SkeletalFishBoss::*SceneFunc)(const void *, void *);
19
20 virtual ~SkeletalFishBoss();
21 virtual void init(const JMapInfoIter &);
22 virtual void initAfterPlacement();
23 virtual void calcAnim();
24 virtual void appear();
25 virtual void makeActorAppeared();
26 virtual void kill();
27 virtual void control();
28 virtual void calcAndSetBaseMtx();
29
30 bool calcJoint(TPos3f *, const JointControllerInfo &);
31 void damage(const HitSensor *, const TVec3f &);
32 void exeSwim();
33 void exeOpen();
34 void exeOpenWait();
35 void exeClose();
36 void exeBite();
37 void exeDamage();
38 void exeDown();
39 void exeDeadDamage();
40 void exeDead();
41 void exeAppearWait();
42 void exeAppearDemo();
43 void exePowerUpDemo();
44 void exeDeadDemo();
45 void exeBreakDemo();
46 void exeDemoWait();
47 void notifyAttack(SkeletalFishGuard *);
48 LiveActor* getCurrentRail();
49 f32 getBodyThickness() const;
50 SkeletalFishBossHead* getHeadActor() const;
51 void initLevelStatus();
52 void initJoint();
53 void initCollision();
54 void initHead();
55 void initScarFlash();
56 void initBreakModel();
57 void initSwitch();
58 void createGuards();
59 void initShadow();
60 void initCamera();
61 void validateCollision();
62 void invalidateCollision();
63 void getMouthSensorCenterPos(TVec3f &, f32);
64 void updateCollision();
65 void powerUp();
66 void startDamageAnim();
67 void calcPlanetCenterPosition();
68 void calcGravityCenter(TVec3f *, const TVec3f &, const TVec3f &);
69 void resetRail();
70 void updateBgm();
71 LiveActor* getCurrentBossRail();
72 void stopScene(const char *, const Nerve *, SceneFunc);
73 void startCamera(const char *);
74 void resetCamera();
75 void playDamageBrk();
76 void startAppearDemo();
77 void endAppearDemo();
78 void startPowerUpDemo();
79 void endPowerUpDemo();
80 void startDeadDemo();
81 void endBreakDemo();
82 bool isEnableToBeDamaged() const;
83
84 JointController* mControllers[0xD];
85 u32 _C0;
86 CollisionParts** mPartsArray; // _C4
87 SkeletalFishBossHead* mBossHead; // _C8
88 SkeletalFishBossScarFlash* mScarFlash; // _CC
89 ModelObj* mBreakModel; // _D0
90 HitSensor* _D4;
91 TPos3f _D8;
92 SkeletalFishRailControl* mRailControl; // _108
93 SkeletalFishBossBattleDirector* mBossDirector; // _10C
94 s32 _110;
95 u32 _114;
96 u32 _118;
97 u32 _11C;
98 TPos3f _120;
99 TPos3f _150;
100 f32 _180;
101 f32 _184;
102 f32 _188;
103 SceneFunc mSceneFunc; // _18C
104 u32 _198;
105 Nerve* _19C;
106 s32 _1A0;
107 s32 _1A4;
108 SkeletalFishBossInfo* mBossInfo; // _1A8
109 SkeletalFishGuardHolder* mGuardHolder; // _1AC
110 u32 _1B0;
111 s32 _1B4;
112};
113
115public:
117
119 virtual void init(const JMapInfoIter &);
120 virtual void appear();
121 virtual void control();
122};
123
125public:
127
128 virtual ~SkeletalFishBossHead();
129 virtual void movement();
130 virtual void calcAnim();
131 virtual void attackSensor(HitSensor *, HitSensor *);
132 virtual bool receiveMsgPlayerAttack(u32, HitSensor *, HitSensor *);
133
134 void updateCollisionMtx();
135 void createSubModel();
136
137 TMtx34f _9C;
138 CollisionParts* _CC;
139 TMtx34f _D0;
140 CollisionParts* _100;
141 ModelObj** _104;
142 u32 _108;
143 ModelObj** _10C;
144 u8 _114;
145};
146
147namespace {
148 NERVE_DECL(SkeletalFishBossNrvSwim, SkeletalFishBoss, SkeletalFishBoss::exeSwim);
149 NERVE_DECL(SkeletalFishBossNrvOpen, SkeletalFishBoss, SkeletalFishBoss::exeOpen);
150 NERVE_DECL(SkeletalFishBossNrvOpenWait, SkeletalFishBoss, SkeletalFishBoss::exeOpenWait);
151 NERVE_DECL(SkeletalFishBossNrvClose, SkeletalFishBoss, SkeletalFishBoss::exeClose);
152 NERVE_DECL(SkeletalFishBossNrvBite, SkeletalFishBoss, SkeletalFishBoss::exeBite);
153 NERVE_DECL(SkeletalFishBossNrvDamage, SkeletalFishBoss, SkeletalFishBoss::exeDamage);
154 NERVE_DECL(SkeletalFishBossNrvDown, SkeletalFishBoss, SkeletalFishBoss::exeDown);
155 NERVE_DECL(SkeletalFishBossNrvDeadDamage, SkeletalFishBoss, SkeletalFishBoss::exeDeadDamage);
156 NERVE_DECL(SkeletalFishBossNrvDead, SkeletalFishBoss, SkeletalFishBoss::exeDead);
157 NERVE_DECL(SkeletalFishBossNrvAppearWait, SkeletalFishBoss, SkeletalFishBoss::exeAppearWait);
158 NERVE_DECL(SkeletalFishBossNrvAppearDemo, SkeletalFishBoss, SkeletalFishBoss::exeAppearDemo);
159 NERVE_DECL(SkeletalFishBossNrvPowerUpDemo, SkeletalFishBoss, SkeletalFishBoss::exePowerUpDemo);
160 NERVE_DECL(SkeletalFishBossNrvDeadDemo, SkeletalFishBoss, SkeletalFishBoss::exeDeadDemo);
161 NERVE_DECL(SkeletalFishBossNrvBreakDemo, SkeletalFishBoss, SkeletalFishBoss::exeBreakDemo);
162 NERVE_DECL(SkeletalFishBossNrvDemoWait, SkeletalFishBoss, SkeletalFishBoss::exeDemoWait);
163};
The basis of a drawable actor that can contain states (see: Nerve)
Definition LiveActor.hpp:24
Used for executing states of a LiveActor.
Definition Nerve.hpp:6
virtual void init(const JMapInfoIter &)
Intializes the NameObj and can set various settings and construct necessary classes.
virtual void calcAndSetBaseMtx()
Calculates and sets the base matrix of the actor.
virtual void init(const JMapInfoIter &)
Intializes the NameObj and can set various settings and construct necessary classes.