From d7ec3d8dfb47fb6cc2e3d0ab56b42680713a517c Mon Sep 17 00:00:00 2001 From: ManlyMarco Date: Tue, 21 Sep 2021 15:25:55 +0200 Subject: [PATCH] Use a more reliable implementation of GetMakerSex --- src/Shared.Core/Maker/MakerAPI.cs | 11 ++++++++++- src/Shared.KKalike/Maker/MakerAPI.Hooks.KK.cs | 6 +++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/Shared.Core/Maker/MakerAPI.cs b/src/Shared.Core/Maker/MakerAPI.cs index 9ba7b00..309f32d 100644 --- a/src/Shared.Core/Maker/MakerAPI.cs +++ b/src/Shared.Core/Maker/MakerAPI.cs @@ -104,7 +104,16 @@ public static AccessoryControlWrapper AddEditableAccessoryWindowControl /// public static int GetMakerSex() #if KK || KKS || EC - => GetMakerBase().modeSex; + + + { + var res = (int)Hooks._modeSex; +#if DEBUG + if(GetMakerBase().modeSex != res) + KoikatuAPI.Logger.LogMessage($"Difference in modesex hooks={res} base={GetMakerBase().modeSex}"); +#endif + return res; + } #elif AI || HS2 => CharaCustom.CharaCustom.modeSex; #endif diff --git a/src/Shared.KKalike/Maker/MakerAPI.Hooks.KK.cs b/src/Shared.KKalike/Maker/MakerAPI.Hooks.KK.cs index 01633fc..9264955 100644 --- a/src/Shared.KKalike/Maker/MakerAPI.Hooks.KK.cs +++ b/src/Shared.KKalike/Maker/MakerAPI.Hooks.KK.cs @@ -76,9 +76,11 @@ private static IEnumerator OnMakerLoadingCo() [HarmonyPrefix] [HarmonyPatch(typeof(CustomScene), "Start")] - public static void CustomScene_Start() + public static void CustomScene_Start(CustomScene __instance) { InsideMaker = Singleton.Instance != null; + + _modeSex = __instance.modeNew ? __instance.modeSex : __instance.chaFileCtrl.parameter.sex; } [HarmonyPrefix] @@ -88,6 +90,7 @@ public static void CustomScene_Destroy() OnMakerExiting(); InsideMaker = false; InternalLastLoadedChaFile = null; + _modeSex = -1; } [HarmonyPrefix, HarmonyPatch(typeof(CustomCharaFile), "Initialize")] @@ -112,6 +115,7 @@ public static void ChaFileLoadFilePreHook(ChaFile __instance) } public static ChaFile InternalLastLoadedChaFile; + public static int _modeSex; [HarmonyPostfix] #if KKS