clean up movie saving, dont' pass around a streamwriter

This commit is contained in:
adelikat 2013-10-28 01:04:38 +00:00
parent 21bab46674
commit bef10dc175
4 changed files with 30 additions and 25 deletions

View File

@ -780,21 +780,27 @@ namespace BizHawk.Client.Common
WriteBinary(fs);
}
private void WriteText(Stream stream)
{
using (StreamWriter sw = new StreamWriter(stream))
{
Header.WriteText(sw);
sw.Write(Header.ToString());
//TODO: clean this up
if (_loopOffset >= 0)
if (_loopOffset.HasValue)
{
sw.WriteLine("LoopOffset " + _loopOffset.ToString());
}
Subtitles.WriteText(sw);
_log.WriteText(sw);
foreach (var subtitle in Subtitles)
{
sw.WriteLine(subtitle.ToString());
}
for (int i = 0; i < _log.Length; i++)
{
sw.WriteLine(_log[i]);
}
}
}

View File

@ -1,5 +1,6 @@
using System.Collections.Generic;
using System.IO;
using System.Text;
namespace BizHawk.Client.Common
{
@ -104,22 +105,36 @@ namespace BizHawk.Client.Common
HeaderParams[key] = value;
}
public void WriteText(StreamWriter sw)
public override string ToString()
{
StringBuilder sb = new StringBuilder();
foreach (KeyValuePair<string, string> kvp in HeaderParams)
{
sw.WriteLine(kvp.Key + " " + kvp.Value);
sb
.Append(kvp.Key)
.Append(' ')
.Append(kvp.Value)
.AppendLine();
}
foreach (KeyValuePair<string, string> kvp in BoardProperties)
{
sw.WriteLine(BOARDPROPERTIES + " " + kvp.Key + " " + kvp.Value);
sb
.Append(BOARDPROPERTIES)
.Append(' ')
.Append(kvp.Key)
.Append(' ')
.Append(kvp.Value)
.AppendLine();
}
foreach (string t in Comments)
{
sw.WriteLine(t);
sb.AppendLine(t);
}
return sb.ToString();
}
private string ParseHeader(string line, string headerName)

View File

@ -177,14 +177,6 @@ namespace BizHawk.Client.Common
}
}
public void WriteText(StreamWriter sw)
{
foreach (var record in _movie_records)
{
sw.WriteLine(record);
}
}
public void TruncateMovie(int frame)
{
if (frame < _movie_records.Count)

View File

@ -109,13 +109,5 @@ namespace BizHawk.Client.Common
_subtitles.RemoveAt(index);
}
public void WriteText(StreamWriter sw)
{
foreach(var subtitle in _subtitles)
{
sw.WriteLine(subtitle.ToString());
}
}
}
}