SMG-Decomp
A decompilation of Super Mario Galaxy 1
Loading...
Searching...
No Matches
SurfingGuidance.cpp
1#include "Game/Screen/SurfingGuidance.hpp"
2#include "Game/Util.hpp"
3
4SurfingGuidance::SurfingGuidance() : LayoutActor("サーフィンガイダンス", true) {
5 _20 = 0;
6 _24 = 0.0f;
7 _2C = 0;
8}
9
11 MR::connectToSceneLayout(this);
12 initLayoutManager("TiltGuidance", 3);
13 initNerve(&SurfingGuidanceFadeIn::sInstance);
14 _20 = 0;
15 kill();
16}
17
18void SurfingGuidance::activate() {
19 appear();
20}
21
22void SurfingGuidance::levelOffReady() {
23 if (!isNerve(&SurfingGuidanceLevelOffReady::sInstance)) {
24 setNerve(&SurfingGuidanceLevelOffReady::sInstance);
25 }
26}
27
28void SurfingGuidance::levelOffHold() {
29 if (!isNerve(&SurfingGuidanceLevelOffHold::sInstance)) {
30 setNerve(&SurfingGuidanceLevelOffHold::sInstance);
31 }
32}
33
34void SurfingGuidance::levelOffSuccess() {
35 if (!isNerve(&SurfingGuidanceLevelOffSuccess::sInstance)) {
36 setNerve(&SurfingGuidanceLevelOffSuccess::sInstance);
37 }
38}
39
40void SurfingGuidance::turnLeftReady() {
41 if (!isNerve(&SurfingGuidanceTurnLeftReady::sInstance)) {
42 setNerve(&SurfingGuidanceTurnLeftReady::sInstance);
43 }
44}
45
46void SurfingGuidance::turnLeftHold() {
47 if (!isNerve(&SurfingGuidanceTurnLeftHold::sInstance)) {
48 setNerve(&SurfingGuidanceTurnLeftHold::sInstance);
49 }
50}
51
52void SurfingGuidance::turnLeftSuccess() {
53 if (!isNerve(&SurfingGuidanceTurnLeftSuccess::sInstance)) {
54 setNerve(&SurfingGuidanceTurnLeftSuccess::sInstance);
55 }
56}
57
58void SurfingGuidance::turnRightReady() {
59 if (!isNerve(&SurfingGuidanceTurnRightReady::sInstance)) {
60 setNerve(&SurfingGuidanceTurnRightReady::sInstance);
61 }
62}
63
64void SurfingGuidance::turnRightHold() {
65 if (!isNerve(&SurfingGuidanceTurnRightHold::sInstance)) {
66 setNerve(&SurfingGuidanceTurnRightHold::sInstance);
67 }
68}
69
70void SurfingGuidance::turnRightSuccess() {
71 if (!isNerve(&SurfingGuidanceTurnRightSuccess::sInstance)) {
72 setNerve(&SurfingGuidanceTurnRightSuccess::sInstance);
73 }
74}
75
76void SurfingGuidance::deactivate() {
77 if (!isNerve(&SurfingGuidanceFadeOut::sInstance)) {
78 setNerve(&SurfingGuidanceFadeOut::sInstance);
79 }
80}
81
82void SurfingGuidance::exeFadeIn() {
83 if (MR::isFirstStep(this)) {
84 MR::startAnim(this, "Appear", 0);
85 MR::startAnim(this, "Slope", 1);
86 MR::startSystemSE("SE_SY_CTRL_GUIDE_APPEAR", -1, -1);
87 }
88}
89
90void SurfingGuidance::exeLevelOffReady() {
91 if (MR::isFirstStep(this)) {
92 MR::startAnim(this, "Slope", 1);
93 }
94
95 if (MR::isFirstStep(this)) {
96 if (MR::getAnimFrame(this, 1) == 0.0f) {
97 MR::startSystemSE("SE_SY_CTRL_GUIDE_CHANGE2", 0x1F4, -1);
98 }
99 }
100
101 if (MR::getAnimFrame(this, 1) == 85.0f) {
102 MR::startSystemSE("SE_SY_CTRL_GUIDE_CHANGE", 0x3E8, -1);
103 }
104}
105
106void SurfingGuidance::exeTurnLeftReady() {
107 if (MR::isFirstStep(this)) {
108 MR::startAnim(this, "TurnLeft", 1);
109 }
110
111 if (MR::isFirstStep(this)) {
112 if (MR::getAnimFrame(this, 1) == 0.0f) {
113 MR::startSystemSE("SE_SY_CTRL_GUIDE_CHANGE", 0x1F4, -1);
114 }
115 }
116
117 if (MR::getAnimFrame(this, 1) == 35.0f) {
118 MR::startSystemSE("SE_SY_CTRL_GUIDE_CHANGE2", 0x3E8, -1);
119 }
120}
121
122void SurfingGuidance::exeTurnRightReady() {
123 if (MR::isFirstStep(this)) {
124 MR::startAnim(this, "TurnRight", 1);
125 }
126
127 if (MR::isFirstStep(this)) {
128 if (MR::getAnimFrame(this, 1) == 0.0f) {
129 MR::startSystemSE("SE_SY_CTRL_GUIDE_CHANGE", 0x1F4, -1);
130 }
131 }
132
133 if (MR::getAnimFrame(this, 1) == 35.0f) {
134 MR::startSystemSE("SE_SY_CTRL_GUIDE_CHANGE2", 0x3E8, -1);
135 }
136}
137
138void SurfingGuidance::exeFadeOut() {
139 if (MR::isFirstStep(this)) {
140 MR::startAnim(this, "End", 0);
141 }
142
143 if (MR::isAnimStopped(this, 0)) {
144 setNerve(&SurfingGuidanceFadeIn::sInstance);
145 kill();
146 }
147}
148
149SurfingGuidance::~SurfingGuidance() {
150
151}
152
153namespace {
154 INIT_NERVE(SurfingGuidanceFadeIn);
155 INIT_NERVE(SurfingGuidanceLevelOffReady);
156 INIT_NERVE(SurfingGuidanceLevelOffHold);
157 INIT_NERVE(SurfingGuidanceLevelOffSuccess);
158 INIT_NERVE(SurfingGuidanceTurnLeftReady);
159 INIT_NERVE(SurfingGuidanceTurnLeftHold);
160 INIT_NERVE(SurfingGuidanceTurnLeftSuccess);
161 INIT_NERVE(SurfingGuidanceTurnRightReady);
162 INIT_NERVE(SurfingGuidanceTurnRightHold);
163 INIT_NERVE(SurfingGuidanceTurnRightSuccess);
164 INIT_NERVE(SurfingGuidanceFadeOut);
165
166 void SurfingGuidanceFadeOut::execute(Spine *pSpine) const {
167 SurfingGuidance* guide = reinterpret_cast<SurfingGuidance*>(pSpine->mExecutor);
168 guide->exeFadeOut();
169 }
170
171 void SurfingGuidanceTurnRightSuccess::execute(Spine *pSpine) const {
172 SurfingGuidance* guide = reinterpret_cast<SurfingGuidance*>(pSpine->mExecutor);
173
174 if (MR::isFirstStep(guide)) {
175 MR::startAnim(guide, "TurnRightOK", 1);
176 }
177 }
178
179 void SurfingGuidanceTurnRightHold::execute(Spine *pSpine) const {
180 SurfingGuidance* guide = reinterpret_cast<SurfingGuidance*>(pSpine->mExecutor);
181
182 if (MR::isFirstStep(guide)) {
183 MR::startAnim(guide, "TurnRightHold", 1);
184 }
185 }
186
187 void SurfingGuidanceTurnRightReady::execute(Spine *pSpine) const {
188 SurfingGuidance* guide = reinterpret_cast<SurfingGuidance*>(pSpine->mExecutor);
189 guide->exeTurnRightReady();
190 }
191
192 void SurfingGuidanceTurnLeftSuccess::execute(Spine *pSpine) const {
193 SurfingGuidance* guide = reinterpret_cast<SurfingGuidance*>(pSpine->mExecutor);
194
195 if (MR::isFirstStep(guide)) {
196 MR::startAnim(guide, "TurnLeftOK", 1);
197 }
198 }
199
200 void SurfingGuidanceTurnLeftHold::execute(Spine *pSpine) const {
201 SurfingGuidance* guide = reinterpret_cast<SurfingGuidance*>(pSpine->mExecutor);
202
203 if (MR::isFirstStep(guide)) {
204 MR::startAnim(guide, "TurnLeftHold", 1);
205 }
206 }
207
208 void SurfingGuidanceTurnLeftReady::execute(Spine *pSpine) const {
209 SurfingGuidance* guide = reinterpret_cast<SurfingGuidance*>(pSpine->mExecutor);
210 guide->exeTurnLeftReady();
211 }
212
213 void SurfingGuidanceLevelOffSuccess::execute(Spine *pSpine) const {
214 SurfingGuidance* guide = reinterpret_cast<SurfingGuidance*>(pSpine->mExecutor);
215
216 if (MR::isFirstStep(guide)) {
217 MR::startAnim(guide, "SlopeOK", 1);
218 }
219 }
220
221 void SurfingGuidanceLevelOffHold::execute(Spine *pSpine) const {
222 SurfingGuidance* guide = reinterpret_cast<SurfingGuidance*>(pSpine->mExecutor);
223
224 if (MR::isFirstStep(guide)) {
225 MR::startAnim(guide, "SlopeHold", 1);
226 }
227 }
228
229 void SurfingGuidanceLevelOffReady::execute(Spine *pSpine) const {
230 SurfingGuidance* guide = reinterpret_cast<SurfingGuidance*>(pSpine->mExecutor);
231 guide->exeLevelOffReady();
232 }
233
234 void SurfingGuidanceFadeIn::execute(Spine *pSpine) const {
235 SurfingGuidance* guide = reinterpret_cast<SurfingGuidance*>(pSpine->mExecutor);
236 guide->exeFadeIn();
237 }
238}
239
Definition Spine.hpp:9
virtual void init(const JMapInfoIter &)
Intializes the NameObj and can set various settings and construct necessary classes.