summaryrefslogtreecommitdiff
path: root/src/d/d_message.cpp
diff options
context:
space:
mode:
authorrobojumper <robojumper@gmail.com>2025-11-22 15:43:26 +0100
committerGitHub <noreply@github.com>2025-11-22 15:43:26 +0100
commitb661da78b52958faffb589955df0453c5b0f6740 (patch)
tree20ef8223571890b3b015aee11e227fb9a3ef0077 /src/d/d_message.cpp
parent25c799aef9a58395d1a2e2cd573defce7fc5f34f (diff)
parent9cae4869105d4b891f4d483f9bddd146e93eb989 (diff)
Merge pull request #257 from robojumper/d_lyt_map_more
some more map things
Diffstat (limited to 'src/d/d_message.cpp')
-rw-r--r--src/d/d_message.cpp42
1 files changed, 22 insertions, 20 deletions
diff --git a/src/d/d_message.cpp b/src/d/d_message.cpp
index c4490b60..f2343080 100644
--- a/src/d/d_message.cpp
+++ b/src/d/d_message.cpp
@@ -417,35 +417,37 @@ bool dFlow_c::handleEventInternal(const MsbFlowInfo *element) {
dStageMgr_c::GetInstance()->getFlagIndex();
SceneflagManager::sInstance->unsetTempflag_i(0x3F, (params1n2 >> 16) & 0xFFFF);
break;
- case EVENT_LIGHT_PILLAR_30: {
+ case EVENT_START_MAP_EVENT: {
s8 p4 = (params1n2 >> 24) & 0xFF;
s8 p1 = params1n2 & 0xFF;
- s8 p3 = (params1n2 >> 16) & 0xFF;
- s8 p2 = (params1n2 >> 8) & 0xFF;
- s32 val = 1;
+ s8 arg1 = (params1n2 >> 16) & 0xFF;
+ s8 arg2 = (params1n2 >> 8) & 0xFF;
+ s32 mapEvent = 1;
switch (p1) {
- case 1: val = 4; break;
- case 2: val = 3; break;
- case 3: val = 5; break;
- case 5: val = 7; break;
- case 6: val = 8; break;
- case 7: val = 9; break;
+ case 1: mapEvent = dLytMapMain_c::MAP_EVENT_DUNGEON_MAP_GET; break;
+ case 2: mapEvent = dLytMapMain_c::MAP_EVENT_MAP_INTRO; break;
+ case 3: mapEvent = dLytMapMain_c::MAP_EVENT_FIELD_MAP_CHANGE_5; break;
+ case 5: mapEvent = dLytMapMain_c::MAP_EVENT_SIGNAL_ADD; break;
+ case 6: mapEvent = dLytMapMain_c::MAP_EVENT_FIELD_MAP_CHANGE_8; break;
+ case 7: mapEvent = dLytMapMain_c::MAP_EVENT_GODDESS_CUBE; break;
}
- dMessage_c::getInstance()->setField_0x32C(val);
+ dMessage_c::getInstance()->setField_0x32C(mapEvent);
dMessage_c::getInstance()->setField_0x329(true);
- if (dMessage_c::getInstance()->getField_0x328() == 0) {
- dMessage_c::getInstance()->setField_0x328(1);
+ if (dMessage_c::getInstance()->getInMapEvent() == false) {
+ dMessage_c::getInstance()->setInMapEvent(true);
dMessage_c::getInstance()->clearLightPillarRelatedArgs();
if (dLytControlGame_c::getInstance()->isStateNormalOrNotInEvent()) {
- dLytControlGame_c::getInstance()->somehowRelatedToEnteringLightPillars(val, p3, p2);
+ dLytControlGame_c::getInstance()->somehowRelatedToEnteringLightPillars(
+ mapEvent, arg1, arg2
+ );
}
} else {
- dLytMap_c::GetInstance()->lightPillarRelated(val, p3, p2);
+ dLytMap_c::GetInstance()->queueMapEvent(mapEvent, arg1, arg2);
}
dMessage_c::getInstance()->storeLightPillarRelatedArg(p4);
break;
}
- case EVENT_LIGHT_PILLAR_34: {
+ case EVENT_END_MAP_EVENT: {
// TODO what do these modes do?
if (params1n2 == 1) {
if (!dLytControlGame_c::getInstance()->isNotInStateMap()) {
@@ -463,7 +465,7 @@ bool dFlow_c::handleEventInternal(const MsbFlowInfo *element) {
dMessage_c::getInstance()->setField_0x32A(1);
}
}
- dMessage_c::getInstance()->setField_0x328(0);
+ dMessage_c::getInstance()->setInMapEvent(false);
break;
}
case EVENT_SET_STORYFLAG_217:
@@ -710,7 +712,7 @@ bool dFlow_c::handleMessage() {
if (StoryflagManager::sInstance->getCounterOrFlag(STORYFLAG_BOSS_RUSH_ACTIVE)) {
// "When you require my analysis..."
v = 200;
- } else if (dStageMgr_c::GetInstance()->getSTIFbyte4() == 0) {
+ } else if (dStageMgr_c::GetInstance()->getSTIFArea() == dStageMgr_c::STIF_AREA_SKY) {
// Sky rumor
v = cM::rndInt(30);
} else {
@@ -1127,7 +1129,7 @@ bool dFlow_c::advanceUntil(s32 searchType, s32 searchParam3, s32 *pOutParams1n2)
case EVENT_LOAD_FI_FLOW:
case EVENT_COUNTER_THRESHOLD:
case 27: keepGoing = handleEvent(); continue;
- case EVENT_LIGHT_PILLAR_34:
+ case EVENT_END_MAP_EVENT:
if (element->params1n2 == 2) {
keepGoing = false;
continue;
@@ -1762,7 +1764,7 @@ void dMessage_c::executeMinigame() {
void dMessage_c::init() {
clearLightPillarRelatedArgs();
// Probably inlines
- field_0x328 = 0;
+ mInMapEvent = false;
field_0x329 = 0;
field_0x32A = 0;
sInstance->setField_0x32C(12);