Fix funny listener return (#17760)

This commit is contained in:
metalgearsloth
2023-07-01 16:39:03 +10:00
committed by GitHub
parent 418cf0b709
commit 0f9c4df6a1

View File

@@ -33,11 +33,12 @@ public sealed class ListeningSystem : EntitySystem
var attemptEv = new ListenAttemptEvent(source); var attemptEv = new ListenAttemptEvent(source);
var ev = new ListenEvent(message, source); var ev = new ListenEvent(message, source);
var obfuscatedEv = obfuscatedMessage == null ? null : new ListenEvent(obfuscatedMessage, source); var obfuscatedEv = obfuscatedMessage == null ? null : new ListenEvent(obfuscatedMessage, source);
var query = EntityQueryEnumerator<ActiveListenerComponent, TransformComponent>();
foreach (var (listener, xform) in EntityQuery<ActiveListenerComponent, TransformComponent>()) while(query.MoveNext(out var listenerUid, out var listener, out var xform))
{ {
if (xform.MapID != sourceXform.MapID) if (xform.MapID != sourceXform.MapID)
return; continue;
// range checks // range checks
// TODO proper speech occlusion // TODO proper speech occlusion
@@ -45,7 +46,7 @@ public sealed class ListeningSystem : EntitySystem
if (distance > listener.Range * listener.Range) if (distance > listener.Range * listener.Range)
continue; continue;
RaiseLocalEvent(listener.Owner, attemptEv); RaiseLocalEvent(listenerUid, attemptEv);
if (attemptEv.Cancelled) if (attemptEv.Cancelled)
{ {
attemptEv.Uncancel(); attemptEv.Uncancel();
@@ -53,9 +54,9 @@ public sealed class ListeningSystem : EntitySystem
} }
if (obfuscatedEv != null && distance > ChatSystem.WhisperRange) if (obfuscatedEv != null && distance > ChatSystem.WhisperRange)
RaiseLocalEvent(listener.Owner, obfuscatedEv); RaiseLocalEvent(listenerUid, obfuscatedEv);
else else
RaiseLocalEvent(listener.Owner, ev); RaiseLocalEvent(listenerUid, ev);
} }
} }
} }