fixed dumb shit that nobody cares (#772)
This commit is contained in:
@@ -1,10 +1,8 @@
|
||||
using System.IO.Compression;
|
||||
using Content.Client.Administration.Managers;
|
||||
using Content.Client.Launcher;
|
||||
using Content.Client.MainMenu;
|
||||
using Content.Client.Replay.Spectator;
|
||||
using Content.Client.Replay.UI.Loading;
|
||||
using Content.Client.Stylesheets;
|
||||
using Content.Client.UserInterface.Systems.Chat;
|
||||
using Content.Shared.Chat;
|
||||
using Content.Shared.Effects;
|
||||
@@ -26,8 +24,6 @@ using Robust.Client.Replays.Playback;
|
||||
using Robust.Client.State;
|
||||
using Robust.Client.Timing;
|
||||
using Robust.Client.UserInterface;
|
||||
using Robust.Client.UserInterface.Controls;
|
||||
using Robust.Client.UserInterface.CustomControls;
|
||||
using Robust.Shared;
|
||||
using Robust.Shared.Configuration;
|
||||
using Robust.Shared.ContentPack;
|
||||
@@ -60,7 +56,7 @@ public sealed class ContentReplayPlaybackManager
|
||||
public bool IsScreenshotMode = false;
|
||||
|
||||
private bool _initialized;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Most recently loaded file, for re-attempting the load with error tolerance.
|
||||
/// Required because the zip reader auto-disposes and I'm too lazy to change it so that
|
||||
@@ -96,32 +92,18 @@ public sealed class ContentReplayPlaybackManager
|
||||
return;
|
||||
}
|
||||
|
||||
ReturnToDefaultState();
|
||||
if (_client.RunLevel == ClientRunLevel.SinglePlayerGame)
|
||||
_client.StopSinglePlayer();
|
||||
|
||||
// Show a popup window with the error message
|
||||
var text = Loc.GetString("replay-loading-failed", ("reason", exception));
|
||||
var box = new BoxContainer
|
||||
{
|
||||
Orientation = BoxContainer.LayoutOrientation.Vertical,
|
||||
Children = {new Label {Text = text}}
|
||||
};
|
||||
|
||||
var popup = new DefaultWindow { Title = "Error!" };
|
||||
popup.Contents.AddChild(box);
|
||||
Action? retryAction = null;
|
||||
Action? cancelAction = null;
|
||||
|
||||
// Add button for attempting to re-load the replay while ignoring some errors.
|
||||
if (!_cfg.GetCVar(CVars.ReplayIgnoreErrors) && LastLoad is {} last)
|
||||
if (!_cfg.GetCVar(CVars.ReplayIgnoreErrors) && LastLoad is { } last)
|
||||
{
|
||||
var button = new Button
|
||||
{
|
||||
Text = Loc.GetString("replay-loading-retry"),
|
||||
StyleClasses = { StyleBase.ButtonCaution }
|
||||
};
|
||||
|
||||
button.OnPressed += _ =>
|
||||
retryAction = () =>
|
||||
{
|
||||
_cfg.SetCVar(CVars.ReplayIgnoreErrors, true);
|
||||
popup.Dispose();
|
||||
|
||||
IReplayFileReader reader = last.Zip == null
|
||||
? new ReplayFileReaderResources(_resMan, last.Folder)
|
||||
@@ -129,11 +111,19 @@ public sealed class ContentReplayPlaybackManager
|
||||
|
||||
_loadMan.LoadAndStartReplay(reader);
|
||||
};
|
||||
|
||||
box.AddChild(button);
|
||||
}
|
||||
|
||||
popup.OpenCentered();
|
||||
// If we have an explicit menu to get back to (e.g. replay browser UI), show a cancel button.
|
||||
if (DefaultState != null)
|
||||
{
|
||||
cancelAction = () =>
|
||||
{
|
||||
_stateMan.RequestStateChange(DefaultState);
|
||||
};
|
||||
}
|
||||
// Switch to a new game state to present the error and cancel/retry options.
|
||||
var state = _stateMan.RequestStateChange<ReplayLoadingFailed>();
|
||||
state.SetData(exception, cancelAction, retryAction);
|
||||
}
|
||||
|
||||
public void ReturnToDefaultState()
|
||||
|
||||
Reference in New Issue
Block a user