Inserting frames in TAStudio now inserts before FirstSelectedIndex like FCEUX and most other programs with insertion options.

This commit is contained in:
kylelyk 2014-08-23 02:06:56 +00:00
parent c905b6fed2
commit 6fa3cf4d28
2 changed files with 7 additions and 6 deletions

View File

@ -65,6 +65,7 @@ namespace BizHawk.Client.Common
/// <summary> /// <summary>
/// Removes lag log and greenzone after this frame /// Removes lag log and greenzone after this frame
/// </summary> /// </summary>
/// <param name="frame">The last frame that can be valid.</param>
private void InvalidateAfter(int frame) private void InvalidateAfter(int frame)
{ {
if (frame < LagLog.Count) if (frame < LagLog.Count)

View File

@ -286,8 +286,8 @@ namespace BizHawk.Client.EmuHawk
} }
} }
else // We are going foward else // We are going foward
{ {
var goToFrame = frame - 1; var goToFrame = frame == 0 ? 0 : frame - 1;
if (_currentTasMovie[goToFrame].HasState) // Can we go directly there? if (_currentTasMovie[goToFrame].HasState) // Can we go directly there?
{ {
_currentTasMovie.SwitchToPlay(); _currentTasMovie.SwitchToPlay();
@ -743,8 +743,8 @@ namespace BizHawk.Client.EmuHawk
private void InsertFrameMenuItem_Click(object sender, EventArgs e) private void InsertFrameMenuItem_Click(object sender, EventArgs e)
{ {
var insertionFrame = TasView.SelectedIndices().Any() ? LastSelectedIndex + 1 : 0; var insertionFrame = TasView.SelectedIndices().Any() ? FirstSelectedIndex : 0;
var needsToRollback = !(insertionFrame > Global.Emulator.Frame); bool needsToRollback = insertionFrame <= Global.Emulator.Frame;
_currentTasMovie.InsertEmptyFrame(insertionFrame); _currentTasMovie.InsertEmptyFrame(insertionFrame);
@ -760,8 +760,8 @@ namespace BizHawk.Client.EmuHawk
private void InsertNumFramesMenuItem_Click(object sender, EventArgs e) private void InsertNumFramesMenuItem_Click(object sender, EventArgs e)
{ {
var insertionFrame = TasView.SelectedIndices().Any() ? LastSelectedIndex + 1 : 0; var insertionFrame = TasView.SelectedIndices().Any() ? FirstSelectedIndex : 0;
var needsToRollback = !(insertionFrame > Global.Emulator.Frame); bool needsToRollback = insertionFrame <= Global.Emulator.Frame;
var framesPrompt = new FramesPrompt(); var framesPrompt = new FramesPrompt();
var result = framesPrompt.ShowDialog(); var result = framesPrompt.ShowDialog();