SMG-Decomp
A decompilation of Super Mario Galaxy 1
Loading...
Searching...
No Matches
ArrowSwitchMultiHolder.cpp
1#include "Game/MapObj/ArrowSwitchMultiHolder.hpp"
2#include "Game/Scene/SceneObjHolder.hpp"
3
4ArrowSwitchMultiHolder::ArrowSwitchMultiHolder() : DeriveActorGroup("複数方向矢印スイッチ管理", 0x10) {
5
6}
7
8ArrowSwitchMulti* ArrowSwitchMultiHolder::findSwitch(const JMapIdInfo *pInfo) {
9 for (s32 i = 0; i < mObjectCount; i++) {
10 ArrowSwitchMulti* sw = reinterpret_cast<ArrowSwitchMulti*>(getActor(i));
11 JMapIdInfo* inf = sw->mIDInfo;
12
13 bool isSame = false;
14 if (inf->_0 == pInfo->_0 && inf->mZoneID == pInfo->mZoneID) {
15 isSame = true;
16 }
17
18 if (isSame) {
19 return sw;
20 }
21 }
22
23 return nullptr;
24}
25
26namespace MR {
27 void createArrowSwitchMultiHolder() {
28 MR::createSceneObj(SceneObj_ArrowSwitchMultiHolder);
29 }
30
31 void registerArrowSwitchMulti(ArrowSwitchMulti *pSwitch) {
32 MR::getSceneObj<ArrowSwitchMultiHolder*>(SceneObj_ArrowSwitchMultiHolder)->registerActor(pSwitch);
33 }
34
35 void registerArrowSwitchTarget(ArrowSwitchTarget *pTarget) {
36 MR::getSceneObj<ArrowSwitchMultiHolder*>(SceneObj_ArrowSwitchMultiHolder)->findSwitch(pTarget->mJMapIDInfo)->registerTarget(pTarget);
37 }
38};