Force you to finish hold once started logic and prevents next segment from being before previous segment in time. Currently breaks when undo/redo while in the middle of making a hold
This commit is contained in:
@@ -363,7 +363,10 @@ namespace BAKKA_Editor
|
||||
break;
|
||||
case NoteType.HoldJoint:
|
||||
if (endHoldCheck.Checked)
|
||||
{
|
||||
updateLabel("Hold End");
|
||||
currentNoteType = NoteType.HoldEnd;
|
||||
}
|
||||
else
|
||||
updateLabel("Hold Middle");
|
||||
break;
|
||||
@@ -801,7 +804,7 @@ namespace BAKKA_Editor
|
||||
|
||||
private void beat2Numeric_ValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
updateTime();
|
||||
}
|
||||
|
||||
private void updateTime()
|
||||
@@ -811,6 +814,14 @@ namespace BAKKA_Editor
|
||||
circleView.CurrentMeasure = (float)measureNumeric.Value + ((float)beat1Numeric.Value / (float)beat2Numeric.Value);
|
||||
circlePanel.Invalidate();
|
||||
}
|
||||
|
||||
if(currentNoteType == NoteType.HoldJoint || currentNoteType == NoteType.HoldEnd)
|
||||
{
|
||||
if (lastNote.BeatInfo.MeasureDecimal >= circleView.CurrentMeasure)
|
||||
insertButton.Enabled = false;
|
||||
else
|
||||
insertButton.Enabled = true;
|
||||
}
|
||||
}
|
||||
|
||||
private void positionTrackBar_ValueChanged(object sender, EventArgs e)
|
||||
@@ -907,6 +918,11 @@ namespace BAKKA_Editor
|
||||
}
|
||||
|
||||
private void holdButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
holdButtonClicked();
|
||||
}
|
||||
|
||||
private void holdButtonClicked()
|
||||
{
|
||||
if (noBonusRadio.Checked)
|
||||
SetSelectedObject(NoteType.HoldStartNoBonus);
|
||||
@@ -929,7 +945,14 @@ namespace BAKKA_Editor
|
||||
|
||||
private void endHoldCheck_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
if(endHoldCheck.Checked && currentNoteType == NoteType.HoldJoint)
|
||||
{
|
||||
SetSelectedObject(NoteType.HoldEnd);
|
||||
}
|
||||
if (!endHoldCheck.Checked && currentNoteType == NoteType.HoldEnd)
|
||||
{
|
||||
SetSelectedObject(NoteType.HoldJoint);
|
||||
}
|
||||
}
|
||||
|
||||
private void BonusRadioCheck(object sender, EventArgs e)
|
||||
@@ -1116,11 +1139,13 @@ namespace BAKKA_Editor
|
||||
{
|
||||
playButton.Text = "Play (P)";
|
||||
updateTimer.Enabled = false;
|
||||
insertButton.Enabled = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
playButton.Text = "Pause (P)";
|
||||
updateTimer.Enabled = true;
|
||||
insertButton.Enabled = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1275,6 +1300,9 @@ namespace BAKKA_Editor
|
||||
|
||||
private void InsertObject()
|
||||
{
|
||||
if (!insertButton.Enabled)
|
||||
return;
|
||||
|
||||
var currentBeat = new BeatInfo((int)measureNumeric.Value, (int)beat1Numeric.Value * 1920 / (int)beat2Numeric.Value);
|
||||
|
||||
if (currentGimmickType == GimmickType.NoGimmick)
|
||||
@@ -1293,13 +1321,18 @@ namespace BAKKA_Editor
|
||||
case NoteType.HoldStartBonusFlair:
|
||||
SetSelectedObject(NoteType.HoldJoint);
|
||||
lastNote = tempNote;
|
||||
disableNonHoldButtons();
|
||||
break;
|
||||
case NoteType.HoldJoint:
|
||||
case NoteType.HoldEnd:
|
||||
tempNote.PrevNote = lastNote;
|
||||
tempNote.PrevNote.NextNote = tempNote;
|
||||
if (endHoldCheck.Checked)
|
||||
{
|
||||
tempNote.NoteType = NoteType.HoldEnd;
|
||||
enableNonHoldButtons();
|
||||
holdButtonClicked();
|
||||
}
|
||||
else
|
||||
lastNote = tempNote;
|
||||
break;
|
||||
@@ -1321,6 +1354,42 @@ namespace BAKKA_Editor
|
||||
}
|
||||
}
|
||||
|
||||
private void disableNonHoldButtons()
|
||||
{
|
||||
tapButton.Enabled = false;
|
||||
orangeButton.Enabled = false;
|
||||
greenButton.Enabled = false;
|
||||
redButton.Enabled = false;
|
||||
blueButton.Enabled = false;
|
||||
chainButton.Enabled = false;
|
||||
endChartButton.Enabled = false;
|
||||
|
||||
maskButton.Enabled = false;
|
||||
bpmChangeButton.Enabled = false;
|
||||
timeSigButton.Enabled = false;
|
||||
hiSpeedButton.Enabled = false;
|
||||
stopButton.Enabled = false;
|
||||
reverseButton.Enabled = false;
|
||||
}
|
||||
|
||||
private void enableNonHoldButtons()
|
||||
{
|
||||
tapButton.Enabled = true;
|
||||
orangeButton.Enabled = true;
|
||||
greenButton.Enabled = true;
|
||||
redButton.Enabled = true;
|
||||
blueButton.Enabled = true;
|
||||
chainButton.Enabled = true;
|
||||
endChartButton.Enabled = true;
|
||||
|
||||
maskButton.Enabled = true;
|
||||
bpmChangeButton.Enabled = true;
|
||||
timeSigButton.Enabled = true;
|
||||
hiSpeedButton.Enabled = true;
|
||||
stopButton.Enabled = true;
|
||||
reverseButton.Enabled = true;
|
||||
}
|
||||
|
||||
private void maskButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (addMaskRadio.Checked)
|
||||
|
||||
Reference in New Issue
Block a user