summaryrefslogtreecommitdiff
path: root/src/d/lyt/d_lyt_map.cpp
diff options
context:
space:
mode:
authorrobojumper <robojumper@gmail.com>2025-09-30 23:55:21 +0200
committerrobojumper <robojumper@gmail.com>2025-09-30 23:55:21 +0200
commit3af8f03e78a56701d300a8c8f2639615c6cdc4ad (patch)
tree287b2edfae1e05e59d5187e9416fee0539424d19 /src/d/lyt/d_lyt_map.cpp
parentfc44994c91e682092a79afdc7d31547779bbb2b6 (diff)
more map
Diffstat (limited to 'src/d/lyt/d_lyt_map.cpp')
-rw-r--r--src/d/lyt/d_lyt_map.cpp366
1 files changed, 336 insertions, 30 deletions
diff --git a/src/d/lyt/d_lyt_map.cpp b/src/d/lyt/d_lyt_map.cpp
index cf2c122a..cd1f6491 100644
--- a/src/d/lyt/d_lyt_map.cpp
+++ b/src/d/lyt/d_lyt_map.cpp
@@ -6,16 +6,20 @@
#include "d/d_cs_game.h"
#include "d/d_cursor_hit_check.h"
#include "d/d_d2d.h"
+#include "d/d_message.h"
#include "d/d_pad.h"
#include "d/d_pad_nav.h"
#include "d/d_player.h"
+#include "d/d_rumble.h"
#include "d/lyt/d2d.h"
#include "d/lyt/d_lyt_control_game.h"
#include "d/lyt/d_lyt_map_global.h"
+#include "d/lyt/d_textbox.h"
#include "d/snd/d_snd_small_effect_mgr.h"
#include "egg/core/eggColorFader.h"
#include "m/m_vec.h"
#include "m/m_video.h"
+#include "nw4r/g3d/g3d_obj.h"
#include "nw4r/lyt/lyt_bounding.h"
#include "nw4r/lyt/lyt_pane.h"
#include "sized_string.h"
@@ -248,8 +252,6 @@ void dLytMapFootPrints_c::draw() {
mVec2_c scaleV = mVec2_c(scale, scale);
mpPane->SetScale(scaleV);
- // rgb(104, 222, 222)
- // rgb(0, 255, 255)
f32 globalAlphaF = globalAlpha;
for (int i = 0; i < mCurrentNumSteps; i++) {
@@ -560,7 +562,7 @@ dLytMapGlobal_c *dLytMapPinIcon_c::getGlobal() const {
static const d2d::LytBrlanMapping sMapPinIconBrlanMap[] = {
{"mapPutIcon_00_scale.brlan", "G_scale_00"},
{"mapPutIcon_00_erase.brlan", "G_scale_00"},
- { "mapPutIcon_00_loop.brlan", "G_scale_00"},
+ { "mapPutIcon_00_loop.brlan", "G_loop_00"},
};
bool dLytMapPinIcon_c::build(d2d::ResAccIf_c *resAcc) {
@@ -685,7 +687,7 @@ void dLytMapPinIconAggregate_c::finalizeState_Remove() {}
bool dLytMapPinIconAggregate_c::findNewBeaconId(s32 *pOutId) {
bool ret = false;
- for (s32 idx = 0; idx < getBeaconCount(); idx++) {
+ for (s32 idx = 0; idx < getMaxBeaconCount(); idx++) {
s32 existingIndex = mPins[idx].mIndex;
if (!mPins[idx].mIsSet) {
// If we have an unused id, use that
@@ -795,42 +797,161 @@ void dLytMapFloorBtn_c::execute() {
mStateMgr.executeState();
}
+void dLytMapFloorBtn_c::directlyDecide() {
+ if (mpAnmGroups->mOnOff.isBound()) {
+ mpAnmGroups->mOnOff.unbind();
+ }
+ if (mpAnmGroups->mDecide.isBound()) {
+ mpAnmGroups->mDecide.unbind();
+ }
+ mpAnmGroups->mOnOffLight.bind(false);
+ mpAnmGroups->mOnOffLight.setToEnd();
+ mpOwnerLyt->calc();
+ mpAnmGroups->mOnOffLight.unbind();
+}
+
+void dLytMapFloorBtn_c::directlyUndecide() {
+ if (mpAnmGroups->mOnOffLight.isBound()) {
+ mpAnmGroups->mOnOffLight.unbind();
+ }
+ if (mpAnmGroups->mDecide.isBound()) {
+ mpAnmGroups->mDecide.unbind();
+ }
+ mpAnmGroups->mOnOff.bind(false);
+ mpAnmGroups->mOnOff.setFrame(0.0f);
+ mpOwnerLyt->calc();
+ mpAnmGroups->mOnOff.unbind();
+}
+
void dLytMapFloorBtn_c::initializeState_Wait() {}
-void dLytMapFloorBtn_c::executeState_Wait() {}
+void dLytMapFloorBtn_c::executeState_Wait() {
+ if (mSelected) {
+ dRumble_c::start(dRumble_c::sRumblePreset1, dRumble_c::FLAG_SLOT0);
+ mpAnmGroups->mOnOff.bind(false);
+ mpAnmGroups->mOnOff.setFrame(0.0f);
+ dSndSmallEffectMgr_c::GetInstance()->playSound(SE_S_MAP_POINT_FLOOR);
+ mStateMgr.changeState(StateID_ToSelect);
+ }
+}
void dLytMapFloorBtn_c::finalizeState_Wait() {}
void dLytMapFloorBtn_c::initializeState_ToSelect() {}
-void dLytMapFloorBtn_c::executeState_ToSelect() {}
+void dLytMapFloorBtn_c::executeState_ToSelect() {
+ if (mpAnmGroups->mOnOff.isEndReached()) {
+ mpOwnerLyt->calc();
+ mpAnmGroups->mOnOff.unbind();
+ mStateMgr.changeState(StateID_Select);
+ }
+}
void dLytMapFloorBtn_c::finalizeState_ToSelect() {}
void dLytMapFloorBtn_c::initializeState_Select() {}
-void dLytMapFloorBtn_c::executeState_Select() {}
+void dLytMapFloorBtn_c::executeState_Select() {
+ if (!mSelected) {
+ mpAnmGroups->mOnOff.bind(false);
+ mpAnmGroups->mOnOff.setBackward();
+ mpAnmGroups->mOnOff.setToStart();
+ mStateMgr.changeState(StateID_ToWait);
+ } else if (mDecided) {
+ mpAnmGroups->mDecide.bind(false);
+ mpAnmGroups->mDecide.setFrame(0.0f);
+ dSndSmallEffectMgr_c::GetInstance()->playSound(SE_S_MAP_POINT_SELECT_FLOOR);
+ mStateMgr.changeState(StateID_ToSelectInDecide);
+ }
+}
void dLytMapFloorBtn_c::finalizeState_Select() {}
void dLytMapFloorBtn_c::initializeState_ToWait() {}
-void dLytMapFloorBtn_c::executeState_ToWait() {}
+void dLytMapFloorBtn_c::executeState_ToWait() {
+ if (mpAnmGroups->mOnOff.isStop2()) {
+ mpOwnerLyt->calc();
+ mpAnmGroups->mOnOff.unbind();
+ mStateMgr.changeState(StateID_Wait);
+ }
+}
void dLytMapFloorBtn_c::finalizeState_ToWait() {}
void dLytMapFloorBtn_c::initializeState_ToSelectInDecide() {}
-void dLytMapFloorBtn_c::executeState_ToSelectInDecide() {}
+void dLytMapFloorBtn_c::executeState_ToSelectInDecide() {
+ if (mpAnmGroups->mDecide.isStop2()) {
+ mpOwnerLyt->calc();
+ mpAnmGroups->mDecide.unbind();
+ mStateMgr.changeState(StateID_SelectInDecide);
+ }
+}
void dLytMapFloorBtn_c::finalizeState_ToSelectInDecide() {}
void dLytMapFloorBtn_c::initializeState_SelectInDecide() {}
-void dLytMapFloorBtn_c::executeState_SelectInDecide() {}
+void dLytMapFloorBtn_c::executeState_SelectInDecide() {
+ if (!mSelected) {
+ mpAnmGroups->mOnOffLight.bind(false);
+ mpAnmGroups->mOnOffLight.setToStart();
+ mStateMgr.changeState(StateID_ToDecide);
+ }
+}
void dLytMapFloorBtn_c::finalizeState_SelectInDecide() {}
void dLytMapFloorBtn_c::initializeState_ToDecide() {}
-void dLytMapFloorBtn_c::executeState_ToDecide() {}
+void dLytMapFloorBtn_c::executeState_ToDecide() {
+ if (mpAnmGroups->mOnOffLight.isStop2()) {
+ mpAnmGroups->mOnOffLight.unbind();
+ mpOwnerLyt->calc();
+ mStateMgr.changeState(StateID_Decide);
+ }
+}
void dLytMapFloorBtn_c::finalizeState_ToDecide() {}
void dLytMapFloorBtn_c::initializeState_Decide() {}
-void dLytMapFloorBtn_c::executeState_Decide() {}
+void dLytMapFloorBtn_c::executeState_Decide() {
+ if (mSelected) {
+ mpAnmGroups->mOnOffLight.bind(false);
+ mpAnmGroups->mOnOffLight.setBackward();
+ mpAnmGroups->mOnOffLight.setToStart();
+ dRumble_c::start(dRumble_c::sRumblePreset1, dRumble_c::FLAG_SLOT0);
+ dSndSmallEffectMgr_c::GetInstance()->playSound(SE_S_MAP_POINT_FLOOR);
+ mStateMgr.changeState(StateID_DecideToSelectInDecide);
+ } else if (!mDecided) {
+ mpAnmGroups->mOnOff.bind(false);
+ mpAnmGroups->mOnOff.setFrame(0.0f);
+ mpOwnerLyt->getLayout()->Animate(0);
+ mpOwnerLyt->calc();
+ mpAnmGroups->mOnOff.unbind();
+ mStateMgr.changeState(StateID_Wait);
+ }
+}
void dLytMapFloorBtn_c::finalizeState_Decide() {}
void dLytMapFloorBtn_c::initializeState_DecideToSelectInDecide() {}
-void dLytMapFloorBtn_c::executeState_DecideToSelectInDecide() {}
+void dLytMapFloorBtn_c::executeState_DecideToSelectInDecide() {
+ if (mpAnmGroups->mOnOffLight.isStop2()) {
+ mpOwnerLyt->calc();
+ mpAnmGroups->mOnOffLight.unbind();
+ mStateMgr.changeState(StateID_SelectInDecide);
+ }
+}
void dLytMapFloorBtn_c::finalizeState_DecideToSelectInDecide() {}
+static const char *sFloorBtnBoundings[] = {
+ "B_choices_00",
+ "B_choices_01",
+ "B_choices_02",
+ "B_choices_03",
+};
+
+static const char *sFloorBtnText[] = {
+ "T_text_00",
+ "T_text_01",
+ "T_text_02",
+ "T_text_03",
+};
+
+static const char *sFloorBtnTextS[] = {
+ "T_textS_00",
+ "T_textS_01",
+ "T_textS_02",
+ "T_textS_03",
+};
+
static const d2d::LytBrlanMapping brlanMapFloorBtnMgr[] = {
{"mapFloorBtn_00_btnV.brlan", "G_btnV_00"},
};
@@ -852,13 +973,6 @@ static const char *groupListFloorBtn[][4] = {
{"G_btnLoop_03", "G_btn_03", "G_btn_03", "G_btn_03"},
};
-static const char *sFloorBtnBoundings[] = {
- "B_choices_00",
- "B_choices_01",
- "B_choices_02",
- "B_choices_03",
-};
-
#define MAP_FLOOR_BTN_MGR_NUM_BTNS 4
bool dLytMapFloorBtnMgr_c::build(d2d::ResAccIf_c *resAcc) {
@@ -916,11 +1030,11 @@ bool dLytMapFloorBtnMgr_c::build(d2d::ResAccIf_c *resAcc) {
mCsHitChecks[i].execute();
}
- field_0x710 = 0;
- field_0x711 = 0;
+ field_0x710 = false;
+ field_0x711 = false;
for (int i = 0; i < MAP_FLOOR_BTN_MGR_NUM_BTNS; i++) {
- mFloorBtns[i].field_0x4C = 0;
+ mFloorBtns[i].mSelected = false;
}
mStateMgr.changeState(StateID_Invisible);
@@ -960,13 +1074,13 @@ bool dLytMapFloorBtnMgr_c::execute() {
s32 direction = dPadNav::getFSStickNavDirection();
if (field_0x710 != field_0x711) {
for (int i = 0; i < MAP_FLOOR_BTN_MGR_NUM_BTNS; i++) {
- if (mFloorBtns[i].field_0x4D) {
+ if (mFloorBtns[i].mDecided) {
activeBtn = i;
}
}
} else {
for (int i = 0; i < MAP_FLOOR_BTN_MGR_NUM_BTNS; i++) {
- if (mFloorBtns[i].field_0x4C) {
+ if (mFloorBtns[i].mSelected) {
activeBtn = i;
}
}
@@ -974,11 +1088,11 @@ bool dLytMapFloorBtnMgr_c::execute() {
// Handle navigation
if (activeBtn > 0 && (direction == dPadNav::FS_STICK_UP || direction == dPadNav::FS_STICK_UP_RIGHT ||
- direction == dPadNav::FS_STICK_UP_LEFT)) {
+ direction == dPadNav::FS_STICK_UP_LEFT)) {
activeBtn--;
}
- if (activeBtn < field_0x700 - 1 &&
+ if (activeBtn < mNumFloors - 1 &&
(direction == dPadNav::FS_STICK_DOWN || direction == dPadNav::FS_STICK_DOWN_RIGHT ||
direction == dPadNav::FS_STICK_DOWN_LEFT)) {
activeBtn++;
@@ -986,12 +1100,12 @@ bool dLytMapFloorBtnMgr_c::execute() {
for (int i = 0; i < MAP_FLOOR_BTN_MGR_NUM_BTNS; i++) {
if (i == activeBtn) {
- mFloorBtns[i].field_0x4C = 1;
+ mFloorBtns[i].mSelected = true;
if (dCsBase_c::GetInstance() != nullptr) {
dCsBase_c::GetInstance()->setCursorStickTargetPane(mFloorBtns[i].mpBounding);
}
} else {
- mFloorBtns[i].field_0x4C = 0;
+ mFloorBtns[i].mSelected = false;
}
}
for (int i = 0; i < MAP_FLOOR_BTN_MGR_NUM_BTNS; i++) {
@@ -1021,6 +1135,93 @@ bool dLytMapFloorBtnMgr_c::execute() {
return true;
}
+void dLytMapFloorBtnMgr_c::checkPointedAtBtn() {
+ field_0x711 = field_0x710;
+ field_0x710 = dPadNav::isPointerVisible();
+ if (field_0x712) {
+ dPadNav::stopFSStickNav();
+ field_0x710 = true;
+ }
+
+ if (field_0x710) {
+ for (int i = 0; i < MAP_FLOOR_BTN_MGR_NUM_BTNS; i++) {
+ mFloorBtns[i].mSelected = false;
+ }
+
+ dCursorHitCheck_c *chk = dCsGame_c::GetInstance()->getCursorHit();
+ if (chk != nullptr && chk->getType() == 'lyt ') {
+ for (int i = 0; i < MAP_FLOOR_BTN_MGR_NUM_BTNS; i++) {
+ if (chk == &mCsHitChecks[i]) {
+ mFloorBtns[i].mSelected = true;
+ }
+ }
+ }
+ }
+}
+
+s32 dLytMapFloorBtnMgr_c::getPointedAtBtnIdx() const {
+ s32 idx = -1;
+ for (int i = 0; i < MAP_FLOOR_BTN_MGR_NUM_BTNS; i++) {
+ if (mFloorBtns[i].mSelected) {
+ idx = i;
+ break;
+ }
+ }
+ return idx;
+}
+
+// What it says on the tin
+static const char *sFloorBtnLabels[] = {
+ "FLOOR_F3", "FLOOR_F2", "FLOOR_F1", "FLOOR_B1", "FLOOR_B2", "FLOOR_B3",
+};
+
+void dLytMapFloorBtnMgr_c::init(s32 numFloors, s32 baseFloorOffset, s32 selectedFloor) {
+ mNumFloors = numFloors;
+ mBaseFloorOffset = baseFloorOffset;
+ for (int i = 0; i < MAP_FLOOR_BTN_MGR_NUM_BTNS; i++) {
+ bool visible = i < mNumFloors && mNumFloors >= 2;
+ mLyt.findPane(sFloorBtnBoundings[i])->SetVisible(visible);
+ }
+
+ if (mNumFloors >= 2) {
+ mLyt.getLayout()->GetRootPane()->SetVisible(true);
+ mAnmGroups[0].bind(false);
+ mAnmGroups[0].setFrame(mNumFloors - 2);
+
+ for (int i = 0; i < MAP_FLOOR_BTN_MGR_NUM_BTNS; i++) {
+ bool visible = i < mNumFloors && mNumFloors >= 2;
+ mLyt.findPane(sFloorBtnBoundings[i])->SetVisible(visible);
+ if (visible) {
+ int labelIdx = (2 - mBaseFloorOffset) + i;
+ dTextBox_c *textBox = mLyt.getTextBox(sFloorBtnText[i]);
+ textBox->setMessageWithGlobalTextProcessor2(sFloorBtnLabels[labelIdx], nullptr);
+ textBox = mLyt.getTextBox(sFloorBtnTextS[i]);
+ textBox->setMessageWithGlobalTextProcessor2(sFloorBtnLabels[labelIdx], nullptr);
+ }
+ }
+
+ // Floor buttons are descending but selectedFloor is ascending
+ s32 tmp = -(selectedFloor - baseFloorOffset);
+ mSelectedBtnIdx = tmp;
+ mFloorBtns[tmp].mDecided = true;
+ mFloorBtns[tmp].mStateMgr.changeState(dLytMapFloorBtn_c::StateID_Decide);
+
+ // TODO probably an inline
+ d2d::AnmGroup_c &anm = mBtnGroups[tmp].mOnOffLight;
+
+ anm.bind(false);
+ mBtnGroups[tmp].mOnOffLight.setToEnd();
+ mLyt.getLayout()->Animate(0);
+ mLyt.calc();
+ anm.unbind();
+ if (mAnmGroups[0].bind(false)) {
+ mAnmGroups[0].unbind();
+ }
+ } else {
+ mLyt.getLayout()->GetRootPane()->SetVisible(false);
+ }
+}
+
void dLytMapFloorBtnMgr_c::initializeState_Invisible() {}
void dLytMapFloorBtnMgr_c::executeState_Invisible() {}
void dLytMapFloorBtnMgr_c::finalizeState_Invisible() {}
@@ -1134,6 +1335,10 @@ dLytMapMain_c::~dLytMapMain_c() {
}
}
+dLytMapGlobal_c *dLytMapMain_c::getGlobal() {
+ return &mGlobal;
+}
+
void dLytMapMain_c::draw() {}
void dLytMap_c::build() {
@@ -1164,7 +1369,108 @@ void dLytMapMain_c::executeState_In() {}
void dLytMapMain_c::finalizeState_In() {}
void dLytMapMain_c::initializeState_Active() {}
-void dLytMapMain_c::executeState_Active() {}
+void dLytMapMain_c::executeState_Active() {
+ dLytMapGlobal_c *global = getGlobal();
+ if (dMessage_c::getInstance()->getField_0x328()) {
+ return;
+ }
+
+ // TODO figure out and double check numbers
+ if (field_0x8C68 == 4 && field_0x8CA4 == dLytMapGlobal_c::MAPMODE_STAGE &&
+ field_0x8CA8 == dLytMapGlobal_c::MAPMODE_STAGE && dPad::getDownTrigZ()) {
+ if (mIslandNamesOn) {
+ dSndSmallEffectMgr_c::GetInstance()->playSound(SE_S_MAP_ISLAND_NAME_OFF);
+ } else {
+ dSndSmallEffectMgr_c::GetInstance()->playSound(SE_S_MAP_ISLAND_NAME_ON);
+ }
+ mIslandNamesOn = !mIslandNamesOn;
+ field_0x2060.setIslandNamesOn(mIslandNamesOn);
+ }
+ checkScroll();
+
+ if (needsNav(field_0x8CA4) && needsNav(field_0x8CA8)) {
+ if (!mNavEnabled) {
+ dPadNav::setNavEnabled(true, false);
+ mNavEnabled = true;
+ }
+ if (mFloorBtnMgr.canDecideFloor() && dPad::getDownTrigA()) {
+ mFloorBtnMgr.decideSelectedFloor();
+ field_0x8C64 = mFloorBtnMgr.getCurrentFloor();
+ global->setFloor(field_0x8C64);
+ mStateMgr.changeState(StateID_FloorChange);
+ }
+ } else {
+ if (mNavEnabled) {
+ dPadNav::setNavEnabled(false, false);
+ mNavEnabled = false;
+ }
+ }
+
+ if (field_0x8CA4 == dLytMapGlobal_c::MAPMODE_STAGE && field_0x8CA8 == dLytMapGlobal_c::MAPMODE_STAGE &&
+ canZoomIn(dLytMapGlobal_c::MAPMODE_STAGE)) {
+ if (field_0x8CC0 && (field_0x8D5C < 2 || !mFloorBtnMgr.hasPointedAtABtnIdx())) {
+ const mVec3_c &pos = global->getPlayerPos();
+ getGlobal()->unprojectFromMap(field_0x8CF4, dCsGame_c::GetInstance()->getCursorIf()->getCursorPos());
+ f32 tmp = fn_80142D90(4);
+ fn_8013FB70(field_0x8CF4, getGlobal()->getField_0x44() / tmp);
+ field_0x8DB5 = true;
+ } else {
+ f32 tmp = fn_80142D90(4);
+ f32 val = getGlobal()->getField_0x44() / tmp;
+ fn_8013FB70(getGlobal()->getPlayerPos(), val);
+ field_0x8DB5 = true;
+ }
+ }
+
+ if (field_0x8DBD && *mPinIconAggregate.mStateMgr.getStateID() != dLytMapPinIconAggregate_c::StateID_Select &&
+ dPad::getDownTrigC() && field_0x8CC1) {
+ s32 id = -1;
+ mPinIconAggregate.findNewBeaconId(&id);
+ if (id >= 0) {
+ mVec3_c pos3d;
+ dLytMapGlobal_c *global = getGlobal();
+ global->unprojectFromMap(pos3d, dCsGame_c::GetInstance()->getCursorIf()->getCursorPos());
+ mPinIconAggregate.setPosition(id, pos3d);
+ setBeaconPositionChecked(&pos3d, id);
+ dSndSmallEffectMgr_c::GetInstance()->playSound(SE_S_MAP_BEACON_SET);
+ }
+ } else if ((dPad::getDownTrigLeft() && canZoomOut(field_0x8CA4)) ||
+ (dPad::getDownTrigA() && field_0x8CA4 == dLytMapGlobal_c::MAPMODE_ZOOM && canZoomOut(field_0x8CA4))) {
+ zoomOut();
+ } else if ((dPad::getDownTrigRight() && canZoomIn(field_0x8CA4)) ||
+ (dPad::getDownTrigA() && field_0x8CA4 == dLytMapGlobal_c::MAPMODE_STAGE && canZoomIn(field_0x8CA4))) {
+ zoomIn();
+ } else if ((field_0x8C68 == dLytMapGlobal_c::MAPMODE_WORLD || field_0x8C68 == dLytMapGlobal_c::MAPMODE_PROVINCE ||
+ field_0x8C68 == dLytMapGlobal_c::MAPMODE_WORLD_SKY || field_0x8C68 == dLytMapGlobal_c::MAPMODE_ZOOM) &&
+ canResetPosition(field_0x8CA4, field_0x8C90) && dPad::getDownTrigUp()) {
+ mVec3_c pos;
+ fn_80142F00(pos, field_0x8CA4, field_0x8C90, global->getMapRotationCenter(), global->getField_0x56());
+ f32 distSq = global->getField_0x00().squareDistanceToXZ(pos);
+ if (field_0x8D58 != global->getFloor()) {
+ mFloorBtnMgr.resetFloor(-(field_0x8D58 - field_0x8D60));
+ global->setFloor(field_0x8D58);
+ mStateMgr.changeState(StateID_ResetPosWithFloorChange);
+ } else if (distSq >= 1.0f) {
+ mStateMgr.changeState(StateID_ResetPos);
+ } else {
+ dSndSmallEffectMgr_c::GetInstance()->playSound(SE_S_MAP_RESET_NOT_MOVE);
+ }
+ } else if (canChangeUpDirection(field_0x8CA4, field_0x8C90) && dPad::getDownTrigZ()) {
+ mStateMgr.changeState(StateID_ChgMapUpDirection);
+ }
+
+ if ((field_0x8CA4 == dLytMapGlobal_c::MAPMODE_STAGE && field_0x8CA8 == dLytMapGlobal_c::MAPMODE_STAGE) ||
+ (field_0x8CA4 == dLytMapGlobal_c::MAPMODE_ZOOM && field_0x8CA8 == dLytMapGlobal_c::MAPMODE_ZOOM)) {
+ field_0xF1C.field_0x05 = true;
+ }
+
+ mPinIconAggregate.execute();
+
+ for (int idx = 0; idx < (int)ARRAY_LENGTH(field_0x832C); idx++) {
+ field_0x832C[idx].resetCachedHitboxes();
+ field_0x832C[idx].execute();
+ }
+}
void dLytMapMain_c::finalizeState_Active() {}
void dLytMapMain_c::initializeState_Out() {}