2023-12-13 00:40:16 -05:00
|
|
|
#include "Game/MapObj/ArrowSwitchMultiHolder.hpp"
|
|
|
|
|
#include "Game/Scene/SceneObjHolder.hpp"
|
2022-09-18 04:03:34 -04:00
|
|
|
|
|
|
|
|
ArrowSwitchMultiHolder::ArrowSwitchMultiHolder() : DeriveActorGroup("複数方向矢印スイッチ管理", 0x10) {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ArrowSwitchMulti* ArrowSwitchMultiHolder::findSwitch(const JMapIdInfo *pInfo) {
|
|
|
|
|
for (s32 i = 0; i < mObjectCount; i++) {
|
|
|
|
|
ArrowSwitchMulti* sw = reinterpret_cast<ArrowSwitchMulti*>(getActor(i));
|
|
|
|
|
JMapIdInfo* inf = sw->mIDInfo;
|
|
|
|
|
|
|
|
|
|
bool isSame = false;
|
|
|
|
|
if (inf->_0 == pInfo->_0 && inf->mZoneID == pInfo->mZoneID) {
|
|
|
|
|
isSame = true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (isSame) {
|
|
|
|
|
return sw;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2023-02-13 03:33:10 -05:00
|
|
|
return nullptr;
|
2022-09-18 04:03:34 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
namespace MR {
|
|
|
|
|
void createArrowSwitchMultiHolder() {
|
|
|
|
|
MR::createSceneObj(SceneObj_ArrowSwitchMultiHolder);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void registerArrowSwitchMulti(ArrowSwitchMulti *pSwitch) {
|
|
|
|
|
MR::getSceneObj<ArrowSwitchMultiHolder*>(SceneObj_ArrowSwitchMultiHolder)->registerActor(pSwitch);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void registerArrowSwitchTarget(ArrowSwitchTarget *pTarget) {
|
|
|
|
|
MR::getSceneObj<ArrowSwitchMultiHolder*>(SceneObj_ArrowSwitchMultiHolder)->findSwitch(pTarget->mJMapIDInfo)->registerTarget(pTarget);
|
|
|
|
|
}
|
|
|
|
|
};
|