SMG-Decomp
A decompilation of Super Mario Galaxy 1
Loading...
Searching...
No Matches
SpinDriver.hpp
1#pragma once
2
3#include "Game/LiveActor/LiveActor.hpp"
4#include "Game/MapObj/SpinDriverCamera.hpp"
5#include "Game/MapObj/SpinDriverShootPath.hpp"
6
7namespace {
8 static s32 cSpaceFlyStartFrame = 0xA;
9 static s32 cSpaceFlyEndFrame = 0x32;
10};
11
12class SpinDriver : public LiveActor {
13public:
14 SpinDriver(const char *);
15
16 virtual ~SpinDriver();
17 virtual void init(const JMapInfoIter &);
18 virtual void initAfterPlacement();
19 virtual void appear();
20 virtual void makeActorAppeared();
21 virtual void makeActorDead();
22 virtual void control();
23 virtual void calcAndSetBaseMtx();
24 virtual bool receiveOtherMsg(u32, HitSensor *, HitSensor *);
25
26 void initParamFromJMapInfo(const JMapInfoIter &);
27 void initShootPath(const JMapInfoIter &);
28 void initEventCamera(const JMapInfoIter &);
29 bool tryStartShoot();
30 bool tryEndCapture();
31 bool tryShoot();
32 bool tryEndShoot();
33 bool tryForceCancel();
34 bool tryEndCoolDown();
35 bool trySwitchOff();
36 void exeNonActive();
37 void exeAppear();
38 void exeWait();
39 void exeCapture();
40 void exeShootStart();
41 void exeShoot();
42 void exeCoolDown();
43 bool startBind(HitSensor *);
44 void cancelBind();
45 void updateBindPosition();
46 void moveBindPosToCenter();
47 void updateBindActorMatrix(f32);
48 void calcBindActorMatrix();
49 void calcParabolicBindPose();
50 void turnBindHead(const TVec3f &, f32);
51 void calcShootMotionTime();
52 void startCamera();
53 void updateCamera();
54 void cancelCamera();
55 void endCamera();
56 bool canStartBind() const NO_INLINE;
57 bool canBind(HitSensor *) const;
58
59 LiveActor* _8C;
60 SpinDriverShootPath* mShootPath; // _90
61 SpinDriverCamera* mSpinDriverCamera; // _94
62 TQuat4f _98;
63 TQuat4f _A8;
64 TVec3f _B8;
65 TVec3f _C4;
66 TVec3f _D0;
67 TVec3f _DC;
68 TVec3f _E8;
69 TVec3f _F4;
70 f32 _100;
71 f32 _104;
72 f32 _108;
73 TVec3f _10C;
74 f32 _118;
75 f32 _11C;
76 f32 _120;
77 s32 _124;
78 u32 _128;
79 u32 _12C;
80 u32 _130;
81 f32 _134;
82 u8 _138;
83 s32 _13C;
84 bool _140;
85 u8 _141;
86 bool _142;
87};
88
89namespace NrvSpinDriver {
90 NERVE(SpinDriverNrvTryDemo);
91 NERVE(SpinDriverNrvNonActive);
92 NERVE(SpinDriverNrvAppear);
93 NERVE(SpinDriverNrvWait);
94 NERVE(SpinDriverNrvCapture);
95 NERVE(SpinDriverNrvShootStart);
96 NERVE(SpinDriverNrvShoot);
97 NERVE(SpinDriverNrvCoolDown);
98};
The basis of a drawable actor that can contain states (see: Nerve)
Definition LiveActor.hpp:24
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.