TasMovie - implement saving of movie log into files, make header have the proper movie version (v2!), Change file "Movie" to "Header". TAStudio - implement Save and Save As menu items
This commit is contained in:
parent
1d0db18244
commit
fd149237ee
|
@ -11,7 +11,7 @@ namespace BizHawk.Client.Common
|
||||||
public const string Framebuffer = "Framebuffer";
|
public const string Framebuffer = "Framebuffer";
|
||||||
public const string Input = "Input Log";
|
public const string Input = "Input Log";
|
||||||
public const string CorestateText = "CoreText";
|
public const string CorestateText = "CoreText";
|
||||||
public const string Movieheader = "Movie";
|
public const string Movieheader = "Header";
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
@ -5,7 +5,8 @@ namespace BizHawk.Client.Common
|
||||||
{
|
{
|
||||||
public static class HeaderKeys
|
public static class HeaderKeys
|
||||||
{
|
{
|
||||||
public const string MovieVersion = "BizHawk v0.0.1";
|
public const string MovieVersion1 = "BizHawk v0.0.1";
|
||||||
|
public const string MovieVersion2 = "BizHawk v0.0.2";
|
||||||
|
|
||||||
public const string EMULATIONVERSION = "emuVersion";
|
public const string EMULATIONVERSION = "emuVersion";
|
||||||
public const string MOVIEVERSION = "MovieVersion";
|
public const string MOVIEVERSION = "MovieVersion";
|
||||||
|
|
|
@ -19,7 +19,7 @@ namespace BizHawk.Client.Common
|
||||||
BoardProperties = new Dictionary<string, string>();
|
BoardProperties = new Dictionary<string, string>();
|
||||||
|
|
||||||
this[HeaderKeys.EMULATIONVERSION] = VersionInfo.GetEmuVersion();
|
this[HeaderKeys.EMULATIONVERSION] = VersionInfo.GetEmuVersion();
|
||||||
this[HeaderKeys.MOVIEVERSION] = HeaderKeys.MovieVersion;
|
this[HeaderKeys.MOVIEVERSION] = HeaderKeys.MovieVersion1;
|
||||||
this[HeaderKeys.PLATFORM] = Global.Emulator != null ? Global.Emulator.SystemId : String.Empty;
|
this[HeaderKeys.PLATFORM] = Global.Emulator != null ? Global.Emulator.SystemId : String.Empty;
|
||||||
this[HeaderKeys.GAMENAME] = String.Empty;
|
this[HeaderKeys.GAMENAME] = String.Empty;
|
||||||
this[HeaderKeys.AUTHOR] = String.Empty;
|
this[HeaderKeys.AUTHOR] = String.Empty;
|
||||||
|
|
|
@ -85,7 +85,7 @@ namespace BizHawk.Client.Common
|
||||||
}
|
}
|
||||||
if (errorMsg == String.Empty)
|
if (errorMsg == String.Empty)
|
||||||
{
|
{
|
||||||
m.Header[HeaderKeys.MOVIEVERSION] = HeaderKeys.MovieVersion;
|
m.Header[HeaderKeys.MOVIEVERSION] = HeaderKeys.MovieVersion1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception except)
|
catch (Exception except)
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
using BizHawk.Emulation.Common;
|
using BizHawk.Emulation.Common;
|
||||||
|
|
||||||
namespace BizHawk.Client.Common
|
namespace BizHawk.Client.Common
|
||||||
|
@ -80,6 +80,7 @@ namespace BizHawk.Client.Common
|
||||||
{
|
{
|
||||||
Filename = String.Empty;
|
Filename = String.Empty;
|
||||||
Header = new MovieHeader { StartsFromSavestate = startsFromSavestate };
|
Header = new MovieHeader { StartsFromSavestate = startsFromSavestate };
|
||||||
|
Header[HeaderKeys.MOVIEVERSION] = HeaderKeys.MovieVersion2;
|
||||||
_records = new MovieRecordList();
|
_records = new MovieRecordList();
|
||||||
_mode = Moviemode.Inactive;
|
_mode = Moviemode.Inactive;
|
||||||
IsCountingRerecords = true;
|
IsCountingRerecords = true;
|
||||||
|
@ -166,7 +167,12 @@ namespace BizHawk.Client.Common
|
||||||
|
|
||||||
public string GetInputLog()
|
public string GetInputLog()
|
||||||
{
|
{
|
||||||
return _records.ToString();
|
StringBuilder sb = new StringBuilder();
|
||||||
|
foreach (var record in _records)
|
||||||
|
{
|
||||||
|
sb.AppendLine(_mg.GenerateMnemonicString(record.Buttons));
|
||||||
|
}
|
||||||
|
return sb.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SwitchToRecord()
|
public void SwitchToRecord()
|
||||||
|
|
|
@ -349,7 +349,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case HeaderKeys.MOVIEVERSION:
|
case HeaderKeys.MOVIEVERSION:
|
||||||
if (kvp.Value != HeaderKeys.MovieVersion)
|
if (kvp.Value != HeaderKeys.MovieVersion1)
|
||||||
{
|
{
|
||||||
item.BackColor = Color.Yellow;
|
item.BackColor = Color.Yellow;
|
||||||
}
|
}
|
||||||
|
|
|
@ -96,7 +96,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
//Header
|
//Header
|
||||||
_movieToRecord.Header[HeaderKeys.AUTHOR] = AuthorBox.Text;
|
_movieToRecord.Header[HeaderKeys.AUTHOR] = AuthorBox.Text;
|
||||||
_movieToRecord.Header[HeaderKeys.EMULATIONVERSION] = VersionInfo.GetEmuVersion();
|
_movieToRecord.Header[HeaderKeys.EMULATIONVERSION] = VersionInfo.GetEmuVersion();
|
||||||
_movieToRecord.Header[HeaderKeys.MOVIEVERSION] = HeaderKeys.MovieVersion;
|
_movieToRecord.Header[HeaderKeys.MOVIEVERSION] = HeaderKeys.MovieVersion1;
|
||||||
_movieToRecord.Header[HeaderKeys.PLATFORM] = Global.Game.System;
|
_movieToRecord.Header[HeaderKeys.PLATFORM] = Global.Game.System;
|
||||||
if (Global.Game != null)
|
if (Global.Game != null)
|
||||||
{
|
{
|
||||||
|
|
|
@ -142,6 +142,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
this.FileSubMenu.Name = "FileSubMenu";
|
this.FileSubMenu.Name = "FileSubMenu";
|
||||||
this.FileSubMenu.Size = new System.Drawing.Size(37, 20);
|
this.FileSubMenu.Size = new System.Drawing.Size(37, 20);
|
||||||
this.FileSubMenu.Text = "&File";
|
this.FileSubMenu.Text = "&File";
|
||||||
|
this.FileSubMenu.DropDownOpened += new System.EventHandler(this.FileSubMenu_DropDownOpened);
|
||||||
//
|
//
|
||||||
// NewTASMenuItem
|
// NewTASMenuItem
|
||||||
//
|
//
|
||||||
|
@ -161,20 +162,20 @@ namespace BizHawk.Client.EmuHawk
|
||||||
//
|
//
|
||||||
// SaveTASMenuItem
|
// SaveTASMenuItem
|
||||||
//
|
//
|
||||||
this.SaveTASMenuItem.Enabled = false;
|
|
||||||
this.SaveTASMenuItem.Name = "SaveTASMenuItem";
|
this.SaveTASMenuItem.Name = "SaveTASMenuItem";
|
||||||
this.SaveTASMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.S)));
|
this.SaveTASMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.S)));
|
||||||
this.SaveTASMenuItem.Size = new System.Drawing.Size(186, 22);
|
this.SaveTASMenuItem.Size = new System.Drawing.Size(186, 22);
|
||||||
this.SaveTASMenuItem.Text = "&Save";
|
this.SaveTASMenuItem.Text = "&Save";
|
||||||
|
this.SaveTASMenuItem.Click += new System.EventHandler(this.SaveTASMenuItem_Click);
|
||||||
//
|
//
|
||||||
// SaveAsTASMenuItem
|
// SaveAsTASMenuItem
|
||||||
//
|
//
|
||||||
this.SaveAsTASMenuItem.Enabled = false;
|
|
||||||
this.SaveAsTASMenuItem.Name = "SaveAsTASMenuItem";
|
this.SaveAsTASMenuItem.Name = "SaveAsTASMenuItem";
|
||||||
this.SaveAsTASMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift)
|
this.SaveAsTASMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift)
|
||||||
| System.Windows.Forms.Keys.S)));
|
| System.Windows.Forms.Keys.S)));
|
||||||
this.SaveAsTASMenuItem.Size = new System.Drawing.Size(186, 22);
|
this.SaveAsTASMenuItem.Size = new System.Drawing.Size(186, 22);
|
||||||
this.SaveAsTASMenuItem.Text = "Save As";
|
this.SaveAsTASMenuItem.Text = "Save As";
|
||||||
|
this.SaveAsTASMenuItem.Click += new System.EventHandler(this.SaveAsTASMenuItem_Click);
|
||||||
//
|
//
|
||||||
// RecentSubMenu
|
// RecentSubMenu
|
||||||
//
|
//
|
||||||
|
|
|
@ -20,6 +20,10 @@ namespace BizHawk.Client.EmuHawk
|
||||||
private int _defaultHeight;
|
private int _defaultHeight;
|
||||||
private TasMovie _tas;
|
private TasMovie _tas;
|
||||||
|
|
||||||
|
// Input Painting
|
||||||
|
private string StartDrawColumn = String.Empty;
|
||||||
|
private bool StartOn = false;
|
||||||
|
|
||||||
#region API
|
#region API
|
||||||
|
|
||||||
public TAStudio()
|
public TAStudio()
|
||||||
|
@ -206,6 +210,28 @@ namespace BizHawk.Client.EmuHawk
|
||||||
|
|
||||||
#region File Menu
|
#region File Menu
|
||||||
|
|
||||||
|
private void FileSubMenu_DropDownOpened(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
SaveTASMenuItem.Enabled = !String.IsNullOrWhiteSpace(_tas.Filename);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SaveTASMenuItem_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
_tas.Save();
|
||||||
|
// TODO: inform the user it happened somehow
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SaveAsTASMenuItem_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
var file = ToolHelpers.GetTasProjSaveFileFromUser(_tas.Filename);
|
||||||
|
if (DialogResult != null)
|
||||||
|
{
|
||||||
|
_tas.Filename = file.FullName;
|
||||||
|
_tas.Save();
|
||||||
|
// TODO: inform the user it happened somehow
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void ExitMenuItem_Click(object sender, EventArgs e)
|
private void ExitMenuItem_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
Close();
|
Close();
|
||||||
|
@ -255,9 +281,6 @@ namespace BizHawk.Client.EmuHawk
|
||||||
|
|
||||||
#region TASView Events
|
#region TASView Events
|
||||||
|
|
||||||
private string StartDrawColumn = String.Empty; //TODO: move me
|
|
||||||
private bool StartOn = false; //TODO: move me
|
|
||||||
|
|
||||||
private void TASView_MouseDown(object sender, MouseEventArgs e)
|
private void TASView_MouseDown(object sender, MouseEventArgs e)
|
||||||
{
|
{
|
||||||
if (TASView.PointedCell.Row.HasValue && !String.IsNullOrEmpty(TASView.PointedCell.Column))
|
if (TASView.PointedCell.Row.HasValue && !String.IsNullOrEmpty(TASView.PointedCell.Column))
|
||||||
|
@ -270,8 +293,6 @@ namespace BizHawk.Client.EmuHawk
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
private void TASView_PointedCellChanged(object sender, TasListView.CellEventArgs e)
|
private void TASView_PointedCellChanged(object sender, TasListView.CellEventArgs e)
|
||||||
{
|
{
|
||||||
if (TASView.IsPaintDown && e.NewCell.Row.HasValue && !String.IsNullOrEmpty(StartDrawColumn))
|
if (TASView.IsPaintDown && e.NewCell.Row.HasValue && !String.IsNullOrEmpty(StartDrawColumn))
|
||||||
|
@ -282,5 +303,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,6 +11,36 @@ namespace BizHawk.Client.EmuHawk
|
||||||
{
|
{
|
||||||
public static class ToolHelpers
|
public static class ToolHelpers
|
||||||
{
|
{
|
||||||
|
public static FileInfo GetTasProjSaveFileFromUser(string currentFile)
|
||||||
|
{
|
||||||
|
var sfd = new SaveFileDialog();
|
||||||
|
if (!String.IsNullOrWhiteSpace(currentFile))
|
||||||
|
{
|
||||||
|
sfd.FileName = Path.GetFileNameWithoutExtension(currentFile);
|
||||||
|
sfd.InitialDirectory = Path.GetDirectoryName(currentFile);
|
||||||
|
}
|
||||||
|
else if (!(Global.Emulator is NullEmulator))
|
||||||
|
{
|
||||||
|
sfd.FileName = PathManager.FilesystemSafeName(Global.Game);
|
||||||
|
sfd.InitialDirectory = PathManager.MakeAbsolutePath(Global.Config.PathEntries.MoviesPath, null);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sfd.FileName = "NULL";
|
||||||
|
sfd.InitialDirectory = PathManager.MakeAbsolutePath(Global.Config.PathEntries.MoviesPath, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
sfd.Filter = "Tas Project Files (*.tasproj)|*.tasproj|All Files|*.*";
|
||||||
|
sfd.RestoreDirectory = true;
|
||||||
|
var result = sfd.ShowHawkDialog();
|
||||||
|
if (result != DialogResult.OK)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return new FileInfo(sfd.FileName);
|
||||||
|
}
|
||||||
|
|
||||||
public static FileInfo GetWatchFileFromUser(string currentFile)
|
public static FileInfo GetWatchFileFromUser(string currentFile)
|
||||||
{
|
{
|
||||||
var ofd = new OpenFileDialog();
|
var ofd = new OpenFileDialog();
|
||||||
|
|
Loading…
Reference in New Issue