Fixed undo/redo issues on holds
This commit is contained in:
+40
-13
@@ -284,16 +284,23 @@ namespace BAKKA_Editor
|
|||||||
|
|
||||||
if (result == DialogResult.OK)
|
if (result == DialogResult.OK)
|
||||||
{
|
{
|
||||||
chart.WriteFile(saveFileDialog.FileName);
|
if (CurrentlyInsertingHold())
|
||||||
isNewFile = false;
|
|
||||||
if (isRecoveredFile)
|
|
||||||
{
|
{
|
||||||
DeleteAutosaves();
|
MessageBox.Show("Cannot save while inserting holds\n Please finish the hold before saving", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||||
autosaveFile = "";
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
chart.WriteFile(saveFileDialog.FileName);
|
||||||
|
isNewFile = false;
|
||||||
|
if (isRecoveredFile)
|
||||||
|
{
|
||||||
|
DeleteAutosaves();
|
||||||
|
autosaveFile = "";
|
||||||
|
}
|
||||||
|
isRecoveredFile = false;
|
||||||
|
File.WriteAllText(tempStatusPath, "false");
|
||||||
|
SetText();
|
||||||
}
|
}
|
||||||
isRecoveredFile = false;
|
|
||||||
File.WriteAllText(tempStatusPath, "false");
|
|
||||||
SetText();
|
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@@ -382,6 +389,7 @@ namespace BAKKA_Editor
|
|||||||
updateLabel("Hold Middle");
|
updateLabel("Hold Middle");
|
||||||
break;
|
break;
|
||||||
case NoteType.HoldEnd:
|
case NoteType.HoldEnd:
|
||||||
|
endHoldCheck.Checked = true;
|
||||||
updateLabel("Hold End");
|
updateLabel("Hold End");
|
||||||
break;
|
break;
|
||||||
case NoteType.MaskAdd:
|
case NoteType.MaskAdd:
|
||||||
@@ -1880,6 +1888,11 @@ namespace BAKKA_Editor
|
|||||||
if (isRemoveHold)
|
if (isRemoveHold)
|
||||||
{
|
{
|
||||||
if (note.NextNote == null)
|
if (note.NextNote == null)
|
||||||
|
{
|
||||||
|
SetNonHoldButtonState(false);
|
||||||
|
SetSelectedObject(NoteType.HoldJoint);
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
SetNonHoldButtonState(true);
|
SetNonHoldButtonState(true);
|
||||||
SetSelectedObject(note.NoteType);
|
SetSelectedObject(note.NoteType);
|
||||||
@@ -1890,6 +1903,7 @@ namespace BAKKA_Editor
|
|||||||
{
|
{
|
||||||
if (isInsertHold)
|
if (isInsertHold)
|
||||||
{
|
{
|
||||||
|
SetSelectedObject(note.NoteType);
|
||||||
lastNote = note.PrevNote;
|
lastNote = note.PrevNote;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1898,14 +1912,14 @@ namespace BAKKA_Editor
|
|||||||
if (isInsertHold)
|
if (isInsertHold)
|
||||||
{
|
{
|
||||||
SetNonHoldButtonState(false);
|
SetNonHoldButtonState(false);
|
||||||
SetSelectedObject(note.NoteType);
|
SetSelectedObject(NoteType.HoldJoint);
|
||||||
lastNote = note.PrevNote;
|
lastNote = note.PrevNote;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
updateTime();
|
updateTime();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else //dir == OperationDirection.Redo
|
||||||
{
|
{
|
||||||
bool isInsertHold = op.GetType() == typeof(InsertHoldNote);
|
bool isInsertHold = op.GetType() == typeof(InsertHoldNote);
|
||||||
bool isRemoveHold = op.GetType() == typeof(RemoveHoldNote);
|
bool isRemoveHold = op.GetType() == typeof(RemoveHoldNote);
|
||||||
@@ -1916,7 +1930,7 @@ namespace BAKKA_Editor
|
|||||||
{
|
{
|
||||||
if (isInsertHold)
|
if (isInsertHold)
|
||||||
{
|
{
|
||||||
SetNonHoldButtonState(true);
|
SetNonHoldButtonState(false);
|
||||||
SetSelectedObject(NoteType.HoldJoint);
|
SetSelectedObject(NoteType.HoldJoint);
|
||||||
}
|
}
|
||||||
if (isRemoveHold)
|
if (isRemoveHold)
|
||||||
@@ -1937,6 +1951,7 @@ namespace BAKKA_Editor
|
|||||||
if (isInsertHold)
|
if (isInsertHold)
|
||||||
{
|
{
|
||||||
SetNonHoldButtonState(true);
|
SetNonHoldButtonState(true);
|
||||||
|
endHoldCheck.Checked = false;
|
||||||
SetSelectedObject(flairRadio.Checked ? NoteType.HoldStartBonusFlair : NoteType.HoldStartNoBonus);
|
SetSelectedObject(flairRadio.Checked ? NoteType.HoldStartBonusFlair : NoteType.HoldStartNoBonus);
|
||||||
lastNote = note;
|
lastNote = note;
|
||||||
}
|
}
|
||||||
@@ -1987,8 +2002,11 @@ namespace BAKKA_Editor
|
|||||||
|
|
||||||
if ((chart.Notes.Count > 0 || chart.Gimmicks.Count > 0) && !chart.IsSaved)
|
if ((chart.Notes.Count > 0 || chart.Gimmicks.Count > 0) && !chart.IsSaved)
|
||||||
{
|
{
|
||||||
chart.WriteFile(tempFilePath, false);
|
if (!CurrentlyInsertingHold())
|
||||||
File.WriteAllLines(tempStatusPath, new string[] { "true", DateTime.Now.ToString("yyyy-MM-dd HH:mm") });
|
{
|
||||||
|
chart.WriteFile(tempFilePath, false);
|
||||||
|
File.WriteAllLines(tempStatusPath, new string[] { "true", DateTime.Now.ToString("yyyy-MM-dd HH:mm") });
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -1996,6 +2014,15 @@ namespace BAKKA_Editor
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool CurrentlyInsertingHold()
|
||||||
|
{
|
||||||
|
if(currentNoteType == NoteType.HoldJoint || currentNoteType == NoteType.HoldEnd)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
private void DeleteAutosaves(string keep = "")
|
private void DeleteAutosaves(string keep = "")
|
||||||
{
|
{
|
||||||
var oldAutosave = Directory.GetFiles(Path.GetTempPath(), "*.mer");
|
var oldAutosave = Directory.GetFiles(Path.GetTempPath(), "*.mer");
|
||||||
|
|||||||
Reference in New Issue
Block a user