SMG-Decomp
A decompilation of Super Mario Galaxy 1
Loading...
Searching...
No Matches
StarPieceCounter.cpp
1#include "Game/Screen/StarPieceCounter.hpp"
2
3StarPieceCounter::StarPieceCounter(const char *pName) : LayoutActor(pName, true) {
4 mStarPieceNum = 0;
5 _24 = 0;
6 _28 = 0;
7 mAppearer = nullptr;
8 mPaneRumbler = nullptr;
9 mFollowPos.x = 0.0f;
10 mFollowPos.y = 0.0f;
11 _3C = 0;
12 _40 = 0;
13}
14
16 initLayoutManager("StarPieceCounter", 3);
17 MR::createAndAddPaneCtrl(this, "TSPieceCounter", 1);
18 MR::setFollowPos(&mFollowPos, this, "TSPieceCounter");
19 mPaneRumbler = new CountUpPaneRumbler(this, "TCounter");
20 mAppearer = new CounterLayoutAppearer(this, TVec2f(0.0f, 30.0f));
21
22 if (!MR::isStageAstroLocation()) {
23 MR::createAndAddPaneCtrl(this, "StarPieceCounter", 1);
24 MR::setFollowPos(&mFollowPos, this, "StarPieceCounter");
25 mPaneRumbler->connectPane(this, "Counter");
26 }
27
28 initEffectKeeper(0, nullptr, nullptr);
29 s32 pieceNum = MR::getStarPieceNum();
30 mStarPieceNum = pieceNum;
31 _24 = pieceNum;
32 initNerve(&NrvStarPieceCounter::StarPieceCounterNrvHide::sInstance);
33 MR::connectToSceneLayout(this);
34 appear();
35}
36
37void StarPieceCounter::appear() {
38 mAppearer->reset();
39 mPaneRumbler->reset();
40 _28 = 0;
41 _3C = 0;
42 MR::hideLayout(this);
43 forceSync();
44 setNerve(&NrvStarPieceCounter::StarPieceCounterNrvHide::sInstance);
45 LayoutActor::appear();
46 MR::requestMovementOn(this);
47}
48
49void StarPieceCounter::forceAppear(bool a1) {
50 if (a1 || !StarPieceUtil::isDeadOrWaiting(this)) {
51 appear();
52 setNerve(&NrvStarPieceCounter::StarPieceCounterNrvAppear::sInstance);
53 }
54
55 s32 v5 = 1;
56 if (a1) {
57 v5 = 2;
58 }
59
60 _3C = v5;
61}
62
63void StarPieceCounter::disappear(bool a1) {
64 if (a1 || !isValidAppearSituation()) {
65 setNerve(&NrvStarPieceCounter::StarPieceCounterNrvDisappear::sInstance);
66 }
67
68 if (!a1) {
69 _3C = 0;
70 }
71}
72
73bool StarPieceCounter::isWait() const {
74 bool isWait = false;
75
76 if (!MR::isDead(this) && isNerve(&NrvStarPieceCounter::StarPieceCounterNrvWait::sInstance)) {
77 isWait = true;
78 }
79
80 return isWait;
81}
virtual void init(const JMapInfoIter &)
Intializes the NameObj and can set various settings and construct necessary classes.