* Tasedit: MsgBox about not working with movies starting from savestate
* Tasedit: Different font for marked Frame#, selection doesn't disappear when toggling Markers
This commit is contained in:
parent
fa6e05ece9
commit
d58dfe52bc
|
@ -283,7 +283,7 @@ BEGIN
|
|||
END
|
||||
POPUP "&Help"
|
||||
BEGIN
|
||||
MENUITEM "&TASEdit Help", ID_HELP_TASEDITHELP
|
||||
MENUITEM "&TAS Editor Help", ID_HELP_TASEDITHELP
|
||||
MENUITEM "&About", ID_HELP_ABOUT
|
||||
END
|
||||
END
|
||||
|
@ -819,7 +819,7 @@ CAPTION "Enter New Input"
|
|||
FONT 8, "MS Sans Serif", 0, 0, 0x0
|
||||
BEGIN
|
||||
PUSHBUTTON "Cancel",BTN_CANCEL,40,45,50,14
|
||||
CTEXT "Press a key",LBL_KEY_COMBO,47,14,90,12
|
||||
CTEXT "Press a key",LBL_KEY_COMBO,31,14,122,20
|
||||
PUSHBUTTON "Clear",BTN_CLEAR,95,45,50,14
|
||||
END
|
||||
|
||||
|
@ -1781,6 +1781,10 @@ BEGIN
|
|||
BOTTOMMARGIN, 191
|
||||
END
|
||||
|
||||
"MAPINPUT", DIALOG
|
||||
BEGIN
|
||||
END
|
||||
|
||||
"MESSAGELOG", DIALOG
|
||||
BEGIN
|
||||
BOTTOMMARGIN, 184
|
||||
|
@ -1794,6 +1798,10 @@ BEGIN
|
|||
BOTTOMMARGIN, 201
|
||||
END
|
||||
|
||||
"NEWINPUT", DIALOG
|
||||
BEGIN
|
||||
END
|
||||
|
||||
"PALCONFIG", DIALOG
|
||||
BEGIN
|
||||
LEFTMARGIN, 10
|
||||
|
|
|
@ -414,18 +414,14 @@
|
|||
#define MEMW_EDIT02FORMULA 1144
|
||||
#define IDC_BUTTON7 1145
|
||||
#define MEMW_EDIT03FORMULA 1145
|
||||
#define TASEDIT_REWIND_FULL2 1145
|
||||
#define TASEDIT_PREV_MARKER 1145
|
||||
#define IDC_BUTTON8 1146
|
||||
#define TASEDIT_REWIND_FULL3 1146
|
||||
#define TASEDIT_FIND_BEST_MARKER 1146
|
||||
#define IDC_EDIT1 1147
|
||||
#define IDC_BUTTON9 1148
|
||||
#define TASEDIT_REWIND_FULL4 1148
|
||||
#define TASEDIT_FIND_NEXT_MARKER 1148
|
||||
#define IDC_HISTORYLIST 1149
|
||||
#define IDC_BOOKMARKSLIST 1150
|
||||
#define TASEDIT_REWIND_FULL5 1151
|
||||
#define TASEDIT_NEXT_MARKER 1151
|
||||
#define IDC_BRANCHES_BUTTON 1152
|
||||
#define IDC_BRANCHES_BUTTON2 1153
|
||||
|
|
|
@ -65,7 +65,7 @@ bool TASEdit_jump_to_undo = true;
|
|||
// resources
|
||||
string tasedithelp = "{16CDE0C4-02B0-4A60-A88D-076319909A4D}"; //Name of TASEdit Help page
|
||||
char buttonNames[NUM_JOYPAD_BUTTONS][2] = {"A", "B", "S", "T", "U", "D", "L", "R"};
|
||||
char windowCaption[] = "TAS Editor";
|
||||
char windowCaptioBase[] = "TAS Editor";
|
||||
extern char recordingCaptions[5][30];
|
||||
|
||||
// enterframe function
|
||||
|
@ -87,21 +87,21 @@ void UpdateTasEdit()
|
|||
|
||||
void RedrawWindowCaption()
|
||||
{
|
||||
char windowCapt[300];
|
||||
strcpy(windowCapt, windowCaption);
|
||||
char new_caption[300];
|
||||
strcpy(new_caption, windowCaptioBase);
|
||||
if (!movie_readonly)
|
||||
strcat(windowCapt, recordingCaptions[recorder.multitrack_recording_joypad]);
|
||||
strcat(new_caption, recordingCaptions[recorder.multitrack_recording_joypad]);
|
||||
// add project name
|
||||
std::string projectname = project.GetProjectName();
|
||||
if (!projectname.empty())
|
||||
{
|
||||
strcat(windowCapt, " - ");
|
||||
strcat(windowCapt, projectname.c_str());
|
||||
strcat(new_caption, " - ");
|
||||
strcat(new_caption, projectname.c_str());
|
||||
}
|
||||
// and * if project has unsaved changes
|
||||
if (project.GetProjectChanged())
|
||||
strcat(windowCapt, "*");
|
||||
SetWindowText(hwndTasEdit, windowCapt);
|
||||
strcat(new_caption, "*");
|
||||
SetWindowText(hwndTasEdit, new_caption);
|
||||
}
|
||||
void RedrawTasedit()
|
||||
{
|
||||
|
@ -193,9 +193,7 @@ void SingleClick(LPNMITEMACTIVATE info)
|
|||
else
|
||||
history.RegisterChanges(MODTYPE_MARKER_UNSET, row_index);
|
||||
project.SetProjectChanged();
|
||||
// clear selection, so that new marker will be seen immediately
|
||||
selection.ClearSelection();
|
||||
// also no need to redraw row
|
||||
tasedit_list.RedrawRow(row_index);
|
||||
}
|
||||
}
|
||||
else if(column_index >= COLUMN_JOYPAD1_A && column_index <= COLUMN_JOYPAD4_R)
|
||||
|
@ -409,17 +407,22 @@ void ColumnSet(int column)
|
|||
{
|
||||
// set all
|
||||
for(SelectionFrames::iterator it(current_selection_begin); it != current_selection_end; it++)
|
||||
{
|
||||
markers.SetMarker(*it);
|
||||
tasedit_list.RedrawRow(*it);
|
||||
}
|
||||
history.RegisterChanges(MODTYPE_MARKER_SET, *current_selection_begin, *current_selection->rbegin());
|
||||
} else
|
||||
{
|
||||
// unset all
|
||||
for(SelectionFrames::iterator it(current_selection_begin); it != current_selection_end; it++)
|
||||
{
|
||||
markers.ClearMarker(*it);
|
||||
tasedit_list.RedrawRow(*it);
|
||||
}
|
||||
history.RegisterChanges(MODTYPE_MARKER_UNSET, *current_selection_begin, *current_selection->rbegin());
|
||||
}
|
||||
project.SetProjectChanged();
|
||||
selection.ClearSelection();
|
||||
// no need to RedrawList();
|
||||
} else
|
||||
{
|
||||
|
@ -441,9 +444,12 @@ void ColumnSet(int column)
|
|||
for(SelectionFrames::iterator it(current_selection_begin); it != current_selection_end; it++)
|
||||
currMovieData.records[*it].setBitValue(joy,button,newValue);
|
||||
if (newValue)
|
||||
{
|
||||
greenzone.InvalidateAndCheck(history.RegisterChanges(MODTYPE_SET, *current_selection_begin, *current_selection->rbegin()));
|
||||
else
|
||||
} else
|
||||
{
|
||||
greenzone.InvalidateAndCheck(history.RegisterChanges(MODTYPE_UNSET, *current_selection_begin, *current_selection->rbegin()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1376,9 +1382,17 @@ void EnterTasEdit()
|
|||
|
||||
SetWindowPos(hwndTasEdit, HWND_TOP, 0, 0, 0, 0, SWP_NOSIZE|SWP_NOMOVE|SWP_NOOWNERZORDER);
|
||||
// init modules
|
||||
FCEU_printf("1");
|
||||
greenzone.init();
|
||||
FCEU_printf("2");
|
||||
playback.init();
|
||||
// either start new movie or use current movie
|
||||
if (currMovieData.savestate.size() != 0)
|
||||
{
|
||||
FCEUD_PrintError("This version of TAS Editor doesn't work with movies starting from savestate.");
|
||||
// delete savestate, but preserve input
|
||||
currMovieData.savestate.clear();
|
||||
}
|
||||
if (FCEUMOV_Mode(MOVIEMODE_INACTIVE))
|
||||
{
|
||||
FCEUI_StopMovie();
|
||||
|
@ -1386,7 +1400,7 @@ void EnterTasEdit()
|
|||
playback.StartFromZero();
|
||||
} else
|
||||
{
|
||||
//use current movie to create a new project
|
||||
// use current movie to create a new project
|
||||
FCEUI_StopMovie();
|
||||
greenzone.TryDumpIncremental(lagFlag != 0);
|
||||
}
|
||||
|
|
|
@ -41,14 +41,6 @@ int corners_cursor_shift[BRANCHES_ANIMATION_FRAMES] = {0, 1, 2, 3, 4, 5, 5, 4, 3
|
|||
|
||||
BOOKMARKS::BOOKMARKS()
|
||||
{
|
||||
// create font
|
||||
hBookmarksFont = CreateFont(15, 10, /*Height,Width*/
|
||||
0, 0, /*escapement,orientation*/
|
||||
FW_BOLD, FALSE, FALSE, FALSE, /*weight, italic, underline, strikeout*/
|
||||
ANSI_CHARSET, OUT_DEVICE_PRECIS, CLIP_MASK, /*charset, precision, clipping*/
|
||||
DEFAULT_QUALITY, DEFAULT_PITCH, /*quality, and pitch*/
|
||||
"Courier"); /*font name*/
|
||||
|
||||
// fill TrackMouseEvent struct
|
||||
tme.cbSize = sizeof(tme);
|
||||
tme.dwFlags = TME_LEAVE;
|
||||
|
@ -851,7 +843,7 @@ LONG BOOKMARKS::CustomDraw(NMLVCUSTOMDRAW* msg)
|
|||
if (bookmarks_array[cell_y].not_empty)
|
||||
{
|
||||
// frame number
|
||||
SelectObject(msg->nmcd.hdc, hBookmarksFont);
|
||||
SelectObject(msg->nmcd.hdc, tasedit_list.hMainListFont);
|
||||
int frame = bookmarks_array[cell_y].snapshot.jump_frame;
|
||||
if (frame == currFrameCounter || frame == (playback.GetPauseFrame() - 1))
|
||||
{
|
||||
|
@ -882,7 +874,7 @@ LONG BOOKMARKS::CustomDraw(NMLVCUSTOMDRAW* msg)
|
|||
if (bookmarks_array[cell_y].not_empty)
|
||||
{
|
||||
// frame number
|
||||
SelectObject(msg->nmcd.hdc, hBookmarksFont);
|
||||
SelectObject(msg->nmcd.hdc, tasedit_list.hMainListFont);
|
||||
int frame = bookmarks_array[cell_y].snapshot.jump_frame;
|
||||
if (frame == currFrameCounter || frame == (playback.GetPauseFrame() - 1))
|
||||
{
|
||||
|
|
|
@ -33,18 +33,18 @@ TASEDIT_LIST::TASEDIT_LIST()
|
|||
{
|
||||
|
||||
// create fonts for main listview
|
||||
hMainListFont = CreateFont(15, 10, /*Height,Width*/
|
||||
0, 0, /*escapement,orientation*/
|
||||
FW_BOLD, FALSE, FALSE, FALSE, /*weight, italic, underline, strikeout*/
|
||||
ANSI_CHARSET, OUT_DEVICE_PRECIS, CLIP_MASK, /*charset, precision, clipping*/
|
||||
DEFAULT_QUALITY, DEFAULT_PITCH, /*quality, and pitch*/
|
||||
"Courier"); /*font name*/
|
||||
hMainListSelectFont = CreateFont(14, 7, /*Height,Width*/
|
||||
hMainListFont = CreateFont(14, 7, /*Height,Width*/
|
||||
0, 0, /*escapement,orientation*/
|
||||
FW_BOLD, FALSE, FALSE, FALSE, /*weight, italic, underline, strikeout*/
|
||||
ANSI_CHARSET, OUT_DEVICE_PRECIS, CLIP_MASK, /*charset, precision, clipping*/
|
||||
DEFAULT_QUALITY, DEFAULT_PITCH, /*quality, and pitch*/
|
||||
"Arial"); /*font name*/
|
||||
hMainListSelectFont = CreateFont(15, 10, /*Height,Width*/
|
||||
0, 0, /*escapement,orientation*/
|
||||
FW_BOLD, FALSE, FALSE, FALSE, /*weight, italic, underline, strikeout*/
|
||||
ANSI_CHARSET, OUT_DEVICE_PRECIS, CLIP_MASK, /*charset, precision, clipping*/
|
||||
DEFAULT_QUALITY, DEFAULT_PITCH, /*quality, and pitch*/
|
||||
"Courier New"); /*font name*/
|
||||
|
||||
}
|
||||
|
||||
|
@ -429,13 +429,12 @@ LONG TASEDIT_LIST::CustomDraw(NMLVCUSTOMDRAW* msg)
|
|||
|
||||
if(cell_x > COLUMN_ICONS)
|
||||
{
|
||||
SelectObject(msg->nmcd.hdc, hMainListFont);
|
||||
// text color
|
||||
if(TASEdit_enable_hot_changes && cell_x >= COLUMN_JOYPAD1_A && cell_x <= COLUMN_JOYPAD4_R)
|
||||
{
|
||||
msg->clrText = hot_changes_colors[history.GetCurrentSnapshot().GetHotChangeInfo(cell_y, cell_x - COLUMN_JOYPAD1_A)];
|
||||
} else msg->clrText = NORMAL_TEXT_COLOR;
|
||||
// bg color
|
||||
// bg color and text font
|
||||
if(cell_x == COLUMN_FRAMENUM || cell_x == COLUMN_FRAMENUM2)
|
||||
{
|
||||
// frame number
|
||||
|
@ -443,43 +442,59 @@ LONG TASEDIT_LIST::CustomDraw(NMLVCUSTOMDRAW* msg)
|
|||
{
|
||||
// undo hint here
|
||||
if(TASEdit_show_markers && markers.GetMarker(cell_y))
|
||||
{
|
||||
SelectObject(msg->nmcd.hdc, hMainListSelectFont);
|
||||
msg->clrTextBk = MARKED_UNDOHINT_FRAMENUM_COLOR;
|
||||
else
|
||||
} else
|
||||
{
|
||||
SelectObject(msg->nmcd.hdc, hMainListFont);
|
||||
msg->clrTextBk = UNDOHINT_FRAMENUM_COLOR;
|
||||
}
|
||||
} else if (cell_y == currFrameCounter || cell_y == (playback.GetPauseFrame() - 1))
|
||||
{
|
||||
// current frame
|
||||
if(TASEdit_show_markers && markers.GetMarker(cell_y))
|
||||
{
|
||||
// this frame is also marked
|
||||
SelectObject(msg->nmcd.hdc, hMainListSelectFont);
|
||||
msg->clrTextBk = CUR_MARKED_FRAMENUM_COLOR;
|
||||
else
|
||||
} else
|
||||
{
|
||||
SelectObject(msg->nmcd.hdc, hMainListFont);
|
||||
msg->clrTextBk = CUR_FRAMENUM_COLOR;
|
||||
}
|
||||
} else if(TASEdit_show_markers && markers.GetMarker(cell_y))
|
||||
{
|
||||
// marked frame
|
||||
SelectObject(msg->nmcd.hdc, hMainListSelectFont);
|
||||
msg->clrTextBk = MARKED_FRAMENUM_COLOR;
|
||||
} else if(cell_y < greenzone.greenZoneCount)
|
||||
} else
|
||||
{
|
||||
if (!greenzone.savestates[cell_y].empty())
|
||||
SelectObject(msg->nmcd.hdc, hMainListFont);
|
||||
if(cell_y < greenzone.greenZoneCount)
|
||||
{
|
||||
if (TASEdit_show_lag_frames && greenzone.lag_history[cell_y])
|
||||
msg->clrTextBk = LAG_FRAMENUM_COLOR;
|
||||
else
|
||||
msg->clrTextBk = GREENZONE_FRAMENUM_COLOR;
|
||||
} else if ((!greenzone.savestates[cell_y & EVERY16TH].empty() && (int)greenzone.savestates.size() > (cell_y | 0xF) + 1 && !greenzone.savestates[(cell_y | 0xF) + 1].empty())
|
||||
|| (!greenzone.savestates[cell_y & EVERY8TH].empty() && (int)greenzone.savestates.size() > (cell_y | 0x7) + 1 && !greenzone.savestates[(cell_y | 0x7) + 1].empty())
|
||||
|| (!greenzone.savestates[cell_y & EVERY4TH].empty() && (int)greenzone.savestates.size() > (cell_y | 0x3) + 1 && !greenzone.savestates[(cell_y | 0x3) + 1].empty())
|
||||
|| (!greenzone.savestates[cell_y & EVERY2ND].empty() && !greenzone.savestates[(cell_y | 0x1) + 1].empty()))
|
||||
{
|
||||
if (TASEdit_show_lag_frames && greenzone.lag_history[cell_y])
|
||||
msg->clrTextBk = PALE_LAG_FRAMENUM_COLOR;
|
||||
else
|
||||
msg->clrTextBk = PALE_GREENZONE_FRAMENUM_COLOR;
|
||||
if (!greenzone.savestates[cell_y].empty())
|
||||
{
|
||||
if (TASEdit_show_lag_frames && greenzone.lag_history[cell_y])
|
||||
msg->clrTextBk = LAG_FRAMENUM_COLOR;
|
||||
else
|
||||
msg->clrTextBk = GREENZONE_FRAMENUM_COLOR;
|
||||
} else if ((!greenzone.savestates[cell_y & EVERY16TH].empty() && (int)greenzone.savestates.size() > (cell_y | 0xF) + 1 && !greenzone.savestates[(cell_y | 0xF) + 1].empty())
|
||||
|| (!greenzone.savestates[cell_y & EVERY8TH].empty() && (int)greenzone.savestates.size() > (cell_y | 0x7) + 1 && !greenzone.savestates[(cell_y | 0x7) + 1].empty())
|
||||
|| (!greenzone.savestates[cell_y & EVERY4TH].empty() && (int)greenzone.savestates.size() > (cell_y | 0x3) + 1 && !greenzone.savestates[(cell_y | 0x3) + 1].empty())
|
||||
|| (!greenzone.savestates[cell_y & EVERY2ND].empty() && !greenzone.savestates[(cell_y | 0x1) + 1].empty()))
|
||||
{
|
||||
if (TASEdit_show_lag_frames && greenzone.lag_history[cell_y])
|
||||
msg->clrTextBk = PALE_LAG_FRAMENUM_COLOR;
|
||||
else
|
||||
msg->clrTextBk = PALE_GREENZONE_FRAMENUM_COLOR;
|
||||
} else msg->clrTextBk = NORMAL_FRAMENUM_COLOR;
|
||||
} else msg->clrTextBk = NORMAL_FRAMENUM_COLOR;
|
||||
} else msg->clrTextBk = NORMAL_FRAMENUM_COLOR;
|
||||
}
|
||||
} else if((cell_x - COLUMN_JOYPAD1_A) / NUM_JOYPAD_BUTTONS == 0 || (cell_x - COLUMN_JOYPAD1_A) / NUM_JOYPAD_BUTTONS == 2)
|
||||
{
|
||||
// pad 1 or 3
|
||||
SelectObject(msg->nmcd.hdc, hMainListFont);
|
||||
if (cell_y == history.GetUndoHint())
|
||||
{
|
||||
// undo hint here
|
||||
|
@ -510,6 +525,7 @@ LONG TASEDIT_LIST::CustomDraw(NMLVCUSTOMDRAW* msg)
|
|||
} else if((cell_x - COLUMN_JOYPAD1_A) / NUM_JOYPAD_BUTTONS == 1 || (cell_x - COLUMN_JOYPAD1_A) / NUM_JOYPAD_BUTTONS == 3)
|
||||
{
|
||||
// pad 2 or 4
|
||||
SelectObject(msg->nmcd.hdc, hMainListFont);
|
||||
if (cell_y == history.GetUndoHint())
|
||||
{
|
||||
// undo hint here
|
||||
|
|
|
@ -52,31 +52,31 @@
|
|||
|
||||
#define NORMAL_FRAMENUM_COLOR 0xFFFFFF
|
||||
#define NORMAL_INPUT_COLOR1 0xEDEDED
|
||||
#define NORMAL_INPUT_COLOR2 0xDEDEDE
|
||||
#define NORMAL_INPUT_COLOR2 0xE2E2E2
|
||||
|
||||
#define GREENZONE_FRAMENUM_COLOR 0xDDFFDD
|
||||
#define GREENZONE_INPUT_COLOR1 0xC8F7C4
|
||||
#define GREENZONE_INPUT_COLOR2 0xAEE2AE
|
||||
#define GREENZONE_INPUT_COLOR2 0xADE7AD
|
||||
|
||||
#define PALE_GREENZONE_FRAMENUM_COLOR 0xE4FFE4
|
||||
#define PALE_GREENZONE_INPUT_COLOR1 0xD5F9D4
|
||||
#define PALE_GREENZONE_INPUT_COLOR2 0xBAE6BA
|
||||
#define PALE_GREENZONE_INPUT_COLOR1 0xD3F9D2
|
||||
#define PALE_GREENZONE_INPUT_COLOR2 0xBAEBBA
|
||||
|
||||
#define LAG_FRAMENUM_COLOR 0xDBDAFF
|
||||
#define LAG_INPUT_COLOR1 0xCECBEF
|
||||
#define LAG_INPUT_COLOR2 0xBEBAE4
|
||||
#define LAG_FRAMENUM_COLOR 0xDDDCFF
|
||||
#define LAG_INPUT_COLOR1 0xD2D0F0
|
||||
#define LAG_INPUT_COLOR2 0xC9C6E8
|
||||
|
||||
#define PALE_LAG_FRAMENUM_COLOR 0xE1E1FF
|
||||
#define PALE_LAG_INPUT_COLOR1 0xD6D3F1
|
||||
#define PALE_LAG_INPUT_COLOR2 0xC7C4E8
|
||||
#define PALE_LAG_FRAMENUM_COLOR 0xE3E3FF
|
||||
#define PALE_LAG_INPUT_COLOR1 0xDADAF4
|
||||
#define PALE_LAG_INPUT_COLOR2 0xCFCEEA
|
||||
|
||||
#define CUR_FRAMENUM_COLOR 0xFCF1CE
|
||||
#define CUR_INPUT_COLOR1 0xF7E9B2
|
||||
#define CUR_INPUT_COLOR2 0xE4D8A8
|
||||
#define CUR_INPUT_COLOR1 0xF8EBB6
|
||||
#define CUR_INPUT_COLOR2 0xE6DDA5
|
||||
|
||||
#define UNDOHINT_FRAMENUM_COLOR 0xF9DDE6
|
||||
#define UNDOHINT_INPUT_COLOR1 0xF6CCDD
|
||||
#define UNDOHINT_INPUT_COLOR2 0xE5B7CC
|
||||
#define UNDOHINT_INPUT_COLOR1 0xF7D2E1
|
||||
#define UNDOHINT_INPUT_COLOR2 0xE9BED1
|
||||
|
||||
#define MARKED_FRAMENUM_COLOR 0xC0FCFF
|
||||
#define CUR_MARKED_FRAMENUM_COLOR 0xDEF7F3
|
||||
|
@ -113,14 +113,13 @@ public:
|
|||
|
||||
|
||||
HWND hwndList, hwndHeader;
|
||||
|
||||
// GDI stuff
|
||||
HIMAGELIST himglist;
|
||||
HFONT hMainListFont, hMainListSelectFont;
|
||||
|
||||
private:
|
||||
int listItems; // number of items per list page
|
||||
|
||||
|
||||
// GDI stuff
|
||||
HFONT hMainListFont, hMainListSelectFont;
|
||||
|
||||
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue