SMG-Decomp
A decompilation of Super Mario Galaxy 1
Loading...
Searching...
No Matches
ShadowController.hpp
1#pragma once
2
3#include <revolution.h>
4#include "Game/LiveActor/LiveActor.hpp"
5#include "Game/Scene/SceneObjHolder.hpp"
6#include "Game/Util.hpp"
7
9class ShadowDrawer;
10
12
14public:
16
17 void addController(ShadowController *);
18 u32 getControllerCount() const;
19 ShadowController* getController(u32) const;
20 ShadowController* getController(const char *) const;
21 void resetCalcCount();
22 void requestCalc();
23
25 LiveActor* mHost; // _C
26};
27
29public:
31
33 virtual void initAfterPlacement();
34 virtual void movement();
35
36 void updateController();
37
40 bool _24;
41 f32 mFarClip; // _28
42};
43
45public:
46 ShadowController(LiveActor *, const char *);
47
48 void requestCalc();
49 void update();
50 void updateFarClipping(f32);
51 void updateDirection();
52 void upateProjection();
53 ShadowDrawer* getShadowDrawer();
54 LiveActor* getHost() const;
55 void setShadowDrawer(ShadowDrawer *);
56 void getDropPos(TVec3f *) const;
57 void getDropDir(TVec3f *) const;
58 f32 getDropLength() const;
59 void getProjectionPos(TVec3f *) const;
60 void getProjectionNormal(TVec3f *) const;
61 f32 getProjectionLength() const;
62 bool isProjected() const;
63 bool isDraw() const;
64 bool isCalcCollision() const;
65 bool isCalcGravity() const;
66 bool isCalcShadowGravity() const;
67 void setGroupName(const char *);
68 void setDropPosPtr(const TVec3f *);
69 void setDropPosMtxPtr(MtxPtr, const TVec3f &);
70 void setDropPosFix(const TVec3f &);
71 void setDropDirPtr(const TVec3f *);
72 void setProjectionPtr(const TVec3f *, const TVec3f *);
73 void setDropDirFix(const TVec3f &);
74 void setDropLength(f32);
75 void setDropStartOffset(f32);
76 void setDropTypeNormal();
77 void setDropTypeSurface();
78 void setProjectionFix(const TVec3f &, const TVec3f &, bool);
79 void onCalcCollision();
80 void offCalcCollision();
81 void onCalcCollisionOneTime();
82 void onCalcDropGravity();
83 void onCalcDropGravityOneTime();
84 void offCalcDropGravity();
85 void onCalcDropPrivateGravity();
86 void onCalcDropPrivateGravityOneTime();
87 void offCalcDropPrivateGravity();
88 void setCollisionPartsFilter(CollisionPartsFilterBase *);
89 void onFollowHostScale();
90 void offFollowHostScale();
91 bool isFollowHostScale() const;
92 void onVisibleSyncHost();
93 void offVisibleSyncHost();
94 void validate();
95 void invalidate();
96
97 void updateProjection();
98
99 inline void appendToHolder() {
100 MR::getSceneObj<ShadowControllerHolder*>(SceneObj_ShadowControllerHolder)->_18.push_back(this);
101 }
102
103 LiveActor* mActor; // _0
104 const char* mName; // _4
105 const char* mGroupName; // _8
106 ShadowDrawer* mDrawer; // _C
107 u32 _10;
108 CollisionPartsFilterBase* mCollisionPartsFilter; // _14
109 MtxPtr _18;
110 MtxPtr _1C;
111 const TVec3f* mDropPos; // _20
112 const TVec3f* mDropDir; // _24
113 TVec3f* mProjPos; // _28
114 TVec3f* mProjNorm; // _2C
115 TVec3f _30;
116 TVec3f _3C;
117 TVec3f _48;
118 TVec3f _54;
119 u8 _60;
120 u8 _61;
121 u8 _62;
122 u8 _63;
123 u8 _64;
124 u8 _65;
125 u8 _66;
126 u8 _67;
127 f32 mStartOffset; // _68
128 f32 mDropLength; // _6C
129 u8 _70;
130 u8 _71;
131 u8 _72;
132};
133
134namespace MR {
135 void addShadowController(ShadowController *);
136 void requestCalcActorShadowAppear(LiveActor *);
137 void requestCalcActorShadow(LiveActor *);
138}
The basis of a drawable actor that can contain states (see: Nerve)
Definition LiveActor.hpp:24
The most basic form of an object.
Definition NameObj.hpp:11