BizHawk/BizHawk.Client.Common/movie/bk2/Bk2Movie.HeaderApi.cs

270 lines
4.6 KiB
C#
Raw Normal View History

2014-06-29 03:03:27 +00:00
using System.Collections.Generic;
2014-06-13 00:15:55 +00:00
using System.Text;
namespace BizHawk.Client.Common
{
2014-06-29 03:03:27 +00:00
public partial class Bk2Movie
2014-06-13 00:15:55 +00:00
{
protected readonly Bk2Header Header = new Bk2Header();
2014-06-14 00:42:45 +00:00
private string _syncSettingsJson = string.Empty;
2014-06-13 00:43:55 +00:00
2014-06-13 00:15:55 +00:00
public IDictionary<string, string> HeaderEntries
{
2014-06-13 00:43:55 +00:00
get { return Header; }
2014-06-13 00:15:55 +00:00
}
2014-06-13 11:30:25 +00:00
public SubtitleList Subtitles { get; private set; }
public IList<string> Comments { get; private set; }
2014-06-13 00:15:55 +00:00
public string SyncSettingsJson
{
2014-06-14 00:42:45 +00:00
get { return _syncSettingsJson; }
2014-07-11 02:31:43 +00:00
set
{
if (_syncSettingsJson != value)
{
Changes = true;
_syncSettingsJson = value;
}
}
2014-06-13 00:15:55 +00:00
}
public ulong Rerecords
{
get
{
2014-06-13 00:43:55 +00:00
if (!Header.ContainsKey(HeaderKeys.RERECORDS))
{
Header[HeaderKeys.RERECORDS] = "0";
}
return ulong.Parse(Header[HeaderKeys.RERECORDS]);
2014-06-13 00:15:55 +00:00
}
set
{
2014-07-11 02:31:43 +00:00
if (Header[HeaderKeys.RERECORDS] != value.ToString())
{
Changes = true;
Header[HeaderKeys.RERECORDS] = value.ToString();
}
2014-06-13 00:15:55 +00:00
}
}
public bool StartsFromSavestate
{
get
{
2014-06-13 00:43:55 +00:00
if (Header.ContainsKey(HeaderKeys.STARTSFROMSAVESTATE))
{
return bool.Parse(Header[HeaderKeys.STARTSFROMSAVESTATE]);
}
return false;
2014-06-13 00:15:55 +00:00
}
set
{
2014-06-13 00:43:55 +00:00
if (value)
{
Header[HeaderKeys.STARTSFROMSAVESTATE] = "True";
2014-06-13 00:43:55 +00:00
}
else
{
Header.Remove(HeaderKeys.STARTSFROMSAVESTATE);
}
2014-06-13 00:15:55 +00:00
}
}
public bool StartsFromSaveRam
{
get
{
if (Header.ContainsKey(HeaderKeys.STARTSFROMSAVERAM))
{
return bool.Parse(Header[HeaderKeys.STARTSFROMSAVERAM]);
}
return false;
}
set
{
if (value)
{
Header.Add(HeaderKeys.STARTSFROMSAVERAM, "True");
}
else
{
Header.Remove(HeaderKeys.STARTSFROMSAVERAM);
}
}
}
2014-06-13 00:15:55 +00:00
public string GameName
{
get
{
2014-06-13 00:43:55 +00:00
if (Header.ContainsKey(HeaderKeys.GAMENAME))
{
return Header[HeaderKeys.GAMENAME];
}
return string.Empty;
2014-06-13 00:15:55 +00:00
}
set
{
2014-07-11 02:31:43 +00:00
if (Header[HeaderKeys.GAMENAME] != value)
{
Changes = true;
Header[HeaderKeys.GAMENAME] = value;
}
2014-06-13 00:15:55 +00:00
}
}
public string SystemID
{
get
{
2014-06-13 00:43:55 +00:00
if (Header.ContainsKey(HeaderKeys.PLATFORM))
{
return Header[HeaderKeys.PLATFORM];
}
return string.Empty;
2014-06-13 00:15:55 +00:00
}
set
{
2014-07-11 02:31:43 +00:00
if (Header[HeaderKeys.PLATFORM] != value)
{
Changes = true;
Header[HeaderKeys.PLATFORM] = value;
}
2014-06-13 00:15:55 +00:00
}
}
public string Hash
{
2014-06-13 00:43:55 +00:00
get { return Header[HeaderKeys.SHA1]; }
2014-07-11 02:31:43 +00:00
set
{
if (Header[HeaderKeys.SHA1] != value)
{
Changes = true;
Header[HeaderKeys.SHA1] = value;
}
}
2014-06-13 00:15:55 +00:00
}
public string Author
{
2014-06-13 00:43:55 +00:00
get { return Header[HeaderKeys.AUTHOR]; }
2014-07-11 02:31:43 +00:00
set
{
if (Header[HeaderKeys.AUTHOR] != value)
{
Changes = true;
Header[HeaderKeys.AUTHOR] = value;
}
}
2014-06-13 00:15:55 +00:00
}
public string Core
{
2014-06-13 00:43:55 +00:00
get { return Header[HeaderKeys.CORE]; }
2014-07-11 02:31:43 +00:00
set
{
if (Header[HeaderKeys.CORE] != value)
{
Changes = true;
Header[HeaderKeys.CORE] = value;
}
}
2014-06-13 00:15:55 +00:00
}
public string BoardName
{
2014-06-13 00:43:55 +00:00
get { return Header[HeaderKeys.BOARDNAME]; }
2014-07-11 02:31:43 +00:00
set
{
if (Header[HeaderKeys.BOARDNAME] != value)
{
Changes = true;
Header[HeaderKeys.BOARDNAME] = value;
}
}
2014-06-13 00:15:55 +00:00
}
public string EmulatorVersion
{
2014-06-13 00:43:55 +00:00
get { return Header[HeaderKeys.EMULATIONVERSION]; }
2014-07-11 02:31:43 +00:00
set
{
if (Header[HeaderKeys.EMULATIONVERSION] != value)
{
Changes = true;
Header[HeaderKeys.EMULATIONVERSION] = value;
}
}
2014-06-13 00:15:55 +00:00
}
public string FirmwareHash
{
2014-06-13 00:43:55 +00:00
get { return Header[HeaderKeys.FIRMWARESHA1]; }
2014-07-11 02:31:43 +00:00
set
{
if (Header[HeaderKeys.FIRMWARESHA1] != value)
{
Changes = true;
Header[HeaderKeys.FIRMWARESHA1] = value;
}
}
2014-06-13 00:15:55 +00:00
}
2014-06-13 11:30:25 +00:00
2014-07-13 22:17:31 +00:00
protected int? LoopOffset
2014-06-14 18:52:00 +00:00
{
get
{
var offsetStr = Header[HeaderKeys.LOOPOFFSET];
if (!string.IsNullOrWhiteSpace(offsetStr))
{
return int.Parse(offsetStr);
}
return null;
}
set
{
if (value.HasValue)
{
Header[HeaderKeys.LOOPOFFSET] = value.ToString();
}
else
{
Header.Remove(HeaderKeys.LOOPOFFSET);
}
}
}
2014-07-07 18:03:02 +00:00
protected string CommentsString()
2014-06-13 11:30:25 +00:00
{
2014-06-29 03:03:27 +00:00
var sb = new StringBuilder();
2014-06-13 11:30:25 +00:00
foreach(var comment in Comments)
{
sb.AppendLine(comment);
}
return sb.ToString();
}
2014-06-20 00:39:46 +00:00
public string TextSavestate { get; set; }
public byte[] BinarySavestate { get; set; }
2014-10-27 01:14:47 +00:00
public int[] SavestateFramebuffer { get; set; }
public byte[] SaveRam { get; set; }
2014-06-13 00:15:55 +00:00
}
}