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 ev = new ListenEvent(message, 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)
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);
}
}
}