Skip to content

Commit

Permalink
1.1.14 - add visibility settings for avatarHide button
Browse files Browse the repository at this point in the history
  • Loading branch information
BlazingTwist committed Oct 20, 2021
1 parent ed063a9 commit 5144a03
Show file tree
Hide file tree
Showing 6 changed files with 56 additions and 14 deletions.
2 changes: 1 addition & 1 deletion SoD_BaseMod/SoD_BaseMod.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@
<Compile Include="src\basemod\BTUIDragHandler.cs" />
<Compile Include="src\basemod\BTUIUtils.cs" />
<Compile Include="src\basemod\config\BTConfig.cs" />
<Compile Include="src\basemod\config\BTCursorVisibility.cs" />
<Compile Include="src\basemod\config\BTVisibilitySetting.cs" />
<Compile Include="src\basemod\config\BTCutsceneConfigEntry.cs" />
<Compile Include="src\basemod\config\BTHackConfig.cs" />
<Compile Include="src\basemod\config\BTLevelConfigEntry.cs" />
Expand Down
6 changes: 3 additions & 3 deletions SoD_BaseMod/src/AsmFirstpass/KAUICursorManagerPatcher.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,11 @@ public static bool ApplyCursorVisibility(bool currentValue) {
}

switch (config.cursorVisibility) {
case BTCursorVisibility.Force:
case BTVisibilitySetting.Force:
return true;
case BTCursorVisibility.Hide:
case BTVisibilitySetting.Hide:
return false;
case BTCursorVisibility.Default:
case BTVisibilitySetting.Default:
default:
return currentValue;
}
Expand Down
6 changes: 6 additions & 0 deletions SoD_BaseMod/src/asm/Extensions/UiAvatarControlsExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,11 @@ public static void EnableAvatarHideButton(this UiAvatarControls __instance, bool
/* dummy content */
throw new NotImplementedException("Stub called, reverse patch has not been applied!");
}

[HarmonyReversePatch, HarmonyPatch(methodName: "EnableAvatarShowButton", argumentTypes: new[] { typeof(bool) })]
public static void EnableAvatarShowButton(this UiAvatarControls __instance, bool hide) {
/* dummy content */
throw new NotImplementedException("Stub called, reverse patch has not been applied!");
}
}
}
49 changes: 41 additions & 8 deletions SoD_BaseMod/src/asm/UiAvatarControlsPatcher.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,23 +19,56 @@ private static void GetWeaponCooldownPostfix(ref float __result) {
}
}

private static BTVisibilitySetting previousHideButtonVisibility = BTVisibilitySetting.Default;

[HarmonyPostfix, HarmonyPatch(methodName: "Update", argumentTypes: new Type[] { })]
private static void UpdatePostfix(UiAvatarControls __instance, bool ___mFireBtnReady, bool ___mEnableFireOnButtonDown, bool ___mEnableFireOnButtonUp) {
private static void UpdatePostfix(UiAvatarControls __instance, bool ___mFireBtnReady, bool ___mEnableFireOnButtonDown,
bool ___mEnableFireOnButtonUp, AvAvatarController ___mAVController) {
BTHackConfig hackConfig = BTDebugCamInputManager.GetConfigHolder().hackConfig;
if (hackConfig == null || !hackConfig.fireball_autoFireOnHold || !AvAvatar.pInputEnabled || !___mFireBtnReady) {
return;
if (hackConfig != null && hackConfig.fireball_autoFireOnHold && AvAvatar.pInputEnabled && ___mFireBtnReady) {
if (___mEnableFireOnButtonDown && KAInput.GetButton("DragonFire")
|| ___mEnableFireOnButtonUp && KAInput.GetButtonUp("DragonFire")) {
__instance.Fire();
}
}

if (___mEnableFireOnButtonDown && KAInput.GetButton("DragonFire")
|| ___mEnableFireOnButtonUp && KAInput.GetButtonUp("DragonFire")) {
__instance.Fire();
BTVisibilitySetting visibility = BTDebugCamInputManager.GetConfigHolder().config.avatarButtonVisibility;
if (visibility != previousHideButtonVisibility) {
previousHideButtonVisibility = visibility;
if (visibility == BTVisibilitySetting.Hide) {
__instance.EnableAvatarHideButton(false);
__instance.EnableAvatarShowButton(false);
___mAVController.AvatarHidden = false;
___mAVController.EnableRenderer(true);
} else if (___mAVController != null) {
bool hidden = ___mAVController.AvatarHidden;
if (visibility == BTVisibilitySetting.Force) {
__instance.EnableAvatarHideButton(!hidden);
__instance.EnableAvatarShowButton(hidden);
} else if (visibility == BTVisibilitySetting.Default) {
__instance.HideAvatar(hidden);
}
}
}
}

[HarmonyPrefix, HarmonyPatch(methodName: nameof(UiAvatarControls.HideAvatar), argumentTypes: new[] { typeof(bool) })]
private static bool HideAvatarPrefix(UiAvatarControls __instance, bool hide) {
BTVisibilitySetting visibility = BTDebugCamInputManager.GetConfigHolder().config.avatarButtonVisibility;
return visibility != BTVisibilitySetting.Hide;
}

[HarmonyPostfix, HarmonyPatch(methodName: nameof(UiAvatarControls.HideAvatar), argumentTypes: new[] { typeof(bool) })]
private static void HideAvatarPostfix(UiAvatarControls __instance, bool hide) {
if (FUEManager.IsInputEnabled("ToggleAvatar")) {
__instance.EnableAvatarHideButton(!hide);
BTVisibilitySetting visibility = BTDebugCamInputManager.GetConfigHolder().config.avatarButtonVisibility;
if (visibility == BTVisibilitySetting.Default) {
return;
}

if (visibility == BTVisibilitySetting.Force) {
if (FUEManager.IsInputEnabled("ToggleAvatar")) {
__instance.EnableAvatarHideButton(!hide);
}
}
}
}
Expand Down
5 changes: 4 additions & 1 deletion SoD_BaseMod/src/basemod/config/BTConfig.cs
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,9 @@ public class BTConfig {
public Dictionary<string, List<string>> commandBinds;

// Cursor
public BTCursorVisibility cursorVisibility = BTCursorVisibility.Default;
public BTVisibilitySetting cursorVisibility = BTVisibilitySetting.Default;

// Hide AvatarButton
public BTVisibilitySetting avatarButtonVisibility = BTVisibilitySetting.Default;
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
namespace SoD_BaseMod.config {
public enum BTCursorVisibility {
public enum BTVisibilitySetting {
Default,
Force,
Hide
Expand Down

0 comments on commit 5144a03

Please sign in to comment.