From 2ac8bdc240cd915122e173849c1394124da97885 Mon Sep 17 00:00:00 2001 From: XtraCube <72575280+XtraCube@users.noreply.github.com> Date: Tue, 24 Jun 2025 12:26:22 -0400 Subject: [PATCH 1/3] fix lobby view settings scroll issues --- .../Patches/Options/LobbyViewPanePatches.cs | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/MiraAPI/Patches/Options/LobbyViewPanePatches.cs b/MiraAPI/Patches/Options/LobbyViewPanePatches.cs index bce6f82..5ae8590 100644 --- a/MiraAPI/Patches/Options/LobbyViewPanePatches.cs +++ b/MiraAPI/Patches/Options/LobbyViewPanePatches.cs @@ -129,8 +129,10 @@ public static class LobbyViewPanePatches __instance.rolesTabButton.SelectButton(false); ModifiersTabButton?.SelectButton(true); + var filteredGroups = SelectedMod.InternalOptionGroups - .Where(x => x.GroupVisible() && (x.ShowInModifiersMenu || x.OptionableType?.IsAssignableTo(typeof(BaseModifier))==true)); + .Where(x => x.GroupVisible() && (x.ShowInModifiersMenu || (x.OptionableType != null && x.OptionableType.IsAssignableTo(typeof(BaseModifier))))); + DrawOptions(__instance, filteredGroups); } @@ -149,7 +151,8 @@ public static class LobbyViewPanePatches } var filteredGroups = SelectedMod.InternalOptionGroups - .Where(x => x.OptionableType == null && x.GroupVisible.Invoke()); + .Where(x => x is { ShowInModifiersMenu: false, OptionableType: null } && x.GroupVisible()); + DrawOptions(__instance, filteredGroups); return false; } @@ -176,12 +179,15 @@ public static class LobbyViewPanePatches { var num = 1.44f; - foreach (var group in groups) + var groupArray = groups.Where(x => x.GroupVisible() && x.Options.Any(y => y.Visible())).ToArray(); + + foreach (var group in groupArray) { var categoryHeaderMasked = Object.Instantiate( menu.categoryHeaderOrigin, menu.settingsContainer, true); + categoryHeaderMasked.SetHeader(StringNames.Name, 61); categoryHeaderMasked.Title.text = group.GroupName; categoryHeaderMasked.transform.localScale = Vector3.one; @@ -193,7 +199,7 @@ public static class LobbyViewPanePatches foreach (var option in group.Options) { - if (!option.Visible.Invoke()) + if (!option.Visible()) { continue; } @@ -202,6 +208,7 @@ public static class LobbyViewPanePatches menu.infoPanelOrigin, menu.settingsContainer, true); + viewSettingsInfoPanel.transform.localScale = Vector3.one; float num2; if (i % 2 == 0) @@ -240,7 +247,8 @@ public static class LobbyViewPanePatches num -= 0.85f; } - menu.scrollBar.CalculateAndSetYBounds(menu.settingsInfo.Count + 10, 2f, 6f, 0.85f); + menu.scrollBar.ContentYBounds.max = -num - 2; + menu.scrollBar.UpdateScrollBars(); } private static void DrawRolesTab(LobbyViewSettingsPane instance) From e6d1f440c83c3764891172501c6dc10c1708ded5 Mon Sep 17 00:00:00 2001 From: XtraCube <72575280+XtraCube@users.noreply.github.com> Date: Tue, 24 Jun 2025 12:27:02 -0400 Subject: [PATCH 2/3] adjust it --- MiraAPI/Patches/Options/LobbyViewPanePatches.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/MiraAPI/Patches/Options/LobbyViewPanePatches.cs b/MiraAPI/Patches/Options/LobbyViewPanePatches.cs index 5ae8590..d05a5a4 100644 --- a/MiraAPI/Patches/Options/LobbyViewPanePatches.cs +++ b/MiraAPI/Patches/Options/LobbyViewPanePatches.cs @@ -247,8 +247,7 @@ public static class LobbyViewPanePatches num -= 0.85f; } - menu.scrollBar.ContentYBounds.max = -num - 2; - menu.scrollBar.UpdateScrollBars(); + menu.scrollBar.SetYBoundsMax(-num - 2); } private static void DrawRolesTab(LobbyViewSettingsPane instance) From 2e5f9639b390ab55c6390046684fbf4311e23e7e Mon Sep 17 00:00:00 2001 From: XtraCube <72575280+XtraCube@users.noreply.github.com> Date: Tue, 24 Jun 2025 12:32:13 -0400 Subject: [PATCH 3/3] fix role settings menu --- MiraAPI/Patches/Options/RoleSettingMenuPatches.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/MiraAPI/Patches/Options/RoleSettingMenuPatches.cs b/MiraAPI/Patches/Options/RoleSettingMenuPatches.cs index 740187b..1c1ab8d 100644 --- a/MiraAPI/Patches/Options/RoleSettingMenuPatches.cs +++ b/MiraAPI/Patches/Options/RoleSettingMenuPatches.cs @@ -234,6 +234,7 @@ public static class RoleSettingMenuPatches ScrollerNum -= 0.4f; } } + __instance.scrollBar.SetScrollBounds(__instance); return false; } @@ -246,7 +247,7 @@ public static class RoleSettingMenuPatches return; } - scroller.CalculateAndSetYBounds(1.5f * Headers.Count + RoleOptionSettings.Count, 1f, 6f, 0.43f); + scroller.SetYBoundsMax(-ScrollerNum - 2); if (RolePositions.TryGetValue(GameSettingMenuPatches.SelectedModIdx, out var scroll)) { scroller.Inner.localPosition = scroll; @@ -367,7 +368,7 @@ public static class RoleSettingMenuPatches newOpt.Initialize(); } - __instance.scrollBar.CalculateAndSetYBounds(__instance.advancedSettingChildren.Count + 3, 1f, 6f, 0.45f); + __instance.scrollBar.CalculateAndSetYBounds(-num - 2, 1f, 6f, 0.45f); __instance.scrollBar.ScrollToTop(); }