Tastudio - a bit of simplifying some code

This commit is contained in:
adelikat 2014-10-20 19:04:59 +00:00
parent 31c564ad06
commit d0aee55059
8 changed files with 149 additions and 153 deletions

View File

@ -109,7 +109,7 @@ namespace BizHawk.Client.Common
Changes = false;
}
public void FlagChanges() // TODO: it is pointless to have these two methods rather than a public setter
public void FlagChanges()
{
Changes = true;
}

View File

@ -44,7 +44,7 @@ namespace BizHawk.Client.EmuHawk
{
if (Engaged())
{
var marker = Tastudio.CurrentMovie.Markers.Get(frame);
var marker = Tastudio.CurrentTasMovie.Markers.Get(frame);
if (marker != null)
{
return marker.Message;
@ -62,10 +62,10 @@ namespace BizHawk.Client.EmuHawk
{
if (Engaged())
{
var marker = Tastudio.CurrentMovie.Markers.Get(frame);
var marker = Tastudio.CurrentTasMovie.Markers.Get(frame);
if (marker != null)
{
Tastudio.CurrentMovie.Markers.Remove(marker);
Tastudio.CurrentTasMovie.Markers.Remove(marker);
Tastudio.UpdateValues();
}
}
@ -79,14 +79,14 @@ namespace BizHawk.Client.EmuHawk
{
if (Engaged())
{
var marker = Tastudio.CurrentMovie.Markers.Get(frame);
var marker = Tastudio.CurrentTasMovie.Markers.Get(frame);
if (marker != null)
{
marker.Message = message;
}
else
{
Tastudio.CurrentMovie.Markers.Add(frame, message);
Tastudio.CurrentTasMovie.Markers.Add(frame, message);
Tastudio.UpdateValues();
}
}
@ -100,9 +100,9 @@ namespace BizHawk.Client.EmuHawk
{
if (Engaged())
{
if (frame < Tastudio.CurrentMovie.InputLogLength)
if (frame < Tastudio.CurrentTasMovie.InputLogLength)
{
return Tastudio.CurrentMovie[frame].Lagged;
return Tastudio.CurrentTasMovie[frame].Lagged;
}
}
@ -117,9 +117,9 @@ namespace BizHawk.Client.EmuHawk
{
if (Engaged())
{
if (frame < Tastudio.CurrentMovie.InputLogLength)
if (frame < Tastudio.CurrentTasMovie.InputLogLength)
{
return Tastudio.CurrentMovie[frame].HasState;
return Tastudio.CurrentTasMovie[frame].HasState;
}
}

View File

@ -46,16 +46,16 @@ namespace BizHawk.Client.EmuHawk
private void MarkerView_QueryItemBkColor(int index, InputRoll.RollColumn column, ref Color color)
{
var prev = Tastudio.CurrentMovie.Markers.PreviousOrCurrent(Global.Emulator.Frame);
var prev = Tastudio.CurrentTasMovie.Markers.PreviousOrCurrent(Global.Emulator.Frame);
if (prev != null && index == Tastudio.CurrentMovie.Markers.IndexOf(prev))
if (prev != null && index == Tastudio.CurrentTasMovie.Markers.IndexOf(prev))
{
color = TAStudio.Marker_FrameCol;
}
else if (index < Tastudio.CurrentMovie.InputLogLength)
else if (index < Tastudio.CurrentTasMovie.InputLogLength)
{
var marker = Tastudio.CurrentMovie.Markers[index];
var record = Tastudio.CurrentMovie[marker.Frame];
var marker = Tastudio.CurrentTasMovie.Markers[index];
var record = Tastudio.CurrentTasMovie[marker.Frame];
if (record.Lagged.HasValue)
{
@ -82,11 +82,11 @@ namespace BizHawk.Client.EmuHawk
if (column.Name == "FrameColumn")
{
text = Tastudio.CurrentMovie.Markers[index].Frame.ToString();
text = Tastudio.CurrentTasMovie.Markers[index].Frame.ToString();
}
else if (column.Name == "LabelColumn")
{
text = Tastudio.CurrentMovie.Markers[index].Message;
text = Tastudio.CurrentTasMovie.Markers[index].Message;
}
}
@ -100,10 +100,10 @@ namespace BizHawk.Client.EmuHawk
{
if (MarkerView != null &&
Tastudio != null &&
Tastudio.CurrentMovie != null &&
Tastudio.CurrentMovie.Markers != null)
Tastudio.CurrentTasMovie != null &&
Tastudio.CurrentTasMovie.Markers != null)
{
MarkerView.RowCount = Tastudio.CurrentMovie.Markers.Count;
MarkerView.RowCount = Tastudio.CurrentTasMovie.Markers.Count;
}
MarkerView.Refresh();
@ -111,12 +111,12 @@ namespace BizHawk.Client.EmuHawk
private void MarkerView_SelectedIndexChanged(object sender, EventArgs e)
{
RemoveBtn.Enabled = SelectedIndices.Any(i => i < Tastudio.CurrentMovie.Markers.Count);
RemoveBtn.Enabled = SelectedIndices.Any(i => i < Tastudio.CurrentTasMovie.Markers.Count);
}
private void RemoveBtn_Click(object sender, EventArgs e)
{
SelectedMarkers.ForEach(i => Tastudio.CurrentMovie.Markers.Remove(i));
SelectedMarkers.ForEach(i => Tastudio.CurrentTasMovie.Markers.Remove(i));
Tastudio.RefreshDialog();
MarkerView_SelectedIndexChanged(sender, e);
}
@ -135,7 +135,7 @@ namespace BizHawk.Client.EmuHawk
get
{
return SelectedIndices
.Select(index => Tastudio.CurrentMovie.Markers[index])
.Select(index => Tastudio.CurrentTasMovie.Markers[index])
.ToList();
}
}

View File

@ -12,7 +12,7 @@ namespace BizHawk.Client.EmuHawk
public void UpdateValues()
{
if (!IsHandleCreated || IsDisposed || _currentTasMovie == null)
if (!IsHandleCreated || IsDisposed || CurrentTasMovie == null)
{
return;
}
@ -32,12 +32,12 @@ namespace BizHawk.Client.EmuHawk
public void FastUpdate()
{
if (!IsHandleCreated || IsDisposed || _currentTasMovie == null)
if (!IsHandleCreated || IsDisposed || CurrentTasMovie == null)
{
return;
}
TasView.RowCount = _currentTasMovie.InputLogLength + 1;
TasView.RowCount = CurrentTasMovie.InputLogLength + 1;
if (TasPlaybackBox.FollowCursor)
{
@ -57,9 +57,9 @@ namespace BizHawk.Client.EmuHawk
return;
}
if (_currentTasMovie != null)
if (CurrentTasMovie != null)
{
if (Global.Game.Hash != _currentTasMovie.Hash)
if (Global.Game.Hash != CurrentTasMovie.Hash)
{
TastudioToStopMovie();
TasView.AllColumns.Clear();
@ -76,7 +76,7 @@ namespace BizHawk.Client.EmuHawk
public bool AskSaveChanges()
{
if (_currentTasMovie != null && _currentTasMovie.Changes)
if (CurrentTasMovie != null && CurrentTasMovie.Changes)
{
GlobalWin.Sound.StopSound();
var result = MessageBox.Show(
@ -93,7 +93,7 @@ namespace BizHawk.Client.EmuHawk
}
else if (result == DialogResult.No)
{
_currentTasMovie.ClearChanges();
CurrentTasMovie.ClearChanges();
return true;
}
else if (result == DialogResult.Cancel)
@ -109,8 +109,8 @@ namespace BizHawk.Client.EmuHawk
{
if (!indexThatMustBeVisible.HasValue)
{
indexThatMustBeVisible = _currentTasMovie.IsRecording
? _currentTasMovie.InputLogLength
indexThatMustBeVisible = CurrentTasMovie.IsRecording
? CurrentTasMovie.InputLogLength
: Global.Emulator.Frame + 1;
}

View File

@ -68,7 +68,7 @@ namespace BizHawk.Client.EmuHawk
private void TasView_QueryItemBkColor(int index, InputRoll.RollColumn column, ref Color color)
{
var columnName = column.Name;
var record = _currentTasMovie[index];
var record = CurrentTasMovie[index];
if (columnName == MarkerColumnName)
{
@ -86,7 +86,7 @@ namespace BizHawk.Client.EmuHawk
{
color = CurrentFrame_FrameCol;
}
else if (_currentTasMovie.Markers.IsMarker(index))
else if (CurrentTasMovie.Markers.IsMarker(index))
{
color = Marker_FrameCol;
}
@ -136,17 +136,17 @@ namespace BizHawk.Client.EmuHawk
}
else if (columnName == FrameColumnName)
{
text = (index).ToString().PadLeft(_currentTasMovie.InputLogLength.ToString().Length, '0');
text = (index).ToString().PadLeft(CurrentTasMovie.InputLogLength.ToString().Length, '0');
}
else
{
if (index < _currentTasMovie.InputLogLength)
if (index < CurrentTasMovie.InputLogLength)
{
text = _currentTasMovie.DisplayValue(index, columnName);
text = CurrentTasMovie.DisplayValue(index, columnName);
}
else if (Global.Emulator.Frame == _currentTasMovie.InputLogLength) // In this situation we have a "pending" frame for the user to click
else if (Global.Emulator.Frame == CurrentTasMovie.InputLogLength) // In this situation we have a "pending" frame for the user to click
{
text = _currentTasMovie.CreateDisplayValueForButton(
text = CurrentTasMovie.CreateDisplayValueForButton(
Global.ClickyVirtualPadController,
columnName);
}
@ -171,7 +171,7 @@ namespace BizHawk.Client.EmuHawk
if (columnName == FrameColumnName)
{
_currentTasMovie.Markers.Add(TasView.LastSelectedIndex.Value, "");
CurrentTasMovie.Markers.Add(TasView.LastSelectedIndex.Value, "");
RefreshDialog();
}
@ -200,7 +200,7 @@ namespace BizHawk.Client.EmuHawk
private void TasView_ColumnReordered(object sender, InputRoll.ColumnReorderedEventArgs e)
{
_currentTasMovie.FlagChanges();
CurrentTasMovie.FlagChanges();
}
private void TasView_MouseEnter(object sender, EventArgs e)
@ -243,9 +243,9 @@ namespace BizHawk.Client.EmuHawk
_startBoolDrawColumn = buttonName;
if (frame < _currentTasMovie.InputLogLength)
if (frame < CurrentTasMovie.InputLogLength)
{
_boolPaintState = _currentTasMovie.BoolIsPressed(frame, buttonName);
_boolPaintState = CurrentTasMovie.BoolIsPressed(frame, buttonName);
}
else
{
@ -256,7 +256,7 @@ namespace BizHawk.Client.EmuHawk
else
{
_startFloatDrawColumn = buttonName;
_floatPaintState = _currentTasMovie.GetFloatValue(frame, buttonName);
_floatPaintState = CurrentTasMovie.GetFloatValue(frame, buttonName);
}
}
}
@ -318,7 +318,7 @@ namespace BizHawk.Client.EmuHawk
{
if (Global.Config.TAStudioEmptyMarkers)
{
_currentTasMovie.Markers.Add(TasView.CurrentCell.RowIndex.Value, string.Empty);
CurrentTasMovie.Markers.Add(TasView.CurrentCell.RowIndex.Value, string.Empty);
RefreshDialog();
}
else
@ -390,9 +390,9 @@ namespace BizHawk.Client.EmuHawk
{
for (var i = startVal; i < endVal; i++)
{
if (i < _currentTasMovie.InputLogLength) // TODO: how do we really want to handle the user setting the float state of the pending frame?
if (i < CurrentTasMovie.InputLogLength) // TODO: how do we really want to handle the user setting the float state of the pending frame?
{
_currentTasMovie.SetFloatState(i, _startFloatDrawColumn, _floatPaintState); // Notice it uses new row, old column, you can only paint across a single column
CurrentTasMovie.SetFloatState(i, _startFloatDrawColumn, _floatPaintState); // Notice it uses new row, old column, you can only paint across a single column
_triggerAutoRestore = true;
_triggerAutoRestoreFromFrame = TasView.CurrentCell.RowIndex.Value;
}

View File

@ -18,12 +18,12 @@ namespace BizHawk.Client.EmuHawk
private void FileSubMenu_DropDownOpened(object sender, EventArgs e)
{
ToBk2MenuItem.Enabled =
!string.IsNullOrWhiteSpace(_currentTasMovie.Filename);
ToBk2MenuItem.Enabled =
!string.IsNullOrWhiteSpace(CurrentTasMovie.Filename);
SaveTASMenuItem.Enabled =
!string.IsNullOrWhiteSpace(_currentTasMovie.Filename) &&
(_currentTasMovie.Filename != DefaultTasProjName());
!string.IsNullOrWhiteSpace(CurrentTasMovie.Filename) &&
(CurrentTasMovie.Filename != DefaultTasProjName());
}
private void RecentSubMenu_DropDownOpened(object sender, EventArgs e)
@ -49,7 +49,7 @@ namespace BizHawk.Client.EmuHawk
{
if (AskSaveChanges())
{
var filename = _currentTasMovie.Filename;
var filename = CurrentTasMovie.Filename;
if (string.IsNullOrWhiteSpace(filename) || filename == DefaultTasProjName())
{
filename = "";
@ -58,43 +58,43 @@ namespace BizHawk.Client.EmuHawk
var file = ToolHelpers.GetTasProjFileFromUser(filename);
if (file != null)
{
_currentTasMovie.Filename = file.FullName;
_currentTasMovie.Load();
Global.Config.RecentTas.Add(_currentTasMovie.Filename);
CurrentTasMovie.Filename = file.FullName;
CurrentTasMovie.Load();
Global.Config.RecentTas.Add(CurrentTasMovie.Filename);
if (_currentTasMovie.InputLogLength > 0) // TODO: this is probably reoccuring logic, break off into a function
if (CurrentTasMovie.InputLogLength > 0) // TODO: this is probably reoccuring logic, break off into a function
{
_currentTasMovie.SwitchToPlay();
CurrentTasMovie.SwitchToPlay();
}
else
{
_currentTasMovie.SwitchToRecord();
CurrentTasMovie.SwitchToRecord();
}
RefreshDialog();
MessageStatusLabel.Text = Path.GetFileName(_currentTasMovie.Filename) + " loaded.";
MessageStatusLabel.Text = Path.GetFileName(CurrentTasMovie.Filename) + " loaded.";
}
}
}
private void SaveTasMenuItem_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(_currentTasMovie.Filename) ||
_currentTasMovie.Filename == DefaultTasProjName())
if (string.IsNullOrEmpty(CurrentTasMovie.Filename) ||
CurrentTasMovie.Filename == DefaultTasProjName())
{
SaveAsTasMenuItem_Click(sender, e);
}
else
{
_currentTasMovie.Save();
MessageStatusLabel.Text = Path.GetFileName(_currentTasMovie.Filename) + " saved.";
Global.Config.RecentTas.Add(_currentTasMovie.Filename);
CurrentTasMovie.Save();
MessageStatusLabel.Text = Path.GetFileName(CurrentTasMovie.Filename) + " saved.";
Global.Config.RecentTas.Add(CurrentTasMovie.Filename);
}
}
private void SaveAsTasMenuItem_Click(object sender, EventArgs e)
{
var filename = _currentTasMovie.Filename;
var filename = CurrentTasMovie.Filename;
if (string.IsNullOrWhiteSpace(filename) || filename == DefaultTasProjName())
{
filename = SuggestedTasProjName();
@ -103,17 +103,17 @@ namespace BizHawk.Client.EmuHawk
var file = ToolHelpers.GetTasProjSaveFileFromUser(filename);
if (file != null)
{
_currentTasMovie.Filename = file.FullName;
_currentTasMovie.Save();
Global.Config.RecentTas.Add(_currentTasMovie.Filename);
MessageStatusLabel.Text = Path.GetFileName(_currentTasMovie.Filename) + " saved.";
CurrentTasMovie.Filename = file.FullName;
CurrentTasMovie.Save();
Global.Config.RecentTas.Add(CurrentTasMovie.Filename);
MessageStatusLabel.Text = Path.GetFileName(CurrentTasMovie.Filename) + " saved.";
SetTextProperty();
}
}
private void ToBk2MenuItem_Click(object sender, EventArgs e)
{
var bk2 = _currentTasMovie.ToBk2();
var bk2 = CurrentTasMovie.ToBk2();
bk2.Save();
MessageStatusLabel.Text = Path.GetFileName(bk2.Filename) + " created.";
@ -145,7 +145,7 @@ namespace BizHawk.Client.EmuHawk
_tasClipboard.Any();
ClearGreenzoneMenuItem.Enabled =
_currentTasMovie != null && _currentTasMovie.TasStateManager.Any();
CurrentTasMovie != null && CurrentTasMovie.TasStateManager.Any();
GreenzoneICheckSeparator.Visible =
GreenZoneIntegrityCheckMenuItem.Visible =
@ -168,11 +168,11 @@ namespace BizHawk.Client.EmuHawk
{
if (TasView.SelectedRows.Any())
{
var prevMarker = _currentTasMovie.Markers.PreviousOrCurrent(TasView.LastSelectedIndex.Value);
var nextMarker = _currentTasMovie.Markers.Next(TasView.LastSelectedIndex.Value);
var prevMarker = CurrentTasMovie.Markers.PreviousOrCurrent(TasView.LastSelectedIndex.Value);
var nextMarker = CurrentTasMovie.Markers.Next(TasView.LastSelectedIndex.Value);
int prev = prevMarker != null ? prevMarker.Frame : 0;
int next = nextMarker != null ? nextMarker.Frame : _currentTasMovie.InputLogLength;
int next = nextMarker != null ? nextMarker.Frame : CurrentTasMovie.InputLogLength;
for (int i = prev; i < next; i++)
{
@ -200,9 +200,9 @@ namespace BizHawk.Client.EmuHawk
foreach (var index in list)
{
var input = _currentTasMovie.GetInputState(index);
var input = CurrentTasMovie.GetInputState(index);
_tasClipboard.Add(new TasClipboardEntry(index, input));
var lg = _currentTasMovie.LogGeneratorInstance();
var lg = CurrentTasMovie.LogGeneratorInstance();
lg.SetSource(input);
sb.AppendLine(lg.GenerateLogEntry());
}
@ -220,7 +220,7 @@ namespace BizHawk.Client.EmuHawk
{
var needsToRollback = !(TasView.FirstSelectedIndex > Global.Emulator.Frame);
_currentTasMovie.CopyOverInput(TasView.FirstSelectedIndex.Value, _tasClipboard.Select(x => x.ControllerState));
CurrentTasMovie.CopyOverInput(TasView.FirstSelectedIndex.Value, _tasClipboard.Select(x => x.ControllerState));
if (needsToRollback)
{
@ -240,7 +240,7 @@ namespace BizHawk.Client.EmuHawk
{
var needsToRollback = !(TasView.FirstSelectedIndex > Global.Emulator.Frame);
_currentTasMovie.InsertInput(TasView.FirstSelectedIndex.Value, _tasClipboard.Select(x => x.ControllerState));
CurrentTasMovie.InsertInput(TasView.FirstSelectedIndex.Value, _tasClipboard.Select(x => x.ControllerState));
if (needsToRollback)
{
@ -266,15 +266,15 @@ namespace BizHawk.Client.EmuHawk
var sb = new StringBuilder();
for (var i = 0; i < list.Length; i++)
{
var input = _currentTasMovie.GetInputState(i);
var input = CurrentTasMovie.GetInputState(i);
_tasClipboard.Add(new TasClipboardEntry(list[i], input));
var lg = _currentTasMovie.LogGeneratorInstance();
var lg = CurrentTasMovie.LogGeneratorInstance();
lg.SetSource(input);
sb.AppendLine(lg.GenerateLogEntry());
}
Clipboard.SetDataObject(sb.ToString());
_currentTasMovie.RemoveFrames(list);
CurrentTasMovie.RemoveFrames(list);
SetSplicer();
TasView.DeselectAll();
@ -299,7 +299,7 @@ namespace BizHawk.Client.EmuHawk
foreach (var frame in TasView.SelectedRows)
{
_currentTasMovie.ClearFrame(frame);
CurrentTasMovie.ClearFrame(frame);
}
if (needsToRollback)
@ -322,7 +322,7 @@ namespace BizHawk.Client.EmuHawk
var rollBackFrame = TasView.FirstSelectedIndex.Value;
_tasClipboard.Clear();
_currentTasMovie.RemoveFrames(TasView.SelectedRows.ToArray());
CurrentTasMovie.RemoveFrames(TasView.SelectedRows.ToArray());
SetSplicer();
if (needsToRollback)
@ -346,10 +346,10 @@ namespace BizHawk.Client.EmuHawk
var needsToRollback = !(insertionFrame > Global.Emulator.Frame);
var inputLog = framesToInsert
.Select(frame => _currentTasMovie.GetInputLogEntry(frame))
.Select(frame => CurrentTasMovie.GetInputLogEntry(frame))
.ToList();
_currentTasMovie.InsertInput(insertionFrame, inputLog);
CurrentTasMovie.InsertInput(insertionFrame, inputLog);
if (needsToRollback)
{
@ -369,7 +369,7 @@ namespace BizHawk.Client.EmuHawk
var insertionFrame = TasView.SelectedRows.Any() ? TasView.FirstSelectedIndex.Value : 0;
var needsToRollback = insertionFrame <= Global.Emulator.Frame;
_currentTasMovie.InsertEmptyFrame(insertionFrame);
CurrentTasMovie.InsertEmptyFrame(insertionFrame);
if (needsToRollback)
{
@ -392,7 +392,7 @@ namespace BizHawk.Client.EmuHawk
var result = framesPrompt.ShowDialog();
if (result == DialogResult.OK)
{
_currentTasMovie.InsertEmptyFrame(insertionFrame, framesPrompt.Frames);
CurrentTasMovie.InsertEmptyFrame(insertionFrame, framesPrompt.Frames);
}
if (needsToRollback)
@ -414,7 +414,7 @@ namespace BizHawk.Client.EmuHawk
var rollbackFrame = TasView.LastSelectedIndex.Value;
var needsToRollback = !(rollbackFrame > Global.Emulator.Frame);
_currentTasMovie.Truncate(rollbackFrame);
CurrentTasMovie.Truncate(rollbackFrame);
if (needsToRollback)
{
@ -437,13 +437,13 @@ namespace BizHawk.Client.EmuHawk
private void RemoveMarkersMenuItem_Click(object sender, EventArgs e)
{
_currentTasMovie.Markers.RemoveAll(m => TasView.SelectedRows.Contains(m.Frame));
CurrentTasMovie.Markers.RemoveAll(m => TasView.SelectedRows.Contains(m.Frame));
RefreshDialog();
}
private void ClearGreenzoneMenuItem_Click(object sender, EventArgs e)
{
_currentTasMovie.ClearGreenzone();
CurrentTasMovie.ClearGreenzone();
RefreshDialog();
}
@ -453,10 +453,10 @@ namespace BizHawk.Client.EmuHawk
GlobalWin.MainForm.FrameAdvance();
var frame = Global.Emulator.Frame;
if (_currentTasMovie.TasStateManager.HasState(frame))
if (CurrentTasMovie.TasStateManager.HasState(frame))
{
var state = (byte[])Global.Emulator.SaveStateBinary().Clone();
var greenzone = _currentTasMovie.TasStateManager[frame];
var greenzone = CurrentTasMovie.TasStateManager[frame];
if (!state.SequenceEqual(greenzone))
{
@ -499,7 +499,7 @@ namespace BizHawk.Client.EmuHawk
private void RotateMenuItem_Click(object sender, EventArgs e)
{
TasView.HorizontalOrientation ^= true;
_currentTasMovie.FlagChanges();
CurrentTasMovie.FlagChanges();
}
#endregion
@ -508,20 +508,20 @@ namespace BizHawk.Client.EmuHawk
private void HeaderMenuItem_Click(object sender, EventArgs e)
{
new MovieHeaderEditor(_currentTasMovie) { Owner = GlobalWin.MainForm }.Show();
new MovieHeaderEditor(CurrentTasMovie) { Owner = GlobalWin.MainForm }.Show();
UpdateChangesIndicator();
}
private void GreenzoneSettingsMenuItem_Click(object sender, EventArgs e)
{
new GreenzoneSettingsForm(_currentTasMovie.TasStateManager.Settings) { Owner = GlobalWin.MainForm }.Show();
new GreenzoneSettingsForm(CurrentTasMovie.TasStateManager.Settings) { Owner = GlobalWin.MainForm }.Show();
UpdateChangesIndicator();
}
private void CommentsMenuItem_Click(object sender, EventArgs e)
{
var form = new EditCommentsForm();
form.GetMovie(_currentTasMovie);
form.GetMovie(CurrentTasMovie);
form.ShowDialog();
}
@ -613,7 +613,7 @@ namespace BizHawk.Client.EmuHawk
{
dummyColumnObject.Visible ^= true;
TasView.AllColumns.ColumnsChanged();
_currentTasMovie.FlagChanges();
CurrentTasMovie.FlagChanges();
TasView.Refresh();
};
@ -632,7 +632,7 @@ namespace BizHawk.Client.EmuHawk
TasView.AllColumns.Clear();
SetUpColumns();
TasView.Refresh();
_currentTasMovie.FlagChanges();
CurrentTasMovie.FlagChanges();
};
ColumnsSubMenu.DropDownItems.Add(defaults);

View File

@ -33,16 +33,16 @@ namespace BizHawk.Client.EmuHawk
// If near a greenzone item, load and emulate
// Do capturing and recording as needed
if (frame < _currentTasMovie.InputLogLength)
if (frame < CurrentTasMovie.InputLogLength)
{
if (frame < Global.Emulator.Frame) // We are rewinding
{
var goToFrame = frame == 0 ? 0 : frame - 1;
if (_currentTasMovie[goToFrame].HasState) // Go back 1 frame and emulate to get the display (we don't store that)
if (CurrentTasMovie[goToFrame].HasState) // Go back 1 frame and emulate to get the display (we don't store that)
{
_currentTasMovie.SwitchToPlay();
LoadState(_currentTasMovie[goToFrame].State.ToArray());
CurrentTasMovie.SwitchToPlay();
LoadState(CurrentTasMovie[goToFrame].State.ToArray());
if (frame > 0) // We can't emulate up to frame 0!
{
@ -61,10 +61,10 @@ namespace BizHawk.Client.EmuHawk
else // We are going foward
{
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();
Global.Emulator.LoadStateBinary(new BinaryReader(new MemoryStream(_currentTasMovie[goToFrame].State.ToArray())));
CurrentTasMovie.SwitchToPlay();
Global.Emulator.LoadStateBinary(new BinaryReader(new MemoryStream(CurrentTasMovie[goToFrame].State.ToArray())));
Global.Emulator.FrameAdvance(true);
GlobalWin.DisplayManager.NeedsToPaint = true;
@ -80,22 +80,22 @@ namespace BizHawk.Client.EmuHawk
else // Emulate to a future frame
{
// TODO: get the last greenzone frame and go there
_currentTasMovie.SwitchToPlay();
CurrentTasMovie.SwitchToPlay();
// no reason to loadstate when we can emulate a frame instead
var shouldLoadstate = frame - Global.Emulator.Frame != 1;
if (_currentTasMovie.TasStateManager.LastEmulatedFrame > 0 && shouldLoadstate)
if (CurrentTasMovie.TasStateManager.LastEmulatedFrame > 0 && shouldLoadstate)
{
LoadState(_currentTasMovie[_currentTasMovie.TasStateManager.LastEmulatedFrame].State.ToArray());
LoadState(CurrentTasMovie[CurrentTasMovie.TasStateManager.LastEmulatedFrame].State.ToArray());
}
if (frame != Global.Emulator.Frame) // If we aren't already at our destination, seek
{
GlobalWin.MainForm.UnpauseEmulator();
if (Global.Config.TAStudioAutoPause && frame < _currentTasMovie.InputLogLength)
if (Global.Config.TAStudioAutoPause && frame < CurrentTasMovie.InputLogLength)
{
GlobalWin.MainForm.PauseOnFrame = _currentTasMovie.InputLogLength;
GlobalWin.MainForm.PauseOnFrame = CurrentTasMovie.InputLogLength;
}
else
{
@ -125,7 +125,7 @@ namespace BizHawk.Client.EmuHawk
{
if (Global.Emulator.Frame > 0)
{
var prevMarker = _currentTasMovie.Markers.Previous(Global.Emulator.Frame);
var prevMarker = CurrentTasMovie.Markers.Previous(Global.Emulator.Frame);
var prev = prevMarker != null ? prevMarker.Frame : 0;
GoToFrame(prev);
}
@ -133,8 +133,8 @@ namespace BizHawk.Client.EmuHawk
public void GoToNextMarker()
{
var nextMarker = _currentTasMovie.Markers.Next(Global.Emulator.Frame);
var next = nextMarker != null ? nextMarker.Frame : _currentTasMovie.InputLogLength - 1;
var nextMarker = CurrentTasMovie.Markers.Next(Global.Emulator.Frame);
var next = nextMarker != null ? nextMarker.Frame : CurrentTasMovie.InputLogLength - 1;
GoToFrame(next);
}

View File

@ -23,7 +23,6 @@ namespace BizHawk.Client.EmuHawk
private int _defaultWidth;
private int _defaultHeight;
private TasMovie _currentTasMovie;
private MovieEndAction _originalEndAction; // The movie end behavior selected by the user (that is overridden by TAStudio)
private Dictionary<string, string> GenerateColumnNames()
{
@ -34,6 +33,11 @@ namespace BizHawk.Client.EmuHawk
private int? _autoRestoreFrame; // The frame auto-restore will restore to, if set
public TasMovie CurrentTasMovie
{
get { return Global.MovieSession.Movie as TasMovie; }
}
public TAStudio()
{
InitializeComponent();
@ -51,11 +55,6 @@ namespace BizHawk.Client.EmuHawk
TasView.MaxCharactersInHorizontal = 1;
}
public TasMovie CurrentMovie
{
get { return _currentTasMovie; }
}
private void TastudioToStopMovie()
{
Global.MovieSession.StopMovie(false);
@ -74,7 +73,6 @@ namespace BizHawk.Client.EmuHawk
{
GlobalWin.MainForm.PauseOnFrame = null;
GlobalWin.OSD.AddMessage("TAStudio engaged");
_currentTasMovie = Global.MovieSession.Movie as TasMovie;
SetTasMovieCallbacks();
SetTextProperty();
GlobalWin.MainForm.PauseEmulator();
@ -98,12 +96,11 @@ namespace BizHawk.Client.EmuHawk
private void NewTasMovie()
{
Global.MovieSession.Movie = new TasMovie();
_currentTasMovie = Global.MovieSession.Movie as TasMovie;
SetTasMovieCallbacks();
_currentTasMovie.PropertyChanged += new PropertyChangedEventHandler(this.TasMovie_OnPropertyChanged);
_currentTasMovie.Filename = DefaultTasProjName(); // TODO don't do this, take over any mainform actions that can crash without a filename
_currentTasMovie.PopulateWithDefaultHeaderValues();
_currentTasMovie.ClearChanges();
CurrentTasMovie.PropertyChanged += new PropertyChangedEventHandler(this.TasMovie_OnPropertyChanged);
CurrentTasMovie.Filename = DefaultTasProjName(); // TODO don't do this, take over any mainform actions that can crash without a filename
CurrentTasMovie.PopulateWithDefaultHeaderValues();
CurrentTasMovie.ClearChanges();
TasView.RowCount = 1;
}
@ -130,8 +127,8 @@ namespace BizHawk.Client.EmuHawk
private void SetTasMovieCallbacks()
{
_currentTasMovie.ClientSettingsForSave = ClientSettingsForSave;
_currentTasMovie.GetClientSettingsOnLoad = GetClientSettingsOnLoad;
CurrentTasMovie.ClientSettingsForSave = ClientSettingsForSave;
CurrentTasMovie.GetClientSettingsOnLoad = GetClientSettingsOnLoad;
}
private void StartNewTasMovie()
@ -141,7 +138,7 @@ namespace BizHawk.Client.EmuHawk
NewTasMovie();
WantsToControlStopMovie = false;
StartNewMovieWrapper(record: true);
_currentTasMovie.ClearChanges();
CurrentTasMovie.ClearChanges();
WantsToControlStopMovie = true;
SetTextProperty();
RefreshDialog();
@ -167,9 +164,9 @@ namespace BizHawk.Client.EmuHawk
private void SetTextProperty()
{
var text = "TAStudio";
if (_currentTasMovie != null)
if (CurrentTasMovie != null)
{
text += " - " + _currentTasMovie.Name + (_currentTasMovie.Changes ? "*" : "");
text += " - " + CurrentTasMovie.Name + (CurrentTasMovie.Changes ? "*" : "");
}
Text = text;
@ -205,12 +202,11 @@ namespace BizHawk.Client.EmuHawk
return false;
}
_currentTasMovie = Global.MovieSession.Movie as TasMovie;
SetTasMovieCallbacks();
WantsToControlStopMovie = true;
Global.Config.RecentTas.Add(path);
Text = "TAStudio - " + _currentTasMovie.Name;
Text = "TAStudio - " + CurrentTasMovie.Name;
RefreshDialog();
return true;
@ -221,13 +217,13 @@ namespace BizHawk.Client.EmuHawk
public void RefreshDialog()
{
_currentTasMovie.FlushInputCache();
_currentTasMovie.UseInputCache = true;
TasView.RowCount = _currentTasMovie.InputLogLength + 1;
CurrentTasMovie.FlushInputCache();
CurrentTasMovie.UseInputCache = true;
TasView.RowCount = CurrentTasMovie.InputLogLength + 1;
TasView.Refresh();
_currentTasMovie.FlushInputCache();
_currentTasMovie.UseInputCache = false;
CurrentTasMovie.FlushInputCache();
CurrentTasMovie.UseInputCache = false;
if (MarkerControl != null)
{
@ -302,8 +298,8 @@ namespace BizHawk.Client.EmuHawk
private void StartAtNearestFrameAndEmulate(int frame)
{
_currentTasMovie.SwitchToPlay();
var closestState = _currentTasMovie.TasStateManager.GetStateClosestToFrame(frame);
CurrentTasMovie.SwitchToPlay();
var closestState = CurrentTasMovie.TasStateManager.GetStateClosestToFrame(frame);
if (closestState != null)
{
LoadState(closestState.ToArray());
@ -371,14 +367,14 @@ namespace BizHawk.Client.EmuHawk
Text = "Marker for frame " + markerFrame,
TextInputType = InputPrompt.InputType.Text,
Message = "Enter a message",
InitialValue = _currentTasMovie.Markers.IsMarker(markerFrame) ? _currentTasMovie.Markers.PreviousOrCurrent(markerFrame).Message : ""
InitialValue = CurrentTasMovie.Markers.IsMarker(markerFrame) ? CurrentTasMovie.Markers.PreviousOrCurrent(markerFrame).Message : ""
};
var result = i.ShowHawkDialog();
if (result == DialogResult.OK)
{
_currentTasMovie.Markers.Add(markerFrame, i.PromptText);
CurrentTasMovie.Markers.Add(markerFrame, i.PromptText);
MarkerControl.UpdateValues();
}
}
@ -392,11 +388,11 @@ namespace BizHawk.Client.EmuHawk
// Sets either the pending frame or the tas input log
private void ToggleBoolState(int frame, string buttonName)
{
if (frame < _currentTasMovie.InputLogLength)
if (frame < CurrentTasMovie.InputLogLength)
{
_currentTasMovie.ToggleBoolState(frame, buttonName);
CurrentTasMovie.ToggleBoolState(frame, buttonName);
}
else if (frame == Global.Emulator.Frame && frame == _currentTasMovie.InputLogLength)
else if (frame == Global.Emulator.Frame && frame == CurrentTasMovie.InputLogLength)
{
Global.ClickyVirtualPadController.Toggle(buttonName);
}
@ -406,11 +402,11 @@ namespace BizHawk.Client.EmuHawk
// Sets either the pending frame or the tas input log
private void SetBoolState(int frame, string buttonName, bool value)
{
if (frame < _currentTasMovie.InputLogLength)
if (frame < CurrentTasMovie.InputLogLength)
{
_currentTasMovie.SetBoolState(frame, buttonName, value);
CurrentTasMovie.SetBoolState(frame, buttonName, value);
}
else if (frame == Global.Emulator.Frame && frame == _currentTasMovie.InputLogLength)
else if (frame == Global.Emulator.Frame && frame == CurrentTasMovie.InputLogLength)
{
Global.ClickyVirtualPadController.SetBool(buttonName, value);
}
@ -431,15 +427,15 @@ namespace BizHawk.Client.EmuHawk
{
NewTasMovie();
StartNewMovieWrapper(record: true);
_currentTasMovie.TasStateManager.Capture();
_currentTasMovie.SwitchToRecord();
_currentTasMovie.ClearChanges();
CurrentTasMovie.TasStateManager.Capture();
CurrentTasMovie.SwitchToRecord();
CurrentTasMovie.ClearChanges();
}
private bool StartNewMovieWrapper(bool record, IMovie movie = null)
{
_initializing = true;
var result = GlobalWin.MainForm.StartNewMovie(movie != null ? movie : _currentTasMovie, record);
var result = GlobalWin.MainForm.StartNewMovie(movie != null ? movie : CurrentTasMovie, record);
_initializing = false;
return result;
@ -459,7 +455,7 @@ namespace BizHawk.Client.EmuHawk
.First(t => t.Name == "RotateMenuItem")
.Click += (o, ov) =>
{
_currentTasMovie.FlagChanges();
CurrentTasMovie.FlagChanges();
};
RefreshDialog();
@ -556,7 +552,7 @@ namespace BizHawk.Client.EmuHawk
TruncateContextMenuItem.Enabled =
TasView.SelectedRows.Any();
RemoveMarkersContextMenuItem.Enabled = _currentTasMovie.Markers.Any(m => TasView.SelectedRows.Contains(m.Frame)); // Disable the option to remove markers if no markers are selected (FCEUX does this).
RemoveMarkersContextMenuItem.Enabled = CurrentTasMovie.Markers.Any(m => TasView.SelectedRows.Contains(m.Frame)); // Disable the option to remove markers if no markers are selected (FCEUX does this).
}
#endregion