SMG-Decomp
A decompilation of Super Mario Galaxy 1
Loading...
Searching...
No Matches
CollectCounter.cpp
1#include "Game/MapObj/CollectCounter.hpp"
2#include "Game/Util.hpp"
3
4CollectCounter::CollectCounter(const char *pName) : LayoutActor(pName, true) {
5 mFollowPosition.x = 0.0f;
6 mFollowPosition.y = 0.0f;
7}
8
10 MR::connectToSceneLayout(this);
11 initLayoutManager("CollectCounter", 1);
12 initNerve(&NrvCollectCounter::CollectCounterNrvHide::sInstance);
13 MR::setFollowPos(mFollowPosition, this, 0);
14 kill();
15}
16
17void CollectCounter::control() {
18 setPosition();
19}
20
21void CollectCounter::setCount(s32 num) {
22 appear();
23 setNerve(&NrvCollectCounter::CollectCounterNrvShow::sInstance);
24 MR::setTextBoxNumberRecursive(this, "CollectCounter", num);
25}
26
27bool CollectCounter::tryEndShow() {
28 if (MR::isAnimStopped(this, 0)) {
29 setNerve(&NrvCollectCounter::CollectCounterNrvHide::sInstance);
30 kill();
31 return true;
32 }
33
34 return false;
35}
36
37void CollectCounter::setPosition() {
38 f32 point_rad = MR::calcPointRadius2D(*MR::getPlayerCenterPos(), 75.0f);
39 TVec2f screen_pos;
40 MR::calcScreenPosition(&screen_pos, *MR::getPlayerCenterPos());
41 screen_pos.y -= point_rad;
42 mFollowPosition.x = screen_pos.x;
43 mFollowPosition.y = screen_pos.y;
44}
45
46CollectCounter::~CollectCounter() {
47
48}
49
50namespace NrvCollectCounter {
51 CollectCounterNrvHide CollectCounterNrvHide::sInstance;
52 CollectCounterNrvShow CollectCounterNrvShow::sInstance;
53
54 void CollectCounterNrvShow::execute(Spine *pSpine) const {
55 CollectCounter* counter = reinterpret_cast<CollectCounter*>(pSpine->mExecutor);
56
57 if (MR::isFirstStep(counter)) {
58 MR::startAnim(counter, "Appear", 0);
59 }
60
61 counter->tryEndShow();
62 }
63
64 void CollectCounterNrvHide::execute(Spine *pSpine) const {
65
66 }
67};
virtual void init(const JMapInfoIter &)
Intializes the NameObj and can set various settings and construct necessary classes.
Definition Spine.hpp:9