Skip to content

Commit 68f7b59

Browse files
committed
Fix back button not working on settings submenus
1 parent 852be32 commit 68f7b59

File tree

4 files changed

+11
-10
lines changed

4 files changed

+11
-10
lines changed

BeatSaberMarkupLanguage/Harmony Patches/MainMenuInstaller.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,10 @@ private static void Prefix(MainSettingsMenuViewControllersInstaller __instance)
3737
container.Bind(typeof(GameplaySetup.GameplaySetup), typeof(IInitializable), typeof(IDisposable)).To<GameplaySetup.GameplaySetup>().AsSingle().NonLazy();
3838

3939
// initialize early & dispose late
40-
container.BindExecutionOrder<AnimationController>(-1000);
41-
container.BindExecutionOrder<BSMLSettings>(-1000);
40+
container.BindExecutionOrder<AnimationController>(-900);
41+
container.BindExecutionOrder<BSMLSettings>(-900);
4242
container.BindExecutionOrder<BSMLParser>(-1000);
43-
container.BindExecutionOrder<GameplaySetup.GameplaySetup>(-1000);
43+
container.BindExecutionOrder<GameplaySetup.GameplaySetup>(-900);
4444

4545
container.Bind(typeof(ModSettingsFlowCoordinator)).FromInstance(BeatSaberUI.CreateFlowCoordinator<ModSettingsFlowCoordinator>());
4646
container.Bind(typeof(MenuButtonsViewController)).FromInstance(BeatSaberUI.CreateViewController<MenuButtonsViewController>());

BeatSaberMarkupLanguage/Settings/BSMLSettings.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,11 @@ public void Initialize()
8585
{
8686
AddButtonToMainScreen().ContinueWith(task => Logger.Log.Error($"Failed to add button to main screen\n{task.Exception}"), TaskContinuationOptions.OnlyOnFaulted);
8787

88+
foreach (SettingsMenu settingsMenu in SettingsMenus)
89+
{
90+
settingsMenu.Setup();
91+
}
92+
8893
isInitialized = true;
8994
}
9095

BeatSaberMarkupLanguage/Settings/SettingsMenu.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public SettingsMenu(string name, string resource, object host, Assembly assembly
2323

2424
public BSMLParserParams ParserParams { get; private set; }
2525

26-
public bool DidSetup { get; private set; }
26+
public bool DidSetup { get; internal set; }
2727

2828
public string Resource { get; }
2929

@@ -45,7 +45,6 @@ public void Setup()
4545
ViewController = BeatSaberUI.CreateViewController<ViewController>();
4646
SetupViewControllerTransform(ViewController);
4747
ParserParams = BSMLParser.Instance.Parse(Utilities.GetResourceContent(Assembly, Resource), ViewController.gameObject, Host);
48-
DidSetup = true;
4948
}
5049
catch (Exception ex)
5150
{

BeatSaberMarkupLanguage/Settings/UI/ModSettingsFlowCoordinator.cs

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ public void OpenMenu(SettingsMenu menu)
2929
{
3030
if (!menu.DidSetup)
3131
{
32-
menu.Setup();
3332
menu.ParserParams.AddEvent("back", Back);
33+
menu.DidSetup = true;
3434
}
3535

3636
OpenMenu(menu.ViewController, false, false);
@@ -149,10 +149,7 @@ private void EmitEventToAll(string ev)
149149
{
150150
foreach (SettingsMenu menu in BSMLSettings.Instance.SettingsMenus)
151151
{
152-
if (menu.DidSetup)
153-
{
154-
menu.ParserParams.EmitEvent(ev);
155-
}
152+
menu.ParserParams.EmitEvent(ev);
156153
}
157154
}
158155
}

0 commit comments

Comments
 (0)