summaryrefslogtreecommitdiff
path: root/src/d
diff options
context:
space:
mode:
authorTakaRikka <38417346+TakaRikka@users.noreply.github.com>2025-05-17 09:56:20 -0700
committerGitHub <noreply@github.com>2025-05-17 19:56:20 +0300
commitd1a5f8d71c6660b3f06781ef56f7f0cdec663cba (patch)
treec87f8998e3aa956f6dba040cea296bf812af720c /src/d
parent165095b3d9cbb89b5a2e40a67b1f3c5c223ba763 (diff)
cleanup d_msg_flow (#2447)
Diffstat (limited to 'src/d')
-rw-r--r--src/d/d_com_static.cpp4
-rw-r--r--src/d/d_msg_flow.cpp2312
-rw-r--r--src/d/d_shop_system.cpp4
3 files changed, 1555 insertions, 765 deletions
diff --git a/src/d/d_com_static.cpp b/src/d/d_com_static.cpp
index edd5f15746..a8a9f4e810 100644
--- a/src/d/d_com_static.cpp
+++ b/src/d/d_com_static.cpp
@@ -260,8 +260,8 @@ void daNpcKakashi_setSwdTutorialResult(bool param_0) {
}
/* 800317A4-800317DC 02C0E4 0038+00 0/0 1/1 1/1 .text daNpcKakashi_getSuccessCount__Fv */
-int daNpcKakashi_getSuccessCount() {
- return dComIfGs_getTmpReg(0xFEFF);
+u8 daNpcKakashi_getSuccessCount() {
+ return dComIfGs_getTmpReg(0xFEFF) & 0xFF;
}
/* 800317DC-80031838 02C11C 005C+00 0/0 0/0 1/1 .text daNpcKakashi_incSuccessCount__Fv */
diff --git a/src/d/d_msg_flow.cpp b/src/d/d_msg_flow.cpp
index 17bbdf12a5..7bb1343311 100644
--- a/src/d/d_msg_flow.cpp
+++ b/src/d/d_msg_flow.cpp
@@ -1,8 +1,3 @@
-//
-// Generated By: dol2asm
-// Translation Unit: d/d_msg_flow
-//
-
#include "d/d_msg_flow.h"
#include "d/actor/d_a_alink.h"
#include "d/d_com_static.h"
@@ -13,6 +8,8 @@
#include "f_op/f_op_msg_mng.h"
#include "m_Do/m_Do_graphic.h"
#include "d/actor/d_a_midna.h"
+#include "d/actor/d_a_myna.h"
+#include "d/actor/d_a_obj_ss_base.h"
#include "SSystem/SComponent/c_math.h"
/* 803C14B8-803C14C4 01E5D8 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */
@@ -31,12 +28,9 @@ dMsgFlow_c::~dMsgFlow_c() {}
/* 80249F90-8024A13C 2448D0 01AC+00 0/0 10/10 86/86 .text
* init__10dMsgFlow_cFP10fopAc_ac_ciiPP10fopAc_ac_c */
-void dMsgFlow_c::init(fopAc_ac_c* i_partner, int i_flowID, int param_2, fopAc_ac_c** param_3) {
- u16 uVar4;
- u16 flow_val;
-
+void dMsgFlow_c::init(fopAc_ac_c* i_partner, int i_flowID, int param_2, fopAc_ac_c** i_talkPartners) {
if (!dMsgObject_isTalkNowCheck()) {
- if (param_3 == NULL) {
+ if (i_talkPartners == NULL) {
dComIfGp_setMesgCameraInfoActor(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL);
}
@@ -44,134 +38,179 @@ void dMsgFlow_c::init(fopAc_ac_c* i_partner, int i_flowID, int param_2, fopAc_ac
if (param_2 == 0 && g_MsgObject_HIO_c.mMsgDebug == 2) {
i_flowID = g_MsgObject_HIO_c.mFlowIndex;
}
- flow_val = i_flowID;
+
+ u8* labelInfoTBL = NULL;
+ u16 prevFlowID = i_flowID;
dMsgObject_changeFlowGroup(i_flowID);
+
if (param_2 == 0) {
setInitValue(1);
+
mFlow_p = getMsgDataBlock("FLW1");
+ JUT_ASSERT(121, 0 != mFlow_p);
+
mLabelInfo_p = getMsgDataBlock("FLI1");
- mFlowNodeTBL = (mesg_flow_node*)(mFlow_p + 0x10);
- field_0x14 = (u16*)(mFlowNodeTBL + (*(u16*)(mFlow_p + 8)));
- field_0x18 = field_0x14 + *(u16*)(mFlow_p + 8);
+ JUT_ASSERT(125, 0 != mLabelInfo_p);
+
+ labelInfoTBL = mLabelInfo_p + 0x10;
+ mFlowNodeTBL = (mesg_flow*)(mFlow_p + 0x10);
+ mFlowIdxTBL = (u16*)(mFlowNodeTBL + (*(u16*)(mFlow_p + 8)));
+ field_0x18 = mFlowIdxTBL + *(u16*)(mFlow_p + 8);
+
+ mFlow = prevFlowID;
- mFlow = flow_val;
if (i_partner != NULL) {
dMsgObject_setTalkPartner(i_partner);
}
- setNodeIndex(getInitNodeIndex(mFlow), param_3);
+
+ setNodeIndex(getInitNodeIndex(mFlow), i_talkPartners);
} else {
- uVar4 = field_0x10;
+ u16 nodeIdx = mNodeIdx;
setInitValue(0);
+
if (i_partner != NULL) {
dMsgObject_setTalkPartner(i_partner);
}
- setNodeIndex(uVar4, param_3);
+
+ setNodeIndex(nodeIdx, i_talkPartners);
}
+#ifdef DEBUG
+ dbgPrint();
+#endif
dMsgObject_setSelectWordFlag(0);
}
}
-static void dummy() {
- DEAD_STRING("");
+void dMsgFlow_c::initWord(fopAc_ac_c* i_partner, const char* i_word, u8 i_outputType, int param_3, fopAc_ac_c** param_4) {
+ int flowID = 0x1324;
+ dMsgObject_setWord(i_word);
+ dMsgObject_setSelectWord(0, "");
+ dMsgObject_setSelectWord(1, "");
+ dMsgObject_setSelectWord(2, "");
+
+ if (i_outputType != 0xFF) {
+ dMsgObject_setMsgOutputType(i_outputType);
+ }
+
+ init(i_partner, flowID, param_3, param_4);
}
/* 8024A13C-8024A2D8 244A7C 019C+00 2/0 0/0 2/2 .text checkOpenDoor__10dMsgFlow_cFP10fopAc_ac_cPi
*/
-// NONMATCHING regalloc, instruction issues
-int dMsgFlow_c::checkOpenDoor(fopAc_ac_c *param_1,int *param_2) {
- if (dMsgObject_isTalkNowCheck()) {
- return 0;
- } else {
- int iVar3 = 0;
- int iVar7 = 0;
- s32 bVar2 = 0;
- mesg_flow_node* iVar8;
- u16 uVar5 = getInitNodeIndex(mFlow);
- while (((uVar5 != 0xffff && (!iVar3)) && (!bVar2))) {
- iVar8 = &mFlowNodeTBL[uVar5];
- switch(iVar8->type) {
- case 0:
- default:
- break;
- case 1:
- uVar5 = *(u16*)iVar8->params;
- iVar7 = iVar7 + 1;
- break;
- case 2:
- mesg_flow_node_branch* nodeBranch = (mesg_flow_node_branch*)iVar8;
- switch(iVar8->msg_index) {
- case 0:
- case 4:
- case 7:
- case 8:
- case 9:
- case 0x19:
- bVar2 = 1;
- break;
+int dMsgFlow_c::checkOpenDoor(fopAc_ac_c* i_speaker_p, int* param_2) {
+ if (dMsgObject_isTalkNowCheck()) {
+ return 0;
+ }
+
+ BOOL var_r27 = FALSE;
+ int var_r26 = 0;
+ BOOL var_r25 = FALSE;
+
+ u16 flowID = mFlow;
+ u16 nodeIdx = getInitNodeIndex(flowID);
+
+ mesg_flow_node* msg_node = NULL;
+ mesg_flow_node_branch* branch_node = NULL;
+ mesg_flow_node_event* event_node = NULL;
+
+ while ((nodeIdx != 0xFFFF && !var_r27) && !var_r25) {
+ u8 type = mFlowNodeTBL[nodeIdx].message.type;
+
+ switch(type) {
+ case NODETYPE_MESSAGE_e: {
+ msg_node = &mFlowNodeTBL[nodeIdx].message;
+ nodeIdx = msg_node->next_node_idx;
+ var_r26++;
+ break;
}
- u32 sVar6 = (this->*mQueryList[iVar8->msg_index])(nodeBranch, param_1, 0);
- uVar5 = field_0x14[(*(u16*)(iVar8->params + 2)) + sVar6];
- break;
-
- case 3:
- switch(iVar8->field_0x1) {
- case 8:
- case 9:
- case 0xd:
- case 0x10:
- case 0x13:
- case 0x1d:
- bVar2 = 1;
- break;
- case 0xc:
- iVar3 = 1;
- break;
+ case NODETYPE_BRANCH_e: {
+ branch_node = (mesg_flow_node_branch*)&mFlowNodeTBL[nodeIdx].branch;
+
+ switch(branch_node->query_idx) {
+ case 0:
+ case 4:
+ case 7:
+ case 8:
+ case 9:
+ case 25:
+ var_r25 = TRUE;
+ break;
+ }
+
+ u16 query_ret = (this->*mQueryList[branch_node->query_idx])(branch_node, i_speaker_p, 0);
+ u16 spE = branch_node->next_node_idx + query_ret;
+ nodeIdx = mFlowIdxTBL[spE];
+ break;
+ }
+ case NODETYPE_EVENT_e: {
+ event_node = &mFlowNodeTBL[nodeIdx].event;
+
+ switch(event_node->event_idx) {
+ case 12:
+ var_r27 = TRUE;
+ break;
+ case 8:
+ case 9:
+ case 13:
+ case 16:
+ case 19:
+ case 29:
+ var_r25 = TRUE;
+ break;
+ default:
+ nodeIdx = mFlowIdxTBL[event_node->next_node_idx];
+ break;
+ }
+ break;
+ }
+ case 0:
default:
- uVar5 = field_0x14[iVar8->msg_index];
- break;
+ JUT_ASSERT(362, 0);
+ break;
}
- break;
- }
}
+
if (param_2 != NULL) {
- *param_2 = iVar7;
+ *param_2 = var_r26;
}
- return iVar3;
- }
-
+
+ return var_r27;
}
/* 8024A2D8-8024A424 244C18 014C+00 0/0 21/21 78/78 .text
* doFlow__10dMsgFlow_cFP10fopAc_ac_cPP10fopAc_ac_ci */
-int dMsgFlow_c::doFlow(fopAc_ac_c* param_0, fopAc_ac_c** param_1, int i_flow) {
- int check = false;
- u16 set_flow = i_flow;
+int dMsgFlow_c::doFlow(fopAc_ac_c* i_speaker_p, fopAc_ac_c** i_talkPartners, int i_flowID) {
+ BOOL check = FALSE;
+ int var_r26 = 0;
+
+ u16 flowID = i_flowID;
dMsgObject_changeFlowGroup(mFlow);
if (dMsgObject_isKillMessageFlag()) {
field_0x27 = 1;
field_0x26 = 1;
- set_flow = 0;
+ flowID = 0;
}
- if (field_0x26 != 0 && set_flow != 0) {
+ if (field_0x26 != 0 && flowID != 0) {
setInitValue(0);
- mFlow = set_flow;
- setNodeIndex(getInitNodeIndex(mFlow), param_1);
+ mFlow = flowID;
+ setNodeIndex(getInitNodeIndex(mFlow), i_talkPartners);
check = true;
}
if (field_0x26 != 0 || field_0x27 != 0) {
- msg_class* msg = fopMsgM_SearchByID(mMsg);
- if (msg != NULL) {
- if (msg->mode != 0x12) {
+ msg_class* aMsg_p = fopMsgM_SearchByID(mMsg);
+ if (aMsg_p != NULL) {
+ if (aMsg_p->mode != 18) {
return 0;
}
- msg->mode = 0x13;
- mMsg = -1;
+ aMsg_p->mode = 19;
+ mMsg = fpcM_ERROR_PROCESS_ID_e;
}
+
field_0x27 = 0;
}
@@ -181,51 +220,27 @@ int dMsgFlow_c::doFlow(fopAc_ac_c* param_0, fopAc_ac_c** param_1, int i_flow) {
return 1;
}
- int proc_status = nodeProc(param_0, param_1);
- return proc_status != 0 || check;
+ var_r26 = nodeProc(i_speaker_p, i_talkPartners);
+ return var_r26 != 0 || check;
}
/* 8024A424-8024A4C4 244D64 00A0+00 0/0 2/2 1/1 .text checkEventRender__10dMsgFlow_cFPiPiPiPi */
int dMsgFlow_c::checkEventRender(int* param_0, int* param_1, int* param_2, int* param_3) {
if (field_0x47) {
if (param_0 != NULL) {
- int tmp0;
- if (field_0x42 == 0xFF) {
- tmp0 = -1;
- } else {
- tmp0 = field_0x42;
- }
- *param_0 = tmp0;
+ *param_0 = field_0x42 == 0xFF ? -1 : field_0x42;
}
if (param_1 != NULL) {
- int tmp1;
- if (field_0x43 == 0xFF) {
- tmp1 = -1;
- } else {
- tmp1 = field_0x43;
- }
- *param_1 = tmp1;
+ *param_1 = field_0x43 == 0xFF ? -1 : field_0x43;
}
if (param_2 != NULL) {
- int tmp2;
- if (field_0x44 == 0xFF) {
- tmp2 = -1;
- } else {
- tmp2 = field_0x44;
- }
- *param_2 = tmp2;
+ *param_2 = field_0x44 == 0xFF ? -1 : field_0x44;
}
if (param_3 != NULL) {
- int tmp3;
- if (field_0x45 == 0xFF) {
- tmp3 = -1;
- } else {
- tmp3 = field_0x45;
- }
- *param_3 = tmp3;
+ *param_3 = field_0x45 == 0xFF ? -1 : field_0x45;
}
}
@@ -237,9 +252,10 @@ void dMsgFlow_c::remove() {
field_0x27 = 0;
field_0x26 = 1;
- if (fopMsgM_SearchByID(mMsg) != NULL) {
- dMsgObject_c::onKillMessageFlag();
- mMsg = -1;
+ msg_class* aMsg_p = fopMsgM_SearchByID(mMsg);
+ if (aMsg_p != NULL) {
+ dMsgObject_onKillMessageFlag();
+ mMsg = fpcM_ERROR_PROCESS_ID_e;
}
daPy_py_c::setMidnaMotionNum(0);
@@ -248,6 +264,7 @@ void dMsgFlow_c::remove() {
/* 8024A528-8024A538 244E68 0010+00 0/0 2/2 66/66 .text getEventId__10dMsgFlow_cFPi */
u16 dMsgFlow_c::getEventId(int* oItemId_p) {
+ JUT_ASSERT(555, 0 != oItemId_p);
*oItemId_p = field_0x30;
return mEventId;
}
@@ -264,7 +281,7 @@ u32 dMsgFlow_c::getNowMsgNo() {
/* 8024A548-8024A580 244E88 0038+00 0/0 2/2 4/4 .text getMsg__10dMsgFlow_cFv */
msg_class* dMsgFlow_c::getMsg() {
- if (mMsg != -1) {
+ if (mMsg != fpcM_ERROR_PROCESS_ID_e) {
return fopMsgM_SearchByID(mMsg);
}
@@ -277,16 +294,16 @@ void dMsgFlow_c::setInitValue(int param_0) {
mFlow_p = NULL;
mLabelInfo_p = NULL;
mFlowNodeTBL = NULL;
- field_0x14 = NULL;
- field_0x18 = 0;
- mMsg = -1;
+ mFlowIdxTBL = NULL;
+ field_0x18 = NULL;
+ mMsg = fpcM_ERROR_PROCESS_ID_e;
mMsgNo = 0;
mNowMsgNo = 0;
}
- field_0x10 = -1;
+ mNodeIdx = -1;
mFlow = 0;
- field_0x46 = 0;
+ mSelType = SELTYPE_NONE_e;
mSelectMessage = 0;
field_0x25 = 0;
field_0x26 = 0;
@@ -296,7 +313,7 @@ void dMsgFlow_c::setInitValue(int param_0) {
field_0x34 = 91;
field_0x38 = 0;
mChoiceNo = -1;
- field_0x3c = 0;
+ mTimer = 0;
field_0x40 = 0;
field_0x41 = 0;
field_0x42 = -1;
@@ -308,42 +325,51 @@ void dMsgFlow_c::setInitValue(int param_0) {
/* 8024A618-8024A6EC 244F58 00D4+00 1/1 0/0 0/0 .text
* setInitValueGroupChange__10dMsgFlow_cFiPP10fopAc_ac_c */
-void dMsgFlow_c::setInitValueGroupChange(int param_1, fopAc_ac_c** param_2) {
- u8* pJVar1;
- u32 uVar2;
- s32 unaff_r13;
+void dMsgFlow_c::setInitValueGroupChange(int i_msgNo, fopAc_ac_c** i_talkPartners) {
+ u8* labelInfoTBL = NULL;
+ u16 var_r28 = i_msgNo;
- dMsgObject_changeFlowGroup(param_1);
+ dMsgObject_changeFlowGroup(i_msgNo);
setInitValue(0);
+
mFlow_p = getMsgDataBlock("FLW1");
+ JUT_ASSERT(680, 0 != mFlow_p);
+
mLabelInfo_p = getMsgDataBlock("FLI1");
- mFlowNodeTBL = (mesg_flow_node*)(mFlow_p + 0x10);
- field_0x14 = (u16*)(mFlowNodeTBL + *(u16*)(mFlow_p + 8));
- field_0x18 = field_0x14 + *(u16*)(mFlow_p + 8);
- mFlow = param_1;
- setNodeIndex(getInitNodeIndex(mFlow), param_2);
+ JUT_ASSERT(684, 0 != mLabelInfo_p);
+
+ labelInfoTBL = mLabelInfo_p + 0x10;
+
+ mFlowNodeTBL = (mesg_flow*)(mFlow_p + 0x10);
+ mFlowIdxTBL = (u16*)(mFlowNodeTBL + *(u16*)(mFlow_p + 8));
+ field_0x18 = mFlowIdxTBL + *(u16*)(mFlow_p + 8);
+ mFlow = var_r28;
+ setNodeIndex(getInitNodeIndex(mFlow), i_talkPartners);
}
/* 8024A6EC-8024A784 24502C 0098+00 4/4 0/0 0/0 .text getMsgDataBlock__10dMsgFlow_cFPCc
*/
u8* dMsgFlow_c::getMsgDataBlock(char const* block_tag) {
+ u8* block_p = NULL;
+ u8* aMsgRes_p = NULL;
+
char tag[5] = {0};
- u8* dt_p = (u8*)dMsgObject_c::getMsgDtPtr();
- u8* block;
- u32 num;
- u32 i;
- num = *(u32*)(dt_p + 0xC);
- i = 0;
- block = dt_p + 0x20;
+ aMsgRes_p = dMsgObject_getMsgDtPtr();
+ JUT_ASSERT(742, 0 != aMsgRes_p);
- for (; i < num; i++) {
- memcpy(tag, block, 4);
+ u32 num = *(u32*)(aMsgRes_p + 0xC);
+ aMsgRes_p += 0x20;
- if (!strcmp(tag, block_tag)) {
- return block;
+ for (u32 i = 0; i < num; i++) {
+ block_p = aMsgRes_p;
+ memcpy(tag, block_p, 4);
+
+ if (strcmp(tag, block_tag) == 0) {
+ return aMsgRes_p;
}
- block = block + *(int*)(block + 4);
+
+ aMsgRes_p += *(int*)(block_p + 4);
}
return NULL;
@@ -352,259 +378,328 @@ u8* dMsgFlow_c::getMsgDataBlock(char const* block_tag) {
/* 8024A784-8024A7CC 2450C4 0048+00 5/5 0/0 0/0 .text getInitNodeIndex__10dMsgFlow_cFUs
*/
u16 dMsgFlow_c::getInitNodeIndex(u16 param_1) {
- u8* puVar4;
- u16 uVar2;
- uVar2 = -1;
- puVar4 = mLabelInfo_p + 0x10;
+ u8* var_r30 = NULL;
+ u16 var_r27 = -1;
+
+ JUT_ASSERT(777, 0 != mLabelInfo_p);
+ var_r30 = mLabelInfo_p + 0x10;
+
for (int i = 0; i < *(u16*)(mLabelInfo_p + 8); i++) {
- if (*(u32*)puVar4 >> 16 == param_1) {
- uVar2 = *(u16*)(puVar4 + 4);
+ if (*(u32*)var_r30 >> 16 == param_1) {
+ var_r27 = *(u16*)(var_r30 + 4);
}
- puVar4 += 8;
+
+ var_r30 += 0x8;
}
- return uVar2;
+
+ return var_r27;
}
/* 8024A7CC-8024A95C 24510C 0190+00 6/6 0/0 0/0 .text setNodeIndex__10dMsgFlow_cFUsPP10fopAc_ac_c
*/
-void dMsgFlow_c::setNodeIndex(u16 param_1, fopAc_ac_c** param_2) {
- msg_class* msg = NULL;
- if (mMsg != -1) {
- msg = fopMsgM_SearchByID(mMsg);
+void dMsgFlow_c::setNodeIndex(u16 i_nodeIdx, fopAc_ac_c** i_talkPartners) {
+ msg_class* aMsg_p = NULL;
+ if (mMsg != fpcM_ERROR_PROCESS_ID_e) {
+ aMsg_p = fopMsgM_SearchByID(mMsg);
+ JUT_ASSERT(806, 0 != aMsg_p);
}
- if (param_1 == 0xffff) {
- if (msg != NULL) {
- msg->mode = 0x10;
+ if (i_nodeIdx == 0xFFFF) {
+ if (aMsg_p != NULL) {
+ aMsg_p->mode = 16;
}
+
dMsgObject_endFlowGroup();
- field_0x26 = 0x1;
+ field_0x26 = 1;
} else {
- switch (mFlowNodeTBL[param_1].type) {
+ switch (mFlowNodeTBL[i_nodeIdx].message.type) {
case 0:
break;
- case 1:
- field_0x25 = 0x1;
+ case NODETYPE_MESSAGE_e:
+ field_0x25 = 1;
break;
- case 2:
+ case NODETYPE_BRANCH_e:
break;
- case 3:
- mesg_flow_node* node = &mFlowNodeTBL[param_1];
- if (node->field_0x1 == 21 || node->field_0x1 == 32 ||
- node->field_0x1 == 33) {
- if (node->field_0x1 == 21) {
- field_0x3c = getParam(node->params);
+ case NODETYPE_EVENT_e:
+ mesg_flow_node_event* node = NULL;
+ node = &mFlowNodeTBL[i_nodeIdx].event;
+
+ if (node->event_idx == 21 || node->event_idx == 32 || node->event_idx == 33) {
+ if (node->event_idx == 21) {
+ mTimer = getParam(node->params);
} else {
- u16 local_22[3];
- getParam(local_22, local_22 + 1, node->params);
- field_0x3c = local_22[1] + 1;
+ u16 prm[2];
+ getParam(prm, prm + 1, node->params);
+ mTimer = prm[1] + 1;
}
- if (msg != NULL) {
- msg->mode = 0x10;
+
+ if (aMsg_p != NULL) {
+ aMsg_p->mode = 16;
dMsgObject_endFlowGroup();
}
+
field_0x27 = 1;
}
- if (node->field_0x1 == 9) {
+
+ if (node->event_idx == 9) {
field_0x27 = 1;
- } else if (node->field_0x1 == 19) {
- u16 local_26;
- u16 local_28;
- getParam(&local_28, &local_26, node->params);
- field_0x38 = local_26;
- if (param_2 != NULL) {
- dMsgObject_setTalkPartner(param_2[field_0x38]);
+ } else if (node->event_idx == 19) {
+ u16 prm1;
+ u16 prm0;
+ getParam(&prm0, &prm1, node->params);
+ field_0x38 = (u16)prm1;
+
+ // "Speaker Set"
+ OS_REPORT("\x1B[44;32m話し手セット            \x1B[m|:");
+ OS_REPORT("flow:%d, prm0:%d, prm1:%d\n", mFlow, prm0, prm1);
+
+ if (i_talkPartners != NULL) {
+ dMsgObject_setTalkPartner(i_talkPartners[field_0x38]);
}
+ break;
}
}
}
- field_0x10 = param_1;
+
+ mNodeIdx = i_nodeIdx;
}
/* 8024A95C-8024AA50 24529C 00F4+00 1/1 0/0 0/0 .text
* setSelectMsg__10dMsgFlow_cFP14mesg_flow_nodeP14mesg_flow_nodeP10fopAc_ac_c */
-int dMsgFlow_c::setSelectMsg(mesg_flow_node* param_1, mesg_flow_node* param_2,
- fopAc_ac_c* param_3) {
- u32 uVar1;
- u32 uVar2;
- u16* iVar3;
-
- iVar3 = (u16*) getMsgDataBlock("INF1");
- uVar1 = ((iVar3 + (param_2->msg_index) * 10))[10];
- uVar2 = ((iVar3 + (param_1->msg_index) * 10))[10];
+int dMsgFlow_c::setSelectMsg(mesg_flow_node* i_flowNode_p, mesg_flow_node* param_2,
+ fopAc_ac_c* i_speaker_p) {
+ u16* inf_p = NULL;
+ u16 temp_r25;
+ u16 msg_no;
+
+ mesg_flow_node* var_r29 = NULL;
+
+ inf_p = (u16*)getMsgDataBlock("INF1");
+
+ var_r29 = param_2;
+ temp_r25 = ((inf_p + (var_r29->msg_index) * 10))[10];
+
+ var_r29 = i_flowNode_p;
+ msg_no = ((inf_p + (var_r29->msg_index) * 10))[10];
+
+ // "Message Set (Select)"
+ OS_REPORT("\x1B[44;37mメッセ−ジセット(選択)      \x1B[m|:");
+
+#ifdef DEBUG
+ if (i_speaker_p != NULL) {
+ const char* speaker_name = fopAcM_getProcNameString(i_speaker_p);
+ OS_REPORT("flow:%d, msg:%d(%d), speaker:%s\n", mFlow, msg_no, temp_r25, speaker_name);
+ } else {
+ OS_REPORT("flow:%d, msg:%d(%d), speaker:NULL\n", mFlow, msg_no, temp_r25);
+ }
+#endif
- if (mMsg != -1) {
- msg_class* iVar3 = fopMsgM_SearchByID(mMsg);
- iVar3->mode = 0xf;
- fopMsgM_messageSet(uVar2, uVar1);
+ if (mMsg != fpcM_ERROR_PROCESS_ID_e) {
+ msg_class* aMsg_p = NULL;
+ aMsg_p = fopMsgM_SearchByID(mMsg);
+ JUT_ASSERT(944, 0 != aMsg_p);
+
+ aMsg_p->mode = 15;
+ fopMsgM_messageSet(msg_no, temp_r25);
} else {
- if (dMeter2Info_getFloatingFlowID() == 0xffff) {
- mMsg = fopMsgM_messageSet(uVar2, param_3, uVar1);
- if (mMsg == -1) {
+ if (dMeter2Info_getFloatingFlowID() == 0xFFFF) {
+ mMsg = fopMsgM_messageSet(msg_no, i_speaker_p, temp_r25);
+ if (mMsg == fpcM_ERROR_PROCESS_ID_e) {
return 0;
}
+
dMsgObject_setNowTalkFlowNo(mFlow);
}
}
- mMsgNo = uVar2;
+
+ mMsgNo = msg_no;
field_0x41 = 1;
return 1;
}
/* 8024AA50-8024AB30 245390 00E0+00 1/1 0/0 0/0 .text
* setNormalMsg__10dMsgFlow_cFP14mesg_flow_nodeP10fopAc_ac_c */
-int dMsgFlow_c::setNormalMsg(mesg_flow_node* param_1, fopAc_ac_c* param_2) {
- u32 uVar2;
- u16* iVar3;
-
- iVar3 = (u16*) getMsgDataBlock("INF1");
- uVar2 = ((iVar3 + (param_1->msg_index) * 10))[10];
+int dMsgFlow_c::setNormalMsg(mesg_flow_node* i_flowNode_p, fopAc_ac_c* i_speaker_p) {
+ u16* inf_p = NULL;
+ mesg_flow_node* var_r29 = NULL;
+ u16 msg_no;
+
+ var_r29 = i_flowNode_p;
+ inf_p = (u16*)getMsgDataBlock("INF1");
+ msg_no = ((inf_p + (var_r29->msg_index) * 10))[10];
+
+ // "Message Set"
+ OS_REPORT("\x1B[44;37mメッセ−ジセット          \x1B[m|:");
+
+#ifdef DEBUG
+ if (i_speaker_p != NULL) {
+ const char* speaker_name = fopAcM_getProcNameString(i_speaker_p);
+ OS_REPORT("flow:%d, msg:%d, speaker:%s\n", mFlow, msg_no, speaker_name);
+ } else {
+ OS_REPORT("flow:%d, msg:%d, speaker:NULL\n", mFlow, msg_no);
+ }
+#endif
- if (mMsg != -1) {
- msg_class* iVar3 = fopMsgM_SearchByID(mMsg);
- iVar3->mode = 0xf;
- fopMsgM_messageSet(uVar2, 1000);
+ if (mMsg != fpcM_ERROR_PROCESS_ID_e) {
+ msg_class* aMsg_p = NULL;
+ aMsg_p = fopMsgM_SearchByID(mMsg);
+ JUT_ASSERT(1007, 0 != aMsg_p);
+
+ aMsg_p->mode = 15;
+ fopMsgM_messageSet(msg_no, 1000);
} else {
- if (dMeter2Info_getFloatingFlowID() == 0xffff) {
- mMsg = fopMsgM_messageSet(uVar2, param_2, 1000);
- if (mMsg == -1) {
+ if (dMeter2Info_getFloatingFlowID() == 0xFFFF) {
+ mMsg = fopMsgM_messageSet(msg_no, i_speaker_p, 1000);
+ if (mMsg == fpcM_ERROR_PROCESS_ID_e) {
return 0;
}
+
dMsgObject_setNowTalkFlowNo(mFlow);
}
}
- mMsgNo = uVar2;
+
+ mMsgNo = msg_no;
field_0x41 = 1;
return 1;
}
/* 8024AB30-8024AD54 245470 0224+00 2/1 0/0 0/0 .text
* messageNodeProc__10dMsgFlow_cFP10fopAc_ac_cPP10fopAc_ac_c */
-int dMsgFlow_c::messageNodeProc(fopAc_ac_c* param_1, fopAc_ac_c** param_2) {
- mesg_flow_node* uVar1;
+int dMsgFlow_c::messageNodeProc(fopAc_ac_c* i_speaker_p, fopAc_ac_c** i_talkPartners) {
+ mesg_flow_node* flowNode_p = NULL;
+ flowNode_p = &mFlowNodeTBL[mNodeIdx].message;
- uVar1 = &mFlowNodeTBL[field_0x10];
if (field_0x25 != 0) {
- if (field_0x46 != 0) {
- u16 pars = *(u16*)uVar1->params;
- if ((field_0x46 == 1) &&
- (mFlowNodeTBL[pars].type == 1)) {
- if (setSelectMsg(mFlowNodeTBL + field_0x10,
- mFlowNodeTBL + pars, param_1)) {
- field_0x10 = pars;
- field_0x46 = 0;
+ if (mSelType != SELTYPE_NONE_e) {
+ u16 aNextNodeIndex = flowNode_p->next_node_idx;
+ JUT_ASSERT(1051, 0xFFFF != aNextNodeIndex);
+
+ if (mSelType == SELTYPE_VERTICAL_e && mFlowNodeTBL[aNextNodeIndex].message.type == NODETYPE_MESSAGE_e) {
+ JUT_ASSERT(1056, NODETYPE_MESSAGE_e == mFlowNodeTBL[aNextNodeIndex].message.type);
+ if (setSelectMsg(&mFlowNodeTBL[mNodeIdx].message, &mFlowNodeTBL[aNextNodeIndex].message, i_speaker_p)) {
+ mNodeIdx = aNextNodeIndex;
+ mSelType = SELTYPE_NONE_e;
field_0x25 = 0;
}
- } else if ((field_0x46 == 2) &&
- (mFlowNodeTBL[pars].type == 2)) {
- if (setNormalMsg(mFlowNodeTBL + field_0x10,param_1)) {
- field_0x46 = 0;
+ } else if (mSelType == SELTYPE_HORIZONTAL_e && mFlowNodeTBL[aNextNodeIndex].message.type == NODETYPE_BRANCH_e) {
+ if (setNormalMsg(&mFlowNodeTBL[mNodeIdx].message, i_speaker_p)) {
+ mSelType = SELTYPE_NONE_e;
field_0x25 = 0;
}
+ } else {
+ OS_REPORT("★sel select mesg ===> %d, %d, %d\n", mSelType, aNextNodeIndex, mFlowNodeTBL[aNextNodeIndex].message.type);
+ JUT_ASSERT(1077, 0);
}
} else {
- if (setNormalMsg(mFlowNodeTBL + field_0x10, param_1)) {
+ if (setNormalMsg(&mFlowNodeTBL[mNodeIdx].message, i_speaker_p)) {
field_0x25 = 0;
}
}
+
return 0;
+ }
+
+ msg_class* aMsg_p = fopMsgM_SearchByID(mMsg);
+ if (aMsg_p == NULL) {
+ field_0x25 = 1;
} else {
- msg_class* msg = fopMsgM_SearchByID(mMsg);
- if (msg == NULL) {
- field_0x25 = 1;
- } else {
- int mesgCamInfoBasicID = dComIfGp_getMesgCameraInfo()->mBasicID;
- if (mesgCamInfoBasicID != field_0x34) {
- field_0x34 = mesgCamInfoBasicID;
+ dComIfG_MesgCamInfo_c* aMsgCamInfo_p = dComIfGp_getMesgCameraInfo();
+ if (aMsgCamInfo_p->mBasicID != field_0x34) {
+ field_0x34 = aMsgCamInfo_p->mBasicID;
+ }
+
+ switch (aMsg_p->mode) {
+ case 2:
+ field_0x41 = 1;
+ mNowMsgNo = aMsg_p->msg_idx;
+ break;
+ case 6:
+ field_0x40 = field_0x41;
+
+ int mesgAnimeAttrInfo = -1;
+ int mesgFaceAnimeAttrInfo = -1;
+
+ if (field_0x41 != 0) {
+ mesgAnimeAttrInfo = dComIfGp_getMesgAnimeAttrInfo();
+ mesgFaceAnimeAttrInfo = dComIfGp_getMesgFaceAnimeAttrInfo();
}
- switch (msg->mode) {
- case 2:
- field_0x41 = 1;
- mNowMsgNo = msg->msg_idx;
- break;
- case 6:
- field_0x40 = field_0x41;
- int mesgAnimeAttrInfo = -1;
- int mesgFaceAnimeAttrInfo = -1;
- if (field_0x41 != 0) {
- mesgAnimeAttrInfo = dComIfGp_getMesgAnimeAttrInfo();
- mesgFaceAnimeAttrInfo = dComIfGp_getMesgFaceAnimeAttrInfo();
- }
- if (mesgAnimeAttrInfo >= 0x1f) {
- daPy_py_c::setMidnaMotionNum(mesgAnimeAttrInfo);
- }
- if (mesgFaceAnimeAttrInfo >= 0x1f) {
- daPy_py_c::setMidnaFaceNum(mesgFaceAnimeAttrInfo);
- }
- field_0x41 = 0;
- mNowMsgNo = msg->msg_idx;
- break;
- case 0xe:
- case 0x12:
- setNodeIndex(*(u16*)uVar1->params, param_2);
- mesg_flow_node* iVar4 = &mFlowNodeTBL[*(u16*)uVar1->params];
- if (iVar4->field_0x1 == 0x15 || iVar4->field_0x1 == 0x20 ||
- iVar4->field_0x1 == 0x21) {
+
+ if (mesgAnimeAttrInfo >= 0x1f) {
+ daPy_py_c::setMidnaMotionNum(mesgAnimeAttrInfo);
+ }
+
+ if (mesgFaceAnimeAttrInfo >= 0x1f) {
+ daPy_py_c::setMidnaFaceNum(mesgFaceAnimeAttrInfo);
+ }
+
+ field_0x41 = 0;
+ mNowMsgNo = aMsg_p->msg_idx;
+ break;
+ case 14:
+ case 18:
+ setNodeIndex(flowNode_p->next_node_idx, i_talkPartners);
+
+ mesg_flow_node* var_r26 = &mFlowNodeTBL[flowNode_p->next_node_idx].message;
+ if (var_r26->field_0x1 == 0x15 || var_r26->field_0x1 == 0x20 || var_r26->field_0x1 == 0x21) {
return 0;
- }
- return 1;
}
+
+ return 1;
}
-
}
+
return 0;
}
-
/* 8024AD54-8024ADEC 245694 0098+00 1/1 0/0 0/0 .text
* branchNodeProc__10dMsgFlow_cFP10fopAc_ac_cPP10fopAc_ac_c */
-int dMsgFlow_c::branchNodeProc(fopAc_ac_c* param_0, fopAc_ac_c** param_1) {
- mesg_flow_node_branch* node = (mesg_flow_node_branch*)&mFlowNodeTBL[field_0x10];
- int proc_status = (this->*mQueryList[node->msg_index])(node, param_0, 1);
+int dMsgFlow_c::branchNodeProc(fopAc_ac_c* i_speaker_p, fopAc_ac_c** i_talkPartners) {
+ mesg_flow_node_branch* node = NULL;
+ node = &mFlowNodeTBL[mNodeIdx].branch;
+ u16 proc_status = (this->*mQueryList[node->query_idx])(node, i_speaker_p, 1);
- setNodeIndex(field_0x14[(node->params[1] + proc_status) & 0xFFFF], param_1);
+ u16 var_r28 = node->next_node_idx + proc_status;
+ setNodeIndex(mFlowIdxTBL[var_r28], i_talkPartners);
return 1;
}
/* 8024ADEC-8024AFF8 24572C 020C+00 1/1 0/0 0/0 .text
* eventNodeProc__10dMsgFlow_cFP10fopAc_ac_cPP10fopAc_ac_c */
-int dMsgFlow_c::eventNodeProc(fopAc_ac_c* param_0, fopAc_ac_c** param_1) {
- mesg_flow_node_event* node = (mesg_flow_node_event*)&mFlowNodeTBL[field_0x10];
- int proc_status = (this->*mEventList[node->field_0x1])(node, param_0);
+int dMsgFlow_c::eventNodeProc(fopAc_ac_c* i_speaker_p, fopAc_ac_c** i_talkPartners) {
+ mesg_flow_node_event* node = NULL;
+ node = &mFlowNodeTBL[mNodeIdx].event;
+ int proc_status = (this->*mEventList[node->event_idx])(node, i_speaker_p);
- switch (node->field_0x1) {
+ switch (node->event_idx) {
case 8:
getParam(&mEventId, &field_0x30, node->params);
- setNodeIndex(field_0x14[node->msg_index], param_1);
+ setNodeIndex(mFlowIdxTBL[node->next_node_idx], i_talkPartners);
if (field_0x26 != 0) {
break;
}
- u16 tmp = field_0x10;
- setNodeIndex(-1, param_1);
- field_0x10 = tmp;
-
+ u16 prev_idx = mNodeIdx;
+ setNodeIndex(-1, i_talkPartners);
+ mNodeIdx = prev_idx;
break;
-
case 9:
if (getParam(node->params) == 0) {
int msgNum;
if (daAlink_getAlinkActorClass()->getMidnaMsgNum() == 0xFFFF) {
- msgNum =
- dComIfGp_roomControl_getStatusRoomDt(dComIfGp_roomControl_getStayNo())->getFileListInfo()->mMsg;
+ msgNum = dStage_FileList_dt_GetMsg(dComIfGp_roomControl_getStatusRoomDt(dComIfGp_roomControl_getStayNo())->getFileListInfo());
} else {
msgNum = daAlink_getAlinkActorClass()->getMidnaMsgNum();
daAlink_getAlinkActorClass()->setMidnaMsg();
}
- setInitValueGroupChange(msgNum, param_1);
+ setInitValueGroupChange(msgNum, i_talkPartners);
break;
}
setInitValue(0);
mFlow = getParam(node->params);
- setNodeIndex(getInitNodeIndex(mFlow), param_1);
+ setNodeIndex(getInitNodeIndex(mFlow), i_talkPartners);
if (mNonStopJunpFlowFlag) {
break;
@@ -615,15 +710,14 @@ int dMsgFlow_c::eventNodeProc(fopAc_ac_c* param_0, fopAc_ac_c** param_1) {
}
return 0;
-
case 21:
case 32:
case 33:
- if (field_0x3c != 0) {
+ if (mTimer != 0) {
return 0;
}
default:
- setNodeIndex(field_0x14[node->msg_index], param_1);
+ setNodeIndex(mFlowIdxTBL[node->next_node_idx], i_talkPartners);
}
return 1;
@@ -631,9 +725,10 @@ int dMsgFlow_c::eventNodeProc(fopAc_ac_c* param_0, fopAc_ac_c** param_1) {
/* 8024AFF8-8024B0F0 245938 00F8+00 1/1 0/0 0/0 .text
* nodeProc__10dMsgFlow_cFP10fopAc_ac_cPP10fopAc_ac_c */
-int dMsgFlow_c::nodeProc(fopAc_ac_c* param_0, fopAc_ac_c** param_1) {
- fopAc_ac_c* tmp = param_0;
+int dMsgFlow_c::nodeProc(fopAc_ac_c* i_speaker_p, fopAc_ac_c** i_talkPartners) {
+ fopAc_ac_c* aSpeaker_p = i_speaker_p;
int proc_status = 1;
+
field_0x47 = 0;
field_0x42 = -1;
field_0x43 = -1;
@@ -641,21 +736,24 @@ int dMsgFlow_c::nodeProc(fopAc_ac_c* param_0, fopAc_ac_c** param_1) {
field_0x45 = -1;
while (proc_status != 0 && field_0x26 == 0) {
- if (param_1 != NULL) {
- tmp = param_1[field_0x38];
+ if (i_talkPartners != NULL) {
+ aSpeaker_p = i_talkPartners[field_0x38];
}
- switch (mFlowNodeTBL[field_0x10].type) {
- case 0:
+ u8 type = mFlowNodeTBL[mNodeIdx].message.type;
+ switch (type) {
+ case NODETYPE_MESSAGE_e:
+ proc_status = messageNodeProc(aSpeaker_p, i_talkPartners);
break;
- case 1:
- proc_status = messageNodeProc(tmp, param_1);
+ case NODETYPE_BRANCH_e:
+ proc_status = branchNodeProc(aSpeaker_p, i_talkPartners);
break;
- case 2:
- proc_status = branchNodeProc(tmp, param_1);
+ case NODETYPE_EVENT_e:
+ proc_status = eventNodeProc(aSpeaker_p, i_talkPartners);
break;
- case 3:
- proc_status = eventNodeProc(tmp, param_1);
+ case 0:
+ default:
+ JUT_ASSERT(1323, 0);
break;
}
}
@@ -704,47 +802,78 @@ queryFunc dMsgFlow_c::mQueryList[53] = {
&dMsgFlow_c::query053,
};
+#ifdef DEBUG
+void dMsgFlow_c::dbgPrint() {}
+#endif
+
/* 8024B138-8024B180 245A78 0048+00 1/0 0/0 0/0 .text
* query001__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
-int dMsgFlow_c::query001(mesg_flow_node_branch* flow_node, fopAc_ac_c*, int) {
- return dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[flow_node->params[0] & 0xFFFF]) == false;
+u16 dMsgFlow_c::query001(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_speaker_p, int param_2) {
+ const u16 prm0 = i_flowNode_p->param;
+ u16 ret = dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[prm0]) == false;
+
+ if (param_2 != 0) {
+ // "Flag Check"
+ OS_REPORT("\x1B[44;33mフラグチェック           \x1B[m|:");
+ OS_REPORT("flow:%d, ret:%d, prm0:%d\n", mFlow, ret, prm0);
+ }
+
+ return ret;
}
/* 8024B180-8024B208 245AC0 0088+00 1/0 0/0 0/0 .text
* query002__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
-int dMsgFlow_c::query002(mesg_flow_node_branch*, fopAc_ac_c*, int) {
+u16 dMsgFlow_c::query002(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_speaker_p, int param_2) {
+ u16 ret;
if (daPy_py_c::checkNowWolf()) {
- return 1;
- } else if (daPy_getPlayerActorClass()->checkHorseRide() ||
- daPy_getPlayerActorClass()->checkBoarRide()) {
- return 2;
+ ret = 1;
+ } else if (daPy_getPlayerActorClass()->checkHorseRide() || daPy_getPlayerActorClass()->checkBoarRide()) {
+ ret = 2;
+ } else {
+ ret = 0;
}
- return 0;
+ if (param_2 != 0) {
+ // "Appearance Check"
+ OS_REPORT("\x1B[44;33m容姿チェック            \x1B[m|:");
+ OS_REPORT("flow:%d, ret:%d\n", mFlow, ret);
+ }
+
+ return ret;
}
/* 8024B208-8024B250 245B48 0048+00 1/0 0/0 0/0 .text
* query003__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
-int dMsgFlow_c::query003(mesg_flow_node_branch* flow_node, fopAc_ac_c*, int) {
- return cM_rndF(flow_node->params[0]);
+u16 dMsgFlow_c::query003(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_speaker_p, int param_2) {
+ const u16 prm0 = i_flowNode_p->param;
+ u16 ret = cM_rndF(prm0);
+
+ if (param_2 != 0) {
+ // "Random"
+ OS_REPORT("\x1B[44;33mランダム              \x1B[m|:");
+ OS_REPORT("flow:%d, ret:%d, prm0:%d\n", mFlow, ret, prm0);
+ }
+
+ return ret;
}
/* 8024B250-8024B2C0 245B90 0070+00 1/0 0/0 0/0 .text
* query004__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
-int dMsgFlow_c::query004(mesg_flow_node_branch* flow_node, fopAc_ac_c* param_1, int param_2) {
- u16 uVar1 = flow_node->params[0];
- u16 uVar2;
- int p0 = flow_node->params[0];
- BOOL ret;
-
- if ( uVar1 == 0 ) {
- uVar2 = dComIfGs_getRupeeMax();
- uVar1 = dComIfGs_getRupee();
- ret = uVar1 < uVar2;
-
+u16 dMsgFlow_c::query004(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_speaker_p, int param_2) {
+ const u16 prm0 = i_flowNode_p->param;
+ u16 ret;
+
+ if (prm0 == 0) {
+ ret = dComIfGs_getRupee() < dComIfGs_getRupeeMax();
} else {
- ret = dComIfGs_getRupee() < (u16)p0;
+ ret = dComIfGs_getRupee() < prm0;
+ }
+
+ if (param_2 != 0) {
+ // "Rupee Check"
+ OS_REPORT("\x1B[44;33mルピ−チェック           \x1B[m|:");
+ OS_REPORT("flow:%d, ret:%d, prm0:%d\n", mFlow, ret, prm0);
}
return ret;
@@ -752,529 +881,999 @@ int dMsgFlow_c::query004(mesg_flow_node_branch* flow_node, fopAc_ac_c* param_1,
/* 8024B2C0-8024B2F8 245C00 0038+00 2/1 1/1 1/1 .text
* query005__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
-int dMsgFlow_c::query005(mesg_flow_node_branch*, fopAc_ac_c*, int) {
- return mChoiceNo = fopMsgM_SearchByID(mMsg)->select_idx;
+u16 dMsgFlow_c::query005(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_speaker_p, int param_2) {
+ msg_class* aMsg_p = fopMsgM_SearchByID(mMsg);
+ JUT_ASSERT(1668, 0 != aMsg_p);
+
+ u16 ret = aMsg_p->select_idx;
+ mChoiceNo = ret;
+
+ if (param_2 != 0) {
+ // "Two-way Branch"
+ OS_REPORT("\x1B[44;33m二択分岐              \x1B[m|:");
+ OS_REPORT("flow:%d, ret:%d\n", mFlow, ret);
+ }
+
+ return ret;
}
/* 8024B2F8-8024B32C 245C38 0034+00 1/0 0/0 0/0 .text
* query006__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
-int dMsgFlow_c::query006(mesg_flow_node_branch* flow_node, fopAc_ac_c* param_1, int) {
- int r3 = query005(flow_node, param_1, 0);
- mChoiceNo = r3;
- return r3;
+u16 dMsgFlow_c::query006(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_speaker_p, int param_2) {
+ u16 ret = query005(i_flowNode_p, i_speaker_p, 0);
+ mChoiceNo = ret;
+
+ if (param_2 != 0) {
+ // "Three-way Branch"
+ OS_REPORT("\x1B[44;33m三択分岐              \x1B[m|:");
+ OS_REPORT("flow:%d, ret:%d\n", mFlow, ret);
+ }
+
+ return ret;
}
/* 8024B32C-8024B45C 245C6C 0130+00 1/0 0/0 0/0 .text
* query007__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
-// NONMATCHING regalloc and u16 issue
-int dMsgFlow_c::query007(mesg_flow_node_branch* flow_node, fopAc_ac_c* param_1, int param_2) {
- u16 uVar3 = *(u16*)(flow_node->params);
- cXyz this_00 = daPy_getPlayerActorClass()->attention_info.position;
- this_00.y -= daPy_getPlayerActorClass()->getAttentionOffsetY();
- s16 uVar8 = cSGlobe(param_1->attention_info.position - this_00).U()
- - fopAcM_GetShapeAngle_p(daPy_getPlayerActorClass())->y;
- u8 attentionId = param_1->attention_info.distances[fopAc_attn_SPEAK_e];
- f32 fVar1 = dAttention_c::getDistTable(attentionId).mDistMaxRelease;
- if (uVar3 != 0) {
- fVar1 = uVar3;
+u16 dMsgFlow_c::query007(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_speaker_p, int param_2) {
+ const u16 prm0 = i_flowNode_p->param;
+ u16 ret;
+
+ cXyz player_attention_pos(daPy_getPlayerActorClass()->attention_info.position);
+ player_attention_pos.y -= daPy_py_c::getAttentionOffsetY();
+
+ cSGlobe sp10(i_speaker_p->attention_info.position - player_attention_pos);
+ s16 attention_angle = sp10.U() - fopAcM_GetShapeAngle_p(daPy_getPlayerActorClass())->y;
+
+ u8 speak_dist = i_speaker_p->attention_info.distances[fopAc_attn_SPEAK_e];
+ f32 max_dist = dComIfGp_getAttention().getDistTable(speak_dist).mDistMaxRelease;
+ if (prm0 != 0) {
+ max_dist = prm0;
}
- return (u16) dComIfGp_getAttention().checkDistance(
- &this_00, uVar8, &param_1->attention_info.position, fVar1,
- dAttention_c::getDistTable(attentionId).mDistanceAdjust,
- dAttention_c::getDistTable(attentionId).mUpperY,
- dAttention_c::getDistTable(attentionId).mLowerY);
+ ret = dComIfGp_getAttention().checkDistance(
+ &player_attention_pos, attention_angle, &i_speaker_p->attention_info.position, max_dist,
+ dComIfGp_getAttention().getDistTable(speak_dist).mDistanceAdjust,
+ dComIfGp_getAttention().getDistTable(speak_dist).mUpperY,
+ dComIfGp_getAttention().getDistTable(speak_dist).mLowerY);
+
+ if (param_2 != 0) {
+ // "Conversation Distance Branch"
+ OS_REPORT("\x1B[44;33m会話距離分岐            \x1B[m|:");
+ OS_REPORT("flow:%d, ret:%d, prm0:%d\n", mFlow, ret, prm0);
+ }
+ return ret;
}
/* 8024B45C-8024B4A4 245D9C 0048+00 1/0 0/0 0/0 .text
* query008__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
-int dMsgFlow_c::query008(mesg_flow_node_branch* flow_node, fopAc_ac_c* param_1, int param_2) {
- u32 prm0 = flow_node->params[0];
- u16 prm1 = prm0;
- return (u8)daNpcKakashi_getSwdTutorialStep() - 1 != (u16)prm1;
+u16 dMsgFlow_c::query008(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_speaker_p, int param_2) {
+ const u16 prm0 = i_flowNode_p->param;
+ u16 ret = daNpcKakashi_getSwdTutorialStep() - 1 != prm0;
+
+ if (param_2 != 0) {
+ // "Sword Action Branch"
+ OS_REPORT("\x1B[44;33m剣アクション分岐          \x1B[m|:");
+ OS_REPORT("flow:%d, ret:%d, prm0:%d\n", mFlow, ret, prm0);
+ }
+
+ return ret;
}
/* 8024B4A4-8024B4D0 245DE4 002C+00 1/0 0/0 0/0 .text
* query009__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
-int dMsgFlow_c::query009(mesg_flow_node_branch* flow_node, fopAc_ac_c* param_1, int param_2) {
- return daNpcKakashi_getSwdTutorialResult() == 0;
+u16 dMsgFlow_c::query009(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_speaker_p, int param_2) {
+ u16 ret = daNpcKakashi_getSwdTutorialResult() == FALSE;
+
+ if (param_2 != 0) {
+ // "Sword Action success judge"
+ OS_REPORT("\x1B[44;33m剣アクション成功判定        \x1B[m|:");
+ OS_REPORT("flow:%d, ret:%d\n", mFlow, ret);
+ }
+
+ return ret;
}
/* 8024B4D0-8024B504 245E10 0034+00 1/0 0/0 0/0 .text
* query010__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
-int dMsgFlow_c::query010(mesg_flow_node_branch* flow_node, fopAc_ac_c* param_1, int param_2) {
- return ((u8)daNpcKakashi_getSuccessCount()) != 1;
+u16 dMsgFlow_c::query010(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_speaker_p, int param_2) {
+ u16 ret = daNpcKakashi_getSuccessCount() != 1;
+
+ if (param_2 != 0) {
+ // "Sword Action count branch"
+ OS_REPORT("\x1B[44;33m剣アクション回数分岐        \x1B[m|:");
+ OS_REPORT("flow:%d, ret:%d\n", mFlow, ret);
+ }
+
+ return ret;
}
/* 8024B504-8024B54C 245E44 0048+00 1/0 0/0 0/0 .text
* query011__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
-int dMsgFlow_c::query011(mesg_flow_node_branch* flow_node, fopAc_ac_c* param_1, int param_2) {
- return dComIfGs_isTmpBit(dSv_event_tmp_flag_c::tempBitLabels[flow_node->params[0] & 0xFFFF]) == 0;
+u16 dMsgFlow_c::query011(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_speaker_p, int param_2) {
+ const u16 prm0 = i_flowNode_p->param;
+ u16 ret = dComIfGs_isTmpBit((u16)dSv_event_tmp_flag_c::tempBitLabels[prm0]) == FALSE;
+
+ if (param_2 != 0) {
+ // "Temporary Flag Check"
+ OS_REPORT("\x1B[44;33m一時フラグチェック         \x1B[m|:");
+ OS_REPORT("flow:%d, ret:%d, prm0:%d\n", mFlow, ret, prm0);
+ }
+
+ return ret;
}
/* 8024B54C-8024B584 245E8C 0038+00 1/0 0/0 0/0 .text
* query012__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
-int dMsgFlow_c::query012(mesg_flow_node_branch* flow_node, fopAc_ac_c* param_1, int param_2) {
- return dComIfGs_isTbox(flow_node->params[0]) == 0;
+u16 dMsgFlow_c::query012(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_speaker_p, int param_2) {
+ const int prm0 = i_flowNode_p->param;
+ u16 ret = dComIfGs_isTbox(prm0) == FALSE;
+
+ if (param_2 != 0) {
+ // "(Save) Treasure Chest Bit Check"
+ OS_REPORT("\x1B[44;33m(セ−ブ)宝箱ビットチェック    \x1B[m|:");
+ OS_REPORT("flow:%d, ret:%d, prm0:%d\n", mFlow, ret, prm0);
+ }
+
+ return ret;
}
/* 8024B584-8024B5BC 245EC4 0038+00 1/0 0/0 0/0 .text
* query013__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
-int dMsgFlow_c::query013(mesg_flow_node_branch* flow_node, fopAc_ac_c* param_1, int param_2) {
- return dComIfGs_isSaveSwitch(flow_node->params[0]) == 0;
+u16 dMsgFlow_c::query013(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_speaker_p, int param_2) {
+ const int prm0 = i_flowNode_p->param;
+ u16 ret = dComIfGs_isSaveSwitch(prm0) == FALSE;
+
+ if (param_2 != 0) {
+ // "(Save) Switch Bit Check"
+ OS_REPORT("\x1B[44;33m(セ−ブ)スイッチビットチェック  \x1B[m|:");
+ OS_REPORT("flow:%d, ret:%d, prm0:%d\n", mFlow, ret, prm0);
+ }
+
+ return ret;
}
/* 8024B5BC-8024B5F4 245EFC 0038+00 1/0 0/0 0/0 .text
* query014__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
-int dMsgFlow_c::query014(mesg_flow_node_branch* flow_node, fopAc_ac_c* param_1, int param_2) {
- return dComIfGs_isSaveItem(flow_node->params[0]) == 0;
+u16 dMsgFlow_c::query014(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_speaker_p, int param_2) {
+ const int prm0 = i_flowNode_p->param;
+ u16 ret = dComIfGs_isSaveItem(prm0) == FALSE;
+
+ if (param_2 != 0) {
+ // "(Save) Item Bit Check"
+ OS_REPORT("\x1B[44;33m(セ−ブ)アイテムビットチェック  \x1B[m|:");
+ OS_REPORT("flow:%d, ret:%d, prm0:%d\n", mFlow, ret, prm0);
+ }
+
+ return ret;
}
/* 8024B5F4-8024B62C 245F34 0038+00 1/0 0/0 0/0 .text
* query015__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
-int dMsgFlow_c::query015(mesg_flow_node_branch* flow_node, fopAc_ac_c* param_1, int param_2) {
- return dComIfGs_isSaveDunSwitch(flow_node->params[0]) == 0;
+u16 dMsgFlow_c::query015(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_speaker_p, int param_2) {
+ const int prm0 = i_flowNode_p->param;
+ u16 ret = dComIfGs_isSaveDunSwitch(prm0) == FALSE;
+
+ if (param_2 != 0) {
+ // "(Dungeon) Switch Bit Check"
+ OS_REPORT("\x1B[44;33m(ダンジョン)スイッチビットチェック\x1B[m|:");
+ OS_REPORT("flow:%d, ret:%d, prm0:%d\n", mFlow, ret, prm0);
+ }
+
+ return ret;
}
/* 8024B62C-8024B664 245F6C 0038+00 1/0 0/0 0/0 .text
* query016__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
-int dMsgFlow_c::query016(mesg_flow_node_branch* flow_node, fopAc_ac_c* param_1, int param_2) {
- return dComIfGs_isSaveDunItem(flow_node->params[0]) == 0;
+u16 dMsgFlow_c::query016(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_speaker_p, int param_2) {
+ const int prm0 = i_flowNode_p->param;
+ u16 ret = dComIfGs_isSaveDunItem(prm0) == FALSE;
+
+ if (param_2 != 0) {
+ // "(Dungeon) Item Bit Check"
+ OS_REPORT("\x1B[44;33m(ダンジョン)アイテムビットチェック\x1B[m|:");
+ OS_REPORT("flow:%d, ret:%d, prm0:%d\n", mFlow, ret, prm0);
+ }
+
+ return ret;
}
/* 8024B664-8024B6A8 245FA4 0044+00 1/0 0/0 0/0 .text
* query017__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
-int dMsgFlow_c::query017(mesg_flow_node_branch* flow_node, fopAc_ac_c* actor, int param_2) {
- int zone = flow_node->params[0];
+u16 dMsgFlow_c::query017(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_speaker_p, int param_2) {
+ const int prm0 = i_flowNode_p->param;
int roomNo = -1;
- if (actor != NULL) {
- roomNo = fopAcM_GetRoomNo(actor);
+ if (i_speaker_p != NULL) {
+ roomNo = fopAcM_GetRoomNo(i_speaker_p);
}
- return dComIfGs_isZoneSwitch(zone, roomNo) == 0;
+ u16 ret = dComIfGs_isZoneSwitch(prm0, roomNo) == FALSE;
+
+ if (param_2 != 0) {
+ // "(Zone) Switch Bit Check"
+ OS_REPORT("\x1B[44;33m(ゾ−ン)スイッチビットチェック  \x1B[m|:");
+ OS_REPORT("flow:%d, ret:%d, prm0:%d\n", mFlow, ret, prm0);
+ }
+
+ return ret;
}
/* 8024B6A8-8024B6EC 245FE8 0044+00 1/0 0/0 0/0 .text
* query018__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
-int dMsgFlow_c::query018(mesg_flow_node_branch* flow_node, fopAc_ac_c* actor, int param_2) {
- int zone = flow_node->params[0];
+u16 dMsgFlow_c::query018(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_speaker_p, int param_2) {
+ const int prm0 = i_flowNode_p->param;
int roomNo = -1;
- if (actor != NULL) {
- roomNo = fopAcM_GetRoomNo(actor);
+ if (i_speaker_p != NULL) {
+ roomNo = fopAcM_GetRoomNo(i_speaker_p);
}
- return dComIfGs_isZoneItem(zone, roomNo) == 0;
+ u16 ret = dComIfGs_isZoneItem(prm0, roomNo) == FALSE;
+
+ if (param_2 != 0) {
+ // "(Zone) Item Bit Check"
+ OS_REPORT("\x1B[44;33m(ゾ−ン)アイテムビットチェック  \x1B[m|:");
+ OS_REPORT("flow:%d, ret:%d, prm0:%d\n", mFlow, ret, prm0);
+ }
+
+ return ret;
}
/* 8024B6EC-8024B730 24602C 0044+00 1/0 0/0 0/0 .text
* query019__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
-int dMsgFlow_c::query019(mesg_flow_node_branch* flow_node, fopAc_ac_c* actor, int param_2) {
- int zone = flow_node->params[0];
+u16 dMsgFlow_c::query019(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_speaker_p, int param_2) {
+ const int prm0 = i_flowNode_p->param;
int roomNo = -1;
- if (actor != NULL) {
- roomNo = fopAcM_GetRoomNo(actor);
+ if (i_speaker_p != NULL) {
+ roomNo = fopAcM_GetRoomNo(i_speaker_p);
}
- return dComIfGs_isOneZoneSwitch(zone, roomNo) == 0;
+ u16 ret = dComIfGs_isOneZoneSwitch(prm0, roomNo) == FALSE;
+
+ if (param_2 != 0) {
+ // "(One Zone) Switch Bit Check"
+ OS_REPORT("\x1B[44;33m(ワンゾ−ン)スイッチビットチェック\x1B[m|:");
+ OS_REPORT("flow:%d, ret:%d, prm0:%d\n", mFlow, ret, prm0);
+ }
+
+ return ret;
}
/* 8024B730-8024B774 246070 0044+00 1/0 0/0 0/0 .text
* query020__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
-int dMsgFlow_c::query020(mesg_flow_node_branch* flow_node, fopAc_ac_c* actor, int param_2) {
- int zone = flow_node->params[0];
+u16 dMsgFlow_c::query020(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_speaker_p, int param_2) {
+ const int prm0 = i_flowNode_p->param;
int roomNo = -1;
- if (actor != NULL) {
- roomNo = fopAcM_GetRoomNo(actor);
+ if (i_speaker_p != NULL) {
+ roomNo = fopAcM_GetRoomNo(i_speaker_p);
}
- return dComIfGs_isOneZoneItem(zone, roomNo) == 0;
+ u16 ret = dComIfGs_isOneZoneItem(prm0, roomNo) == FALSE;
+
+ if (param_2 != 0) {
+ // "(One Zone) Item Bit Check"
+ OS_REPORT("\x1B[44;33m(ワンゾ−ン)アイテムビットチェック\x1B[m|:");
+ OS_REPORT("flow:%d, ret:%d, prm0:%d\n", mFlow, ret, prm0);
+ }
+
+ return ret;
}
/* 8024B774-8024B8E4 2460B4 0170+00 1/0 0/0 0/0 .text
* query021__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
-int dMsgFlow_c::query021(mesg_flow_node_branch* flow_node, fopAc_ac_c* param_1, int param_2) {
- // NONMATCHING
+u16 dMsgFlow_c::query021(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_speaker_p, int param_2) {
+ const u8 prm0 = i_flowNode_p->param;
+ u16 ret = 0;
+
+ switch (prm0) {
+ case fpcNm_ITEM_SWORD:
+ case fpcNm_ITEM_MASTER_SWORD:
+ case fpcNm_ITEM_LIGHT_SWORD:
+ if (dComIfGs_getSelectEquipSword() == prm0) {
+ ret = 1;
+ }
+ break;
+ case fpcNm_ITEM_WOOD_SHIELD:
+ case fpcNm_ITEM_SHIELD:
+ case fpcNm_ITEM_HYLIA_SHIELD:
+ if (dComIfGs_getSelectEquipShield() == prm0) {
+ ret = 1;
+ }
+ break;
+ case fpcNm_ITEM_WEAR_KOKIRI:
+ case fpcNm_ITEM_ARMOR:
+ case fpcNm_ITEM_WEAR_ZORA:
+ if (dComIfGs_getSelectEquipClothes() == prm0) {
+ ret = 1;
+ }
+ break;
+ default:
+ if (dComIfGs_getItem(dComIfGs_getSelectItemIndex(0), true) == prm0 ||
+ dComIfGs_getItem(dComIfGs_getSelectItemIndex(1), true) == prm0 ||
+ dComIfGs_getItem(dComIfGs_getSelectItemIndex(2), true) == prm0
+#if (PLATFORM_WII || PLATFORM_SHIELD)
+ || dComIfGs_getItem(dComIfGs_getSelectItemIndex(3), true) == prm0
+#endif
+ )
+ {
+ ret = 1;
+ }
+ }
+
+ if (param_2 != 0) {
+ // "Equipment Check"
+ OS_REPORT("\x1B[44;33m装備チェック            \x1B[m|:");
+ OS_REPORT("flow:%d, ret:%d, prm0:%d\n", mFlow, ret, prm0);
+ }
+
+ return ret;
}
/* 8024B8E4-8024B918 246224 0034+00 1/0 0/0 0/0 .text
* query022__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
-// NONMATCHING
-int dMsgFlow_c::query022(mesg_flow_node_branch* flow_node, fopAc_ac_c*, int) {
- // fake match but 0 comparison zeroes out 24 bits while this function zeroes out 16
- // return (__cntlzw(checkItemGet(flow_node->params[0], 1)) >> 5) & 0xffff;
- return checkItemGet(flow_node->params[0], 1) == 0;
-}
+u16 dMsgFlow_c::query022(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_speaker_p, int param_2) {
+ const u8 prm0 = i_flowNode_p->param;
+ u16 ret = checkItemGet(prm0 & 0xFF, 1) ? 0 : 1;
+ if (param_2 != 0) {
+ // "Get Check"
+ OS_REPORT("\x1B[44;33m所持チェック            \x1B[m|:");
+ OS_REPORT("flow:%d, ret:%d, prm0:%d\n", mFlow, ret, prm0);
+ }
+
+ return ret;
+}
/* 8024B918-8024B954 246258 003C+00 1/0 0/0 0/0 .text
* query023__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
-int dMsgFlow_c::query023(mesg_flow_node_branch* flow_node, fopAc_ac_c* param_1, int param_2) {
- return (u16)(3 - dComIfGs_checkBombBag(fpcNm_ITEM_NONE));
+u16 dMsgFlow_c::query023(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_speaker_p, int param_2) {
+ const u8 prm0 = i_flowNode_p->param;
+ int i_bagNum = 3 - dComIfGs_checkBombBag(fpcNm_ITEM_NONE);
+ JUT_ASSERT(2312, i_bagNum >= 0);
+
+ u16 ret = i_bagNum;
+
+ if (param_2 != 0) {
+ // "Bomb Bag Count Check"
+ OS_REPORT("\x1B[44;33mボム袋数チェック         \x1B[m|:");
+ OS_REPORT("flow:%d, ret:%d, prm0:%d\n", mFlow, ret, prm0);
+ }
+
+ return ret;
}
/* 8024B954-8024B974 246294 0020+00 1/0 0/0 0/0 .text
* query024__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
-int dMsgFlow_c::query024(mesg_flow_node_branch* flow_node, fopAc_ac_c* param_1, int param_2) {
- return dComIfGs_getArrowNum() - (u8)*(u16*)flow_node->params < 0;
+u16 dMsgFlow_c::query024(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_speaker_p, int param_2) {
+ const u8 prm0 = i_flowNode_p->param;
+ u16 ret = dComIfGs_getArrowNum() >= prm0 ? 0 : 1;
+
+ if (param_2 != 0) {
+ // "Normal Arrow Count Check"
+ OS_REPORT("\x1B[44;33mノ−マル矢数チェック        \x1B[m|:");
+ OS_REPORT("flow:%d, ret:%d, prm0:%d, arrow(%d/%d)\n", mFlow, ret, prm0, dComIfGs_getArrowNum(), dComIfGs_getArrowMax());
+ }
+
+ return ret;
}
/* 8024B974-8024B9BC 2462B4 0048+00 1/0 0/0 0/0 .text
* query025__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
-int dMsgFlow_c::query025(mesg_flow_node_branch* flow_node, fopAc_ac_c* param_1, int param_2) {
- u8 par = (u8)*(u16*)flow_node->params;
- return dComIfGs_checkEmptyBottle() - par < 0;
+u16 dMsgFlow_c::query025(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_speaker_p, int param_2) {
+ const u8 prm0 = i_flowNode_p->param;
+ u16 ret = dComIfGs_checkEmptyBottle() >= prm0 ? 0 : 1;
+
+ if (param_2 != 0) {
+ // "Empty Bottle Count Check"
+ OS_REPORT("\x1B[44;33m空きビン数チェック         \x1B[m|:");
+ OS_REPORT("flow:%d, ret:%d, prm0:%d\n", mFlow, ret, prm0);
+ }
+
+ return ret;
}
/* 8024B9BC-8024B9E8 2462FC 002C+00 1/0 0/0 0/0 .text
* query026__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
-int dMsgFlow_c::query026(mesg_flow_node_branch*, fopAc_ac_c* actor, int) {
- dShopSystem_c* shop_ac = static_cast<dShopSystem_c*>(actor);
- return (u16)shop_ac->isFlag(7);
+u16 dMsgFlow_c::query026(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_speaker_p, int param_2) {
+ dShopSystem_c* shop_ac = (dShopSystem_c*)i_speaker_p;
+ const int prm0 = i_flowNode_p->param;
+ u16 ret = shop_ac->isFlag(7);
+
+ if (param_2 != 0) {
+ // "Shop Conversation Check"
+ OS_REPORT("\x1B[44;33m店員会話チェック          \x1B[m|:");
+ OS_REPORT("flow:%d, ret:%d, prm0:%d\n", mFlow, ret, prm0);
+ }
+
+ return ret;
}
/* 8024B9E8-8024BA4C 246328 0064+00 1/0 0/0 0/0 .text
* query027__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
-// NONMATCHING
-int dMsgFlow_c::query027(mesg_flow_node_branch* flow_node, fopAc_ac_c* param_1, int param_2) {
- u8 uVar1 = *(u16*)flow_node->params & 0xff;
- if (uVar1 == 0) {
- uVar1 = dComIfGp_getNeedLightDropNum();
+u16 dMsgFlow_c::query027(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_speaker_p, int param_2) {
+ u8 prm0 = i_flowNode_p->param & 0xFF;
+ if (prm0 == 0) {
+ prm0 = dComIfGp_getNeedLightDropNum() & 0xFF;
+ }
+
+ u16 ret = dComIfGs_getLightDropNum(dComIfGp_getStartStageDarkArea()) >= prm0 ? 0 : 1;
+
+ if (param_2 != 0) {
+ // "Light Drop Check"
+ OS_REPORT("\x1B[44;33m光の雫チェック          \x1B[m|:");
+ OS_REPORT("flow:%d, ret:%d, prm0:%d ( %d / %d)\n", mFlow, ret, prm0, dComIfGs_getLightDropNum(dComIfGp_getStartStageDarkArea()), dComIfGp_getNeedLightDropNum());
}
- return dComIfGs_getLightDropNum(dComIfGp_getStartStageDarkArea()) < uVar1;
+
+ return ret;
}
/* 8024BA4C-8024BAA0 24638C 0054+00 1/0 0/0 0/0 .text
* query028__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
-int dMsgFlow_c::query028(mesg_flow_node_branch* flow_node, fopAc_ac_c* param_1, int param_2) {
- int timeSec = *(u16*)flow_node->params;
- int iVar3 = dMeter2Info_getTimeMs();
- int val2 = timeSec * 1000 + 999;
- int rv = val2 < iVar3;
- dMeter2Info_setMsgTimeMs(iVar3 <= val2 ? val2 - iVar3 : (iVar3 - timeSec * 1000) + 999);
- return rv;
+u16 dMsgFlow_c::query028(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_speaker_p, int param_2) {
+ const u16 prm0 = i_flowNode_p->param;
+ u16 ret = dMeter2Info_getTimeMs() <= prm0 * 1000 + 999 ? 0 : 1;
+
+ dMeter2Info_setMsgTimeMs(dMeter2Info_getTimeMs() <= prm0 * 1000 + 999 ?
+ (prm0 * 1000 + 999) - dMeter2Info_getTimeMs() :
+ (dMeter2Info_getTimeMs() - prm0 * 1000) + 999);
+
+ if (param_2 != 0) {
+ // "Goat-Herd Time Check"
+ OS_REPORT("\x1B[44;33m:牛追いタイム分岐          \x1B[m|:");
+ OS_REPORT("flow:%d, ret:%d, prm0:%d time:%dms\n", mFlow, ret, prm0, dMeter2Info_getTimeMs());
+ }
+
+ return ret;
}
/* 8024BAA0-8024BAE0 2463E0 0040+00 1/0 0/0 0/0 .text
* query029__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
-int dMsgFlow_c::query029(mesg_flow_node_branch* flow_node, fopAc_ac_c* param_1, int param_2) {
- u8 rv = 1;
+u16 dMsgFlow_c::query029(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_speaker_p, int param_2) {
+ u8 ret = 1;
if (dComIfGs_getOil() == 0 || dComIfGs_getMaxOil() == 0) {
- rv = 2;
+ ret = 2;
} else if (dComIfGs_getOil() == dComIfGs_getMaxOil()) {
- rv = 0;
+ ret = 0;
}
- return rv;
+
+ if (param_2 != 0) {
+ // "Lantern Content Check"
+ OS_REPORT("\x1B[44;33m:カンテラの中身チェック          \x1B[m|:");
+ OS_REPORT("flow:%d, ret:%d\n", mFlow, ret);
+ }
+
+ return ret;
}
/* 8024BAE0-8024BB18 246420 0038+00 1/0 0/0 0/0 .text
* query030__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
-int dMsgFlow_c::query030(mesg_flow_node_branch*, fopAc_ac_c*, int) {
- return dComIfGs_getTmpReg(0xFBFF);
+u16 dMsgFlow_c::query030(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_speaker_p, int param_2) {
+ u8 ret = dComIfGs_getTmpReg(0xFBFF);
+
+ if (param_2 != 0) {
+ // "Register Branch (5)"
+ OS_REPORT("\x1B[44;33m:レジスタ分岐(5)       \x1B[m|:");
+ OS_REPORT("flow:%d, ret:%d\n", mFlow, ret);
+ }
+
+ return ret;
}
/* 8024BB18-8024BB74 246458 005C+00 1/0 0/0 0/0 .text
* query031__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
-int dMsgFlow_c::query031(mesg_flow_node_branch* flow_node, fopAc_ac_c* param_1, int param_2) {
- u16 uVar3 = *(u16*)(flow_node->params);
- return (0x14 - dComIfGs_getEventReg(0xff1f)) < uVar3;
+u16 dMsgFlow_c::query031(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_speaker_p, int param_2) {
+ const int prm0 = i_flowNode_p->param;
+ int reg = dComIfGs_getEventReg(0xFF1F);
+ u8 ret = 1;
+
+ reg = 20 - reg;
+ if (prm0 <= reg) {
+ ret = 0;
+ } else {
+ ret = 1;
+ }
+
+ if (param_2 != 0) {
+ // "Runaway Goat Remaining Check"
+ OS_REPORT("\x1B[44;33m:暴走山羊残りチェック      \x1B[m|:");
+ OS_REPORT("flow:%d, param:%d, ret:%d\n", mFlow, prm0, ret);
+ }
+
+ return ret;
}
/* 8024BB74-8024BB9C 2464B4 0028+00 1/0 0/0 0/0 .text
* query032__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
-int dMsgFlow_c::query032(mesg_flow_node_branch* flow_node, fopAc_ac_c* param_1, int param_2) {
- u8 rv = 1;
- u16 uVar1 = *(u16*)flow_node->params;
- if (dComIfGs_getLife() >= (int)uVar1) {
- rv = 0;
+u16 dMsgFlow_c::query032(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_speaker_p, int param_2) {
+ const int prm0 = i_flowNode_p->param;
+
+ u8 ret = 1;
+ if (dComIfGs_getLife() >= prm0) {
+ ret = 0;
+ }
+
+ if (param_2 != 0) {
+ // "Life Check"
+ OS_REPORT("\x1B[44;33m:体力チェック          \x1B[m|:");
+ OS_REPORT("flow:%d, param:%d, ret:%d\n", mFlow, prm0, ret);
}
- return rv;
+ return ret;
}
/* 8024BB9C-8024BBE4 2464DC 0048+00 1/0 0/0 0/0 .text
* query033__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
-int dMsgFlow_c::query033(mesg_flow_node_branch*, fopAc_ac_c*, int) {
- return daPy_getPlayerActorClass()->checkUseKandelaar(1) == false;
+u16 dMsgFlow_c::query033(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_speaker_p, int param_2) {
+ u8 ret = 1;
+ if (daPy_getPlayerActorClass()->checkUseKandelaar(1)) {
+ ret = 0;
+ } else {
+ ret = 1;
+ }
+
+ if (param_2 != 0) {
+ // "Lantern Hold Check"
+ OS_REPORT("\x1B[44;33m:カンテラもっているかチェック  \x1B[m|:");
+ OS_REPORT("flow:%d, ret:%d\n", mFlow, ret);
+ }
+
+ return ret;
}
/* 8024BBE4-8024BC14 246524 0030+00 1/0 0/0 0/0 .text
* query034__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
-int dMsgFlow_c::query034(mesg_flow_node_branch*, fopAc_ac_c*, int) {
- u8 time = dComIfGs_getTime() * (1.0f / 15.0f);
- return time;
+u16 dMsgFlow_c::query034(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_speaker_p, int param_2) {
+ u8 ret = 0;
+ ret = (int)(dComIfGs_getTime() * (1.0f / 15.0f)) & 0xFF;
+
+ if (param_2 != 0) {
+ // "Time Check"
+ OS_REPORT("\x1B[44;33m:時間チェック  \x1B[m|:");
+ OS_REPORT("flow:%d, ret:%d, TIME:%d\n", mFlow, ret, (int)(dComIfGs_getTime() * (1.0f / 15.0f)));
+ }
+
+ return ret;
}
/* 8024BC14-8024BC3C 246554 0028+00 1/0 0/0 0/0 .text
* query035__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
-int dMsgFlow_c::query035(mesg_flow_node_branch* flow_node, fopAc_ac_c*, int) {
- bool check = false;
- if (dComIfGs_getMagic() < flow_node->params[0]) {
- check = true;
+u16 dMsgFlow_c::query035(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_speaker_p, int param_2) {
+ const int prm0 = i_flowNode_p->param;
+ u8 ret = 0;
+ if (dComIfGs_getMagic() < prm0) {
+ ret = 1;
}
- return check;
+ if (param_2 != 0) {
+ // "Magic Check"
+ OS_REPORT("\x1B[44;33m:魔法力チェック  \x1B[m|:");
+ OS_REPORT("flow:%d, ret:%d, param:%d\n", mFlow, ret, prm0);
+ }
+
+ return ret;
}
/* 8024BC3C-8024BC80 24657C 0044+00 1/0 0/0 0/0 .text
* query036__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
-int dMsgFlow_c::query036(mesg_flow_node_branch*, fopAc_ac_c*, int) {
- int tmp = fopMsgM_SearchByID(mMsg)->select_idx;
+u16 dMsgFlow_c::query036(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_speaker_p, int param_2) {
+ msg_class* aMsg_p = fopMsgM_SearchByID(mMsg);
+ JUT_ASSERT(2751, 0 != aMsg_p);
+ u16 ret = aMsg_p->select_idx;
if (dMsgObject_getMsgObjectClass()->getSelectPushFlag() == 2) {
- tmp = 2;
+ ret = 2;
}
- return tmp;
+ if (param_2 != 0) {
+ // "2 Choice Branch (B enabled)"
+ OS_REPORT("\x1B[44;33m:2択分岐(B対応)  \x1B[m|:");
+ OS_REPORT("flow:%d, ret:%d\n", mFlow, ret);
+ }
+
+ return ret;
}
/* 8024BC80-8024BCC4 2465C0 0044+00 1/0 0/0 0/0 .text
* query037__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
-int dMsgFlow_c::query037(mesg_flow_node_branch*, fopAc_ac_c*, int) {
- int tmp = fopMsgM_SearchByID(mMsg)->select_idx;
+u16 dMsgFlow_c::query037(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_speaker_p, int param_2) {
+ msg_class* aMsg_p = fopMsgM_SearchByID(mMsg);
+ JUT_ASSERT(2789, 0 != aMsg_p);
+ u16 ret = aMsg_p->select_idx;
if (dMsgObject_getMsgObjectClass()->getSelectPushFlag() == 2) {
- tmp = 3;
+ ret = 3;
}
- return tmp;
+ if (param_2 != 0) {
+ // "3 Choice Branch (B enabled)"
+ OS_REPORT("\x1B[44;33m:3択分岐(B対応)  \x1B[m|:");
+ OS_REPORT("flow:%d, ret:%d:%d\n", mFlow, ret);
+ }
+
+ return ret;
}
/* 8024BCC4-8024BDB0 246604 00EC+00 1/0 0/0 0/0 .text
* query038__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
-int dMsgFlow_c::query038(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) {
- int uVar5 = *(u16*)param_0->params;
- u8 val;
- if (uVar5 >= 1 && uVar5 < 4) {
- val = uVar5 - 1;
- } else if (uVar5 == 4) {
- u8 rentalBombBag = dMeter2Info_getRentalBombBag();
- if (rentalBombBag != 0xff) {
- val = rentalBombBag;
+u16 dMsgFlow_c::query038(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_speaker_p, int param_2) {
+ const int prm0 = i_flowNode_p->param;
+
+ u8 BombBag;
+ if (prm0 >= 1 && prm0 < 4) {
+ BombBag = prm0 - 1;
+ } else if (prm0 == 4) {
+ if (dMeter2Info_getRentalBombBag() != 0xFF) {
+ BombBag = dMeter2Info_getRentalBombBag();
}
} else {
- val = dComIfGs_getTmpReg(0xfbff) - 1;
+ BombBag = dComIfGs_getTmpReg(0xFBFF) - 1;
}
- u8 uVar4 = 0;
- switch(dComIfGs_getItem((u8)(val + 0xf), 0)) {
- case 0x70:
- uVar4 = 1;
- break;
- case 0x71:
- uVar4 = 2;
- break;
- case 0x72:
- uVar4 = 3;
- break;
+ u8 ret = 0;
+ switch(dComIfGs_getItem((u8)(BombBag + SLOT_15), false)) {
+ case fpcNm_ITEM_NORMAL_BOMB:
+ ret = 1;
+ break;
+ case fpcNm_ITEM_WATER_BOMB:
+ ret = 2;
+ break;
+ case fpcNm_ITEM_POKE_BOMB:
+ ret = 3;
+ break;
}
+
dMsgObject_setEquipBombInfo();
- return uVar4;
+
+ if (param_2 != 0) {
+ // "Bomb Bag contents Check"
+ OS_REPORT("\x1B[44;33m:ボム袋中身チェック  \x1B[m|:");
+ OS_REPORT("flow:%d, ret:%d, param:%d, BombBag:%d\n", mFlow, ret, prm0, BombBag);
+ }
+
+ return ret;
}
/* 8024BDB0-8024BE4C 2466F0 009C+00 1/0 0/0 0/0 .text
* query039__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
-int dMsgFlow_c::query039(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) {
- u16 uVar2 = *(u16*)param_0->params;
- u8 iVar4 = dComIfGs_getTmpReg(0xfbff);
- u8 bombNum = dComIfGs_getBombNum(iVar4 - 1);
- return dComIfGs_getBombMax(fpcNm_ITEM_NORMAL_BOMB) >= bombNum + uVar2;
+u16 dMsgFlow_c::query039(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_speaker_p, int param_2) {
+ const int prm0 = i_flowNode_p->param;
+
+ u8 BombBag = dComIfGs_getTmpReg(0xFBFF) - 1;
+ u8 BombNum = dComIfGs_getBombNum(BombBag);
+ u8 BombMax = dComIfGs_getBombMax(fpcNm_ITEM_NORMAL_BOMB);
+
+ u8 ret = 0;
+ if (BombMax < BombNum + prm0) {
+ ret = 0;
+ } else {
+ ret = 1;
+ }
+
+ if (param_2 != 0) {
+ // "Normal Bomb over MAX Check"
+ OS_REPORT("\x1B[44;33m:通常爆弾MAX超えチェック  \x1B[m|:");
+ OS_REPORT("flow:%d, ret:%d, param:%d, BombBag:%d, BombNum:%d, BombMax:%d\n", mFlow, ret, prm0, BombBag, BombNum, BombMax);
+ }
+
+ return ret;
}
/* 8024BE4C-8024BF50 24678C 0104+00 1/0 0/0 0/0 .text
* query040__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
-int dMsgFlow_c::query040(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) {
- s32 uVar7 = *(u16*)param_0->params;
- u8 unaff_r30;
- if (uVar7 >= 1 && uVar7 < 4) {
- unaff_r30 = uVar7 - 1;
- } else if (uVar7 == 4) {
- if (dMeter2Info_getRentalBombBag() != 0xff) {
- unaff_r30 = dMeter2Info_getRentalBombBag();
+u16 dMsgFlow_c::query040(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_speaker_p, int param_2) {
+ const int prm0 = i_flowNode_p->param;
+
+ u8 BombBag;
+ if (prm0 >= 1 && prm0 < 4) {
+ BombBag = prm0 - 1;
+ } else if (prm0 == 4) {
+ if (dMeter2Info_getRentalBombBag() != 0xFF) {
+ BombBag = dMeter2Info_getRentalBombBag();
}
} else {
- unaff_r30 = dComIfGs_getTmpReg(0xfbff) - 1;
+ BombBag = dComIfGs_getTmpReg(0xFBFF) - 1;
}
- u8 bombNum = dComIfGs_getBombNum(unaff_r30);
- u8 uVar4 = dComIfGs_getItem((u8)(unaff_r30 + SLOT_15), 0);
- u8 bombMax = dComIfGs_getBombMax(uVar4);
- u8 rv;
- if (bombNum == 0) {
- rv = 0;
- } else if (bombNum >= bombMax) {
- rv = 2;
+ u8 BombNum = dComIfGs_getBombNum(BombBag);
+ u8 BombType = dComIfGs_getItem((u8)(BombBag + SLOT_15), false);
+ u8 BombMax = dComIfGs_getBombMax(BombType);
+
+ u8 ret = 0;
+ if (BombNum == 0) {
+ ret = 0;
+ } else if (BombNum >= BombMax) {
+ ret = 2;
} else {
- rv = 1;
+ ret = 1;
+ }
+
+ if (param_2 != 0) {
+ // "Bomb contents count Check"
+ OS_REPORT("\x1B[44;33m:ボム袋中身個数チェック  \x1B[m|:");
+ OS_REPORT("flow:%d, ret:%d, param:%d, BombBag:%d\n", mFlow, ret, prm0, BombBag);
}
- return rv;
+
+ return ret;
}
/* 8024BF50-8024BFEC 246890 009C+00 1/0 0/0 0/0 .text
* query041__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
-int dMsgFlow_c::query041(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) {
- u16 uVar2 = *(u16*)param_0->params;
- u8 iVar4 = dComIfGs_getTmpReg(0xfbff);
- u8 bombNum = dComIfGs_getBombNum(iVar4 - 1);
- return dComIfGs_getBombMax(fpcNm_ITEM_WATER_BOMB) >= bombNum + uVar2;
+u16 dMsgFlow_c::query041(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_speaker_p, int param_2) {
+ const int prm0 = i_flowNode_p->param;
+
+ u8 BombBag = dComIfGs_getTmpReg(0xFBFF) - 1;
+ u8 BombNum = dComIfGs_getBombNum(BombBag);
+ u8 BombMax = dComIfGs_getBombMax(fpcNm_ITEM_WATER_BOMB);
+
+ u8 ret = 0;
+ if (BombMax < BombNum + prm0) {
+ ret = 0;
+ } else {
+ ret = 1;
+ }
+
+ if (param_2 != 0) {
+ // "Water Bomb over MAX Check"
+ OS_REPORT("\x1B[44;33m:水中爆弾MAX超えチェック  \x1B[m|:");
+ OS_REPORT("flow:%d, ret:%d, param:%d, BombBag:%d, BombNum:%d, BombMax:%d\n", mFlow, ret, prm0, BombBag, BombNum, BombMax);
+ }
+
+ return ret;
}
/* 8024BFEC-8024C0A8 24692C 00BC+00 1/0 0/0 0/0 .text
* query042__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
-int dMsgFlow_c::query042(mesg_flow_node_branch*, fopAc_ac_c*, int) {
- daMidna_c* midna = daPy_py_c::getMidnaActor();
+u16 dMsgFlow_c::query042(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_speaker_p, int param_2) {
+ daMidna_c* midna_p = daPy_py_c::getMidnaActor();
u8 ret = 0;
- if (!strcmp("F_SP116", dComIfGp_getStartStageName()) && dComIfGs_isSaveDunSwitch(0x3C)) {
+ if (strcmp("F_SP116", dComIfGp_getStartStageName()) == 0 && dComIfGs_isSaveDunSwitch(60)) {
ret = 4;
- } else if (midna->checkNpcNear()) {
+ } else if (midna_p->checkNpcNear()) {
ret = 1;
- } else if (midna->checkNpcFar()) {
+ } else if (midna_p->checkNpcFar()) {
ret = 2;
} else if (g_env_light.mEvilInitialized & 0x80) {
ret = 3;
}
+ if (param_2 != 0) {
+ // "Transform Range Check"
+ OS_REPORT("\x1B[44;33m:変身可能範囲チェック  \x1B[m|:");
+ OS_REPORT("flow:%d, ret:%d\n", mFlow, ret);
+ }
+
return ret;
}
/* 8024C0A8-8024C144 2469E8 009C+00 1/0 0/0 0/0 .text
* query043__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
-int dMsgFlow_c::query043(mesg_flow_node_branch* flow_node, fopAc_ac_c*, int) {
- u16 prm0 = flow_node->params[0];
- u8 bomb_num = dComIfGs_getBombNum(dComIfGs_getTmpReg(0xFBFF) - 1);
- u8 bomb_max = dComIfGs_getBombMax(fpcNm_ITEM_POKE_BOMB);
+u16 dMsgFlow_c::query043(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_speaker_p, int param_2) {
+ const int prm0 = i_flowNode_p->param;
+ u8 BombBag = dComIfGs_getTmpReg(0xFBFF) - 1;
+ u8 BombNum = dComIfGs_getBombNum(BombBag);
+ u8 BombMax = dComIfGs_getBombMax(fpcNm_ITEM_POKE_BOMB);
- return bomb_max >= bomb_num + prm0;
+ u8 ret = 0;
+ if (BombMax < BombNum + prm0) {
+ ret = 0;
+ } else {
+ ret = 1;
+ }
+
+ if (param_2 != 0) {
+ // "Poke Bug over MAX"
+ OS_REPORT("\x1B[44;33m:ポケ虫MAX超える  \x1B[m|:");
+ OS_REPORT("flow:%d, ret:%d\n", mFlow, ret);
+ }
+
+ return ret;
}
/* 8024C144-8024C18C 246A84 0048+00 1/0 0/0 0/0 .text
* query044__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
-int dMsgFlow_c::query044(mesg_flow_node_branch*, fopAc_ac_c*, int) {
- return daAlink_getAlinkActorClass()->checkAcceptDungeonWarpAlink(0) == false;
+u16 dMsgFlow_c::query044(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_speaker_p, int param_2) {
+ u8 ret;
+ if (daAlink_getAlinkActorClass()->checkAcceptDungeonWarpAlink(0)) {
+ ret = 0;
+ } else {
+ ret = 1;
+ }
+
+ if (param_2 != 0) {
+ // "Possible Warp Area"
+ OS_REPORT("\x1B[44;33m:ワープ可能エリア  \x1B[m|:");
+ OS_REPORT("flow:%d, ret:%d\n", mFlow, ret);
+ }
+
+ return ret;
}
/* 8024C18C-8024C218 246ACC 008C+00 1/0 0/0 0/0 .text
* query045__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
-int dMsgFlow_c::query045(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) {
+u16 dMsgFlow_c::query045(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_speaker_p, int param_2) {
u8 insectNum = dComIfGs_checkGetInsectNum();
- u8 rv = 0;
+ u8 ret = 0;
if (insectNum == 0) {
- rv = 0;
+ ret = 0;
} else if (insectNum >= 1 && insectNum <= 11) {
- rv = 1;
+ ret = 1;
} else if (insectNum >= 12 && insectNum <= 22) {
- rv = 2;
+ ret = 2;
} else if (insectNum == 23) {
- rv = 3;
+ ret = 3;
} else if (insectNum == 24) {
- rv = 4;
+ ret = 4;
+ }
+
+ if (param_2 != 0) {
+ // "Captured Insect"
+ OS_REPORT("\x1B[44;33m:捕獲した虫  \x1B[m|:");
+ OS_REPORT("flow:%d, ret:%d\n", mFlow, ret);
}
- return rv;
+ return ret;
}
/* 8024C218-8024C248 246B58 0030+00 1/0 0/0 0/0 .text
* query046__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
-int dMsgFlow_c::query046(mesg_flow_node_branch*, fopAc_ac_c*, int) {
- return dComIfGs_checkInsectBottle();
+u16 dMsgFlow_c::query046(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_speaker_p, int param_2) {
+ u8 ret = dComIfGs_checkInsectBottle();
+
+ if (param_2 != 0) {
+ // "Insect Bottle Check"
+ OS_REPORT("\x1B[44;33m:虫入りビンチェック  \x1B[m|:");
+ OS_REPORT("flow:%d, ret:%d\n", mFlow, ret);
+ }
+
+ return ret;
}
/* 8024C248-8024C250 246B88 0008+00 1/0 0/0 0/0 .text
* query047__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
-int dMsgFlow_c::query047(mesg_flow_node_branch*, fopAc_ac_c*, int) {
- return 0;
+u16 dMsgFlow_c::query047(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_speaker_p, int param_2) {
+ u8 ret = 0;
+
+ if (param_2 != 0) {
+ // "Landmine over MAX (Missing Num)"
+ OS_REPORT("\x1B[44;33m:地雷MAX超える(欠番)  \x1B[m|:");
+ OS_REPORT("flow:%d, ret:%d\n", mFlow, ret);
+ }
+
+ JUT_ASSERT(3305, 0);
+ return ret;
}
/* 8024C250-8024C2A0 246B90 0050+00 1/0 0/0 0/0 .text
* query048__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
-int dMsgFlow_c::query048(mesg_flow_node_branch*, fopAc_ac_c*, int) {
- u8 new_num = dMeter2Info_getNewLetterNum();
+u16 dMsgFlow_c::query048(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_speaker_p, int param_2) {
+ u8 ret = dMeter2Info_getNewLetterNum();
- if (new_num > 2) {
- new_num = 2;
+ if (ret > 2) {
+ ret = 2;
}
- if (new_num == 1) {
+ if (ret == 1) {
dMeter2Info_setNewLetterSender();
}
- return new_num;
+ if (param_2 != 0) {
+ // "Letter Number Check"
+ OS_REPORT("\x1B[44;33m:手紙の数チェック  \x1B[m|:");
+ OS_REPORT("flow:%d, ret:%d\n", mFlow, ret);
+ }
+
+ return ret;
}
/* 8024C2A0-8024C2FC 246BE0 005C+00 1/0 0/0 0/0 .text
* query049__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
-int dMsgFlow_c::query049(mesg_flow_node_branch*, fopAc_ac_c*, int) {
- u8 uVar1;
- u32 num = dComIfGs_getPohSpiritNum();
+u16 dMsgFlow_c::query049(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_speaker_p, int param_2) {
+ u8 num = dComIfGs_getPohSpiritNum();
+ u8 ret = 0;
if (num == 0) {
- uVar1 = 0;
- } else if ((u8)num <= 19) {
- uVar1 = 1;
- } else if ((u8)num <= 39) {
- uVar1 = 2;
- } else if ((u8)num <= 59) {
- uVar1 = 3;
+ ret = 0;
+ } else if (num <= 19) {
+ ret = 1;
+ } else if (num <= 39) {
+ ret = 2;
+ } else if (num <= 59) {
+ ret = 3;
} else {
- uVar1 = 4;
+ ret = 4;
+ }
+
+ if (param_2 != 0) {
+ // "Collected Souls count"
+ OS_REPORT("\x1B[44;33m:集めた魂の数  \x1B[m|:");
+ OS_REPORT("flow:%d, num:%d, ret:%d\n", mFlow, num, ret);
}
- return uVar1;
+ return ret;
}
/* 8024C2FC-8024C340 246C3C 0044+00 1/0 0/0 0/0 .text
* query050__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
-int dMsgFlow_c::query050(mesg_flow_node_branch* flow_node, fopAc_ac_c*, int) {
- u16 prm0 = flow_node->params[0];
- int offering = dMsgObject_getOffering();
- return offering < prm0;
+u16 dMsgFlow_c::query050(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_speaker_p, int param_2) {
+ const int num = i_flowNode_p->param;
+ u8 ret;
+ if (num <= dMsgObject_getOffering()) {
+ ret = 0;
+ } else {
+ ret = 1;
+ }
+
+ if (param_2 != 0) {
+ // "Offering Total Amount"
+ OS_REPORT("\x1B[44;33m:お布施総額  \x1B[m|:");
+ OS_REPORT("flow:%d, num:%d, ret:%d\n", mFlow, num, ret);
+ }
+
+ return ret;
}
/* 8024C340-8024C3A0 246C80 0060+00 1/0 0/0 0/0 .text
* query051__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
-int dMsgFlow_c::query051(mesg_flow_node_branch*, fopAc_ac_c*, int) {
+u16 dMsgFlow_c::query051(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_speaker_p, int param_2) {
+ int num = dComIfGp_getMessageCountNumber();
u8 ret;
- if (dComIfGp_getMessageCountNumber() == 0) {
+ if (num == 0) {
ret = 0;
- } else if (dComIfGp_getMessageCountNumber() < 1000) {
+ } else if (num < 1000) {
ret = 1;
- } else if (dComIfGp_getMessageCountNumber() < 10000) {
+ } else if (num < 10000) {
ret = 2;
- } else if (dComIfGp_getMessageCountNumber() < 0xF00E) {
+ } else if (num < 0xF00E) {
ret = 3;
} else {
ret = 4;
}
+ if (param_2 != 0) {
+ // "Balloon Break Score"
+ OS_REPORT("\x1B[44;33m:風船割りの点数  \x1B[m|:");
+ OS_REPORT("flow:%d, num:%d, ret:%d\n", mFlow, num, ret);
+ }
+
return ret;
}
/* 8024C3A0-8024C3D4 246CE0 0034+00 1/0 0/0 0/0 .text
* query052__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
-int dMsgFlow_c::query052(mesg_flow_node_branch*, fopAc_ac_c*, int) {
- bool phi_r4 = false;
- if (daPy_getPlayerActorClass()->checkWaterInMove() ||
- dComIfGp_checkPlayerStatus0(0, 0x100000)) {
- phi_r4 = true;
+u16 dMsgFlow_c::query052(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_speaker_p, int param_2) {
+ u8 ret = 0;
+ if (daPy_getPlayerActorClass()->checkWaterInMove() || dComIfGp_checkPlayerStatus0(0, 0x100000)) {
+ ret = 1;
+ }
+
+ if (param_2 != 0) {
+ // "In-Water Check"
+ OS_REPORT("\x1B[44;33m:水中チェック  \x1B[m|:");
+ OS_REPORT("flow:%d, ret:%d\n", mFlow, ret);
}
- return phi_r4;
+ return ret;
}
/* 8024C3D4-8024C3FC 246D14 0028+00 1/0 0/0 0/0 .text
* query053__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
-int dMsgFlow_c::query053(mesg_flow_node_branch*, fopAc_ac_c*, int) {
- bool phi_r4 = false;
+u16 dMsgFlow_c::query053(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_speaker_p, int param_2) {
+ u8 ret = 0;
if (daPy_getPlayerActorClass()->checkEquipHeavyBoots()) {
- phi_r4 = true;
+ ret = 1;
}
- return phi_r4;
+ if (param_2 != 0) {
+ // "Wearing Iron Boots Check"
+ OS_REPORT("\x1B[44;33m:アイアンブーツ履いているかチェック  \x1B[m|:");
+ OS_REPORT("flow:%d, ret:%d\n", mFlow, ret);
+ }
+
+ return ret;
}
/* 803C1CCC-803C1ED0 01EDEC 0204+00 1/2 0/0 0/0 .data mEventList__10dMsgFlow_c */
@@ -1294,132 +1893,177 @@ eventFunc dMsgFlow_c::mEventList[43] = {
/* 8024C3FC-8024C488 246D3C 008C+00 1/0 0/0 0/0 .text
* event000__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */
-int dMsgFlow_c::event000(mesg_flow_node_event* flow_node, fopAc_ac_c*) {
+int dMsgFlow_c::event000(mesg_flow_node_event* i_flowNode_p, fopAc_ac_c* i_speaker_p) {
u16 prm1;
u16 prm0;
+ getParam(&prm0, &prm1, i_flowNode_p->params);
+
+ // "Event Flag ON"
+ OS_REPORT("\x1B[44;32mイベントフラグON         \x1B[m|:");
+ OS_REPORT("flow:%d, prm0:%d, prm1:%d\n", mFlow, prm0, prm1);
- int tmp = getParam(&prm0, &prm1, flow_node->params);
if (prm0 != 0) {
- dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[prm0]);
+ dComIfGs_onEventBit((u16)dSv_event_flag_c::saveBitLabels[prm0]);
}
+
if (prm1 != 0) {
- dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[prm1]);
+ dComIfGs_onEventBit((u16)dSv_event_flag_c::saveBitLabels[prm1]);
}
+
return 1;
}
/* 8024C488-8024C514 246DC8 008C+00 1/0 0/0 0/0 .text
* event001__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */
-int dMsgFlow_c::event001(mesg_flow_node_event* flow_node, fopAc_ac_c*) {
+int dMsgFlow_c::event001(mesg_flow_node_event* i_flowNode_p, fopAc_ac_c* i_speaker_p) {
u16 prm1;
u16 prm0;
+ getParam(&prm0, &prm1, i_flowNode_p->params);
+
+ OS_REPORT("\x1B[44;32mイベントフラグOFF        \x1B[m|:");
+ OS_REPORT("flow:%d, prm0:%d, prm1:%d\n", mFlow, prm0, prm1);
- int tmp = getParam(&prm0, &prm1, flow_node->params);
if (prm0 != 0) {
- dComIfGs_offEventBit(dSv_event_flag_c::saveBitLabels[prm0]);
+ dComIfGs_offEventBit((u16)dSv_event_flag_c::saveBitLabels[prm0]);
}
+
if (prm1 != 0) {
- dComIfGs_offEventBit(dSv_event_flag_c::saveBitLabels[prm1]);
+ dComIfGs_offEventBit((u16)dSv_event_flag_c::saveBitLabels[prm1]);
}
+
return 1;
}
/* 8024C514-8024C550 246E54 003C+00 1/0 0/0 0/0 .text
* event002__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */
-int dMsgFlow_c::event002(mesg_flow_node_event* flow_node, fopAc_ac_c*) {
- int prm0 = getParam(flow_node->params);
-
+int dMsgFlow_c::event002(mesg_flow_node_event* i_flowNode_p, fopAc_ac_c* i_speaker_p) {
+ int prm0 = getParam(i_flowNode_p->params);
dComIfGp_setItemRupeeCount(prm0);
+
+ // "Rupee Increase"
+ OS_REPORT("\x1B[44;32mルピ−増              \x1B[m|:");
+ OS_REPORT("flow:%d, prm0:%d\n", mFlow, prm0);
+
return 1;
}
/* 8024C550-8024C590 246E90 0040+00 1/0 0/0 0/0 .text
* event003__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */
-int dMsgFlow_c::event003(mesg_flow_node_event* flow_node, fopAc_ac_c*) {
- int prm0 = getParam(flow_node->params);
-
+int dMsgFlow_c::event003(mesg_flow_node_event* i_flowNode_p, fopAc_ac_c* i_speaker_p) {
+ int prm0 = getParam(i_flowNode_p->params);
dComIfGp_setItemRupeeCount(-prm0);
+
+ // "Rupee Decrease"
+ OS_REPORT("\x1B[44;32mルピ−減              \x1B[m|:");
+ OS_REPORT("flow:%d, prm0:%d\n", mFlow, prm0);
+
return 1;
}
/* 8024C590-8024C5F0 246ED0 0060+00 1/0 0/0 0/0 .text
* event004__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */
-int dMsgFlow_c::event004(mesg_flow_node_event* flow_node, fopAc_ac_c*) {
- f32 prm0 = getParam(flow_node->params);
-
+int dMsgFlow_c::event004(mesg_flow_node_event* i_flowNode_p, fopAc_ac_c* i_speaker_p) {
+ f32 prm0 = getParam(i_flowNode_p->params);
dComIfGp_setItemLifeCount(prm0, 0);
+
+ // "Heart Increase"
+ OS_REPORT("\x1B[44;32mハ−ト増              \x1B[m|:");
+ OS_REPORT("flow:%d, prm0:%f\n", mFlow, prm0);
+
return 1;
}
-
/* 8024C5F0-8024C654 246F30 0064+00 1/0 0/0 0/0 .text
* event005__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */
-int dMsgFlow_c::event005(mesg_flow_node_event* flow_node, fopAc_ac_c*) {
- f32 prm0 = getParam(flow_node->params);
+int dMsgFlow_c::event005(mesg_flow_node_event* i_flowNode_p, fopAc_ac_c* i_speaker_p) {
+ f32 prm0 = getParam(i_flowNode_p->params);
+ dComIfGp_setItemLifeCount((f32)-prm0, 0);
+
+ // "Heart Decrease"
+ OS_REPORT("\x1B[44;32mハ−ト減              \x1B[m|:");
+ OS_REPORT("flow:%d, prm0:%f\n", mFlow, prm0);
- f32 prm1 = -prm0;
- dComIfGp_setItemLifeCount(prm1, 0);
return 1;
}
-
/* 8024C654-8024C694 246F94 0040+00 1/0 0/0 0/0 .text
* event006__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */
-int dMsgFlow_c::event006(mesg_flow_node_event* flow_node, fopAc_ac_c*) {
- int prm0 = getParam(flow_node->params);
+int dMsgFlow_c::event006(mesg_flow_node_event* i_flowNode_p, fopAc_ac_c* i_speaker_p) {
+ int prm0 = getParam(i_flowNode_p->params);
dComIfGp_setItemMagicCount(prm0);
+
+ // "MP Increase"
+ OS_REPORT("\x1B[44;32mMP増               \x1B[m|:");
+ OS_REPORT("flow:%d, prm0:%d\n", mFlow, prm0);
+
return 1;
}
/* 8024C694-8024C6D8 246FD4 0044+00 1/0 0/0 0/0 .text
* event007__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */
-int dMsgFlow_c::event007(mesg_flow_node_event* flow_node, fopAc_ac_c*) {
- int prm0 = getParam(flow_node->params);
+int dMsgFlow_c::event007(mesg_flow_node_event* i_flowNode_p, fopAc_ac_c* i_speaker_p) {
+ int prm0 = getParam(i_flowNode_p->params);
dComIfGp_setItemMagicCount(-prm0);
+
+ // "MP Decrease"
+ OS_REPORT("\x1B[44;32mMP減               \x1B[m|:");
+ OS_REPORT("flow:%d, prm0:%d\n", mFlow, prm0);
+
return 1;
}
/* 8024C6D8-8024C744 247018 006C+00 1/0 0/0 0/0 .text
* event008__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */
-int dMsgFlow_c::event008(mesg_flow_node_event* flow_node, fopAc_ac_c*) {
+int dMsgFlow_c::event008(mesg_flow_node_event* i_flowNode_p, fopAc_ac_c* i_speaker_p) {
u16 prm1;
u16 prm0;
- getParam(&prm0, &prm1, flow_node->params);
+ getParam(&prm0, &prm1, i_flowNode_p->params);
if (prm0 == 27) {
- int fund_raising = dMsgObject_getFundRaising();
- int tmp = 2000 - (fund_raising & 0xFFFF);
-
- if (tmp >= 200) {
+ int remaining = 2000 - dMsgObject_getFundRaising();
+ if (remaining >= 200) {
dMsgObject_setFundRaising(0);
} else {
- dMsgObject_setFundRaising(200 - tmp);
+ dMsgObject_setFundRaising(200 - remaining);
}
}
+ // "Event Start"
+ OS_REPORT("\x1B[44;32mイベント開始            \x1B[m|:");
+ OS_REPORT("flow:%d, prm0:%d, prm1:%d\n", mFlow, prm0, prm1);
+
return 1;
}
/* 8024C744-8024C76C 247084 0028+00 1/0 0/0 0/0 .text
* event009__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */
-int dMsgFlow_c::event009(mesg_flow_node_event* flow_node, fopAc_ac_c*) {
- getParam(flow_node->params);
+int dMsgFlow_c::event009(mesg_flow_node_event* i_flowNode_p, fopAc_ac_c* i_speaker_p) {
+ u16 prm0 = getParam(i_flowNode_p->params);
+
+ // "Flow Jump"
+ OS_REPORT("\x1B[44;32mフロ−ジャンプ           \x1B[m|:");
+ OS_REPORT("flow:%d, prm0:%d\n", mFlow, prm0);
+
return 1;
}
/* 8024C76C-8024C7F8 2470AC 008C+00 1/0 0/0 0/0 .text
* event010__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */
-int dMsgFlow_c::event010(mesg_flow_node_event* flow_node, fopAc_ac_c*) {
+int dMsgFlow_c::event010(mesg_flow_node_event* i_flowNode_p, fopAc_ac_c* i_speaker_p) {
u16 prm1;
u16 prm0;
- getParam(&prm0, &prm1, flow_node->params);
+ getParam(&prm0, &prm1, i_flowNode_p->params);
+
+ // "Temporary Flag ON"
+ OS_REPORT("\x1B[44;32m一時フラグON           \x1B[m|:");
+ OS_REPORT("flow:%d, prm0:%d, prm1:%d\n", mFlow, prm0, prm1);
if (prm0 != 0) {
- dComIfGs_onTmpBit(dSv_event_tmp_flag_c::tempBitLabels[prm0]);
+ dComIfGs_onTmpBit((u16)dSv_event_tmp_flag_c::tempBitLabels[prm0]);
}
if (prm1 != 0) {
- dComIfGs_onTmpBit(dSv_event_tmp_flag_c::tempBitLabels[prm1]);
+ dComIfGs_onTmpBit((u16)dSv_event_tmp_flag_c::tempBitLabels[prm1]);
}
return 1;
@@ -1427,17 +2071,21 @@ int dMsgFlow_c::event010(mesg_flow_node_event* flow_node, fopAc_ac_c*) {
/* 8024C7F8-8024C884 247138 008C+00 1/0 0/0 0/0 .text
* event011__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */
-int dMsgFlow_c::event011(mesg_flow_node_event* flow_node, fopAc_ac_c*) {
+int dMsgFlow_c::event011(mesg_flow_node_event* i_flowNode_p, fopAc_ac_c* i_speaker_p) {
u16 prm1;
u16 prm0;
- getParam(&prm0, &prm1, flow_node->params);
+ getParam(&prm0, &prm1, i_flowNode_p->params);
+
+ // "Temporary Flag OFF"
+ OS_REPORT("\x1B[44;32m一時フラグOFF          \x1B[m|:");
+ OS_REPORT("flow:%d, prm0:%d, prm1:%d\n", mFlow, prm0, prm1);
if (prm0 != 0) {
- dComIfGs_offTmpBit(dSv_event_tmp_flag_c::tempBitLabels[prm0]);
+ dComIfGs_offTmpBit((u16)dSv_event_tmp_flag_c::tempBitLabels[prm0]);
}
if (prm1 != 0) {
- dComIfGs_offTmpBit(dSv_event_tmp_flag_c::tempBitLabels[prm1]);
+ dComIfGs_offTmpBit((u16)dSv_event_tmp_flag_c::tempBitLabels[prm1]);
}
return 1;
@@ -1445,33 +2093,44 @@ int dMsgFlow_c::event011(mesg_flow_node_event* flow_node, fopAc_ac_c*) {
/* 8024C884-8024C88C 2471C4 0008+00 1/0 0/0 0/0 .text
* event012__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */
-int dMsgFlow_c::event012(mesg_flow_node_event*, fopAc_ac_c*) {
+int dMsgFlow_c::event012(mesg_flow_node_event* i_flowNode_p, fopAc_ac_c* i_speaker_p) {
+ // "Door OPEN"
+ OS_REPORT("\x1B[44;32mドアOPEN            \x1B[m|:");
+ OS_REPORT("flow:%d\n", mFlow);
+
return 1;
}
/* 8024C88C-8024C8CC 2471CC 0040+00 1/0 0/0 0/0 .text
* event013__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */
-int dMsgFlow_c::event013(mesg_flow_node_event* flow_node, fopAc_ac_c*) {
- field_0x46 = 1;
+int dMsgFlow_c::event013(mesg_flow_node_event* i_flowNode_p, fopAc_ac_c* i_speaker_p) {
+ mSelType = SELTYPE_VERTICAL_e;
mSelectMessage = 1;
field_0x25 = 1;
- int prm0 = getParam(flow_node->params);
- dMsgObject_c::setSelectCancelPos(prm0);
+ int prm0 = getParam(i_flowNode_p->params);
+
+ OS_REPORT("\x1B[44;32mSELECT            \x1B[m|:");
+ OS_REPORT("flow:%d, prm0:%d\n", mFlow, prm0);
+ dMsgObject_setSelectCancelPos(prm0);
return 1;
}
/* 8024C8CC-8024C994 24720C 00C8+00 1/0 0/0 0/0 .text
* event014__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */
-int dMsgFlow_c::event014(mesg_flow_node_event* flow_node, fopAc_ac_c* actor) {
+int dMsgFlow_c::event014(mesg_flow_node_event* i_flowNode_p, fopAc_ac_c* i_speaker_p) {
u16 prm1;
u16 prm0;
- getParam(&prm0, &prm1, flow_node->params);
+ getParam(&prm0, &prm1, i_flowNode_p->params);
+
+ // "Switch Bit ON"
+ OS_REPORT("\x1B[44;32mスイッチビットON         \x1B[m|:");
+ OS_REPORT("flow:%d, prm0:%d, prm1:%d\n", mFlow, prm0, prm1);
int roomNo = -1;
- if (actor != NULL) {
- roomNo = fopAcM_GetRoomNo(actor);
+ if (i_speaker_p != NULL) {
+ roomNo = fopAcM_GetRoomNo(i_speaker_p);
}
switch (prm0) {
@@ -1494,14 +2153,18 @@ int dMsgFlow_c::event014(mesg_flow_node_event* flow_node, fopAc_ac_c* actor) {
/* 8024C994-8024CA5C 2472D4 00C8+00 1/0 0/0 0/0 .text
* event015__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */
-int dMsgFlow_c::event015(mesg_flow_node_event* flow_node, fopAc_ac_c* actor) {
+int dMsgFlow_c::event015(mesg_flow_node_event* i_flowNode_p, fopAc_ac_c* i_speaker_p) {
u16 prm1;
u16 prm0;
- getParam(&prm0, &prm1, flow_node->params);
+ getParam(&prm0, &prm1, i_flowNode_p->params);
+
+ // "Switch Bit OFF"
+ OS_REPORT("\x1B[44;32mスイッチビットOFF        \x1B[m|:");
+ OS_REPORT("flow:%d, prm0:%d, prm1:%d\n", mFlow, prm0, prm1);
int roomNo = -1;
- if (actor != NULL) {
- roomNo = fopAcM_GetRoomNo(actor);
+ if (i_speaker_p != NULL) {
+ roomNo = fopAcM_GetRoomNo(i_speaker_p);
}
switch (prm0) {
@@ -1524,20 +2187,30 @@ int dMsgFlow_c::event015(mesg_flow_node_event* flow_node, fopAc_ac_c* actor) {
/* 8024CA5C-8024CA94 24739C 0038+00 1/0 0/0 0/0 .text
* event016__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */
-int dMsgFlow_c::event016(mesg_flow_node_event* flow_node, fopAc_ac_c* actor) {
- static_cast<dShopSystem_c*>(actor)->setEventParam(*(u32*)flow_node->params);
+int dMsgFlow_c::event016(mesg_flow_node_event* i_flowNode_p, fopAc_ac_c* i_speaker_p) {
+ dShopSystem_c* shop = (dShopSystem_c*)i_speaker_p;
+ shop->setEventParam(*(u32*)i_flowNode_p->params);
+
+ u8 prm[4];
+ getParam(prm, i_flowNode_p->params);
+
+ // "Item Selection Start"
+ OS_REPORT("\x1B[44;32m商品選択開始            \x1B[m|:");
+ OS_REPORT("flow:%d, prm0:%d, prm1:%d, prm2:%d, prm3:%d\n", mFlow, prm[0], prm[1], prm[2], prm[3]);
- u8 prm0;
- getParam(&prm0, flow_node->params);
return 1;
}
/* 8024CA94-8024CBB0 2473D4 011C+00 1/0 0/0 0/0 .text
* event017__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */
-int dMsgFlow_c::event017(mesg_flow_node_event* flow_node, fopAc_ac_c*) {
+int dMsgFlow_c::event017(mesg_flow_node_event* i_flowNode_p, fopAc_ac_c* i_speaker_p) {
u16 prm1;
u16 prm0;
- getParam(&prm0, &prm1, flow_node->params);
+ getParam(&prm0, &prm1, i_flowNode_p->params);
+
+ // "Item Set"
+ OS_REPORT("\x1B[44;32mアイテムセット           \x1B[m|:");
+ OS_REPORT("flow:%d, prm0:%d, prm1:%d\n", mFlow, prm0, prm1);
if (prm1 <= 1) {
switch (prm0) {
@@ -1569,48 +2242,51 @@ int dMsgFlow_c::event017(mesg_flow_node_event* flow_node, fopAc_ac_c*) {
/* 8024CBB0-8024CCA4 2474F0 00F4+00 1/0 0/0 0/0 .text
* event018__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */
-int dMsgFlow_c::event018(mesg_flow_node_event* flow_node, fopAc_ac_c* actor) {
- u8 prm0[4];
- getParam(prm0, flow_node->params);
+int dMsgFlow_c::event018(mesg_flow_node_event* i_flowNode_p, fopAc_ac_c* i_speaker_p) {
+ u8 prm[4];
+ getParam(prm, i_flowNode_p->params);
field_0x47 = 1;
- field_0x42 = prm0[0];
- field_0x43 = prm0[1];
- field_0x44 = prm0[2];
- field_0x45 = prm0[3];
-
- if (actor != NULL) {
- int stayNo = dComIfGp_roomControl_getStayNo();
- if (stayNo != 0) {
- mDoAud_messageSePlay(field_0x45, &actor->current.pos,
- dComIfGp_getReverb(stayNo));
+ field_0x42 = prm[0];
+ field_0x43 = prm[1];
+ field_0x44 = prm[2];
+ field_0x45 = prm[3];
+
+ if (i_speaker_p != NULL) {
+ if (dComIfGp_roomControl_getStayNo() != 0) {
+ s8 reverb = dComIfGp_getReverb(dComIfGp_roomControl_getStayNo());
+ mDoAud_messageSePlay(field_0x45, &i_speaker_p->current.pos, reverb);
} else {
- mDoAud_messageSePlay(field_0x45, &actor->current.pos, 0);
+ mDoAud_messageSePlay(field_0x45, &i_speaker_p->current.pos, 0);
}
} else {
- int stayNo = dComIfGp_roomControl_getStayNo();
- if (stayNo != 0) {
- mDoAud_messageSePlay(field_0x45, NULL, dComIfGp_getReverb(stayNo));
+ if (dComIfGp_roomControl_getStayNo() != 0) {
+ s8 reverb = dComIfGp_getReverb(dComIfGp_roomControl_getStayNo());
+ mDoAud_messageSePlay(field_0x45, NULL, reverb);
} else {
mDoAud_messageSePlay(field_0x45, NULL, 0);
}
}
+ // "Event Direction"
+ OS_REPORT("\x1B[44;32mイベント演出            \x1B[m|:");
+ OS_REPORT("flow:%d, prm0:%d, prm1:%d, prm2:%d, prm3:%d\n", mFlow, field_0x42, field_0x43, field_0x44, field_0x45);
+
return 1;
}
/* 8024CCA4-8024CCAC 2475E4 0008+00 1/0 0/0 0/0 .text
* event019__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */
-int dMsgFlow_c::event019(mesg_flow_node_event*, fopAc_ac_c*) {
+int dMsgFlow_c::event019(mesg_flow_node_event* i_flowNode_p, fopAc_ac_c* i_speaker_p) {
return 1;
}
/* 8024CCAC-8024CD84 2475EC 00D8+00 1/0 0/0 0/0 .text
* event020__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */
-int dMsgFlow_c::event020(mesg_flow_node_event* flow_node, fopAc_ac_c* actor) {
- int prm0 = getParam(flow_node->params);
+int dMsgFlow_c::event020(mesg_flow_node_event* i_flowNode_p, fopAc_ac_c* i_speaker_p) {
+ int prm0 = getParam(i_flowNode_p->params);
daPy_py_c* player = daPy_getPlayerActorClass();
- dStage_roomDt_c* room = dComIfGp_roomControl_getStatusRoomDt(fopAcM_GetRoomNo(actor));
+ dStage_roomDt_c* room = dComIfGp_roomControl_getStatusRoomDt(fopAcM_GetRoomNo(i_speaker_p));
stage_actor_data_class* actor_data = room->getPlayer()->m_entries;
for (int i = 0; i < room->getPlayerNum(); i++, actor_data++) {
@@ -1620,32 +2296,48 @@ int dMsgFlow_c::event020(mesg_flow_node_event* flow_node, fopAc_ac_c* actor) {
}
}
+ // "Player Warp"
+ OS_REPORT("\x1B[44;32mプレイヤ−ワ−プ          \x1B[m|:");
+ OS_REPORT("flow:%d, prm0:%d\n", mFlow, prm0);
+
return 1;
}
/* 8024CD84-8024CDAC 2476C4 0028+00 1/0 0/0 0/0 .text
* event021__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */
-int dMsgFlow_c::event021(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) {
- cLib_calcTimer(&field_0x3c);
+int dMsgFlow_c::event021(mesg_flow_node_event* i_flowNode_p, fopAc_ac_c* i_speaker_p) {
+ cLib_calcTimer(&mTimer);
+
+ // "WAIT"
+ OS_REPORT("\x1B[44;32mWAIT              \x1B[m|:");
+ OS_REPORT("flow:%d, prm0:%d\n", mFlow, mTimer);
+
return 1;
}
/* 8024CDAC-8024CE40 2476EC 0094+00 1/0 0/0 0/0 .text
* event022__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */
-int dMsgFlow_c::event022(mesg_flow_node_event* flow_node, fopAc_ac_c*) {
- int prm0 = getParam(flow_node->params);
+int dMsgFlow_c::event022(mesg_flow_node_event* i_flowNode_p, fopAc_ac_c* i_speaker_p) {
+ int prm0 = getParam(i_flowNode_p->params);
if (prm0 == 0) {
prm0 = 100;
}
- dComIfGp_setItemOilCount(dComIfGs_getMaxOil() * (prm0 / 100.0f));
+ f32 var_f31 = prm0 / 100.0f;
+ s32 oilCount = dComIfGs_getMaxOil() * var_f31;
+ dComIfGp_setItemOilCount(oilCount);
+
+ // "Lantern Supply"
+ OS_REPORT("\x1B[44;32mカンテラ補給              \x1B[m|:");
+ OS_REPORT("flow:%d, prm0:%d\n", mFlow, prm0);
+
return 1;
}
/* 8024CE40-8024CF2C 247780 00EC+00 2/0 0/0 0/0 .text
* event023__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */
-int dMsgFlow_c::event023(mesg_flow_node_event* flow_node, fopAc_ac_c*) {
- int prm0 = getParam(flow_node->params);
+int dMsgFlow_c::event023(mesg_flow_node_event* i_flowNode_p, fopAc_ac_c* i_speaker_p) {
+ int prm0 = getParam(i_flowNode_p->params);
switch (prm0) {
case 1:
@@ -1671,120 +2363,142 @@ int dMsgFlow_c::event023(mesg_flow_node_event* flow_node, fopAc_ac_c*) {
break;
}
+ // "Bottle Content Set"
+ OS_REPORT("\x1B[44;32mビンの中身セット              \x1B[m|:");
+ OS_REPORT("flow:%d, prm0:%d\n", mFlow, prm0);
+
return 1;
}
/* 8024CF2C-8024CF54 24786C 0028+00 1/0 0/0 0/0 .text
* event024__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */
-int dMsgFlow_c::event024(mesg_flow_node_event*, fopAc_ac_c* actor) {
- static_cast<dShopSystem_c*>(actor)->setSoldOutFlag();
+int dMsgFlow_c::event024(mesg_flow_node_event* i_flowNode_p, fopAc_ac_c* i_speaker_p) {
+ dShopSystem_c* shop = (dShopSystem_c*)i_speaker_p;
+ shop->setSoldOutFlag();
+
+ // "Sold Out"
+ OS_REPORT("\x1B[44;32m売り切れ              \x1B[m|:");
+ OS_REPORT("flow:%d\n", mFlow);
+
return 1;
}
/* 8024CF54-8024CF9C 247894 0048+00 1/0 0/0 0/0 .text
* event025__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */
-int dMsgFlow_c::event025(mesg_flow_node_event* flow_node, fopAc_ac_c*) {
- int prm0 = getParam(flow_node->params);
- dComIfGs_setTmpReg(0xFBFF, prm0);
+int dMsgFlow_c::event025(mesg_flow_node_event* i_flowNode_p, fopAc_ac_c* i_speaker_p) {
+ int prm0 = getParam(i_flowNode_p->params);
+ u8 value = prm0 & 0xFF;
+ dComIfGs_setTmpReg(0xFBFF, value);
+
+ // "Register Set"
+ OS_REPORT("\x1B[44;32mレジスタセット           \x1B[m|:");
+ OS_REPORT("flow:%d, prm0:%d\n", mFlow, prm0);
return 1;
}
/* 8024CF9C-8024D004 2478DC 0068+00 1/0 0/0 0/0 .text
* event026__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */
-// todo: setup required classes
-#ifdef NONMATCHING
-int dMsgFlow_c::event026(mesg_flow_node_event*, fopAc_ac_c* actor) {
- if (fopAcM_GetName(actor) == PROC_MYNA) {
- actor = static_cast<daMyna_c*>(actor)->getSpeakActorPtr();
+int dMsgFlow_c::event026(mesg_flow_node_event* i_flowNode_p, fopAc_ac_c* i_speaker_p) {
+ fopAc_ac_c* speaker_p;
+ if (fopAcM_GetName(i_speaker_p) == PROC_MYNA) {
+ daMyna_c* myna = (daMyna_c*)i_speaker_p;
+ speaker_p = myna->getSpeakActorPtr();
+ } else {
+ speaker_p = i_speaker_p;
}
- if (actor != NULL) {
- if (fopAcM_GetName(actor) == PROC_OBJ_SSITEM || fopAcM_GetName(actor) == PROC_OBJ_SSDRINK ||
- fopAcM_GetName(actor) == PROC_TAG_SSDRINK) {
+ if (speaker_p != NULL) {
+ if (fopAcM_GetName(speaker_p) == PROC_OBJ_SSITEM ||
+ fopAcM_GetName(speaker_p) == PROC_OBJ_SSDRINK ||
+ fopAcM_GetName(speaker_p) == PROC_TAG_SSDRINK)
+ {
+ daObj_SSBase_c* ss_item = (daObj_SSBase_c*)speaker_p;
+ ss_item->setSoldOut();
}
}
+ // "Buying from unanttended tent"
+ OS_REPORT("\x1B[44;32m無人テント購入           \x1B[m|:");
+ OS_REPORT("flow:%d\n", mFlow);
+
return 1;
}
-#else
-int dMsgFlow_c::event026(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) {
- // NONMATCHING
-}
-#endif
/* 8024D004-8024D3C4 247944 03C0+00 2/0 0/0 0/0 .text
* event027__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */
-int dMsgFlow_c::event027(mesg_flow_node_event* flow_node, fopAc_ac_c*) {
+int dMsgFlow_c::event027(mesg_flow_node_event* i_flowNode_p, fopAc_ac_c* i_speaker_p) {
u16 prm1;
u16 prm0;
- getParam(&prm0, &prm1, flow_node->params);
+ getParam(&prm0, &prm1, i_flowNode_p->params);
u8 aParam8[2];
- getParam(aParam8, flow_node->params);
+ getParam(aParam8, i_flowNode_p->params);
+
+ JUT_ASSERT(4509, (aParam8[0] >= 0 && aParam8[0] <= dSv_player_item_c::BOMB_BAG_MAX) || (aParam8[0] == 4));
- u8 slot;
+ u8 BombBag;
if (aParam8[0] >= 1 && aParam8[0] < 4) {
- slot = aParam8[0] - 1;
+ BombBag = aParam8[0] - 1;
} else if (aParam8[0] == 4) {
if (dMeter2Info_getRentalBombBag() != 0xFF) {
- slot = dMeter2Info_getRentalBombBag();
+ BombBag = dMeter2Info_getRentalBombBag();
}
} else {
- slot = dComIfGs_getTmpReg(0xFBFF) - 1;
+ BombBag = dComIfGs_getTmpReg(0xFBFF) - 1;
}
switch (aParam8[1]) {
case 0:
- if (dComIfGs_getItem((u8)(SLOT_15 + slot), false) == fpcNm_ITEM_BOMB_BAG_LV1) {
- dComIfGs_setItem((u8)(SLOT_15 + slot), fpcNm_ITEM_NORMAL_BOMB);
+ if (dComIfGs_getItem((u8)(SLOT_15 + BombBag), false) == fpcNm_ITEM_BOMB_BAG_LV1) {
+ dComIfGs_setItem((u8)(SLOT_15 + BombBag), fpcNm_ITEM_NORMAL_BOMB);
}
if (prm1 != 0) {
- dComIfGp_setItemBombNumCount(slot, (u8)prm1);
+ dComIfGp_setItemBombNumCount(BombBag, (u8)prm1);
} else {
- dComIfGp_setItemBombNumCount(slot, dComIfGs_getBombMax(fpcNm_ITEM_NORMAL_BOMB));
+ dComIfGp_setItemBombNumCount(BombBag, dComIfGs_getBombMax(fpcNm_ITEM_NORMAL_BOMB));
}
break;
case 1:
- if (dComIfGs_getItem((u8)(SLOT_15 + slot), false) == fpcNm_ITEM_BOMB_BAG_LV1) {
- dComIfGs_setItem((u8)(SLOT_15 + slot), fpcNm_ITEM_WATER_BOMB);
+ if (dComIfGs_getItem((u8)(SLOT_15 + BombBag), false) == fpcNm_ITEM_BOMB_BAG_LV1) {
+ dComIfGs_setItem((u8)(SLOT_15 + BombBag), fpcNm_ITEM_WATER_BOMB);
}
if (prm1 != 0) {
- dComIfGp_setItemBombNumCount(slot, (u8)prm1);
+ dComIfGp_setItemBombNumCount(BombBag, (u8)prm1);
} else {
- dComIfGp_setItemBombNumCount(slot, dComIfGs_getBombMax(fpcNm_ITEM_WATER_BOMB));
+ dComIfGp_setItemBombNumCount(BombBag, dComIfGs_getBombMax(fpcNm_ITEM_WATER_BOMB));
}
break;
case 2:
- if (dComIfGs_getItem((u8)(SLOT_15 + slot), false) == fpcNm_ITEM_BOMB_BAG_LV1) {
- dComIfGs_setItem((u8)(SLOT_15 + slot), fpcNm_ITEM_POKE_BOMB);
+ if (dComIfGs_getItem((u8)(SLOT_15 + BombBag), false) == fpcNm_ITEM_BOMB_BAG_LV1) {
+ dComIfGs_setItem((u8)(SLOT_15 + BombBag), fpcNm_ITEM_POKE_BOMB);
}
if (prm1 != 0) {
- dComIfGp_setItemBombNumCount(slot, (u8)prm1);
+ dComIfGp_setItemBombNumCount(BombBag, (u8)prm1);
} else {
- dComIfGp_setItemBombNumCount(slot, dComIfGs_getBombMax(fpcNm_ITEM_POKE_BOMB));
+ dComIfGp_setItemBombNumCount(BombBag, dComIfGs_getBombMax(fpcNm_ITEM_POKE_BOMB));
}
break;
case 3:
break;
case 4:
case 5:
- dComIfGp_setItemBombNumCount(slot, (u8)prm1);
+ dComIfGp_setItemBombNumCount(BombBag, (u8)prm1);
break;
case 6:
- dComIfGs_setItem((u8)(SLOT_15 + slot), fpcNm_ITEM_NORMAL_BOMB);
- dComIfGp_setItemBombNumCount(slot, dComIfGs_getBombMax(fpcNm_ITEM_NORMAL_BOMB));
+ dComIfGs_setItem((u8)(SLOT_15 + BombBag), fpcNm_ITEM_NORMAL_BOMB);
+ dComIfGp_setItemBombNumCount(BombBag, dComIfGs_getBombMax(fpcNm_ITEM_NORMAL_BOMB));
break;
case 7:
- dComIfGs_setItem((u8)(SLOT_15 + slot), fpcNm_ITEM_WATER_BOMB);
- dComIfGp_setItemBombNumCount(slot, dComIfGs_getBombMax(fpcNm_ITEM_WATER_BOMB));
+ dComIfGs_setItem((u8)(SLOT_15 + BombBag), fpcNm_ITEM_WATER_BOMB);
+ dComIfGp_setItemBombNumCount(BombBag, dComIfGs_getBombMax(fpcNm_ITEM_WATER_BOMB));
break;
case 8:
- dComIfGs_setItem((u8)(SLOT_15 + slot), fpcNm_ITEM_POKE_BOMB);
- dComIfGp_setItemBombNumCount(slot, dComIfGs_getBombMax(fpcNm_ITEM_POKE_BOMB));
+ dComIfGs_setItem((u8)(SLOT_15 + BombBag), fpcNm_ITEM_POKE_BOMB);
+ dComIfGp_setItemBombNumCount(BombBag, dComIfGs_getBombMax(fpcNm_ITEM_POKE_BOMB));
break;
case 9:
case 10:
@@ -1792,28 +2506,30 @@ int dMsgFlow_c::event027(mesg_flow_node_event* flow_node, fopAc_ac_c*) {
break;
}
+ // "Bomb Supply"
+ OS_REPORT("\x1B[44;32m爆弾補給           \x1B[m|:");
+ OS_REPORT("flow:%d, prm0:%d, prm1:%d, prm2:%d, BombBag:%d\n", mFlow, aParam8[0], aParam8[1], prm1, BombBag);
+
return 1;
}
-
/* 8024D3C4-8024D500 247D04 013C+00 1/0 0/0 0/0 .text
* event028__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */
// NONMATCHING regalloc
-int dMsgFlow_c::event028(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) {
- dMsgObject_c::setSelectCursorPos(dComIfGs_getTmpReg(0xFBFF) - 1);
- u8 bagID = dMsgObject_c::getSelectBombBagID();
- s16 bombPrice = dMsgObject_c::getSelectBombPrice();
+int dMsgFlow_c::event028(mesg_flow_node_event* i_flowNode_p, fopAc_ac_c* i_speaker_p) {
+ u8 pos = dComIfGs_getTmpReg(0xFBFF) - 1;
+ dMsgObject_c::setSelectCursorPos(pos);
+ u8 BombBag = dMsgObject_c::getSelectBombBagID();
+ s16 BombPrice = dMsgObject_c::getSelectBombPrice();
- dComIfGp_setItemRupeeCount(bombPrice);
- dComIfGs_setBombNum(bagID, 0);
+ dComIfGp_setItemRupeeCount(BombPrice);
+ dComIfGs_setBombNum(BombBag, 0);
- if (dComIfGs_getItem((u8)(SLOT_15 + bagID), true) != fpcNm_ITEM_BOMB_ARROW) {
- dComIfGs_setItem((u8)(SLOT_15 + bagID), fpcNm_ITEM_BOMB_BAG_LV1);
+ if (dComIfGs_getItem((u8)(SLOT_15 + BombBag), true) != fpcNm_ITEM_BOMB_ARROW) {
+ dComIfGs_setItem((u8)(SLOT_15 + BombBag), fpcNm_ITEM_BOMB_BAG_LV1);
} else {
for (int i = 0; i < 3; i++) {
- u8 select_item = dComIfGs_getSelectItemIndex(i);
-
- if (SLOT_15 + bagID == select_item) {
+ if (SLOT_15 + BombBag == dComIfGs_getSelectItemIndex(i)) {
u8 mix_item = dComIfGs_getMixItemIndex(i);
dComIfGs_setMixItemIndex(i, fpcNm_ITEM_NONE);
@@ -1821,61 +2537,82 @@ int dMsgFlow_c::event028(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) {
dComIfGp_setSelectItem(i);
}
}
- dComIfGs_setItem((u8)(SLOT_15 + bagID), fpcNm_ITEM_BOMB_BAG_LV1);
+
+ dComIfGs_setItem((u8)(SLOT_15 + BombBag), fpcNm_ITEM_BOMB_BAG_LV1);
}
+ // "Bomb Purchase"
+ OS_REPORT("\x1B[44;32m爆弾買取           \x1B[m|:");
+ OS_REPORT("flow:%d, BombBag:%d\n", mFlow, BombBag);
+
return 1;
}
/* 8024D500-8024D544 247E40 0044+00 1/0 0/0 0/0 .text
* event029__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */
-int dMsgFlow_c::event029(mesg_flow_node_event* flow_node, fopAc_ac_c*) {
- field_0x46 = 2;
+int dMsgFlow_c::event029(mesg_flow_node_event* i_flowNode_p, fopAc_ac_c* i_speaker_p) {
+ mSelType = SELTYPE_HORIZONTAL_e;
mSelectMessage = 1;
field_0x25 = 1;
- dMsgObject_c::setSelectCancelPos(getParam(flow_node->params));
+ int prm0 = getParam(i_flowNode_p->params);
+
+ // "Horizontal SELECT"
+ OS_REPORT("\x1B[44;32m横SELECT            \x1B[m|:");
+ OS_REPORT("flow:%d, prm0:%d\n", mFlow, prm0);
+
+ dMsgObject_c::setSelectCancelPos(prm0);
return 1;
}
/* 8024D544-8024D5BC 247E84 0078+00 1/0 0/0 0/0 .text
* event030__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */
-int dMsgFlow_c::event030(mesg_flow_node_event* flow_node, fopAc_ac_c*) {
+int dMsgFlow_c::event030(mesg_flow_node_event* i_flowNode_p, fopAc_ac_c* i_speaker_p) {
u16 prm1;
u16 prm0;
- getParam(&prm0, &prm1, flow_node->params);
+ getParam(&prm0, &prm1, i_flowNode_p->params);
- s16 arrowNum = prm1;
- if (arrowNum == 0) {
- arrowNum = dComIfGs_getArrowMax();
+ s16 arrow = prm1;
+ if (arrow == 0) {
+ arrow = dComIfGs_getArrowMax();
}
if (prm0 == 0) {
- dComIfGp_setItemArrowNumCount(arrowNum);
+ dComIfGp_setItemArrowNumCount(arrow);
} else {
- dMsgObject_c::setArrowNum(arrowNum);
+ dMsgObject_c::setArrowNum(arrow);
}
+ // "Arrow Supply"
+ OS_REPORT("\x1B[44;32m矢補給            \x1B[m|:");
+ OS_REPORT("flow:%d, prm0:%d, prm1:%d, arrow:%d\n", mFlow, prm0, prm1, arrow);
+
return 1;
}
/* 8024D5BC-8024D5EC 247EFC 0030+00 1/0 0/0 0/0 .text
* event031__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */
-int dMsgFlow_c::event031(mesg_flow_node_event*, fopAc_ac_c*) {
+int dMsgFlow_c::event031(mesg_flow_node_event* i_flowNode_p, fopAc_ac_c* i_speaker_p) {
dMeter2Info_resetMiniGameItem(false);
+
+ // "Rental Bomb Return"
+ OS_REPORT("\x1B[44;32mレンタル爆弾返却            \x1B[m|:");
+ OS_REPORT("flow:%d\n", mFlow);
+
return 1;
}
/* 8024D5EC-8024D6BC 247F2C 00D0+00 1/0 0/0 0/0 .text
* event032__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */
-int dMsgFlow_c::event032(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) {
- u16 uVar1;
- u16 uVar2;
+int dMsgFlow_c::event032(mesg_flow_node_event* i_flowNode_p, fopAc_ac_c* i_speaker_p) {
+ u16 prm1;
+ u16 prm0;
GXColor color;
- getParam(&uVar2, &uVar1, param_0->params);
- if (uVar1 + 1 == field_0x3c) {
- if (uVar2 == 0) {
+ getParam(&prm0, &prm1, i_flowNode_p->params);
+
+ if (prm1 + 1 == mTimer) {
+ if (prm0 == 0) {
color.r = 0;
color.g = 0;
color.b = 0;
@@ -1883,22 +2620,30 @@ int dMsgFlow_c::event032(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) {
} else {
color = g_saftyWhiteColor;
}
- mDoGph_gInf_c::fadeOut( -(1.0f / uVar1), color);
+
+ mDoGph_gInf_c::fadeIn(1.0f / prm1, color);
}
- cLib_calcTimer(&field_0x3c);
+
+ cLib_calcTimer(&mTimer);
+
+ // "Fade-In"
+ OS_REPORT("\x1B[44;32mフェ−ドイン              \x1B[m|:");
+ OS_REPORT("flow:%d, prm0:%d\n", mFlow, mTimer);
+
return 1;
}
/* 8024D6BC-8024D788 247FFC 00CC+00 1/0 0/0 0/0 .text
* event033__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */
-int dMsgFlow_c::event033(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) {
- u16 uVar1;
- u16 uVar2;
+int dMsgFlow_c::event033(mesg_flow_node_event* i_flowNode_p, fopAc_ac_c* i_speaker_p) {
+ u16 prm1;
+ u16 prm0;
GXColor color;
- getParam(&uVar2, &uVar1, param_0->params);
- if (uVar1 + 1 == field_0x3c) {
- if (uVar2 == 0) {
+ getParam(&prm0, &prm1, i_flowNode_p->params);
+
+ if (prm1 + 1 == mTimer) {
+ if (prm0 == 0) {
color.r = 0;
color.g = 0;
color.b = 0;
@@ -1906,24 +2651,36 @@ int dMsgFlow_c::event033(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) {
} else {
color = g_saftyWhiteColor;
}
- mDoGph_gInf_c::fadeOut(1.0f / uVar1, color);
+
+ mDoGph_gInf_c::fadeOut(1.0f / prm1, color);
}
- cLib_calcTimer(&field_0x3c);
+
+ cLib_calcTimer(&mTimer);
+
+ // "Fade-Out"
+ OS_REPORT("\x1B[44;32mフェ−ドアウト             \x1B[m|:");
+ OS_REPORT("flow:%d, prm0:%d\n", mFlow, mTimer);
+
return 1;
}
/* 8024D788-8024D7C8 2480C8 0040+00 1/0 0/0 0/0 .text
* event034__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */
-int dMsgFlow_c::event034(mesg_flow_node_event* flow_node, fopAc_ac_c*) {
- int prm0 = getParam(flow_node->params);
+int dMsgFlow_c::event034(mesg_flow_node_event* i_flowNode_p, fopAc_ac_c* i_speaker_p) {
+ int prm0 = getParam(i_flowNode_p->params);
dComIfGs_setWarashibeItem(prm0);
+
+ // "Trade Item Set"
+ OS_REPORT("\x1B[44;32mわらしべセット             \x1B[m|:");
+ OS_REPORT("flow:%d, prm0:%d\n", mFlow, prm0);
+
return 1;
}
/* 8024D7C8-8024D870 248108 00A8+00 1/0 0/0 0/0 .text
* event035__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */
-int dMsgFlow_c::event035(mesg_flow_node_event* flow_node, fopAc_ac_c*) {
- int prm0 = getParam(flow_node->params);
+int dMsgFlow_c::event035(mesg_flow_node_event* i_flowNode_p, fopAc_ac_c* i_speaker_p) {
+ int prm0 = getParam(i_flowNode_p->params);
if (prm0 == fpcNm_ITEM_TOMATO_PUREE || prm0 == fpcNm_ITEM_TASTE) {
dComIfGs_offItemFirstBit(prm0);
@@ -1933,49 +2690,74 @@ int dMsgFlow_c::event035(mesg_flow_node_event* flow_node, fopAc_ac_c*) {
dComIfGs_setWarashibeItem(fpcNm_ITEM_NONE);
}
+ // "Item Remove"
+ OS_REPORT("\x1B[44;32mアイテム削除              \x1B[m|:");
+ OS_REPORT("flow:%d, prm0:%d\n", mFlow, prm0);
+
return 1;
}
/* 8024D870-8024D8C4 2481B0 0054+00 1/0 0/0 0/0 .text
* event036__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */
-int dMsgFlow_c::event036(mesg_flow_node_event* flow_node, fopAc_ac_c*) {
+int dMsgFlow_c::event036(mesg_flow_node_event* i_flowNode_p, fopAc_ac_c* i_speaker_p) {
u16 prm1;
u16 prm0;
- getParam(&prm0, &prm1, flow_node->params);
+ getParam(&prm0, &prm1, i_flowNode_p->params);
dComIfGs_onSaveSwitch(prm0, prm1);
+
+ // "Save Bit ON"
+ OS_REPORT("\x1B[44;32mセーブビットON              \x1B[m|:");
+ OS_REPORT("flow:%d, prm0:%d, prm1:%d\n", mFlow, prm0, prm1);
+
return 1;
}
/* 8024D8C4-8024D918 248204 0054+00 1/0 0/0 0/0 .text
* event037__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */
-int dMsgFlow_c::event037(mesg_flow_node_event* flow_node, fopAc_ac_c*) {
+int dMsgFlow_c::event037(mesg_flow_node_event* i_flowNode_p, fopAc_ac_c* i_speaker_p) {
u16 prm1;
u16 prm0;
- getParam(&prm0, &prm1, flow_node->params);
+ getParam(&prm0, &prm1, i_flowNode_p->params);
dComIfGs_offSaveSwitch(prm0, prm1);
+
+ // "Save Bit OFF"
+ OS_REPORT("\x1B[44;32mセーブビットOFF              \x1B[m|:");
+ OS_REPORT("flow:%d, prm0:%d, prm1:%d\n", mFlow, prm0, prm1);
+
return 1;
}
/* 8024D918-8024D93C 248258 0024+00 1/0 0/0 0/0 .text
* event038__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */
-int dMsgFlow_c::event038(mesg_flow_node_event*, fopAc_ac_c*) {
+int dMsgFlow_c::event038(mesg_flow_node_event* i_flowNode_p, fopAc_ac_c* i_speaker_p) {
dMeter2Info_recieveLetter();
+
+ // "Mail Receive"
+ OS_REPORT("\x1B[44;32mメール受信              \x1B[m|:");
+ OS_REPORT("flow:%d\n", mFlow);
+
return 1;
}
/* 8024D93C-8024D970 24827C 0034+00 1/0 0/0 0/0 .text
* event039__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */
-int dMsgFlow_c::event039(mesg_flow_node_event* flow_node, fopAc_ac_c*) {
- dMeter2Info_setTableMapRegionNo(getParam(flow_node->params));
+int dMsgFlow_c::event039(mesg_flow_node_event* i_flowNode_p, fopAc_ac_c* i_speaker_p) {
+ int prm0 = getParam(i_flowNode_p->params);
+ dMeter2Info_setTableMapRegionNo(prm0);
+
+ // "Resistance Map"
+ OS_REPORT("\x1B[44;32mレジスタンスの地図              \x1B[m|:");
+ OS_REPORT("flow:%d, prm0:%d\n", mFlow, prm0);
+
return 1;
}
/* 8024D970-8024DA78 2482B0 0108+00 2/0 0/0 0/0 .text
* event040__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */
-int dMsgFlow_c::event040(mesg_flow_node_event* flow_node, fopAc_ac_c*) {
- int prm0 = getParam(flow_node->params);
+int dMsgFlow_c::event040(mesg_flow_node_event* i_flowNode_p, fopAc_ac_c* i_speaker_p) {
+ int prm0 = getParam(i_flowNode_p->params);
switch (prm0) {
case 0:
@@ -2003,20 +2785,28 @@ int dMsgFlow_c::event040(mesg_flow_node_event* flow_node, fopAc_ac_c*) {
break;
}
+ // "Bottle Contents Remove"
+ OS_REPORT("\x1B[44;32mビンの中身削除              \x1B[m|:");
+ OS_REPORT("flow:%d, prm0:%d\n", mFlow, prm0);
+
return 1;
}
/* 8024DA78-8024DAA8 2483B8 0030+00 1/0 0/0 0/0 .text
* event041__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */
-int dMsgFlow_c::event041(mesg_flow_node_event* flow_node, fopAc_ac_c*) {
- int prm0 = getParam(flow_node->params);
+int dMsgFlow_c::event041(mesg_flow_node_event* i_flowNode_p, fopAc_ac_c* i_speaker_p) {
+ int prm0 = getParam(i_flowNode_p->params);
dMsgObject_addOffering(prm0);
+ // "Offering"
+ OS_REPORT("\x1B[44;32mお布施              \x1B[m|:");
+ OS_REPORT("flow:%d, prm0:%d\n", mFlow, prm0);
+
return 1;
}
/* 8024DAA8-8024DAB0 2483E8 0008+00 1/0 0/0 0/0 .text
* event042__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */
-int dMsgFlow_c::event042(mesg_flow_node_event*, fopAc_ac_c*) {
+int dMsgFlow_c::event042(mesg_flow_node_event* i_flowNode_p, fopAc_ac_c* i_speaker_p) {
return 1;
}
diff --git a/src/d/d_shop_system.cpp b/src/d/d_shop_system.cpp
index 0c842211ad..b90f77f7ab 100644
--- a/src/d/d_shop_system.cpp
+++ b/src/d/d_shop_system.cpp
@@ -1219,11 +1219,11 @@ int dShopSystem_c::seq_choose(fopAc_ac_c* actor, dMsgFlow_c* i_flow) {
i_flow->doFlow(actor, NULL, 0);
- int select_num = i_flow->getSelectNum();
+ u16 select_num = i_flow->getSelectNum();
if (dMsgObject_c::getStatus() != 6 && dMsgObject_c::getStatus() != 8 &&
dMsgObject_c::getStatus() != 9 && dMsgObject_c::getStatus() != 20)
{
- if ((u16)select_num == 0) {
+ if (select_num == 0) {
setSeq(SEQ_DECIDE_YES);
} else {
setSeq(SEQ_DECIDE_NO);