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 Input = "Input Log";
|
||||
public const string CorestateText = "CoreText";
|
||||
public const string Movieheader = "Movie";
|
||||
public const string Movieheader = "Header";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
|
@ -5,7 +5,8 @@ namespace BizHawk.Client.Common
|
|||
{
|
||||
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 MOVIEVERSION = "MovieVersion";
|
||||
|
|
|
@ -19,7 +19,7 @@ namespace BizHawk.Client.Common
|
|||
BoardProperties = new Dictionary<string, string>();
|
||||
|
||||
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.GAMENAME] = String.Empty;
|
||||
this[HeaderKeys.AUTHOR] = String.Empty;
|
||||
|
|
|
@ -85,7 +85,7 @@ namespace BizHawk.Client.Common
|
|||
}
|
||||
if (errorMsg == String.Empty)
|
||||
{
|
||||
m.Header[HeaderKeys.MOVIEVERSION] = HeaderKeys.MovieVersion;
|
||||
m.Header[HeaderKeys.MOVIEVERSION] = HeaderKeys.MovieVersion1;
|
||||
}
|
||||
}
|
||||
catch (Exception except)
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
|
||||
using System.Text;
|
||||
using BizHawk.Emulation.Common;
|
||||
|
||||
namespace BizHawk.Client.Common
|
||||
|
@ -80,6 +80,7 @@ namespace BizHawk.Client.Common
|
|||
{
|
||||
Filename = String.Empty;
|
||||
Header = new MovieHeader { StartsFromSavestate = startsFromSavestate };
|
||||
Header[HeaderKeys.MOVIEVERSION] = HeaderKeys.MovieVersion2;
|
||||
_records = new MovieRecordList();
|
||||
_mode = Moviemode.Inactive;
|
||||
IsCountingRerecords = true;
|
||||
|
@ -166,7 +167,12 @@ namespace BizHawk.Client.Common
|
|||
|
||||
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()
|
||||
|
|
|
@ -349,7 +349,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
}
|
||||
break;
|
||||
case HeaderKeys.MOVIEVERSION:
|
||||
if (kvp.Value != HeaderKeys.MovieVersion)
|
||||
if (kvp.Value != HeaderKeys.MovieVersion1)
|
||||
{
|
||||
item.BackColor = Color.Yellow;
|
||||
}
|
||||
|
|
|
@ -96,7 +96,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
//Header
|
||||
_movieToRecord.Header[HeaderKeys.AUTHOR] = AuthorBox.Text;
|
||||
_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;
|
||||
if (Global.Game != null)
|
||||
{
|
||||
|
|
|
@ -142,6 +142,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
this.FileSubMenu.Name = "FileSubMenu";
|
||||
this.FileSubMenu.Size = new System.Drawing.Size(37, 20);
|
||||
this.FileSubMenu.Text = "&File";
|
||||
this.FileSubMenu.DropDownOpened += new System.EventHandler(this.FileSubMenu_DropDownOpened);
|
||||
//
|
||||
// NewTASMenuItem
|
||||
//
|
||||
|
@ -161,20 +162,20 @@ namespace BizHawk.Client.EmuHawk
|
|||
//
|
||||
// SaveTASMenuItem
|
||||
//
|
||||
this.SaveTASMenuItem.Enabled = false;
|
||||
this.SaveTASMenuItem.Name = "SaveTASMenuItem";
|
||||
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.Text = "&Save";
|
||||
this.SaveTASMenuItem.Click += new System.EventHandler(this.SaveTASMenuItem_Click);
|
||||
//
|
||||
// SaveAsTASMenuItem
|
||||
//
|
||||
this.SaveAsTASMenuItem.Enabled = false;
|
||||
this.SaveAsTASMenuItem.Name = "SaveAsTASMenuItem";
|
||||
this.SaveAsTASMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift)
|
||||
| System.Windows.Forms.Keys.S)));
|
||||
this.SaveAsTASMenuItem.Size = new System.Drawing.Size(186, 22);
|
||||
this.SaveAsTASMenuItem.Text = "Save As";
|
||||
this.SaveAsTASMenuItem.Click += new System.EventHandler(this.SaveAsTASMenuItem_Click);
|
||||
//
|
||||
// RecentSubMenu
|
||||
//
|
||||
|
|
|
@ -20,6 +20,10 @@ namespace BizHawk.Client.EmuHawk
|
|||
private int _defaultHeight;
|
||||
private TasMovie _tas;
|
||||
|
||||
// Input Painting
|
||||
private string StartDrawColumn = String.Empty;
|
||||
private bool StartOn = false;
|
||||
|
||||
#region API
|
||||
|
||||
public TAStudio()
|
||||
|
@ -206,6 +210,28 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
#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)
|
||||
{
|
||||
Close();
|
||||
|
@ -255,9 +281,6 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
#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)
|
||||
{
|
||||
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)
|
||||
{
|
||||
if (TASView.IsPaintDown && e.NewCell.Row.HasValue && !String.IsNullOrEmpty(StartDrawColumn))
|
||||
|
@ -282,5 +303,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,6 +11,36 @@ namespace BizHawk.Client.EmuHawk
|
|||
{
|
||||
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)
|
||||
{
|
||||
var ofd = new OpenFileDialog();
|
||||
|
|
Loading…
Reference in New Issue