Limit upper number of editor beatmap states saved to 50

This commit is contained in:
Dean Herbert
2020-04-13 20:34:18 +09:00
parent 64422fbf6d
commit 2388799acf
2 changed files with 78 additions and 0 deletions

View File

@ -25,6 +25,8 @@ namespace osu.Game.Screens.Edit
private int bulkChangesStarted;
private bool isRestoring;
public const int MAX_SAVED_STATES = 50;
/// <summary>
/// Creates a new <see cref="EditorChangeHandler"/>.
/// </summary>
@ -43,6 +45,8 @@ namespace osu.Game.Screens.Edit
SaveState();
}
public bool HasUndoState => currentState > 0;
private void hitObjectAdded(HitObject obj) => SaveState();
private void hitObjectRemoved(HitObject obj) => SaveState();
@ -74,6 +78,9 @@ namespace osu.Game.Screens.Edit
if (currentState < savedStates.Count - 1)
savedStates.RemoveRange(currentState + 1, savedStates.Count - currentState - 1);
if (savedStates.Count > MAX_SAVED_STATES)
savedStates.RemoveAt(0);
using (var stream = new MemoryStream())
{
using (var sw = new StreamWriter(stream, Encoding.UTF8, 1024, true))