summaryrefslogtreecommitdiff
path: root/src/d/d_event.cpp
diff options
context:
space:
mode:
authorLagoLunatic <LagoLunatic@users.noreply.github.com>2025-06-04 16:50:49 -0400
committerGitHub <noreply@github.com>2025-06-04 16:50:49 -0400
commite24cbed36724b9ae422875a6da46b8c10d69ca19 (patch)
tree144d0841819533767ff69dc541bd655f7adeaab4 /src/d/d_event.cpp
parent08571c4865fed64bb39c422ae0b973f977af93b4 (diff)
Demo work (#786)
* Demo work * Fix PAL * Fix d_door weak func order and link it * Fix d_door for demo * JKernel OK on demo + misc * tag_attention 100% on demo * More demo work and fix some retail fakematches
Diffstat (limited to 'src/d/d_event.cpp')
-rw-r--r--src/d/d_event.cpp63
1 files changed, 41 insertions, 22 deletions
diff --git a/src/d/d_event.cpp b/src/d/d_event.cpp
index b8fcccb5..a2357e95 100644
--- a/src/d/d_event.cpp
+++ b/src/d/d_event.cpp
@@ -21,8 +21,16 @@ dEvt_order_c::dEvt_order_c() {}
/* 8006FE58-8006FEE8 .text orderOld__14dEvt_control_cFUsUsUsUsPvPvPCv */
s32 dEvt_control_c::orderOld(u16 eventType, u16 priority, u16 flag, u16 hindFlag, void* ac1, void* ac2, const void* eventName) {
- s32 eventIdx = dComIfGp_evmng_getEventIdx((const char*)eventName);
- return order(eventType, priority, flag, hindFlag, ac1, ac2, eventIdx, 0xFF);
+ return order(
+ eventType,
+ priority,
+ flag,
+ hindFlag,
+ ac1,
+ ac2,
+ (s32)dComIfGp_evmng_getEventIdx((const char*)eventName),
+ 0xFF
+ );
}
/* 8006FEE8-8007002C .text order__14dEvt_control_cFUsUsUsUsPvPvsUc */
@@ -41,21 +49,23 @@ s32 dEvt_control_c::order(u16 eventType, u16 priority, u16 flag, u16 hindFlag, v
pNewOrder->mEventInfoIdx = eventInfoIdx;
if (pNewOrder->mPriority == 0)
- JUT_ASSERT(0x93, FALSE);
+ JUT_ASSERT(147, FALSE);
if (mOrderCount == 0) {
mFirstOrderIdx = 0;
pNewOrder->mNextOrderIdx = -1;
} else {
+ dEvt_order_c* pQueue;
s32 queueIdx = mFirstOrderIdx;
- dEvt_order_c* pQueue = &mOrder[queueIdx];
+ pQueue = &mOrder[queueIdx];
if (pNewOrder->mPriority < pQueue->mPriority) {
mFirstOrderIdx = mOrderCount;
pNewOrder->mNextOrderIdx = queueIdx;
} else {
s8 nextQueueIdx;
while ((nextQueueIdx = pQueue->mNextOrderIdx) >= 0) {
- if (pNewOrder->mPriority < mOrder[pQueue->mNextOrderIdx].mPriority)
+ dEvt_order_c* r6 = &mOrder[pQueue->mNextOrderIdx];
+ if (pNewOrder->mPriority < r6->mPriority)
break;
pQueue = &mOrder[nextQueueIdx];
}
@@ -97,7 +107,7 @@ void dEvt_control_c::setParam(dEvt_order_c* order) {
/* 8007015C-8007018C .text beforeFlagProc__14dEvt_control_cFP12dEvt_order_c */
BOOL dEvt_control_c::beforeFlagProc(dEvt_order_c* order) {
fopAc_ac_c* actor2 = order->mActor2;
- if ((order->mFlag & dEvtFlag_TALK_e) && !actor2->eventInfo.chkCondition(dEvtCnd_CANTALK_e))
+ if ((order->mFlag & dEvtFlag_TALK_e) && actor2->eventInfo.chkCondition(dEvtCnd_CANTALK_e) == FALSE)
return false;
return true;
}
@@ -143,7 +153,7 @@ BOOL dEvt_control_c::talkCheck(dEvt_order_c* order) {
}
if (!dComIfGp_evmng_order(mEventId))
- JUT_ASSERT(0x145, FALSE);
+ JUT_ASSERT(325, FALSE);
return TRUE;
} else {
@@ -174,7 +184,7 @@ BOOL dEvt_control_c::talkXyCheck(dEvt_order_c* order) {
return FALSE;
}
- if (actor2 == NULL || !actor2->eventInfo.chkCondition(dEvtCnd_CANTALKITEM_e)) {
+ if (actor2 == NULL || actor2->eventInfo.chkCondition(dEvtCnd_CANTALKITEM_e) == FALSE) {
return FALSE;
}
@@ -219,7 +229,7 @@ BOOL dEvt_control_c::photoCheck(dEvt_order_c* order) {
mbInPhoto = 0;
if (dComIfGp_getPictureStatus() == 1) {
- JUT_ASSERT(0x1a5, actor2);
+ JUT_ASSERT(421, actor2);
if (!commonCheck(order, dEvtCnd_CANTALK_e, dEvtCmd_INTALK_e))
return FALSE;
@@ -231,7 +241,7 @@ BOOL dEvt_control_c::photoCheck(dEvt_order_c* order) {
}
if (!dComIfGp_evmng_order(mEventId))
- JUT_ASSERT(0x1b5, FALSE);
+ JUT_ASSERT(437, FALSE);
mbInPhoto = 1;
mMode = dEvtMode_TALK_e;
@@ -248,7 +258,7 @@ BOOL dEvt_control_c::catchCheck(dEvt_order_c* order) {
fopAc_ac_c* actor2 = order->mActor2;
fopAc_ac_c* actor1 = order->mActor1;
- if (actor1 == NULL || (actor2 != NULL && !actor2->eventInfo.chkCondition(dEvtCnd_CANCATCH_e)))
+ if (actor1 == NULL || (actor2 != NULL && actor2->eventInfo.chkCondition(dEvtCnd_CANCATCH_e) == FALSE))
return FALSE;
actor1->eventInfo.setCommand(dEvtCmd_INCATCH_e);
@@ -258,8 +268,10 @@ BOOL dEvt_control_c::catchCheck(dEvt_order_c* order) {
mItemNo = dComIfGp_att_getCatchChgItem();
mMode = dEvtMode_DEMO_e;
if (mEventId != -1 && !dComIfGp_evmng_order(mEventId))
- JUT_ASSERT(0x1e3, FALSE);
+ JUT_ASSERT(483, FALSE);
+#if VERSION > VERSION_DEMO
onEventFlag(0x80);
+#endif
return TRUE;
}
@@ -288,7 +300,7 @@ BOOL dEvt_control_c::demoCheck(dEvt_order_c* order) {
s16 eventId = order->mEventId;
if (actor2 == NULL) {
- JUT_ASSERT(0x21f, FALSE);
+ JUT_ASSERT(VERSION_SELECT(541, 543, 543, 543), FALSE);
return FALSE;
}
@@ -336,7 +348,7 @@ BOOL dEvt_control_c::potentialCheck(dEvt_order_c* order) {
fopAc_ac_c* actor1 = order->mActor1;
fopAc_ac_c* actor2 = order->mActor2;
if (actor1 == NULL || actor2 == NULL)
- JUT_ASSERT(0x280, FALSE);
+ JUT_ASSERT(VERSION_SELECT(638, 640, 640, 640), FALSE);
if (!beforeFlagProc(order))
return FALSE;
@@ -357,7 +369,7 @@ BOOL dEvt_control_c::doorCheck(dEvt_order_c* order) {
mEventId = actor2->eventInfo.getEventId();
if (mEventId != -1 && dComIfGp_getPEvtManager()->getEventData(mEventId) != NULL) {
if (!dComIfGp_evmng_order(mEventId))
- JUT_ASSERT(0x2c0, FALSE);
+ JUT_ASSERT(VERSION_SELECT(702, 704, 704, 704), FALSE);
} else {
mEventId = -1;
reset();
@@ -379,7 +391,7 @@ BOOL dEvt_control_c::itemCheck(dEvt_order_c* order) {
mMode = dEvtMode_DEMO_e;
mEventId = dComIfGp_evmng_getEventIdx(defaultEventName);
if (!dComIfGp_evmng_order(mEventId))
- JUT_ASSERT(0x2ea, FALSE);
+ JUT_ASSERT(VERSION_SELECT(744, 746, 746, 746), FALSE);
return TRUE;
} else {
return FALSE;
@@ -398,7 +410,7 @@ BOOL dEvt_control_c::endProc() {
case dEvtMode_COMPULSORY_e:
break;
default:
- JUT_ASSERT(0x315, FALSE);
+ JUT_ASSERT(VERSION_SELECT(787, 789, 789, 789), FALSE);
}
mMode = dEvtMode_NONE_e;
@@ -506,7 +518,7 @@ BOOL dEvt_control_c::checkStart() {
case dEvtType_CHANGE_e:
break;
default:
- JUT_ASSERT(0x39c, FALSE);
+ JUT_ASSERT(VERSION_SELECT(922, 924, 924, 924), FALSE);
break;
}
@@ -595,8 +607,8 @@ BOOL dEvt_control_c::photoCheck() {
if (actor1 == NULL) {
return FALSE;
}
- if (!actor1->eventInfo.chkCondition(dEvtCnd_CANTALK_e) ||
- !actor2->eventInfo.chkCondition(dEvtCnd_CANTALK_e)
+ if (actor1->eventInfo.chkCondition(dEvtCnd_CANTALK_e) == FALSE ||
+ actor2->eventInfo.chkCondition(dEvtCnd_CANTALK_e) == FALSE
) {
return FALSE;
}
@@ -612,7 +624,7 @@ BOOL dEvt_control_c::photoCheck() {
/* 80071270-80071418 .text moveApproval__14dEvt_control_cFPv */
s32 dEvt_control_c::moveApproval(void* actor) {
fopAc_ac_c* i_ac = (fopAc_ac_c*)actor;
- if (getMode() == dEvtMode_NONE_e)
+ if (runCheck() == FALSE)
return dEvtMove_MOVE_e;
switch (getMode()) {
@@ -641,13 +653,20 @@ s32 dEvt_control_c::moveApproval(void* actor) {
return dEvtMove_MOVE_e;
if (fopAcM_CheckStatus(i_ac, fopAcStts_UNK800_e))
return dEvtMove_MOVE_e;
+#if VERSION == VERSION_DEMO
+ if (dComIfGp_event_getMode() == dEvtMode_COMPULSORY_e && fopAcM_CheckStatus(i_ac, fopAcStts_BOSS_e))
+ return dEvtMove_NOMOVE_e;
+#else
if ((dComIfGp_event_getMode() == dEvtMode_COMPULSORY_e || dComIfGp_event_getMode() == dEvtMode_TALK_e) && fopAcM_CheckStatus(i_ac, fopAcStts_BOSS_e))
return dEvtMove_NOMOVE_e;
if (chkEventFlag(0x80) && fopAcM_CheckStatus(i_ac, fopAcStts_BOSS_e))
return dEvtMove_NOMOVE_e;
+#endif
if (fopAcM_CheckStatus(i_ac, fopAcStts_UNK4000_e))
return dEvtMove_MOVE_e;
- return fopAcM_CheckStatus(i_ac, fopAcStts_CARRY_e) ? dEvtMove_MOVE_e : dEvtMove_NOMOVE_e;
+ if (fopAcM_CheckStatus(i_ac, fopAcStts_CARRY_e))
+ return dEvtMove_MOVE_e;
+ return dEvtMove_NOMOVE_e;
}
/* 80071418-80071468 .text compulsory__14dEvt_control_cFPvPCcUs */