diff --git a/BizHawk.MultiClient/movie/Movie.cs b/BizHawk.MultiClient/movie/Movie.cs index 7c0f5cd879..b226bb6a5b 100644 --- a/BizHawk.MultiClient/movie/Movie.cs +++ b/BizHawk.MultiClient/movie/Movie.cs @@ -191,6 +191,11 @@ namespace BizHawk.MultiClient sw.WriteLine(kvp.Key + " " + kvp.Value); } + for (int x = 0; x < Subtitles.Count(); x++) + { + sw.WriteLine(Subtitles.GetSubtitleText(x)); + } + for (int x = 0; x < length; x++) { sw.WriteLine(Log.GetFrame(x)); diff --git a/BizHawk.MultiClient/movie/SubtitleList.cs b/BizHawk.MultiClient/movie/SubtitleList.cs index 570b42dd70..7af9f57a79 100644 --- a/BizHawk.MultiClient/movie/SubtitleList.cs +++ b/BizHawk.MultiClient/movie/SubtitleList.cs @@ -33,6 +33,25 @@ namespace BizHawk.MultiClient return subs[index]; } + public string GetSubtitleText(int index) + { + if (index >= subs.Count || index < 0) return ""; + + StringBuilder sb = new StringBuilder("subtitle "); + sb.Append(subs[index].Frame.ToString()); + sb.Append(" "); + sb.Append(subs[index].X.ToString()); + sb.Append(" "); + sb.Append(subs[index].Y.ToString()); + sb.Append(" "); + sb.Append(subs[index].Duration.ToString()); + sb.Append(" "); + sb.Append(subs[index].Color.ToString()); + sb.Append(" "); + sb.Append(subs[index].Message); + return sb.ToString(); + } + /// /// Manages the logic of what subtitle should be displayed on any given frame based on frame & duration ///