From f31b824f8c1ebd486f048df099ba05031824c449 Mon Sep 17 00:00:00 2001 From: baxlek <115663151+baxlek@users.noreply.github.com> Date: Sun, 2 Aug 2026 11:57:27 -0500 Subject: [PATCH 1/7] Add Can Transform Anywhere check when talking to Midna --- src/d/actor/d_a_midna.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/d/actor/d_a_midna.cpp b/src/d/actor/d_a_midna.cpp index 1b96147957..b221458f64 100644 --- a/src/d/actor/d_a_midna.cpp +++ b/src/d/actor/d_a_midna.cpp @@ -3300,7 +3300,10 @@ int daMidna_c::execute() { if (!checkStateFlg0(FLG0_UNK_8000)) { offStateFlg0((daMidna_FLG0)(FLG0_NPC_NEAR | FLG0_NPC_FAR)); BOOL far_; - if (fopAcIt_Judge((fopAcIt_JudgeFunc)daMidna_searchNpc, &far_)) { +#if TARGET_PC + if ((fopAcIt_Judge((fopAcIt_JudgeFunc)daMidna_searchNpc, &far_)) && + !dusk::getSettings().game.canTransformAnywhere) { +#endif if (!far_) { onStateFlg0(FLG0_NPC_NEAR); } else { From 66d6a6fec38f220fd7279eb8272d485a01520deb Mon Sep 17 00:00:00 2001 From: baxlek <115663151+baxlek@users.noreply.github.com> Date: Sun, 2 Aug 2026 13:57:48 -0500 Subject: [PATCH 2/7] Non-PC target inclusion --- src/d/actor/d_a_midna.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/d/actor/d_a_midna.cpp b/src/d/actor/d_a_midna.cpp index b221458f64..84e61d20d4 100644 --- a/src/d/actor/d_a_midna.cpp +++ b/src/d/actor/d_a_midna.cpp @@ -3303,6 +3303,8 @@ int daMidna_c::execute() { #if TARGET_PC if ((fopAcIt_Judge((fopAcIt_JudgeFunc)daMidna_searchNpc, &far_)) && !dusk::getSettings().game.canTransformAnywhere) { +#else + if (fopAcIt_Judge((fopAcIt_JudgeFunc)daMidna_searchNpc, &far_)) { #endif if (!far_) { onStateFlg0(FLG0_NPC_NEAR); From 4883d1fc2c3fad5a487c1c7b295ea9310493ebe6 Mon Sep 17 00:00:00 2001 From: baxlek <115663151+baxlek@users.noreply.github.com> Date: Sun, 2 Aug 2026 20:10:20 -0500 Subject: [PATCH 3/7] Add Can Transform Anywhere check to query042 --- src/d/d_msg_flow.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/d/d_msg_flow.cpp b/src/d/d_msg_flow.cpp index 094189679c..42416259fe 100644 --- a/src/d/d_msg_flow.cpp +++ b/src/d/d_msg_flow.cpp @@ -1506,7 +1506,12 @@ u16 dMsgFlow_c::query042(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_spea daMidna_c* midna_p = daPy_py_c::getMidnaActor(); u8 ret = 0; +#if TARGET_PC + if (strcmp("F_SP116", dComIfGp_getStartStageName()) == 0 && dComIfGs_isSaveDunSwitch(60) && + !dusk::getSettings().game.canTransformAnywhere) { +#else if (strcmp("F_SP116", dComIfGp_getStartStageName()) == 0 && dComIfGs_isSaveDunSwitch(60)) { +#endif ret = 4; } else if (midna_p->checkNpcNear()) { ret = 1; From 4cc979b419e63c61f98dad69a75855cc8706f1b0 Mon Sep 17 00:00:00 2001 From: baxlek <115663151+baxlek@users.noreply.github.com> Date: Mon, 10 Aug 2026 09:01:53 -0500 Subject: [PATCH 4/7] Simplify NPC check logic in d_a_midna.cpp Refactor NPC interaction checks for shadow mode and transformation settings. --- src/d/actor/d_a_midna.cpp | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/d/actor/d_a_midna.cpp b/src/d/actor/d_a_midna.cpp index 84e61d20d4..907307927a 100644 --- a/src/d/actor/d_a_midna.cpp +++ b/src/d/actor/d_a_midna.cpp @@ -3300,12 +3300,7 @@ int daMidna_c::execute() { if (!checkStateFlg0(FLG0_UNK_8000)) { offStateFlg0((daMidna_FLG0)(FLG0_NPC_NEAR | FLG0_NPC_FAR)); BOOL far_; -#if TARGET_PC - if ((fopAcIt_Judge((fopAcIt_JudgeFunc)daMidna_searchNpc, &far_)) && - !dusk::getSettings().game.canTransformAnywhere) { -#else - if (fopAcIt_Judge((fopAcIt_JudgeFunc)daMidna_searchNpc, &far_)) { -#endif + if ((fopAcIt_Judge((fopAcIt_JudgeFunc)daMidna_searchNpc, &far_)) && IF_DUSK(!dusk::getSettings().game.canTransformAnywhere)) { if (!far_) { onStateFlg0(FLG0_NPC_NEAR); } else { From a3de35fc014b8b6788c556a8a8e3488e38380f10 Mon Sep 17 00:00:00 2001 From: baxlek <115663151+baxlek@users.noreply.github.com> Date: Mon, 10 Aug 2026 09:05:17 -0500 Subject: [PATCH 5/7] Refactor query042 to simplify platform checks --- src/d/d_msg_flow.cpp | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/d/d_msg_flow.cpp b/src/d/d_msg_flow.cpp index 42416259fe..680dd7eb97 100644 --- a/src/d/d_msg_flow.cpp +++ b/src/d/d_msg_flow.cpp @@ -1506,12 +1506,7 @@ u16 dMsgFlow_c::query042(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_spea daMidna_c* midna_p = daPy_py_c::getMidnaActor(); u8 ret = 0; -#if TARGET_PC - if (strcmp("F_SP116", dComIfGp_getStartStageName()) == 0 && dComIfGs_isSaveDunSwitch(60) && - !dusk::getSettings().game.canTransformAnywhere) { -#else - if (strcmp("F_SP116", dComIfGp_getStartStageName()) == 0 && dComIfGs_isSaveDunSwitch(60)) { -#endif + if (strcmp("F_SP116", dComIfGp_getStartStageName()) == 0 && dComIfGs_isSaveDunSwitch(60) && IF_DUSK(!dusk::getSettings().game.canTransformAnywhere)) { ret = 4; } else if (midna_p->checkNpcNear()) { ret = 1; From 6009db23ef39e9dc7f12133f95f56c0f6dc2a11e Mon Sep 17 00:00:00 2001 From: baxlek <115663151+baxlek@users.noreply.github.com> Date: Mon, 10 Aug 2026 15:05:38 -0500 Subject: [PATCH 6/7] Fix conditional check in Midna's NPC interaction --- src/d/actor/d_a_midna.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/d/actor/d_a_midna.cpp b/src/d/actor/d_a_midna.cpp index 907307927a..a50753cdf0 100644 --- a/src/d/actor/d_a_midna.cpp +++ b/src/d/actor/d_a_midna.cpp @@ -3300,7 +3300,7 @@ int daMidna_c::execute() { if (!checkStateFlg0(FLG0_UNK_8000)) { offStateFlg0((daMidna_FLG0)(FLG0_NPC_NEAR | FLG0_NPC_FAR)); BOOL far_; - if ((fopAcIt_Judge((fopAcIt_JudgeFunc)daMidna_searchNpc, &far_)) && IF_DUSK(!dusk::getSettings().game.canTransformAnywhere)) { + if (fopAcIt_Judge((fopAcIt_JudgeFunc)daMidna_searchNpc, &far_) IF_DUSK(&& !dusk::getSettings().game.canTransformAnywhere)) { if (!far_) { onStateFlg0(FLG0_NPC_NEAR); } else { From 487413d71b44a6faf62f2f1f63d923769822f4e2 Mon Sep 17 00:00:00 2001 From: baxlek <115663151+baxlek@users.noreply.github.com> Date: Mon, 10 Aug 2026 15:06:57 -0500 Subject: [PATCH 7/7] Fix conditional statement in query042 function --- src/d/d_msg_flow.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/d/d_msg_flow.cpp b/src/d/d_msg_flow.cpp index 680dd7eb97..af9fc977df 100644 --- a/src/d/d_msg_flow.cpp +++ b/src/d/d_msg_flow.cpp @@ -1506,7 +1506,7 @@ u16 dMsgFlow_c::query042(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_spea daMidna_c* midna_p = daPy_py_c::getMidnaActor(); u8 ret = 0; - if (strcmp("F_SP116", dComIfGp_getStartStageName()) == 0 && dComIfGs_isSaveDunSwitch(60) && IF_DUSK(!dusk::getSettings().game.canTransformAnywhere)) { + if (strcmp("F_SP116", dComIfGp_getStartStageName()) == 0 && dComIfGs_isSaveDunSwitch(60) IF_DUSK(&& !dusk::getSettings().game.canTransformAnywhere)) { ret = 4; } else if (midna_p->checkNpcNear()) { ret = 1;