Skip to content

Commit

Permalink
Use a more reliable implementation of GetMakerSex
Browse files Browse the repository at this point in the history
  • Loading branch information
ManlyMarco committed Sep 21, 2021
1 parent 6e2d0b7 commit d7ec3d8
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 2 deletions.
11 changes: 10 additions & 1 deletion src/Shared.Core/Maker/MakerAPI.cs
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,16 @@ public static AccessoryControlWrapper<T, TVal> AddEditableAccessoryWindowControl
/// </summary>
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
Expand Down
6 changes: 5 additions & 1 deletion src/Shared.KKalike/Maker/MakerAPI.Hooks.KK.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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<CustomBase>.Instance != null;

_modeSex = __instance.modeNew ? __instance.modeSex : __instance.chaFileCtrl.parameter.sex;
}

[HarmonyPrefix]
Expand All @@ -88,6 +90,7 @@ public static void CustomScene_Destroy()
OnMakerExiting();
InsideMaker = false;
InternalLastLoadedChaFile = null;
_modeSex = -1;
}

[HarmonyPrefix, HarmonyPatch(typeof(CustomCharaFile), "Initialize")]
Expand All @@ -112,6 +115,7 @@ public static void ChaFileLoadFilePreHook(ChaFile __instance)
}

public static ChaFile InternalLastLoadedChaFile;
public static int _modeSex;

[HarmonyPostfix]
#if KKS
Expand Down

0 comments on commit d7ec3d8

Please sign in to comment.