Implement Play Movie from beginning, add author & rerecord header params to file reading/writing code.

This commit is contained in:
andres.delikat 2011-05-12 21:00:04 +00:00
parent 67ae0cae5e
commit ca457d4ce3
4 changed files with 54 additions and 4 deletions

View File

@ -149,7 +149,11 @@ namespace BizHawk.MultiClient
private void playFromBeginningToolStripMenuItem_Click(object sender, EventArgs e)
{
if (InputLog.GetMovieMode() != MOVIEMODE.INACTIVE)
{
LoadRom(CurrentlyOpenRom);
UserMovie.StartPlayback();
}
}

View File

@ -1067,9 +1067,24 @@ namespace BizHawk.MultiClient
var reader = new StreamReader(path);
Global.Emulator.LoadStateText(reader);
//TODO: more logic regarding each movie mode
if (UserMovie.GetMovieMode() != MOVIEMODE.INACTIVE)
{
if (UserMovie.GetMovieMode() == MOVIEMODE.RECORD)
{
UserMovie.LoadLogFromSavestateText(reader);
UserMovie.
}
}
else
{
if (InputLog.GetMovieMode() == MOVIEMODE.RECORD)
InputLog.LoadLogFromSavestateText(reader);
}
reader.Close();
Global.RenderPanel.AddMessage("Loaded state: " + name);
}

View File

@ -175,6 +175,16 @@ namespace BizHawk.MultiClient
str = ParseHeader(str, MovieHeader.GAMENAME);
Header.AddHeaderLine(MovieHeader.GAMENAME, str);
}
else if (str.Contains(MovieHeader.RERECORDS))
{
str = ParseHeader(str, MovieHeader.RERECORDS);
Header.AddHeaderLine(MovieHeader.RERECORDS, str);
}
else if (str.Contains(MovieHeader.AUTHOR))
{
str = ParseHeader(str, MovieHeader.AUTHOR);
Header.AddHeaderLine(MovieHeader.AUTHOR, str);
}
else if (str[0] == '|')
{
Log.AddFrame(str);
@ -212,6 +222,7 @@ namespace BizHawk.MultiClient
{
continue;
}
//TODO: don't reiterate this entire if chain, make a function called by this and loadmovie
else if (str.Contains(MovieHeader.EMULATIONVERSION))
{
str = ParseHeader(str, MovieHeader.EMULATIONVERSION);
@ -232,6 +243,16 @@ namespace BizHawk.MultiClient
str = ParseHeader(str, MovieHeader.GAMENAME);
Header.AddHeaderLine(MovieHeader.GAMENAME, str);
}
else if (str.Contains(MovieHeader.RERECORDS))
{
str = ParseHeader(str, MovieHeader.RERECORDS);
Header.AddHeaderLine(MovieHeader.RERECORDS, str);
}
else if (str.Contains(MovieHeader.AUTHOR))
{
str = ParseHeader(str, MovieHeader.AUTHOR);
Header.AddHeaderLine(MovieHeader.AUTHOR, str);
}
else if (str[0] == '|')
{
break;
@ -287,5 +308,10 @@ namespace BizHawk.MultiClient
Log.AddFrame(line);
}
}
public void IncrementRerecordCount()
{
rerecordCount++;
}
}
}

View File

@ -59,6 +59,11 @@ namespace BizHawk.MultiClient
HeaderParams.Add(key, value);
}
public void UpdateRerecordCount(int count)
{
//TODO
}
public bool RemoveHeaderLine(string key)
{
return HeaderParams.Remove(key);