SMG-Decomp
A decompilation of Super Mario Galaxy 1
Loading...
Searching...
No Matches
CoinReplica.cpp
1#include "Game/MapObj/CoinReplica.hpp"
2
3CoinReplica::CoinReplica(const char *pName) : NameObj(pName) {
4 mCoin = nullptr;
5}
6
7void CoinReplica::activeCoin() {
8 if (mCoin) {
9 mCoin->requestActive();
10 }
11}
12
13void CoinReplica::activeCoinWithGravity() {
14 if (mCoin) {
15 mCoin->requestActiveWithGravity();
16 }
17}
18
19void CoinReplica::deactiveCoin() {
20 if (mCoin) {
21 mCoin->requestDeactive();
22 }
23}
24
25void CoinReplica::removeCoin() {
26 if (!MR::isDead(mCoin)) {
27 mCoin->kill();
28 }
29}
30
31void CoinReplica::init(const JMapInfoIter &rIter) {
32 mCoin = reinterpret_cast<Coin*>(MR::createCoin(this, "コイン(レプリカ用)"));
33 MR::initDefaultPos(mCoin, rIter);
34 mCoin->initWithoutIter();
35 mCoin->appearNonActive();
36 s32 arg0;
37 MR::getJMapInfoArg0NoInit(rIter, &arg0);
38
39 if (MR::isExistStageSwitchA(rIter) || MR::isExistStageSwitchB(rIter)) {
40 StageSwitchCtrl* switchCtrl = MR::createStageSwitchCtrl(this, rIter);
41
42 if (switchCtrl->isValidSwitchA()) {
43 if (arg0 == -1) {
44 void (CoinReplica::*d)(void) = &CoinReplica::deactiveCoin;
45 void (CoinReplica::*a)(void) = &CoinReplica::activeCoin;
46 MR::listenNameObjStageSwitchOnOffA(this, switchCtrl, MR::Functor(this, d), MR::Functor(this, a));
47 }
48 else {
49 void (CoinReplica::*d)(void) = &CoinReplica::deactiveCoin;
50 void (CoinReplica::*a)(void) = &CoinReplica::activeCoinWithGravity;
51 MR::listenNameObjStageSwitchOnOffA(this, switchCtrl, MR::Functor(this, d), MR::Functor(this, a));
52 }
53 }
54
55 if (switchCtrl->isValidSwitchB()) {
56 void (CoinReplica::*d)(void) = &CoinReplica::removeCoin;
57 MR::listenNameObjStageSwitchOnB(this, switchCtrl, MR::Functor(this, d));
58 }
59 }
60}
61
62CoinReplica::~CoinReplica() {
63
64}
Definition Coin.hpp:23
virtual void init(const JMapInfoIter &)
Intializes the NameObj and can set various settings and construct necessary classes.
The most basic form of an object.
Definition NameObj.hpp:11
void initWithoutIter()
Initializes a NameObj without a JMapInfoIter instance.
Definition NameObj.cpp:41