w32 - Tasedit - Allow requests to fast forward to frame past greenzone, and skip non-essential updates to improve speed.
This commit is contained in:
parent
eb504adb19
commit
4e3f25c906
|
@ -129,6 +129,9 @@ void UpdateTasEdit()
|
|||
turbo = false;
|
||||
}
|
||||
|
||||
if (turbo && (currFrameCounter &0xf))
|
||||
return;
|
||||
|
||||
//update the number of items
|
||||
int currLVItemCount = ListView_GetItemCount(hwndList);
|
||||
if(currMovieData.getNumRecords() != currLVItemCount)
|
||||
|
@ -248,10 +251,20 @@ bool JumpToFrame(int index)
|
|||
{
|
||||
if (index<0) return false;
|
||||
|
||||
/* Work only within the greenzone. */
|
||||
/* Handle jumps outside greenzone. */
|
||||
if (index>currMovieData.greenZoneCount)
|
||||
{
|
||||
return JumpToFrame(currMovieData.greenZoneCount);
|
||||
if (JumpToFrame(currMovieData.greenZoneCount))
|
||||
{
|
||||
if (FCEUI_EmulationPaused())
|
||||
FCEUI_ToggleEmulationPause();
|
||||
|
||||
turbo=currMovieData.greenZoneCount+60<index; // turbo unless close
|
||||
pauseframe=index+1;
|
||||
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
if (index<currMovieData.records.size() &&
|
||||
|
@ -267,7 +280,7 @@ bool JumpToFrame(int index)
|
|||
if (FCEUI_EmulationPaused())
|
||||
FCEUI_ToggleEmulationPause();
|
||||
|
||||
int i = index-1;
|
||||
int i = index>0? index-1:0;
|
||||
if (i>=currMovieData.records.size())
|
||||
i=currMovieData.records.size()-1;
|
||||
|
||||
|
@ -286,6 +299,7 @@ bool JumpToFrame(int index)
|
|||
|
||||
poweron(true);
|
||||
currFrameCounter=0;
|
||||
MovieData::dumpSavestateTo(&currMovieData.records[0].savestate,0);
|
||||
turbo = index>60;
|
||||
pauseframe=index+1;
|
||||
}
|
||||
|
@ -313,11 +327,7 @@ void DoubleClick(LPNMITEMACTIVATE info)
|
|||
//if the icon or frame columns were double clicked:
|
||||
if(info->iSubItem == 0 || info->iSubItem == 1)
|
||||
{
|
||||
//if the row is in the green zone, then move to it
|
||||
if(index < currMovieData.greenZoneCount)
|
||||
{
|
||||
JumpToFrame(index);
|
||||
}
|
||||
JumpToFrame(index);
|
||||
}
|
||||
else //if an input column was clicked:
|
||||
{
|
||||
|
|
|
@ -135,6 +135,8 @@ void MovieData::TryDumpIncremental()
|
|||
currMovieData.greenZoneCount++;
|
||||
} else if (currFrameCounter < currMovieData.greenZoneCount || !movie_readonly)
|
||||
{
|
||||
if (turbo && pauseframe-256>currFrameCounter && ((currFrameCounter-pauseframe)&0xff))
|
||||
return;
|
||||
MovieData::dumpSavestateTo(&currMovieData.records[currFrameCounter].savestate,Z_DEFAULT_COMPRESSION);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue