movie.cpp, tasedit.cpp, tasedit.h: Invalidate greenzone when re-recording earlier portions of a movie.

condebug.cpp: Fix comments to match code.
This commit is contained in:
mart0258 2010-11-06 06:01:57 +00:00
parent a6bcf003d5
commit d8f2b333b7
5 changed files with 31 additions and 13 deletions

View File

@ -1,3 +1,4 @@
11-nov-2010 - mart0258 - TasEdit - Invalidate greenzone when re-recording earlier portions of a movie.
09-oct-2010 - zeromus - fix bug in new ppu that made some intensify bits not get applied to output (fixes flashing siren screen in werefolf
09-oct-2010 - gocha - win32 - Ram Watch - fix the multiple selection of watches
09-oct-2010 - gocha - Win32 - Ram Search - multiple selection of addresses, fix restoration of the selection range

View File

@ -31,7 +31,7 @@
* Compare -> Sum {('==' | '!=' | '<=' | '>=' | '<' | '>') Sum}
* Sum -> Product {('+' | '-') Product}
* Product -> Primitive {('*' | '/') Primitive}
* Primitive -> Number | Address | Register | Flag | '(' Connect ')'
* Primitive -> Number | Address | Register | Flag | PC Bank | '(' Connect ')'
* Number -> '#' [1-9A-F]*
* Address -> '$' [1-9A-F]* | '$' '[' Connect ']'
* Register -> 'A' | 'X' | 'Y' | 'R'
@ -228,7 +228,7 @@ Condition* Primitive(const char** str, Condition* c)
return c;
}
else if (isBank(next)) /* Registers */
else if (isBank(next)) /* PC Bank */
{
if (c->type1 == TYPE_NO)
{
@ -322,9 +322,9 @@ Condition* Primitive(const char** str, Condition* c)
Condition* Term(const char** str)
{
Condition* t;
Condition* t1;
Condition* t1;
Condition* mid;
t = (Condition*)FCEU_dmalloc(sizeof(Condition));
if (!t)
return NULL;

View File

@ -262,7 +262,7 @@ bool JumpToFrame(int index)
/* Handle jumps outside greenzone. */
if (index>currMovieData.greenZoneCount)
{
if (JumpToFrame(currMovieData.greenZoneCount))
if (JumpToFrame(currMovieData.greenZoneCount-1))
{
if (FCEUI_EmulationPaused())
FCEUI_ToggleEmulationPause();
@ -278,8 +278,8 @@ bool JumpToFrame(int index)
if (static_cast<unsigned int>(index)<currMovieData.records.size() &&
currMovieData.loadTasSavestate(index))
{
currFrameCounter = index;
return true;
currFrameCounter = index;
return true;
}
else
{
@ -357,7 +357,6 @@ void DoubleClick(LPNMITEMACTIVATE info)
currMovieData.records[index].toggleBit(joy,bit);
ListView_Update(hwndList,index);
}
InvalidateGreenZone(index);
@ -970,6 +969,23 @@ static void Export()
}
}
static void Truncate()
{
int frame = currFrameCounter;
if (selectionFrames.size()>0)
{
frame=*selectionFrames.begin();
JumpToFrame(frame);
}
currMovieData.truncateAt(frame+1);
InvalidateGreenZone(frame);
currMovieData.TryDumpIncremental();
UpdateTasEdit();
}
//likewise, handles a changed item range from the listview
static void ItemRangeChanged(NMLVODSTATECHANGE* info)
{
@ -1156,11 +1172,7 @@ BOOL CALLBACK WndprocTasEdit(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPar
case ID_CONTEXT_SELECTED_TRUNCATE:
case ID_CONTEXT_STRAY_TRUNCATE:
case IDC_HACKY1:
//hacky1: delete all items after the current selection
currMovieData.truncateAt(currFrameCounter+1);
InvalidateGreenZone(currFrameCounter);
currMovieData.TryDumpIncremental();
UpdateTasEdit();
Truncate();
break;
case IDC_HACKY2:

View File

@ -3,3 +3,4 @@
void DoTasEdit();
void UpdateTasEdit();
void CreateProject(MovieData data);
void InvalidateGreenZone(int after);

View File

@ -1113,6 +1113,10 @@ void FCEUMOV_AddInputState()
}
else
{
if (currMovieData.greenZoneCount>currFrameCounter+1)
{
InvalidateGreenZone(currFrameCounter);
}
joyports[0].log(mr);
joyports[1].log(mr);
mr->commands = 0;