Taseditor: comply with movie.rerecordcounting() setting

This commit is contained in:
ansstuff 2013-04-07 13:02:59 +00:00
parent e64ebd4686
commit f645cc891e
3 changed files with 21 additions and 14 deletions

View File

@ -574,7 +574,7 @@ void GREENZONE::invalidate(int after)
if (greenzoneSize > after + 1) if (greenzoneSize > after + 1)
{ {
greenzoneSize = after + 1; greenzoneSize = after + 1;
currMovieData.rerecordCount++; FCEUMOV_IncrementRerecordCount();
} }
} }
// redraw Piano Roll even if Greenzone didn't change // redraw Piano Roll even if Greenzone didn't change
@ -594,7 +594,7 @@ void GREENZONE::invalidateAndUpdatePlayback(int after)
if (greenzoneSize > after + 1 || currFrameCounter > after) if (greenzoneSize > after + 1 || currFrameCounter > after)
{ {
greenzoneSize = after + 1; greenzoneSize = after + 1;
currMovieData.rerecordCount++; FCEUMOV_IncrementRerecordCount();
// either set Playback cursor to be inside the Greenzone or run seeking to restore Playback cursor position // either set Playback cursor to be inside the Greenzone or run seeking to restore Playback cursor position
if (currFrameCounter >= greenzoneSize) if (currFrameCounter >= greenzoneSize)
{ {

View File

@ -1353,9 +1353,9 @@ bool FCEUMOV_ReadState(EMUFILE* is, uint32 size)
// Finally, this is a savestate file for this movie // Finally, this is a savestate file for this movie
movieMode = MOVIEMODE_PLAY; movieMode = MOVIEMODE_PLAY;
} }
} } else
else //Read + write
{ {
//Read+Write mode
if (currFrameCounter > (int)tempMovieData.records.size()) if (currFrameCounter > (int)tempMovieData.records.size())
{ {
//This is a post movie savestate, handle it differently //This is a post movie savestate, handle it differently
@ -1364,20 +1364,15 @@ bool FCEUMOV_ReadState(EMUFILE* is, uint32 size)
openRecordingMovie(curMovieFilename); openRecordingMovie(curMovieFilename);
currMovieData.dump(osRecordingMovie, false/*currMovieData.binaryFlag*/); currMovieData.dump(osRecordingMovie, false/*currMovieData.binaryFlag*/);
FinishPlayback(); FinishPlayback();
} } else
else
{ {
//truncate before we copy, just to save some time, unless the user selects a full copy option //truncate before we copy, just to save some time, unless the user selects a full copy option
if (!fullSaveStateLoads) if (!fullSaveStateLoads)
tempMovieData.truncateAt(currFrameCounter); //we can only assume this here since we have checked that the frame counter is not greater than the movie data //we can only assume this here since we have checked that the frame counter is not greater than the movie data
tempMovieData.truncateAt(currFrameCounter);
currMovieData = tempMovieData; currMovieData = tempMovieData;
#ifdef _S9XLUA_H FCEUMOV_IncrementRerecordCount();
if(!FCEU_LuaRerecordCountSkip())
currRerecordCount++;
#else
currRerecordCount++;
#endif
currMovieData.rerecordCount = currRerecordCount;
openRecordingMovie(curMovieFilename); openRecordingMovie(curMovieFilename);
currMovieData.dump(osRecordingMovie, false/*currMovieData.binaryFlag*/); currMovieData.dump(osRecordingMovie, false/*currMovieData.binaryFlag*/);
movieMode = MOVIEMODE_RECORD; movieMode = MOVIEMODE_RECORD;
@ -1404,6 +1399,17 @@ bool FCEUMOV_PostLoad(void)
return load_successful; return load_successful;
} }
void FCEUMOV_IncrementRerecordCount()
{
#ifdef _S9XLUA_H
if(!FCEU_LuaRerecordCountSkip())
currRerecordCount++;
#else
currRerecordCount++;
#endif
currMovieData.rerecordCount = currRerecordCount;
}
void FCEUI_MovieToggleFrameDisplay(void) void FCEUI_MovieToggleFrameDisplay(void)
{ {
frame_display=!frame_display; frame_display=!frame_display;

View File

@ -88,6 +88,7 @@ int FCEUMOV_WriteState(EMUFILE* os);
bool FCEUMOV_ReadState(EMUFILE* is, uint32 size); bool FCEUMOV_ReadState(EMUFILE* is, uint32 size);
void FCEUMOV_PreLoad(); void FCEUMOV_PreLoad();
bool FCEUMOV_PostLoad(); bool FCEUMOV_PostLoad();
void FCEUMOV_IncrementRerecordCount();
bool FCEUMOV_FromPoweron(); bool FCEUMOV_FromPoweron();