Fix client-side replay error (#27332)

(cherry picked from commit 0ae942101a9f79ff49c3ffb3bfe257daa76719ff)
This commit is contained in:
Leon Friedrich 2024-04-26 19:30:03 +12:00 committed by null
parent 9cc6c59f56
commit 56e17441ce
No known key found for this signature in database
GPG Key ID: 212F05528FD678BE
3 changed files with 10 additions and 3 deletions

View File

@ -198,6 +198,13 @@ public sealed partial class ReplaySpectatorSystem
if (args.Transform.MapUid != null || args.OldMapId == MapId.Nullspace)
return;
if (_spectatorData != null)
{
// Currently scrubbing/setting the replay tick
// the observer will get respawned once the state was applied
return;
}
// The entity being spectated from was moved to null-space.
// This was probably because they were spectating some entity in a client-side replay that left PVS range.
// Simple respawn the ghost.

View File

@ -117,8 +117,7 @@ namespace Content.Client.UserInterface.Systems.Alerts.Controls
protected override void Dispose(bool disposing)
{
base.Dispose(disposing);
_entityManager.DeleteEntity(_spriteViewEntity);
_entityManager.QueueDeleteEntity(_spriteViewEntity);
}
}

View File

@ -97,7 +97,8 @@ public sealed partial class AlertsUI : UIWidget
}
else
{
if (existingAlertControl != null) AlertContainer.Children.Remove(existingAlertControl);
if (existingAlertControl != null)
AlertContainer.Children.Remove(existingAlertControl);
// this is a new alert + alert key or just a different alert with the same
// key, create the control and add it in the appropriate order