SMG-Decomp
A decompilation of Super Mario Galaxy 1
Loading...
Searching...
No Matches
PunchingKinoko.hpp
1#pragma once
2
3#include "Game/LiveActor/LiveActor.hpp"
4#include "Game/Map/GroundChecker.hpp"
5#include "Game/Util/JointController.hpp"
6#include "Game/Enemy/AnimScaleController.hpp"
7
8class PunchingKinoko : public LiveActor {
9public:
10 PunchingKinoko(const char *);
12
13 virtual void init(const JMapInfoIter &);
14 virtual void makeActorAppeared();
15 virtual void kill();
16 virtual void makeActorDead();
17 virtual void control();
18 virtual void calcAndSetBaseMtx();
19 virtual void attackSensor(HitSensor *, HitSensor *);
20 virtual bool receiveMsgPush(HitSensor *, HitSensor *);
21 virtual bool receiveMsgPlayerAttack(u32, HitSensor *, HitSensor *);
22 virtual bool receiveMsgEnemyAttack(u32, HitSensor *, HitSensor *);
23
24 void initShadow();
25 void initSensor();
26 void initCamera(const JMapInfoIter &);
27 void initJointControl();
28 void initNerve(const Nerve *);
29
30 bool requestPunch(HitSensor *, HitSensor *);
31 bool requestEnemyBlow(HitSensor *, HitSensor *);
32 bool requestTrample(HitSensor *, HitSensor *);
33 bool requestCrush();
34
35 void exeWait();
36 void exeSwing();
37 void exePointSnaped();
38 void exePunched();
39 void exePunchedBrake();
40 void exeHitted();
41 void exeCrushed();
42 void exeCrushedEnd();
43
44 bool ballMtxCallBack(TPos3f *, const JointControllerInfo &);
45
46 // some callers will only match if these are marked NO_INLINE, even though they aren't being inlined (???)
47 bool isEnablePunched() const;
48 bool isEnableHitPlayer() const NO_INLINE;
49 bool isEnableEnemyAttack() const;
50 bool isEnableCrushed() const;
51 bool isEnableTrample() const;
52 bool isEnableBlowed() const NO_INLINE;
53 bool isCrushed() const NO_INLINE;
54
55 void addVelocityKeepHeight();
56
57private:
58 GroundChecker *mGroundChecker; // _8C
59 AnimScaleController *mScaleController; // _90
61 s32 _98;
62 TVec3f _9C;
63 TVec3f _A8;
64 s32 mStarPointerHitCoolDown; // _B4
65 bool _B8;
66 s32 mInvincibleHitCoolDown; // _BC
67};
68
69namespace NrvPunchingKinoko {
70 NERVE(PunchingKinokoNrvWait);
71 NERVE(PunchingKinokoNrvSwing);
72 NERVE(PunchingKinokoNrvPunched);
73 NERVE(PunchingKinokoNrvPunchedBrake);
74 NERVE(PunchingKinokoNrvHitted);
75 NERVE(PunchingKinokoNrvPointSnaped);
76 NERVE(PunchingKinokoNrvCrushed);
77 NERVE(PunchingKinokoNrvCrushedEnd);
78};
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.