From f0c735e8466fbb52bb805dd839f5e4fd37d59af8 Mon Sep 17 00:00:00 2001 From: peterbell10 Date: Sun, 28 Jan 2018 17:24:59 +0000 Subject: A player's inventory is always opened by its owner. (#4176) Fixes #4093 Window updates are only broadcast to players in the m_OpenedBy list. Normally players are added after sending a window open packet but no packet is sent for a player's inventory. This meant broadcasts were never sent for the inventory window. --- src/UI/Window.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/UI/Window.cpp b/src/UI/Window.cpp index 629db12c2..92e69e8b7 100644 --- a/src/UI/Window.cpp +++ b/src/UI/Window.cpp @@ -328,11 +328,13 @@ bool cWindow::ClosedByPlayer(cPlayer & a_Player, bool a_CanRefuse) (*itr)->OnPlayerRemoved(a_Player); } // for itr - m_SlotAreas[] - m_OpenedBy.remove(&a_Player); - - if ((m_WindowType != wtInventory) && m_OpenedBy.empty()) + if (m_WindowType != wtInventory) { - Destroy(); + m_OpenedBy.remove(&a_Player); + if (m_OpenedBy.empty()) + { + Destroy(); + } } } if (m_IsDestroyed) -- cgit v1.2.3