SMG-Decomp
A decompilation of Super Mario Galaxy 1
Loading...
Searching...
No Matches
SimpleMapObj.cpp
1#include "Game/MapObj/SimpleMapObj.hpp"
2
3void SimpleMapObj::init(const JMapInfoIter &rIter) {
6 MapObjActorUtil::setupInitInfoSimpleMapObj(&info);
7 MapObjActorUtil::setupInitInfoTypical(&info, mObjectName);
8 MapObjActorUtil::setupInitInfoColorChangeArg0(&info, rIter);
9 MapObjActorUtil::setupInitInfoTextureChangeArg1(&info, rIter);
10 MapObjActorUtil::setupInitInfoShadowLengthArg2(&info, rIter);
11 initialize(rIter, info);
12}
13
14void SimpleEnvironmentObj::connectToScene(const MapObjActorInitInfo &rInfo) {
15 if (rInfo.mConnectToScene) {
16 if (rInfo._5C == 1) {
17 MR::connectToSceneEnvironmentStrongLight(this);
18 return;
19 }
20 else if (rInfo._5C != 1) {
21 MR::connectToSceneEnvironment(this);
22 return;
23 }
24 }
25}
26
28 SimpleMapObj::init(rIter);
29 MR::setClippingFarMax(this);
30}
31
32void SimpleMapObjNoSilhouetted::connectToScene(const MapObjActorInitInfo &rInfo) {
33 if (rInfo.mConnectToScene) {
34 if (rInfo._5C == 1) {
35 MR::connectToSceneNoSilhouettedMapObjStrongLight(this);
36 return;
37 }
38 else if (rInfo._5C != 1) {
39 MR::connectToSceneNoSilhouettedMapObj(this);
40 return;
41 }
42 }
43}
44
45void SimpleTextureSwitchChangeObj::initCaseUseSwitchA(const MapObjActorInitInfo &rInfo) {
47 MR::listenStageSwitchOnA(this, func);
48}
49
50void GlaringLight::connectToScene(const MapObjActorInitInfo &rInfo) {
51 if (rInfo.mConnectToScene) {
52 MR::connectToScene(this, 0x22, 5, 0x22, -1);
53 }
54}
55
56SimpleMirrorObj::SimpleMirrorObj(const char *pName, const char *a2, MtxPtr mtx) : MapObjActor(pName) {
57 mMtx = mtx;
58 MR::createMirrorCamera();
59}
60
62 if (!mMtx) {
64 }
65 else {
66 TPos3f reflectionPos;
67 reflectionPos.set(mMtx);
68 MR::setMirrorReflectionInfoFromMtxYUp(reflectionPos);
69 f32 z = reflectionPos.mMtx[2][3];
70 f32 y = reflectionPos.mMtx[1][3];
71 f32 x = reflectionPos.mMtx[0][3];
72 mPosition.set(x, y, z);
73 MR::setBaseTRMtx(this, mMtx);
74 }
75}
76
78 SimpleMapObj::init(rIter);
79 MR::invalidateClipping(this);
80}
81
82void SimpleMirrorReflectionObj::connectToScene(const MapObjActorInitInfo &rInfo) {
83 MR::connectToSceneMirrorMapObjNoMovement(this);
84}
85
86namespace {
87 const SoundEffectDataEntry* getSeParam(const char *pName) {
88 for (u32 i = 0; i < 8; i++) {
89 if (MR::isEqualString(pName, sSeDataTable[i].objectName)) {
90 return &sSeDataTable[i];
91 }
92 }
93
94 return nullptr;
95 }
96};
97
98SimpleSeesawObj::SimpleSeesawObj(const char *pName) : MapObjActor(pName) {
99 _C4.identity();
100}
101
103 MapObjActor::init(rIter);
105 MapObjActorUtil::setupInitInfoSimpleMapObj(&info);
106 const SoundEffectDataEntry* entry = getSeParam(mObjectName);
107 const char* sound_name = entry != nullptr ? entry->soundName : nullptr;
108 entry = getSeParam(mObjectName);
109 MapObjActorUtil::setupInitInfoSeesaw(&info, rIter, sound_name, entry != nullptr ? entry->_8 : 0.0f);
110 initialize(rIter, info);
111}
112
113void SimpleSeesawObj::control() {
114 MapObjActor::control();
115}
116
117void SimpleMapObjPush::attackSensor(HitSensor *a1, HitSensor *a2) {
118 if (MR::isSensorPlayer(a2)) {
119 MR::sendMsgPush(a2, a1);
120 }
121}
122
124 MapObjActor::init(rIter);
126 info.setupFarClipping(-1.0f);
127 MapObjActorUtil::setupInitInfoSimpleMapObj(&info);
128 MapObjActorUtil::setupInitInfoColorChangeArg0(&info, rIter);
129 MapObjActorUtil::setupInitInfoTextureChangeArg1(&info, rIter);
130 MapObjActorUtil::setupInitInfoShadowLengthArg2(&info, rIter);
131
132 if (MR::isEqualString("UFOKinokoUnderConstruction", mObjectName)) {
133
134 if (MR::isUFOKinokoUnderConstruction()) {
135 info.mModelName = "UFOKinokoUnderConstruction";
136 }
137 else {
138 info.mModelName = "UFOKinokoLandingAstro";
139 }
140 }
141
142 initialize(rIter, info);
143 if (MR::isUFOKinokoBeforeConstruction()) {
144 makeActorDead();
145 }
146}
147
148namespace MR {
149 void makeArchiveListUFOKinokoUnderConstruction(NameObjArchiveListCollector *pArchiveList, const JMapInfoIter &rIter) {
150 const char* archive;
151
152 if (MR::isUFOKinokoBeforeConstruction()) {
153 archive = "UFOKinokoUnderConstruction";
154 }
155 else {
156 archive = "UFOKinokoLandingAstro";
157 }
158
159 pArchiveList->addArchive(archive);
160 }
161};
162
164 MapObjActor::init(rIter);
166 MapObjActorUtil::setupInitInfoSimpleMapObj(&info);
167 info.setupHioNode("環境");
168 initialize(rIter, info);
169}
170
171void SimpleTextureSwitchChangeObj::changeTexture() {
172 MR::startBtk(this, "TexChange");
173 MR::setBtkFrameAndStop(this, getChangedTextureNo());
174}
175
177 MapObjActor::init(rIter);
179 bool hasMtx = false;
180
181 if (!mMtx) {
182 MapObjActorUtil::setupInitInfoSimpleMapObj(&info);
183 }
184 else {
185 info.setupHioNode("地形オブジェ");
186 info.setupConnectToScene();
187 info.setupEffect(nullptr);
188 info.setupSound(4);
189 info.setupGroupClipping(0x80);
190 info.setupDefaultPos();
191 hasMtx = true;
192 }
193
194 info.setupMirrorReflection(hasMtx);
195 initialize(rIter, info);
196 MR::invalidateClipping(this);
197}
198
199s32 SimpleTextureSwitchChangeObj::getChangedTextureNo() const {
200 return 1;
201}
202
203SimpleEnvironmentObj::~SimpleEnvironmentObj() {
204
205}
206
207SimpleMapObjNoSilhouetted::~SimpleMapObjNoSilhouetted() {
208
209}
210
211SimpleTextureSwitchChangeObj::~SimpleTextureSwitchChangeObj() {
212
213}
214
215GlaringLight::~GlaringLight() {
216
217}
218
219SimpleMirrorObj::~SimpleMirrorObj() {
220
221}
222
223SimpleMirrorReflectionObj::~SimpleMirrorReflectionObj() {
224
225}
226
227SimpleSeesawObj::~SimpleSeesawObj() {
228
229}
230
231SimpleMapObjPush::~SimpleMapObjPush() {
232
233}
234
235UFOKinokoUnderConstruction::~UFOKinokoUnderConstruction() {
236
237}
TVec3f mPosition
3D vector of the actor's position.
Definition LiveActor.hpp:95
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.
Stores archive names of NameObjs.
virtual void init(const JMapInfoIter &)
Intializes the NameObj and can set various settings and construct necessary classes.
virtual void init(const JMapInfoIter &)
Intializes the NameObj and can set various settings and construct necessary classes.
virtual void init(const JMapInfoIter &)
Intializes the NameObj and can set various settings and construct necessary classes.
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.
virtual void init(const JMapInfoIter &)
Intializes the NameObj and can set various settings and construct necessary classes.
virtual void init(const JMapInfoIter &)
Intializes the NameObj and can set various settings and construct necessary classes.