From e4fc88466521622a08ad84a7e3473d56b80e8d27 Mon Sep 17 00:00:00 2001 From: ike709 Date: Tue, 25 Nov 2025 02:11:27 -0600 Subject: [PATCH] Make `macro` optional --- OpenDreamClient/DreamClientSystem.cs | 2 +- OpenDreamClient/Interface/Controls/ControlWindow.cs | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/OpenDreamClient/DreamClientSystem.cs b/OpenDreamClient/DreamClientSystem.cs index a2d1c288ae..5a6b47d3bf 100644 --- a/OpenDreamClient/DreamClientSystem.cs +++ b/OpenDreamClient/DreamClientSystem.cs @@ -13,6 +13,6 @@ public override void Initialize() { private void OnPlayerAttached(LocalPlayerAttachedEvent e) { // The active input context gets reset to "common" when a new player is attached // So we have to set it again - _interfaceManager.DefaultWindow?.Macro.SetActive(); + _interfaceManager.DefaultWindow?.Macro?.SetActive(); } } diff --git a/OpenDreamClient/Interface/Controls/ControlWindow.cs b/OpenDreamClient/Interface/Controls/ControlWindow.cs index 83e0e18bfe..3ee1c66817 100644 --- a/OpenDreamClient/Interface/Controls/ControlWindow.cs +++ b/OpenDreamClient/Interface/Controls/ControlWindow.cs @@ -20,7 +20,7 @@ public sealed class ControlWindow : InterfaceControl { public readonly List ChildControls = new(); public string Title => WindowDescriptor.Title.Value; - public InterfaceMacroSet Macro => _interfaceManager.MacroSets[WindowDescriptor.Macro.AsRaw()]; + public InterfaceMacroSet? Macro => _interfaceManager.MacroSets.GetValueOrDefault(WindowDescriptor.Macro.AsRaw()); private WindowDescriptor WindowDescriptor => (WindowDescriptor)ElementDescriptor; @@ -54,7 +54,7 @@ protected override void UpdateElementDescriptor() { UpdateWindowAttributes(_myWindow); if (WindowDescriptor.IsDefault.Value) { - Macro.SetActive(); + Macro?.SetActive(); } }