Properly save replay even when the game crashes (fixes #5610)

This commit is contained in:
Pavlos Touboulidis
2014-06-24 22:40:20 +03:00
parent 66325f4941
commit e19dae8eec

View File

@@ -483,25 +483,30 @@ namespace OpenRA
SetIdealFrameTime(Settings.Graphics.MaxFramerate);
while (state == RunStatus.Running)
try
{
if (Settings.Graphics.CapFramerate)
while (state == RunStatus.Running)
{
var sw = Stopwatch.StartNew();
if (Settings.Graphics.CapFramerate)
{
var sw = Stopwatch.StartNew();
Tick(orderManager);
Tick(orderManager);
var waitTime = Math.Min(idealFrameTime - sw.Elapsed.TotalSeconds, 1);
if (waitTime > 0)
System.Threading.Thread.Sleep(TimeSpan.FromSeconds(waitTime));
var waitTime = Math.Min(idealFrameTime - sw.Elapsed.TotalSeconds, 1);
if (waitTime > 0)
System.Threading.Thread.Sleep(TimeSpan.FromSeconds(waitTime));
}
else
Tick(orderManager);
}
else
Tick(orderManager);
}
// Ensure that the active replay is properly saved
if (orderManager != null)
orderManager.Dispose();
finally
{
// Ensure that the active replay is properly saved
if (orderManager != null)
orderManager.Dispose();
}
Renderer.Device.Dispose();