From 2a958f1ae8be77c65c9fb31ffeeb4fb06e93463d Mon Sep 17 00:00:00 2001 From: LagoLunatic Date: Sun, 14 Jul 2024 12:09:08 -0400 Subject: [PATCH] Fakematch d_ovlp_fade2 weak order fixes #667 --- configure.py | 2 +- src/d/d_ovlp_fade2.cpp | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/configure.py b/configure.py index 9d75b62e..90632dd8 100644 --- a/configure.py +++ b/configure.py @@ -524,7 +524,7 @@ config.libs = [ Object(NonMatching, "d/d_operate_wind.cpp"), Object(Matching, "d/d_metronome.cpp"), Object(Matching, "d/d_ovlp_fade.cpp"), - Object(NonMatching, "d/d_ovlp_fade2.cpp"), + Object(Matching, "d/d_ovlp_fade2.cpp"), Object(NonMatching, "d/d_ovlp_fade3.cpp"), Object(NonMatching, "d/d_ovlp_fade4.cpp"), Object(NonMatching, "d/d_picture_box.cpp"), diff --git a/src/d/d_ovlp_fade2.cpp b/src/d/d_ovlp_fade2.cpp index 8b4c336d..da9c8334 100644 --- a/src/d/d_ovlp_fade2.cpp +++ b/src/d/d_ovlp_fade2.cpp @@ -236,6 +236,15 @@ static s32 dOvlpFd2_Create(void* i_this) { return cPhs_COMPLEATE_e; } +// Fakematch. Manually define this template function here to make it non-weak, fixing the weak function ordering. +template <> +s8 cLib_calcTimer(s8* value) { + if (*(s8*)value != 0) { + *value = *value - 1; + } + return *value; +} + overlap_method_class l_dOvlpFd2_Method = { (process_method_func)dOvlpFd2_Create, (process_method_func)dOvlpFd2_Delete, @@ -258,6 +267,7 @@ overlap_process_profile_definition g_profile_OVERLAP2 = { &l_dOvlpFd2_Method, }; +#if VERSION != VERSION_JPN overlap_process_profile_definition g_profile_OVERLAP3 = { fpcLy_ROOT_e, 2, @@ -271,3 +281,4 @@ overlap_process_profile_definition g_profile_OVERLAP3 = { 0x1E4, &l_dOvlpFd2_Method, }; +#endif