Tastudio - implement truncate movie

This commit is contained in:
adelikat 2014-07-12 01:23:38 +00:00
parent e49754b705
commit 43415044e7
3 changed files with 26 additions and 30 deletions

View File

@ -29,8 +29,17 @@ namespace BizHawk.Client.Common
{
base.Truncate(frame);
LagLog.RemoveRange(frame + 2, LagLog.Count - frame - 1);
if (frame < LagLog.Count)
{
LagLog.RemoveRange(frame + 2, LagLog.Count - frame - 1);
}
StateManager.Invalidate(frame + 1);
if (frame < _log.Count - 1)
{
Changes = true;
}
// TODO: Markers? What does taseditor do?
}

View File

@ -407,10 +407,10 @@ namespace BizHawk.Client.EmuHawk
//
// TruncateMenuItem
//
this.TruncateMenuItem.Enabled = false;
this.TruncateMenuItem.Name = "TruncateMenuItem";
this.TruncateMenuItem.Size = new System.Drawing.Size(240, 22);
this.TruncateMenuItem.Text = "&Truncate Movie";
this.TruncateMenuItem.Click += new System.EventHandler(this.TruncateMenuItem_Click);
//
// ConfigSubMenu
//

View File

@ -1,5 +1,4 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
@ -55,7 +54,7 @@ namespace BizHawk.Client.EmuHawk
}
}
private IEnumerable SelectedIndices
private IEnumerable<int> SelectedIndices
{
get
{
@ -461,9 +460,7 @@ namespace BizHawk.Client.EmuHawk
private void CutMenuItem_Click(object sender, EventArgs e)
{
_tasClipboard.Clear();
var list = TasView.SelectedIndices
.OfType<int>()
.ToArray();
var list = SelectedIndices.ToArray();
var sb = new StringBuilder();
for (var i = 0; i < list.Length; i++)
{
@ -485,10 +482,7 @@ namespace BizHawk.Client.EmuHawk
private void ClearMenuItem_Click(object sender, EventArgs e)
{
var list = TasView.SelectedIndices
.OfType<int>();
foreach (var frame in list)
foreach (var frame in SelectedIndices)
{
_tas.ClearFrame(frame);
}
@ -499,12 +493,7 @@ namespace BizHawk.Client.EmuHawk
private void DeleteFramesMenuItem_Click(object sender, EventArgs e)
{
_tasClipboard.Clear();
var list = TasView.SelectedIndices
.OfType<int>()
.ToArray();
_tas.RemoveFrames(list);
_tas.RemoveFrames(SelectedIndices.ToArray());
SetSplicer();
TasView.DeselectAll();
RefreshDialog();
@ -512,14 +501,10 @@ namespace BizHawk.Client.EmuHawk
private void CloneMenuItem_Click(object sender, EventArgs e)
{
var framesToInsert = TasView.SelectedIndices
.OfType<int>()
.OrderBy(frame => frame)
.ToList();
var insertionFrame = framesToInsert.Last() + 1;
var framesToInsert = SelectedIndices.ToList();
var insertionFrame = LastSelectedIndex + 1;
var inputLog = new List<string>();
foreach (var frame in framesToInsert)
{
inputLog.Add(_tas.GetInput(frame));
@ -532,15 +517,17 @@ namespace BizHawk.Client.EmuHawk
private void InsertFrameMenuItem_Click(object sender, EventArgs e)
{
var insertionFrame = TasView.SelectedIndices
.OfType<int>()
.Last() + 1;
_tas.InsertEmptyFrame(insertionFrame);
_tas.InsertEmptyFrame(LastSelectedIndex + 1);
RefreshDialog();
}
private void TruncateMenuItem_Click(object sender, EventArgs e)
{
_tas.Truncate(LastSelectedIndex + 1);
RefreshDialog();
}
#endregion
#region Config