From 599814d5a02719c71508251032ec9cd1787c0044 Mon Sep 17 00:00:00 2001 From: Vera Aguilera Puerto Date: Mon, 28 Jun 2021 13:21:41 +0200 Subject: [PATCH] Chat manager won't enqueue speech bubbles in a different map than you eye. Fixes #4215 --- Content.Client/Chat/Managers/ChatManager.cs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Content.Client/Chat/Managers/ChatManager.cs b/Content.Client/Chat/Managers/ChatManager.cs index 5f77e97c15..4af4b111e4 100644 --- a/Content.Client/Chat/Managers/ChatManager.cs +++ b/Content.Client/Chat/Managers/ChatManager.cs @@ -585,6 +585,10 @@ namespace Content.Client.Chat.Managers private void EnqueueSpeechBubble(IEntity entity, string contents, SpeechBubble.SpeechType speechType) { + // Don't enqueue speech bubbles for other maps. TODO: Support multiple viewports/maps? + if (entity.Transform.MapID != _eyeManager.CurrentMap) + return; + if (!_queuedSpeechBubbles.TryGetValue(entity.Uid, out var queueData)) { queueData = new SpeechBubbleQueueData(); @@ -600,8 +604,7 @@ namespace Content.Client.Chat.Managers private void CreateSpeechBubble(IEntity entity, SpeechBubbleData speechData) { - var bubble = - SpeechBubble.CreateSpeechBubble(speechData.Type, speechData.Message, entity, _eyeManager, this); + var bubble = SpeechBubble.CreateSpeechBubble(speechData.Type, speechData.Message, entity, _eyeManager, this); if (_activeSpeechBubbles.TryGetValue(entity.Uid, out var existing)) {