Fix client-side replay error (#27332)

This commit is contained in:
Leon Friedrich
2024-04-26 19:30:03 +12:00
committed by GitHub
parent 735eeefa03
commit 0ae942101a
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) if (args.Transform.MapUid != null || args.OldMapId == MapId.Nullspace)
return; 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. // 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. // This was probably because they were spectating some entity in a client-side replay that left PVS range.
// Simple respawn the ghost. // Simple respawn the ghost.

View File

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

View File

@@ -97,7 +97,8 @@ public sealed partial class AlertsUI : UIWidget
} }
else 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 // 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 // key, create the control and add it in the appropriate order