From cace4069f5fa63e2ecfd966dc23d01aa12a559c8 Mon Sep 17 00:00:00 2001 From: LagoLunatic Date: Thu, 14 May 2026 15:04:16 -0400 Subject: [PATCH] d_a_npc_people equivalent for retail --- configure.py | 7 +++++-- src/d/actor/d_a_npc_people.cpp | 28 +++++++++++++++++++++------- 2 files changed, 26 insertions(+), 9 deletions(-) diff --git a/configure.py b/configure.py index c55c3b42e..2059a8321 100755 --- a/configure.py +++ b/configure.py @@ -354,7 +354,10 @@ def MatchingFor(*versions): return config.version in versions def EquivalentFor(*versions): - return False + if config.non_matching: + return config.version in versions + else: + return False config.warn_missing_config = True config.warn_missing_source = False @@ -1659,7 +1662,7 @@ config.libs = [ ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_npc_os"), ActorRel(NonMatching, "d_a_npc_p1"), ActorRel(NonMatching, "d_a_npc_p2"), - ActorRel(MatchingFor("D44J01"), "d_a_npc_people"), # regalloc + ActorRel(EquivalentFor("GZLJ01", "GZLE01", "GZLP01") or MatchingFor("D44J01"), "d_a_npc_people"), # regalloc ActorRel(NonMatching, "d_a_npc_pf1"), ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_npc_photo"), ActorRel(NonMatching, "d_a_npc_pm1"), diff --git a/src/d/actor/d_a_npc_people.cpp b/src/d/actor/d_a_npc_people.cpp index 7430ee0e9..ce3b36340 100644 --- a/src/d/actor/d_a_npc_people.cpp +++ b/src/d/actor/d_a_npc_people.cpp @@ -3826,7 +3826,7 @@ static u32 l_msg_ug2_out_area[] = { }; static int l_get_item_no[] = { -#if VERSION == VERSION_DEMO +#if VERSION <= VERSION_JPN dItem_ORANGE_RUPEE_e, #else dItem_HEART_PIECE_e, @@ -4364,9 +4364,9 @@ BOOL daNpcPeople_c::createHeap() { } m_jnt.setHeadJntNum(bodyModelData->getJointName()->getIndex("head")); - JUT_ASSERT(DEMO_SELECT(4695, 4700), m_jnt.getHeadJntNum() >= 0); + JUT_ASSERT(VERSION_SELECT(4695, 4696, 4700, 4700), m_jnt.getHeadJntNum() >= 0); m_jnt.setBackboneJntNum(bodyModelData->getJointName()->getIndex("backbone")); - JUT_ASSERT(DEMO_SELECT(4699, 4704), m_jnt.getBackboneJntNum() >= 0); + JUT_ASSERT(VERSION_SELECT(4699, 4700, 4704, 4704), m_jnt.getBackboneJntNum() >= 0); if(!initTexPatternAnm(false)) { return false; @@ -4998,7 +4998,16 @@ void daNpcPeople_c::executeWait() { mOrderEventNum = 2; } else if(dComIfGp_checkPlayerStatus0(0, daPyStts0_TELESCOPE_LOOK_e)) { +#if VERSION == VERSION_PAL + if (dComIfGp_getMesgStatus() == 0) { + dComIfGp_setScopeType(1); + } + if (dComIfGp_getScopeType() != 1) { + break; + } +#else dComIfGp_setScopeType(1); +#endif if(dKy_moon_look_chk() && !(mEtcFlag & 0x100)) { dComIfGs_onEventBit(dSv_event_flag_c::UNK_2308); mEtcFlag |= 0x100; @@ -5983,6 +5992,11 @@ bool daNpcPeople_c::eventMesSet() { /* 000049C4-000049F8 .text eventMesSet2__13daNpcPeople_cFv */ bool daNpcPeople_c::eventMesSet2() { +#if VERSION == VERSION_PAL + if (dComIfGp_getScopeType() == 0) { + return true; + } +#endif return talk3(1) == fopMsgStts_BOX_CLOSED_e; } @@ -6739,7 +6753,7 @@ u32 daNpcPeople_c::getMsg() { } else if(!dComIfGs_checkGetItem(dItem_COLLECT_MAP_16_e)) { m734 = l_msg_xy_ub4_get_item; -#if VERSION > VERSION_DEMO +#if VERSION > VERSION_JPN dComIfGs_onEventBit(dSv_event_flag_c::UNK_2504); #endif } @@ -6786,7 +6800,7 @@ u32 daNpcPeople_c::getMsg() { } break; -#if VERSION > VERSION_DEMO +#if VERSION > VERSION_JPN case 0x10: m734 = l_msg_xy_sa5_no_skull_necklace; break; @@ -7775,7 +7789,7 @@ BOOL daNpcPeople_c::initTexPatternAnm(bool param_1) { } m_head_tex_pattern = (J3DAnmTexPattern*)dComIfG_getObjectIDRes(l_arcname_tbl[mNpcType], l_btp_ix_tbl[mNpcType]); - JUT_ASSERT(DEMO_SELECT(8951, 8989), m_head_tex_pattern != NULL); + JUT_ASSERT(VERSION_SELECT(8951, 8977, 8989, 9009), m_head_tex_pattern != NULL); if(!mBtpAnm.init(modelData, m_head_tex_pattern, TRUE, J3DFrameCtrl::EMode_LOOP, 1.0f, 0, -1, param_1, FALSE)) { return false; @@ -7970,7 +7984,7 @@ s16 daNpcPeople_c::XyCheckCB(int i_itemBtn) { break; case 0x10: -#if VERSION > VERSION_DEMO +#if VERSION > VERSION_JPN if(isPhoto(itemNo)) { return false; }