From 8474718491eb85c3de5c1604abb9b0220edc0367 Mon Sep 17 00:00:00 2001 From: Gene Date: Thu, 12 Jun 2025 23:54:05 -0700 Subject: [PATCH 1/3] Push inventory window directly instead of through message queue --- Assets/Scripts/Game/Guilds/KnightlyOrder.cs | 4 +++- Assets/Scripts/Game/PlayerActivate.cs | 8 +++++--- Assets/Scripts/Game/Questing/Actions/GivePc.cs | 6 ++++-- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/Assets/Scripts/Game/Guilds/KnightlyOrder.cs b/Assets/Scripts/Game/Guilds/KnightlyOrder.cs index 756a1b8038..3cd112fa16 100644 --- a/Assets/Scripts/Game/Guilds/KnightlyOrder.cs +++ b/Assets/Scripts/Game/Guilds/KnightlyOrder.cs @@ -14,6 +14,7 @@ using DaggerfallWorkshop.Game.Serialization; using DaggerfallWorkshop.Utility; using DaggerfallWorkshop.Game.Items; +using DaggerfallWorkshop.Game.UserInterface; using DaggerfallWorkshop.Game.UserInterfaceWindows; using DaggerfallWorkshop.Game.Banking; using UnityEngine; @@ -216,7 +217,8 @@ public void ReceiveArmor(PlayerEntity playerEntity) private void ReceiveArmorPopup_OnClose() { - DaggerfallUI.PostMessage(DaggerfallUIMessages.dfuiOpenInventoryWindow); + UserInterfaceManager uiManager = DaggerfallUI.Instance.UserInterfaceManager; + uiManager.PushWindow(DaggerfallUI.Instance.InventoryWindow); } public void ReceiveHouse() diff --git a/Assets/Scripts/Game/PlayerActivate.cs b/Assets/Scripts/Game/PlayerActivate.cs index 1e18177275..4a1a643d0a 100644 --- a/Assets/Scripts/Game/PlayerActivate.cs +++ b/Assets/Scripts/Game/PlayerActivate.cs @@ -957,7 +957,7 @@ void ActivateLootContainer(RaycastHit hit, DaggerfallLoot loot) } // Open inventory window with activated loot container as remote target (if we fall through to here) DaggerfallUI.Instance.InventoryWindow.LootTarget = loot; - DaggerfallUI.PostMessage(DaggerfallUIMessages.dfuiOpenInventoryWindow); + uiManager.PushWindow(DaggerfallUI.Instance.InventoryWindow); } void DisableEmptyCorpseContainer(GameObject go) @@ -1087,7 +1087,8 @@ public void PrivateProperty_OnButtonClick(DaggerfallMessageBox sender, Daggerfal if (messageBoxButton == DaggerfallMessageBox.MessageBoxButtons.Yes) { // Open inventory window with activated private container as remote target (pre-set) - DaggerfallUI.PostMessage(DaggerfallUIMessages.dfuiOpenInventoryWindow); + UserInterfaceManager uiManager = DaggerfallUI.Instance.UserInterfaceManager; + uiManager.PushWindow(DaggerfallUI.Instance.InventoryWindow); } else DaggerfallUI.Instance.InventoryWindow.LootTarget = null; @@ -1136,8 +1137,9 @@ private void DungeonWagonAccess_OnButtonClick(DaggerfallMessageBox sender, Dagge } else { + UserInterfaceManager uiManager = DaggerfallUI.Instance.UserInterfaceManager; DaggerfallUI.Instance.InventoryWindow.AllowDungeonWagonAccess(); - DaggerfallUI.PostMessage(DaggerfallUIMessages.dfuiOpenInventoryWindow); + uiManager.PushWindow(DaggerfallUI.Instance.InventoryWindow); } sender.CloseWindow(); } diff --git a/Assets/Scripts/Game/Questing/Actions/GivePc.cs b/Assets/Scripts/Game/Questing/Actions/GivePc.cs index a517c17de0..771adbc272 100644 --- a/Assets/Scripts/Game/Questing/Actions/GivePc.cs +++ b/Assets/Scripts/Game/Questing/Actions/GivePc.cs @@ -13,6 +13,7 @@ using UnityEngine; using System.Text.RegularExpressions; using DaggerfallWorkshop.Utility; +using DaggerfallWorkshop.Game.UserInterface; using DaggerfallWorkshop.Game.UserInterfaceWindows; using FullSerializer; @@ -190,8 +191,9 @@ private void QuestCompleteMessage_OnClose() // Open loot reward container once QuestComplete dismissed if (rewardLoot != null) { + UserInterfaceManager uiManager = DaggerfallUI.Instance.UserInterfaceManager; DaggerfallUI.Instance.InventoryWindow.LootTarget = rewardLoot; - DaggerfallUI.PostMessage(DaggerfallUIMessages.dfuiOpenInventoryWindow); + uiManager.PushWindow(DaggerfallUI.Instance.InventoryWindow); } } @@ -244,4 +246,4 @@ protected virtual void RaiseOnOfferPendingEvent(GivePc sender) #endregion } -} \ No newline at end of file +} From bd5ce16a08896708672cb4b78d5306dd6838441b Mon Sep 17 00:00:00 2001 From: Gene Date: Wed, 18 Jun 2025 17:14:33 -0700 Subject: [PATCH 2/3] Fix yes selection for dungeon wagon access prompt --- Assets/Scripts/Game/PlayerActivate.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Assets/Scripts/Game/PlayerActivate.cs b/Assets/Scripts/Game/PlayerActivate.cs index 4a1a643d0a..c03e0820d6 100644 --- a/Assets/Scripts/Game/PlayerActivate.cs +++ b/Assets/Scripts/Game/PlayerActivate.cs @@ -1131,6 +1131,7 @@ private void BuildingGreetingPopup_OnClose() // Access wagon or dungeon exit private void DungeonWagonAccess_OnButtonClick(DaggerfallMessageBox sender, DaggerfallMessageBox.MessageBoxButtons messageBoxButton) { + sender.CloseWindow(); if (messageBoxButton == DaggerfallMessageBox.MessageBoxButtons.No) { playerEnterExit.TransitionDungeonExterior(true); @@ -1141,7 +1142,6 @@ private void DungeonWagonAccess_OnButtonClick(DaggerfallMessageBox sender, Dagge DaggerfallUI.Instance.InventoryWindow.AllowDungeonWagonAccess(); uiManager.PushWindow(DaggerfallUI.Instance.InventoryWindow); } - sender.CloseWindow(); } // Look for building array on object, then on direct parent From 07a242cdbb3b401874483c0d8c65743a8a63d6c9 Mon Sep 17 00:00:00 2001 From: Gene Date: Thu, 19 Jun 2025 12:13:17 -0700 Subject: [PATCH 3/3] Revert change to knightly order and wagon prompt --- Assets/Scripts/Game/Guilds/KnightlyOrder.cs | 4 +--- Assets/Scripts/Game/PlayerActivate.cs | 5 ++--- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/Assets/Scripts/Game/Guilds/KnightlyOrder.cs b/Assets/Scripts/Game/Guilds/KnightlyOrder.cs index 3cd112fa16..756a1b8038 100644 --- a/Assets/Scripts/Game/Guilds/KnightlyOrder.cs +++ b/Assets/Scripts/Game/Guilds/KnightlyOrder.cs @@ -14,7 +14,6 @@ using DaggerfallWorkshop.Game.Serialization; using DaggerfallWorkshop.Utility; using DaggerfallWorkshop.Game.Items; -using DaggerfallWorkshop.Game.UserInterface; using DaggerfallWorkshop.Game.UserInterfaceWindows; using DaggerfallWorkshop.Game.Banking; using UnityEngine; @@ -217,8 +216,7 @@ public void ReceiveArmor(PlayerEntity playerEntity) private void ReceiveArmorPopup_OnClose() { - UserInterfaceManager uiManager = DaggerfallUI.Instance.UserInterfaceManager; - uiManager.PushWindow(DaggerfallUI.Instance.InventoryWindow); + DaggerfallUI.PostMessage(DaggerfallUIMessages.dfuiOpenInventoryWindow); } public void ReceiveHouse() diff --git a/Assets/Scripts/Game/PlayerActivate.cs b/Assets/Scripts/Game/PlayerActivate.cs index c03e0820d6..af5cfe02d4 100644 --- a/Assets/Scripts/Game/PlayerActivate.cs +++ b/Assets/Scripts/Game/PlayerActivate.cs @@ -1131,17 +1131,16 @@ private void BuildingGreetingPopup_OnClose() // Access wagon or dungeon exit private void DungeonWagonAccess_OnButtonClick(DaggerfallMessageBox sender, DaggerfallMessageBox.MessageBoxButtons messageBoxButton) { - sender.CloseWindow(); if (messageBoxButton == DaggerfallMessageBox.MessageBoxButtons.No) { playerEnterExit.TransitionDungeonExterior(true); } else { - UserInterfaceManager uiManager = DaggerfallUI.Instance.UserInterfaceManager; DaggerfallUI.Instance.InventoryWindow.AllowDungeonWagonAccess(); - uiManager.PushWindow(DaggerfallUI.Instance.InventoryWindow); + DaggerfallUI.PostMessage(DaggerfallUIMessages.dfuiOpenInventoryWindow); } + sender.CloseWindow(); } // Look for building array on object, then on direct parent