lua - implement tastudio.submitclearframes(), fixes #2170
This commit is contained in:
parent
4639c1f2ca
commit
9820fb0879
|
@ -41,7 +41,8 @@ namespace BizHawk.Client.EmuHawk
|
|||
{
|
||||
InputChange,
|
||||
InsertFrames,
|
||||
DeleteFrames
|
||||
DeleteFrames,
|
||||
ClearFrames
|
||||
}
|
||||
|
||||
private enum InputChangeTypes
|
||||
|
@ -267,6 +268,21 @@ namespace BizHawk.Client.EmuHawk
|
|||
}
|
||||
}
|
||||
|
||||
[LuaMethodExample("")]
|
||||
[LuaMethod("submitclearframes", "")]
|
||||
public void SubmitClearFrames(int frame, int number)
|
||||
{
|
||||
if (Engaged() && 0.RangeToExclusive(Tastudio.CurrentTasMovie.InputLogLength).Contains(frame) && number > 0)
|
||||
{
|
||||
_changeList.Add(new PendingChanges
|
||||
{
|
||||
Type = LuaChangeTypes.ClearFrames,
|
||||
Frame = frame,
|
||||
Number = number
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
[LuaMethodExample("")]
|
||||
[LuaMethod("applyinputchanges", "")]
|
||||
public void ApplyInputChanges()
|
||||
|
@ -298,6 +314,9 @@ namespace BizHawk.Client.EmuHawk
|
|||
case LuaChangeTypes.DeleteFrames:
|
||||
Tastudio.DeleteFrames(_changeList[i].Frame, _changeList[i].Number);
|
||||
break;
|
||||
case LuaChangeTypes.ClearFrames:
|
||||
Tastudio.ClearFrames(_changeList[i].Frame, _changeList[i].Number);
|
||||
break;
|
||||
}
|
||||
}
|
||||
_changeList.Clear();
|
||||
|
@ -305,8 +324,6 @@ namespace BizHawk.Client.EmuHawk
|
|||
Tastudio.JumpToGreenzone();
|
||||
Tastudio.DoAutoRestore();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1106,6 +1106,29 @@ namespace BizHawk.Client.EmuHawk
|
|||
}
|
||||
}
|
||||
|
||||
public void ClearFrames(int beginningFrame, int numberOfFrames)
|
||||
{
|
||||
if (beginningFrame < CurrentTasMovie.InputLogLength)
|
||||
{
|
||||
bool needsToRollback = TasView.FirstSelectedIndex < Emulator.Frame;
|
||||
int last = Math.Min(beginningFrame + numberOfFrames, CurrentTasMovie.InputLogLength);
|
||||
for (int i = beginningFrame; i < last; i++)
|
||||
{
|
||||
CurrentTasMovie.ClearFrame(i);
|
||||
}
|
||||
|
||||
if (needsToRollback)
|
||||
{
|
||||
GoToLastEmulatedFrameIfNecessary(beginningFrame);
|
||||
DoAutoRestore();
|
||||
}
|
||||
else
|
||||
{
|
||||
RefreshDialog();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void Tastudio_Closing(object sender, FormClosingEventArgs e)
|
||||
{
|
||||
if (!_initialized)
|
||||
|
|
Loading…
Reference in New Issue