From 0f9c4df6a1b9fe5a5d7f6034daad2920bb608a3d Mon Sep 17 00:00:00 2001 From: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> Date: Sat, 1 Jul 2023 16:39:03 +1000 Subject: [PATCH] Fix funny listener return (#17760) --- .../Speech/EntitySystems/ListeningSystem.cs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/Content.Server/Speech/EntitySystems/ListeningSystem.cs b/Content.Server/Speech/EntitySystems/ListeningSystem.cs index 1caab06e3e..f33f0aedf8 100644 --- a/Content.Server/Speech/EntitySystems/ListeningSystem.cs +++ b/Content.Server/Speech/EntitySystems/ListeningSystem.cs @@ -33,11 +33,12 @@ public sealed class ListeningSystem : EntitySystem var attemptEv = new ListenAttemptEvent(source); var ev = new ListenEvent(message, source); var obfuscatedEv = obfuscatedMessage == null ? null : new ListenEvent(obfuscatedMessage, source); + var query = EntityQueryEnumerator(); - foreach (var (listener, xform) in EntityQuery()) + while(query.MoveNext(out var listenerUid, out var listener, out var xform)) { if (xform.MapID != sourceXform.MapID) - return; + continue; // range checks // TODO proper speech occlusion @@ -45,7 +46,7 @@ public sealed class ListeningSystem : EntitySystem if (distance > listener.Range * listener.Range) continue; - RaiseLocalEvent(listener.Owner, attemptEv); + RaiseLocalEvent(listenerUid, attemptEv); if (attemptEv.Cancelled) { attemptEv.Uncancel(); @@ -53,9 +54,9 @@ public sealed class ListeningSystem : EntitySystem } if (obfuscatedEv != null && distance > ChatSystem.WhisperRange) - RaiseLocalEvent(listener.Owner, obfuscatedEv); + RaiseLocalEvent(listenerUid, obfuscatedEv); else - RaiseLocalEvent(listener.Owner, ev); + RaiseLocalEvent(listenerUid, ev); } } }