From c99241a6625924e18da38bf65c5dd7002d305883 Mon Sep 17 00:00:00 2001 From: TakaRikka Date: Thu, 11 Jun 2026 23:07:28 -0700 Subject: [PATCH] fix withdraw functionality --- include/d/d_msg_flow.h | 13 ++++++++++-- src/d/d_msg_flow.cpp | 46 ++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 55 insertions(+), 4 deletions(-) diff --git a/include/d/d_msg_flow.h b/include/d/d_msg_flow.h index cd9a7c4e5f..baedce5e24 100644 --- a/include/d/d_msg_flow.h +++ b/include/d/d_msg_flow.h @@ -172,6 +172,15 @@ public: int event041(mesg_flow_node_event*, fopAc_ac_c*); int event042(mesg_flow_node_event*, fopAc_ac_c*); +#if TARGET_PC + // HD additions + u16 query054(mesg_flow_node_branch*, fopAc_ac_c*, int); + u16 query055(mesg_flow_node_branch*, fopAc_ac_c*, int); + int event043(mesg_flow_node_event*, fopAc_ac_c*); + int event044(mesg_flow_node_event*, fopAc_ac_c*); + int event045(mesg_flow_node_event*, fopAc_ac_c*); +#endif + void initWord(fopAc_ac_c*, const char*, u8, int, fopAc_ac_c**); #if DEBUG @@ -185,8 +194,8 @@ public: void setMsg(u32 msg) { mMsg = msg; } bool checkEndFlow() { return (u32)field_0x26 == 1; } - static queryFunc mQueryList[53]; - static eventFunc mEventList[43]; + static queryFunc mQueryList[DUSK_IF_ELSE(55, 53)]; + static eventFunc mEventList[DUSK_IF_ELSE(46, 43)]; private: /* 0x04 */ u8* mFlow_p; diff --git a/src/d/d_msg_flow.cpp b/src/d/d_msg_flow.cpp index c461b179e1..3c8d577a9e 100644 --- a/src/d/d_msg_flow.cpp +++ b/src/d/d_msg_flow.cpp @@ -745,7 +745,7 @@ int dMsgFlow_c::getParam(u8* params) { return *(BE(int)*)params; } -queryFunc dMsgFlow_c::mQueryList[53] = { +queryFunc dMsgFlow_c::mQueryList[DUSK_IF_ELSE(55, 53)] = { &dMsgFlow_c::query005, &dMsgFlow_c::query001, &dMsgFlow_c::query002, &dMsgFlow_c::query003, &dMsgFlow_c::query006, &dMsgFlow_c::query007, &dMsgFlow_c::query004, &dMsgFlow_c::query008, &dMsgFlow_c::query009, &dMsgFlow_c::query010, &dMsgFlow_c::query011, &dMsgFlow_c::query012, @@ -760,6 +760,11 @@ queryFunc dMsgFlow_c::mQueryList[53] = { &dMsgFlow_c::query045, &dMsgFlow_c::query046, &dMsgFlow_c::query047, &dMsgFlow_c::query048, &dMsgFlow_c::query049, &dMsgFlow_c::query050, &dMsgFlow_c::query051, &dMsgFlow_c::query052, &dMsgFlow_c::query053, + +#if TARGET_PC + &dMsgFlow_c::query054, + &dMsgFlow_c::query055, +#endif }; #if DEBUG @@ -1730,7 +1735,7 @@ u16 dMsgFlow_c::query053(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_spea return ret; } -eventFunc dMsgFlow_c::mEventList[43] = { +eventFunc dMsgFlow_c::mEventList[DUSK_IF_ELSE(46, 43)] = { &dMsgFlow_c::event000, &dMsgFlow_c::event001, &dMsgFlow_c::event002, &dMsgFlow_c::event003, &dMsgFlow_c::event004, &dMsgFlow_c::event005, &dMsgFlow_c::event006, &dMsgFlow_c::event007, &dMsgFlow_c::event008, &dMsgFlow_c::event009, &dMsgFlow_c::event010, &dMsgFlow_c::event011, @@ -1742,6 +1747,12 @@ eventFunc dMsgFlow_c::mEventList[43] = { &dMsgFlow_c::event032, &dMsgFlow_c::event033, &dMsgFlow_c::event034, &dMsgFlow_c::event035, &dMsgFlow_c::event036, &dMsgFlow_c::event037, &dMsgFlow_c::event038, &dMsgFlow_c::event039, &dMsgFlow_c::event040, &dMsgFlow_c::event041, &dMsgFlow_c::event042, + +#if TARGET_PC + &dMsgFlow_c::event043, + &dMsgFlow_c::event044, + &dMsgFlow_c::event045, +#endif }; int dMsgFlow_c::event000(mesg_flow_node_event* i_flowNode_p, fopAc_ac_c* i_speaker_p) { @@ -2587,3 +2598,34 @@ int dMsgFlow_c::event041(mesg_flow_node_event* i_flowNode_p, fopAc_ac_c* i_speak int dMsgFlow_c::event042(mesg_flow_node_event* i_flowNode_p, fopAc_ac_c* i_speaker_p) { return 1; } + +#if TARGET_PC +// HD additions +u16 dMsgFlow_c::query054(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_speaker_p, int param_2) { + // stub + return 1; +} + +u16 dMsgFlow_c::query055(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_speaker_p, int param_2) { + // stub + return 1; +} + +int dMsgFlow_c::event043(mesg_flow_node_event* i_flowNode_p, fopAc_ac_c* i_speaker_p) { + // stub + return 1; +} + +int dMsgFlow_c::event044(mesg_flow_node_event* i_flowNode_p, fopAc_ac_c* i_speaker_p) { + // stub + // runs when choosing to "withdraw" from cave of shadows + // for now just have it reset to title, similar to original + JUTGamePad::C3ButtonReset::sResetSwitchPushing = true; + return 1; +} + +int dMsgFlow_c::event045(mesg_flow_node_event* i_flowNode_p, fopAc_ac_c* i_speaker_p) { + // stub + return 1; +} +#endif