From 84e5b58845130decf3963beb0a399e3cd5e815f2 Mon Sep 17 00:00:00 2001 From: Sui / SuicideMachine Date: Sun, 29 Mar 2026 16:29:13 +0200 Subject: [PATCH 1/4] Update to NET Framework 4.8.1 (required for build) --- LiveSplit.AutoSplitIntegration.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LiveSplit.AutoSplitIntegration.csproj b/LiveSplit.AutoSplitIntegration.csproj index beb7b62..73cd121 100644 --- a/LiveSplit.AutoSplitIntegration.csproj +++ b/LiveSplit.AutoSplitIntegration.csproj @@ -8,7 +8,7 @@ Library LiveSplit LiveSplit.AutoSplitIntegration - v4.6.1 + v4.8.1 512 false true From 8e9134c83283e188c240aab90f01aef58d775444 Mon Sep 17 00:00:00 2001 From: Sui / SuicideMachine Date: Sun, 29 Mar 2026 16:30:32 +0200 Subject: [PATCH 2/4] Fix the null reference exception --- .../AutoSplitIntegrationComponent.cs | 246 +++++++++--------- 1 file changed, 123 insertions(+), 123 deletions(-) diff --git a/UI/Components/AutoSplitIntegrationComponent.cs b/UI/Components/AutoSplitIntegrationComponent.cs index b2344a0..0abbe8a 100644 --- a/UI/Components/AutoSplitIntegrationComponent.cs +++ b/UI/Components/AutoSplitIntegrationComponent.cs @@ -8,153 +8,153 @@ namespace LiveSplit.UI.Components { - public class AutoSplitIntegrationComponent : IComponent - { - private bool hasStarted = false; + public class AutoSplitIntegrationComponent : IComponent + { + private bool hasStarted = false; - internal AutoSplitProcess AutoSplit { get; set; } + internal AutoSplitProcess AutoSplit { get; set; } - internal bool GameTimePausing { get; set; } = false; + internal bool GameTimePausing { get; set; } = false; - internal AutoSplitIntegrationComponentSettings Settings { get; } + internal AutoSplitIntegrationComponentSettings Settings { get; } - internal LiveSplitState State { get; private set; } + internal LiveSplitState State { get; private set; } - internal TimerModel Timer { get; private set; } + internal TimerModel Timer { get; private set; } - internal bool IgnoreNextStart { get; set; } = false; + internal bool IgnoreNextStart { get; set; } = false; - internal bool IgnoreNextSplit { get; set; } = false; + internal bool IgnoreNextSplit { get; set; } = false; - internal bool IgnoreNextReset { get; set; } = false; + internal bool IgnoreNextReset { get; set; } = false; - public string ComponentName => "AutoSplit Integration"; + public string ComponentName => "AutoSplit Integration"; - public IDictionary ContextMenuControls { get; private set; } = new Dictionary(); + public IDictionary ContextMenuControls { get; private set; } = new Dictionary(); - public string AutoSplitPath { get; set; } + public string AutoSplitPath { get; set; } - public string SettingsPath { get; set; } - - public void DrawHorizontal(Graphics g, LiveSplitState state, float height, Region clipRegion) { } - public void DrawVertical(Graphics g, LiveSplitState state, float height, Region clipRegion) { } - public float HorizontalWidth => 0; - public float MinimumHeight => 0; - public float VerticalHeight => 0; - public float MinimumWidth => 0; - public float PaddingTop => 0; - public float PaddingBottom => 0; - public float PaddingLeft => 0; - public float PaddingRight => 0; - - public AutoSplitIntegrationComponent(LiveSplitState state) - { - State = state; - Timer = new TimerModel() - { - CurrentState = State - }; + public string SettingsPath { get; set; } + + public void DrawHorizontal(Graphics g, LiveSplitState state, float height, Region clipRegion) { } + public void DrawVertical(Graphics g, LiveSplitState state, float height, Region clipRegion) { } + public float HorizontalWidth => 0; + public float MinimumHeight => 0; + public float VerticalHeight => 0; + public float MinimumWidth => 0; + public float PaddingTop => 0; + public float PaddingBottom => 0; + public float PaddingLeft => 0; + public float PaddingRight => 0; + + public AutoSplitIntegrationComponent(LiveSplitState state) + { + State = state; + Timer = new TimerModel() + { + CurrentState = State + }; - Settings = new AutoSplitIntegrationComponentSettings(this); + Settings = new AutoSplitIntegrationComponentSettings(this); - State.OnStart += State_OnStart; - State.OnSplit += State_OnSplit; - State.OnReset += State_OnReset; - State.OnSkipSplit += State_OnSkipSplit; - State.OnUndoSplit += State_OnUndoSplit; - } + State.OnStart += State_OnStart; + State.OnSplit += State_OnSplit; + State.OnReset += State_OnReset; + State.OnSkipSplit += State_OnSkipSplit; + State.OnUndoSplit += State_OnUndoSplit; + } - public Control GetSettingsControl(LayoutMode mode) => Settings; + public Control GetSettingsControl(LayoutMode mode) => Settings; - public XmlNode GetSettings(XmlDocument document) => Settings.GetSettings(document); + public XmlNode GetSettings(XmlDocument document) => Settings.GetSettings(document); - public void SetSettings(XmlNode settings) - { - Settings.SetSettings(settings); + public void SetSettings(XmlNode settings) + { + Settings.SetSettings(settings); - if (!hasStarted) - { - hasStarted = true; - StartAutoSplit(); - } - } + if (!hasStarted) + { + hasStarted = true; + StartAutoSplit(); + } + } - public void Update(IInvalidator invalidator, LiveSplitState state, float width, float height, LayoutMode mode) { } + public void Update(IInvalidator invalidator, LiveSplitState state, float width, float height, LayoutMode mode) { } - public void StartAutoSplit() - { - if (!string.IsNullOrEmpty(AutoSplitPath) && File.Exists(AutoSplitPath)) - { - AutoSplit?.Close(); - AutoSplit = new AutoSplitProcess(this); - } + public void StartAutoSplit() + { + if (!string.IsNullOrEmpty(AutoSplitPath) && File.Exists(AutoSplitPath)) + { + AutoSplit?.Close(); + AutoSplit = new AutoSplitProcess(this); + } - LoadAutoSplitSettings(); - } + LoadAutoSplitSettings(); + } - public void KillAutoSplit() - { - if (!AutoSplit.IsRunning) - return; + public void KillAutoSplit() + { + if (!AutoSplit.IsRunning) + return; - try - { - AutoSplit.MainProcess.Kill(); - } - catch { } - } + try + { + AutoSplit.MainProcess.Kill(); + } + catch { } + } - public void LoadAutoSplitSettings() - { - if (!string.IsNullOrEmpty(SettingsPath) && File.Exists(SettingsPath)) - { - AutoSplit.Send("settings|" + SettingsPath); - } - } + public void LoadAutoSplitSettings() + { + if (!string.IsNullOrEmpty(SettingsPath) && File.Exists(SettingsPath)) + { + AutoSplit?.Send("settings|" + SettingsPath); + } + } - public void Dispose() => AutoSplit?.Close(); + public void Dispose() => AutoSplit?.Close(); - private void State_OnStart(object sender, EventArgs e) - { - if (IgnoreNextStart) - { - IgnoreNextStart = false; - return; - } - - AutoSplit.Send("start"); - if (GameTimePausing) - Timer.InitializeGameTime(); - - Settings.OnStart(); - } - - private void State_OnSplit(object sender, EventArgs e) - { - if (IgnoreNextSplit) - { - IgnoreNextSplit = false; - return; - } - - AutoSplit.Send("split"); - } - - private void State_OnReset(object sender, TimerPhase e) - { - if (IgnoreNextReset) - { - IgnoreNextReset = false; - return; - } - - AutoSplit.Send("reset"); - Settings.OnReset(); - } - - private void State_OnSkipSplit(object sender, EventArgs e) => AutoSplit.Send("skip"); - - private void State_OnUndoSplit(object sender, EventArgs e) => AutoSplit.Send("undo"); - - } + private void State_OnStart(object sender, EventArgs e) + { + if (IgnoreNextStart) + { + IgnoreNextStart = false; + return; + } + + AutoSplit.Send("start"); + if (GameTimePausing) + Timer.InitializeGameTime(); + + Settings.OnStart(); + } + + private void State_OnSplit(object sender, EventArgs e) + { + if (IgnoreNextSplit) + { + IgnoreNextSplit = false; + return; + } + + AutoSplit.Send("split"); + } + + private void State_OnReset(object sender, TimerPhase e) + { + if (IgnoreNextReset) + { + IgnoreNextReset = false; + return; + } + + AutoSplit.Send("reset"); + Settings.OnReset(); + } + + private void State_OnSkipSplit(object sender, EventArgs e) => AutoSplit.Send("skip"); + + private void State_OnUndoSplit(object sender, EventArgs e) => AutoSplit.Send("undo"); + + } } \ No newline at end of file From 32f5657603cfc0366dbaf039af8ccb8f4c8cad5a Mon Sep 17 00:00:00 2001 From: Sui / SuicideMachine Date: Sun, 29 Mar 2026 16:42:55 +0200 Subject: [PATCH 3/4] Build --- .../LiveSplit.AutoSplitIntegration.dll | Bin 23552 -> 22528 bytes .../update.LiveSplit.AutoSplitIntegration.xml | 10 +++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/update/Components/LiveSplit.AutoSplitIntegration.dll b/update/Components/LiveSplit.AutoSplitIntegration.dll index 0f549a1ddcedafc38f525227ef1b66195dfe74bc..3395fd72038b775057c78ff07df74edbad99ee03 100644 GIT binary patch literal 22528 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 + + + + + + Fixed an unhandled null reference exception when trying to set a settings path without starting AutoSplit program first. + + @@ -16,4 +24,4 @@ Fixes AutoSplit not being opened correctly. - + \ No newline at end of file From 1b63006926659a7f02203140162cbcf16825f74c Mon Sep 17 00:00:00 2001 From: Sui / SuicideMachine Date: Sun, 29 Mar 2026 16:46:50 +0200 Subject: [PATCH 4/4] Switch formatting back to spaces :-/ --- .../AutoSplitIntegrationComponent.cs | 246 +++++++++--------- 1 file changed, 123 insertions(+), 123 deletions(-) diff --git a/UI/Components/AutoSplitIntegrationComponent.cs b/UI/Components/AutoSplitIntegrationComponent.cs index 0abbe8a..9d836a7 100644 --- a/UI/Components/AutoSplitIntegrationComponent.cs +++ b/UI/Components/AutoSplitIntegrationComponent.cs @@ -8,153 +8,153 @@ namespace LiveSplit.UI.Components { - public class AutoSplitIntegrationComponent : IComponent - { - private bool hasStarted = false; + public class AutoSplitIntegrationComponent : IComponent + { + private bool hasStarted = false; - internal AutoSplitProcess AutoSplit { get; set; } + internal AutoSplitProcess AutoSplit { get; set; } - internal bool GameTimePausing { get; set; } = false; + internal bool GameTimePausing { get; set; } = false; - internal AutoSplitIntegrationComponentSettings Settings { get; } + internal AutoSplitIntegrationComponentSettings Settings { get; } - internal LiveSplitState State { get; private set; } + internal LiveSplitState State { get; private set; } - internal TimerModel Timer { get; private set; } + internal TimerModel Timer { get; private set; } - internal bool IgnoreNextStart { get; set; } = false; + internal bool IgnoreNextStart { get; set; } = false; - internal bool IgnoreNextSplit { get; set; } = false; + internal bool IgnoreNextSplit { get; set; } = false; - internal bool IgnoreNextReset { get; set; } = false; + internal bool IgnoreNextReset { get; set; } = false; - public string ComponentName => "AutoSplit Integration"; + public string ComponentName => "AutoSplit Integration"; - public IDictionary ContextMenuControls { get; private set; } = new Dictionary(); + public IDictionary ContextMenuControls { get; private set; } = new Dictionary(); - public string AutoSplitPath { get; set; } + public string AutoSplitPath { get; set; } - public string SettingsPath { get; set; } - - public void DrawHorizontal(Graphics g, LiveSplitState state, float height, Region clipRegion) { } - public void DrawVertical(Graphics g, LiveSplitState state, float height, Region clipRegion) { } - public float HorizontalWidth => 0; - public float MinimumHeight => 0; - public float VerticalHeight => 0; - public float MinimumWidth => 0; - public float PaddingTop => 0; - public float PaddingBottom => 0; - public float PaddingLeft => 0; - public float PaddingRight => 0; - - public AutoSplitIntegrationComponent(LiveSplitState state) - { - State = state; - Timer = new TimerModel() - { - CurrentState = State - }; + public string SettingsPath { get; set; } + + public void DrawHorizontal(Graphics g, LiveSplitState state, float height, Region clipRegion) { } + public void DrawVertical(Graphics g, LiveSplitState state, float height, Region clipRegion) { } + public float HorizontalWidth => 0; + public float MinimumHeight => 0; + public float VerticalHeight => 0; + public float MinimumWidth => 0; + public float PaddingTop => 0; + public float PaddingBottom => 0; + public float PaddingLeft => 0; + public float PaddingRight => 0; + + public AutoSplitIntegrationComponent(LiveSplitState state) + { + State = state; + Timer = new TimerModel() + { + CurrentState = State + }; - Settings = new AutoSplitIntegrationComponentSettings(this); + Settings = new AutoSplitIntegrationComponentSettings(this); - State.OnStart += State_OnStart; - State.OnSplit += State_OnSplit; - State.OnReset += State_OnReset; - State.OnSkipSplit += State_OnSkipSplit; - State.OnUndoSplit += State_OnUndoSplit; - } + State.OnStart += State_OnStart; + State.OnSplit += State_OnSplit; + State.OnReset += State_OnReset; + State.OnSkipSplit += State_OnSkipSplit; + State.OnUndoSplit += State_OnUndoSplit; + } - public Control GetSettingsControl(LayoutMode mode) => Settings; + public Control GetSettingsControl(LayoutMode mode) => Settings; - public XmlNode GetSettings(XmlDocument document) => Settings.GetSettings(document); + public XmlNode GetSettings(XmlDocument document) => Settings.GetSettings(document); - public void SetSettings(XmlNode settings) - { - Settings.SetSettings(settings); + public void SetSettings(XmlNode settings) + { + Settings.SetSettings(settings); - if (!hasStarted) - { - hasStarted = true; - StartAutoSplit(); - } - } + if (!hasStarted) + { + hasStarted = true; + StartAutoSplit(); + } + } - public void Update(IInvalidator invalidator, LiveSplitState state, float width, float height, LayoutMode mode) { } + public void Update(IInvalidator invalidator, LiveSplitState state, float width, float height, LayoutMode mode) { } - public void StartAutoSplit() - { - if (!string.IsNullOrEmpty(AutoSplitPath) && File.Exists(AutoSplitPath)) - { - AutoSplit?.Close(); - AutoSplit = new AutoSplitProcess(this); - } + public void StartAutoSplit() + { + if (!string.IsNullOrEmpty(AutoSplitPath) && File.Exists(AutoSplitPath)) + { + AutoSplit?.Close(); + AutoSplit = new AutoSplitProcess(this); + } - LoadAutoSplitSettings(); - } + LoadAutoSplitSettings(); + } - public void KillAutoSplit() - { - if (!AutoSplit.IsRunning) - return; + public void KillAutoSplit() + { + if (!AutoSplit.IsRunning) + return; - try - { - AutoSplit.MainProcess.Kill(); - } - catch { } - } + try + { + AutoSplit.MainProcess.Kill(); + } + catch { } + } - public void LoadAutoSplitSettings() - { - if (!string.IsNullOrEmpty(SettingsPath) && File.Exists(SettingsPath)) - { - AutoSplit?.Send("settings|" + SettingsPath); - } - } + public void LoadAutoSplitSettings() + { + if (!string.IsNullOrEmpty(SettingsPath) && File.Exists(SettingsPath)) + { + AutoSplit?.Send("settings|" + SettingsPath); + } + } - public void Dispose() => AutoSplit?.Close(); + public void Dispose() => AutoSplit?.Close(); - private void State_OnStart(object sender, EventArgs e) - { - if (IgnoreNextStart) - { - IgnoreNextStart = false; - return; - } - - AutoSplit.Send("start"); - if (GameTimePausing) - Timer.InitializeGameTime(); - - Settings.OnStart(); - } - - private void State_OnSplit(object sender, EventArgs e) - { - if (IgnoreNextSplit) - { - IgnoreNextSplit = false; - return; - } - - AutoSplit.Send("split"); - } - - private void State_OnReset(object sender, TimerPhase e) - { - if (IgnoreNextReset) - { - IgnoreNextReset = false; - return; - } - - AutoSplit.Send("reset"); - Settings.OnReset(); - } - - private void State_OnSkipSplit(object sender, EventArgs e) => AutoSplit.Send("skip"); - - private void State_OnUndoSplit(object sender, EventArgs e) => AutoSplit.Send("undo"); - - } + private void State_OnStart(object sender, EventArgs e) + { + if (IgnoreNextStart) + { + IgnoreNextStart = false; + return; + } + + AutoSplit.Send("start"); + if (GameTimePausing) + Timer.InitializeGameTime(); + + Settings.OnStart(); + } + + private void State_OnSplit(object sender, EventArgs e) + { + if (IgnoreNextSplit) + { + IgnoreNextSplit = false; + return; + } + + AutoSplit.Send("split"); + } + + private void State_OnReset(object sender, TimerPhase e) + { + if (IgnoreNextReset) + { + IgnoreNextReset = false; + return; + } + + AutoSplit.Send("reset"); + Settings.OnReset(); + } + + private void State_OnSkipSplit(object sender, EventArgs e) => AutoSplit.Send("skip"); + + private void State_OnUndoSplit(object sender, EventArgs e) => AutoSplit.Send("undo"); + + } } \ No newline at end of file