* Tasedit: Export dialog: "Convert Marker Notes to Movie Subtitles"
* Tasedit: Recording checkbox instead of radiobutton * Tasedit: Config->Use Input keys for ColumnSet * Tasedit: disabled Visual Themes for listview header, listview header lights * Tasedit: Config->Empty new Marker Notes * Tasedit: icon
This commit is contained in:
parent
703ab3d752
commit
306b8a5278
|
@ -76,10 +76,12 @@ extern bool TASEdit_show_markers;
|
||||||
extern bool TASEdit_show_branch_screenshots;
|
extern bool TASEdit_show_branch_screenshots;
|
||||||
extern bool TASEdit_show_branch_tooltips;
|
extern bool TASEdit_show_branch_tooltips;
|
||||||
extern bool TASEdit_bind_markers;
|
extern bool TASEdit_bind_markers;
|
||||||
extern bool TASEdit_use_1p_rec;
|
extern bool TASEdit_empty_marker_notes;
|
||||||
extern bool TASEdit_combine_consecutive_rec;
|
extern bool TASEdit_combine_consecutive_rec;
|
||||||
extern bool TASEdit_superimpose_affects_paste;
|
extern bool TASEdit_use_1p_rec;
|
||||||
|
extern bool TASEdit_columnset_by_keys;
|
||||||
extern bool TASEdit_keyboard_for_listview;
|
extern bool TASEdit_keyboard_for_listview;
|
||||||
|
extern bool TASEdit_superimpose_affects_paste;
|
||||||
extern bool TASEdit_branch_full_movie;
|
extern bool TASEdit_branch_full_movie;
|
||||||
extern bool TASEdit_branch_only_when_rec;
|
extern bool TASEdit_branch_only_when_rec;
|
||||||
extern bool TASEdit_view_branches_tree;
|
extern bool TASEdit_view_branches_tree;
|
||||||
|
@ -93,6 +95,7 @@ extern int TASEdit_autosave_period;
|
||||||
extern bool TASEdit_jump_to_undo;
|
extern bool TASEdit_jump_to_undo;
|
||||||
extern bool TASEdit_follow_note_context;
|
extern bool TASEdit_follow_note_context;
|
||||||
extern int TASEdit_last_export_type;
|
extern int TASEdit_last_export_type;
|
||||||
|
extern bool TASEdit_last_export_subtitles;
|
||||||
extern bool TASEdit_savecompact_binary;
|
extern bool TASEdit_savecompact_binary;
|
||||||
extern bool TASEdit_savecompact_markers;
|
extern bool TASEdit_savecompact_markers;
|
||||||
extern bool TASEdit_savecompact_bookmarks;
|
extern bool TASEdit_savecompact_bookmarks;
|
||||||
|
@ -336,10 +339,12 @@ static CFGSTRUCT fceuconfig[] = {
|
||||||
AC(TASEdit_show_branch_screenshots),
|
AC(TASEdit_show_branch_screenshots),
|
||||||
AC(TASEdit_show_branch_tooltips),
|
AC(TASEdit_show_branch_tooltips),
|
||||||
AC(TASEdit_bind_markers),
|
AC(TASEdit_bind_markers),
|
||||||
AC(TASEdit_use_1p_rec),
|
AC(TASEdit_empty_marker_notes),
|
||||||
AC(TASEdit_combine_consecutive_rec),
|
AC(TASEdit_combine_consecutive_rec),
|
||||||
AC(TASEdit_superimpose_affects_paste),
|
AC(TASEdit_use_1p_rec),
|
||||||
|
AC(TASEdit_columnset_by_keys),
|
||||||
AC(TASEdit_keyboard_for_listview),
|
AC(TASEdit_keyboard_for_listview),
|
||||||
|
AC(TASEdit_superimpose_affects_paste),
|
||||||
AC(TASEdit_branch_full_movie),
|
AC(TASEdit_branch_full_movie),
|
||||||
AC(TASEdit_branch_only_when_rec),
|
AC(TASEdit_branch_only_when_rec),
|
||||||
AC(TASEdit_view_branches_tree),
|
AC(TASEdit_view_branches_tree),
|
||||||
|
@ -353,6 +358,7 @@ static CFGSTRUCT fceuconfig[] = {
|
||||||
AC(TASEdit_jump_to_undo),
|
AC(TASEdit_jump_to_undo),
|
||||||
AC(TASEdit_follow_note_context),
|
AC(TASEdit_follow_note_context),
|
||||||
AC(TASEdit_last_export_type),
|
AC(TASEdit_last_export_type),
|
||||||
|
AC(TASEdit_last_export_subtitles),
|
||||||
AC(TASEdit_savecompact_binary),
|
AC(TASEdit_savecompact_binary),
|
||||||
AC(TASEdit_savecompact_markers),
|
AC(TASEdit_savecompact_markers),
|
||||||
AC(TASEdit_savecompact_bookmarks),
|
AC(TASEdit_savecompact_bookmarks),
|
||||||
|
|
|
@ -25,6 +25,7 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
|
||||||
|
|
||||||
// Icon with lowest ID value placed first to ensure application icon
|
// Icon with lowest ID value placed first to ensure application icon
|
||||||
// remains consistent on all systems.
|
// remains consistent on all systems.
|
||||||
|
IDI_ICON3 ICON "res\\tasedit-icon.ico"
|
||||||
ICON_1 ICON "res/ICON_1.ico"
|
ICON_1 ICON "res/ICON_1.ico"
|
||||||
ICON_2 ICON "res/ICON_2.ico"
|
ICON_2 ICON "res/ICON_2.ico"
|
||||||
|
|
||||||
|
@ -276,11 +277,14 @@ BEGIN
|
||||||
MENUITEM "&HUD in Branch screenshots", ID_CONFIG_HUDINBRANCHSCREENSHOTS
|
MENUITEM "&HUD in Branch screenshots", ID_CONFIG_HUDINBRANCHSCREENSHOTS
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "&Bind Markers to Input", ID_CONFIG_BINDMARKERSTOINPUT
|
MENUITEM "&Bind Markers to Input", ID_CONFIG_BINDMARKERSTOINPUT
|
||||||
|
MENUITEM "&Empty new Marker Notes", ID_CONFIG_EMPTYNEWMARKERNOTES
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "&Combine consecutive Recordings", ID_CONFIG_COMBINECONSECUTIVERECORDINGS
|
MENUITEM "&Combine consecutive Recordings", ID_CONFIG_COMBINECONSECUTIVERECORDINGS
|
||||||
MENUITEM "&Use 1P keys for all single Recordings", ID_CONFIG_USE1PFORRECORDING
|
MENUITEM "&Use 1P keys for all single Recordings", ID_CONFIG_USE1PFORRECORDING
|
||||||
MENUITEM "&Superimpose affects copy/paste", ID_CONFIG_SUPERIMPOSE_AFFECTS_PASTE
|
MENUITEM "Use &Input keys for ColumnSet", ID_CONFIG_USEINPUTKEYSFORCOLUMNSET
|
||||||
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "Allow &keyboard controls in Listview", ID_CONFIG_KEYBOARDCONTROLSINLISTVIEW
|
MENUITEM "Allow &keyboard controls in Listview", ID_CONFIG_KEYBOARDCONTROLSINLISTVIEW
|
||||||
|
MENUITEM "&Superimpose affects copy/paste", ID_CONFIG_SUPERIMPOSE_AFFECTS_PASTE
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "Mute &Turbo", ID_CONFIG_MUTETURBO
|
MENUITEM "Mute &Turbo", ID_CONFIG_MUTETURBO
|
||||||
END
|
END
|
||||||
|
@ -1394,13 +1398,12 @@ BEGIN
|
||||||
GROUPBOX " Bookmarks ",IDC_BOOKMARKS_BOX,310,150,123,103,BS_CENTER,WS_EX_RIGHT
|
GROUPBOX " Bookmarks ",IDC_BOOKMARKS_BOX,310,150,123,103,BS_CENTER,WS_EX_RIGHT
|
||||||
CONTROL "",IDC_BOOKMARKSLIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_ALIGNLEFT | LVS_OWNERDATA | LVS_NOSCROLL | LVS_NOCOLUMNHEADER | LVS_NOSORTHEADER | NOT WS_VISIBLE | WS_BORDER,315,160,113,89
|
CONTROL "",IDC_BOOKMARKSLIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_ALIGNLEFT | LVS_OWNERDATA | LVS_NOSCROLL | LVS_NOCOLUMNHEADER | LVS_NOSORTHEADER | NOT WS_VISIBLE | WS_BORDER,315,160,113,89
|
||||||
CONTROL "",IDC_HISTORYLIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_NOLABELWRAP | LVS_ALIGNLEFT | LVS_OWNERDATA | LVS_NOCOLUMNHEADER | LVS_NOSORTHEADER | WS_BORDER,315,265,113,102
|
CONTROL "",IDC_HISTORYLIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_NOLABELWRAP | LVS_ALIGNLEFT | LVS_OWNERDATA | LVS_NOCOLUMNHEADER | LVS_NOSORTHEADER | WS_BORDER,315,265,113,102
|
||||||
CONTROL " OFF",IDC_RADIO1,"Button",BS_AUTORADIOBUTTON,316,74,27,10
|
CONTROL " All",IDC_RADIO2,"Button",BS_AUTORADIOBUTTON,316,86,27,10
|
||||||
CONTROL " ON",IDC_RADIO2,"Button",BS_AUTORADIOBUTTON,316,87,27,10
|
CONTROL " 1P",IDC_RADIO3,"Button",BS_AUTORADIOBUTTON,372,86,25,10
|
||||||
CONTROL " 1P",IDC_RADIO3,"Button",BS_AUTORADIOBUTTON,373,74,25,10
|
CONTROL " 2P",IDC_RADIO4,"Button",BS_AUTORADIOBUTTON,402,86,24,10
|
||||||
CONTROL " 2P",IDC_RADIO4,"Button",BS_AUTORADIOBUTTON,402,74,23,10
|
CONTROL " 3P",IDC_RADIO5,"Button",BS_AUTORADIOBUTTON | WS_DISABLED,372,98,25,10
|
||||||
CONTROL " 3P",IDC_RADIO5,"Button",BS_AUTORADIOBUTTON | WS_DISABLED,373,87,25,10
|
CONTROL " 4P",IDC_RADIO6,"Button",BS_AUTORADIOBUTTON | WS_DISABLED,402,98,24,10
|
||||||
CONTROL " 4P",IDC_RADIO6,"Button",BS_AUTORADIOBUTTON | WS_DISABLED,402,87,23,10
|
CONTROL " Superimpose",IDC_SUPERIMPOSE,"Button",BS_AUTO3STATE,372,74,55,10
|
||||||
CONTROL " Superimpose",IDC_SUPERIMPOSE,"Button",BS_AUTO3STATE,316,100,56,10
|
|
||||||
GROUPBOX " History ",IDC_STATIC,310,255,123,116,BS_CENTER,WS_EX_RIGHT
|
GROUPBOX " History ",IDC_STATIC,310,255,123,116,BS_CENTER,WS_EX_RIGHT
|
||||||
EDITTEXT IDC_SELECTION_MARKER_EDIT,65,377,240,13,ES_READONLY | NOT WS_TABSTOP
|
EDITTEXT IDC_SELECTION_MARKER_EDIT,65,377,240,13,ES_READONLY | NOT WS_TABSTOP
|
||||||
PUSHBUTTON "<<",TASEDIT_PREV_MARKER,315,376,23,14,NOT WS_TABSTOP
|
PUSHBUTTON "<<",TASEDIT_PREV_MARKER,315,376,23,14,NOT WS_TABSTOP
|
||||||
|
@ -1415,18 +1418,21 @@ BEGIN
|
||||||
CONTROL "",IDC_TEXT_SELECTION_BUTTON,"Button",BS_OWNERDRAW,315,121,113,12
|
CONTROL "",IDC_TEXT_SELECTION_BUTTON,"Button",BS_OWNERDRAW,315,121,113,12
|
||||||
LTEXT "Selection: 0 rows, 16 columns",IDC_TEXT_SELECTION,316,123,114,10
|
LTEXT "Selection: 0 rows, 16 columns",IDC_TEXT_SELECTION,316,123,114,10
|
||||||
LTEXT "Clipboard: 0 rows, 16 columns",IDC_TEXT_CLIPBOARD,316,134,114,10
|
LTEXT "Clipboard: 0 rows, 16 columns",IDC_TEXT_CLIPBOARD,316,134,114,10
|
||||||
|
CONTROL " Recording",IDC_RECORDING,"Button",BS_AUTO3STATE,316,74,49,10
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_TASEDIT_EXPORT DIALOGEX 0, 0, 122, 73
|
IDD_TASEDIT_EXPORT DIALOGEX 0, 0, 158, 86
|
||||||
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||||
CAPTION "Export to FM2"
|
CAPTION "Export to FM2"
|
||||||
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
||||||
BEGIN
|
BEGIN
|
||||||
DEFPUSHBUTTON "Export",IDOK,7,52,50,14
|
DEFPUSHBUTTON "Export",IDOK,7,66,50,14
|
||||||
PUSHBUTTON "Cancel",IDCANCEL,65,52,50,14
|
PUSHBUTTON "Cancel",IDCANCEL,100,66,50,14
|
||||||
CONTROL " 1 player",IDC_RADIO_1PLAYER,"Button",BS_AUTORADIOBUTTON,36,8,49,10
|
CONTROL " 1 player",IDC_RADIO_1PLAYER,"Button",BS_AUTORADIOBUTTON,8,8,47,10
|
||||||
CONTROL " 2 players",IDC_RADIO_2PLAYERS,"Button",BS_AUTORADIOBUTTON,36,21,49,10
|
CONTROL " 2 players",IDC_RADIO_2PLAYERS,"Button",BS_AUTORADIOBUTTON,8,21,47,10
|
||||||
CONTROL " Fourscore",IDC_RADIO_FOURSCORE,"Button",BS_AUTORADIOBUTTON,36,35,47,10
|
CONTROL " Fourscore",IDC_RADIO_FOURSCORE,"Button",BS_AUTORADIOBUTTON,8,35,47,10
|
||||||
|
CONTROL " Convert Marker Notes to Movie Subtitles",IDC_NOTES_TO_SUBTITLES,
|
||||||
|
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,50,141,10
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_TASEDIT_SAVECOMPACT DIALOGEX 0, 0, 122, 134
|
IDD_TASEDIT_SAVECOMPACT DIALOGEX 0, 0, 122, 134
|
||||||
|
@ -1885,6 +1891,10 @@ BEGIN
|
||||||
BOTTOMMARGIN, 121
|
BOTTOMMARGIN, 121
|
||||||
END
|
END
|
||||||
|
|
||||||
|
"ROMPATCHER", DIALOG
|
||||||
|
BEGIN
|
||||||
|
END
|
||||||
|
|
||||||
"GGCONV", DIALOG
|
"GGCONV", DIALOG
|
||||||
BEGIN
|
BEGIN
|
||||||
END
|
END
|
||||||
|
@ -1917,6 +1927,7 @@ BEGIN
|
||||||
|
|
||||||
"TASEDIT", DIALOG
|
"TASEDIT", DIALOG
|
||||||
BEGIN
|
BEGIN
|
||||||
|
RIGHTMARGIN, 433
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_TASEDIT_EXPORT, DIALOG
|
IDD_TASEDIT_EXPORT, DIALOG
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 1.4 KiB |
|
@ -183,6 +183,7 @@
|
||||||
#define IDD_TASEDIT_EXPORT 185
|
#define IDD_TASEDIT_EXPORT 185
|
||||||
#define IDD_TASEDIT_SAVECOMPACT 186
|
#define IDD_TASEDIT_SAVECOMPACT 186
|
||||||
#define IDD_TASEDIT_BRANCH_NOTE 188
|
#define IDD_TASEDIT_BRANCH_NOTE 188
|
||||||
|
#define IDI_ICON3 197
|
||||||
#define MENU_RESET 200
|
#define MENU_RESET 200
|
||||||
#define BUTTON_ROMS 200
|
#define BUTTON_ROMS 200
|
||||||
#define TXT_PAD1 200
|
#define TXT_PAD1 200
|
||||||
|
@ -469,10 +470,12 @@
|
||||||
#define IDC_FULLSAVESTATES 1203
|
#define IDC_FULLSAVESTATES 1203
|
||||||
#define IDC_SUPERIMPOSE 1203
|
#define IDC_SUPERIMPOSE 1203
|
||||||
#define IDC_CHECK_BINARY 1203
|
#define IDC_CHECK_BINARY 1203
|
||||||
|
#define IDC_NOTES_TO_SUBTITLES 1203
|
||||||
#define IDC_VOLUMEGROUP 1204
|
#define IDC_VOLUMEGROUP 1204
|
||||||
#define IDC_OMITBLANK 1204
|
#define IDC_OMITBLANK 1204
|
||||||
#define IDC_CHECK3 1204
|
#define IDC_CHECK3 1204
|
||||||
#define IDC_CHECK_MARKERS 1204
|
#define IDC_CHECK_MARKERS 1204
|
||||||
|
#define IDC_RECORDING 1204
|
||||||
#define IDC_RAMLIST 1205
|
#define IDC_RAMLIST 1205
|
||||||
#define IDC_CHECK4 1205
|
#define IDC_CHECK4 1205
|
||||||
#define IDC_CHECK_BOOKMARKS 1205
|
#define IDC_CHECK_BOOKMARKS 1205
|
||||||
|
@ -948,6 +951,8 @@
|
||||||
#define ID_ACCELERATOR40506 40506
|
#define ID_ACCELERATOR40506 40506
|
||||||
#define ID_VIEW_FOLLOWMARKERNOTECONTEXT 40507
|
#define ID_VIEW_FOLLOWMARKERNOTECONTEXT 40507
|
||||||
#define ID_VIEW_SHOWBRANCHTOOLTIPS 40508
|
#define ID_VIEW_SHOWBRANCHTOOLTIPS 40508
|
||||||
|
#define ID_CONFIG_USEINPUTKEYSFORCOLUMNSET 40509
|
||||||
|
#define ID_CONFIG_EMPTYNEWMARKERNOTES 40510
|
||||||
#define IDC_DEBUGGER_ICONTRAY 55535
|
#define IDC_DEBUGGER_ICONTRAY 55535
|
||||||
#define MW_ValueLabel2 65423
|
#define MW_ValueLabel2 65423
|
||||||
#define MW_ValueLabel1 65426
|
#define MW_ValueLabel1 65426
|
||||||
|
@ -956,8 +961,8 @@
|
||||||
//
|
//
|
||||||
#ifdef APSTUDIO_INVOKED
|
#ifdef APSTUDIO_INVOKED
|
||||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||||
#define _APS_NEXT_RESOURCE_VALUE 189
|
#define _APS_NEXT_RESOURCE_VALUE 198
|
||||||
#define _APS_NEXT_COMMAND_VALUE 40509
|
#define _APS_NEXT_COMMAND_VALUE 40511
|
||||||
#define _APS_NEXT_CONTROL_VALUE 1273
|
#define _APS_NEXT_CONTROL_VALUE 1273
|
||||||
#define _APS_NEXT_SYMED_VALUE 101
|
#define _APS_NEXT_SYMED_VALUE 101
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -49,10 +49,12 @@ bool TASEdit_show_markers = true;
|
||||||
bool TASEdit_show_branch_screenshots = true;
|
bool TASEdit_show_branch_screenshots = true;
|
||||||
bool TASEdit_show_branch_tooltips = true;
|
bool TASEdit_show_branch_tooltips = true;
|
||||||
bool TASEdit_bind_markers = true;
|
bool TASEdit_bind_markers = true;
|
||||||
bool TASEdit_use_1p_rec = true;
|
bool TASEdit_empty_marker_notes = true;
|
||||||
bool TASEdit_combine_consecutive_rec = true;
|
bool TASEdit_combine_consecutive_rec = true;
|
||||||
bool TASEdit_superimpose_affects_paste = true;
|
bool TASEdit_use_1p_rec = true;
|
||||||
|
bool TASEdit_columnset_by_keys = true;
|
||||||
bool TASEdit_keyboard_for_listview = true;
|
bool TASEdit_keyboard_for_listview = true;
|
||||||
|
bool TASEdit_superimpose_affects_paste = true;
|
||||||
int TASEdit_superimpose = BST_UNCHECKED;
|
int TASEdit_superimpose = BST_UNCHECKED;
|
||||||
bool TASEdit_branch_full_movie = true;
|
bool TASEdit_branch_full_movie = true;
|
||||||
bool TASEdit_branch_only_when_rec = false;
|
bool TASEdit_branch_only_when_rec = false;
|
||||||
|
@ -67,6 +69,7 @@ bool TASEdit_enable_hot_changes = true;
|
||||||
bool TASEdit_jump_to_undo = true;
|
bool TASEdit_jump_to_undo = true;
|
||||||
bool TASEdit_follow_note_context = true;
|
bool TASEdit_follow_note_context = true;
|
||||||
int TASEdit_last_export_type = EXPORT_TYPE_1P;
|
int TASEdit_last_export_type = EXPORT_TYPE_1P;
|
||||||
|
bool TASEdit_last_export_subtitles = false;
|
||||||
bool TASEdit_savecompact_binary = true;
|
bool TASEdit_savecompact_binary = true;
|
||||||
bool TASEdit_savecompact_markers = true;
|
bool TASEdit_savecompact_markers = true;
|
||||||
bool TASEdit_savecompact_bookmarks = true;
|
bool TASEdit_savecompact_bookmarks = true;
|
||||||
|
@ -86,17 +89,18 @@ string tasedithelp = "{16CDE0C4-02B0-4A60-A88D-076319909A4D}"; //Name of TAS Edi
|
||||||
char buttonNames[NUM_JOYPAD_BUTTONS][2] = {"A", "B", "S", "T", "U", "D", "L", "R"};
|
char buttonNames[NUM_JOYPAD_BUTTONS][2] = {"A", "B", "S", "T", "U", "D", "L", "R"};
|
||||||
char windowCaptioBase[] = "TAS Editor";
|
char windowCaptioBase[] = "TAS Editor";
|
||||||
extern char recordingCaptions[5][30];
|
extern char recordingCaptions[5][30];
|
||||||
|
HICON hTaseditorIcon = 0;
|
||||||
|
|
||||||
// enterframe function
|
// enterframe function
|
||||||
void UpdateTasEdit()
|
void UpdateTasEdit()
|
||||||
{
|
{
|
||||||
if(!hwndTasEdit) return;
|
if(!hwndTasEdit) return;
|
||||||
|
|
||||||
|
recorder.update();
|
||||||
tasedit_list.update();
|
tasedit_list.update();
|
||||||
current_markers.update();
|
current_markers.update();
|
||||||
greenzone.update();
|
greenzone.update();
|
||||||
playback.update();
|
playback.update();
|
||||||
recorder.update();
|
|
||||||
bookmarks.update();
|
bookmarks.update();
|
||||||
screenshot_display.update();
|
screenshot_display.update();
|
||||||
selection.update();
|
selection.update();
|
||||||
|
@ -226,7 +230,6 @@ void SingleClick(LPNMITEMACTIVATE info)
|
||||||
history.RegisterMarkersChange(MODTYPE_MARKER_SET, row_index);
|
history.RegisterMarkersChange(MODTYPE_MARKER_SET, row_index);
|
||||||
else
|
else
|
||||||
history.RegisterMarkersChange(MODTYPE_MARKER_UNSET, row_index);
|
history.RegisterMarkersChange(MODTYPE_MARKER_UNSET, row_index);
|
||||||
project.SetProjectChanged();
|
|
||||||
tasedit_list.RedrawRow(row_index);
|
tasedit_list.RedrawRow(row_index);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -487,8 +490,8 @@ void FrameColumnSet()
|
||||||
}
|
}
|
||||||
if (changes_made)
|
if (changes_made)
|
||||||
{
|
{
|
||||||
project.SetProjectChanged();
|
|
||||||
selection.must_find_current_marker = playback.must_find_current_marker = true;
|
selection.must_find_current_marker = playback.must_find_current_marker = true;
|
||||||
|
tasedit_list.SetHeaderColumnLight(COLUMN_FRAMENUM, HEADER_LIGHT_MAX);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void InputColumnSet(int column)
|
void InputColumnSet(int column)
|
||||||
|
@ -522,9 +525,9 @@ void InputColumnSet(int column)
|
||||||
{
|
{
|
||||||
greenzone.InvalidateAndCheck(history.RegisterChanges(MODTYPE_UNSET, *current_selection_begin, *current_selection->rbegin()));
|
greenzone.InvalidateAndCheck(history.RegisterChanges(MODTYPE_UNSET, *current_selection_begin, *current_selection->rbegin()));
|
||||||
}
|
}
|
||||||
|
tasedit_list.SetHeaderColumnLight(column, HEADER_LIGHT_MAX);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool Copy(SelectionFrames* current_selection)
|
bool Copy(SelectionFrames* current_selection)
|
||||||
{
|
{
|
||||||
if (!current_selection)
|
if (!current_selection)
|
||||||
|
@ -1087,6 +1090,7 @@ BOOL CALLBACK ExportProc(HWND hwndDlg, UINT message, WPARAM wParam, LPARAM lPara
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
CheckDlgButton(hwndDlg, IDC_NOTES_TO_SUBTITLES, TASEdit_last_export_subtitles?MF_CHECKED : MF_UNCHECKED);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
case WM_COMMAND:
|
case WM_COMMAND:
|
||||||
switch (LOWORD(wParam))
|
switch (LOWORD(wParam))
|
||||||
|
@ -1100,6 +1104,10 @@ BOOL CALLBACK ExportProc(HWND hwndDlg, UINT message, WPARAM wParam, LPARAM lPara
|
||||||
case IDC_RADIO_FOURSCORE:
|
case IDC_RADIO_FOURSCORE:
|
||||||
TASEdit_last_export_type = EXPORT_TYPE_FOURSCORE;
|
TASEdit_last_export_type = EXPORT_TYPE_FOURSCORE;
|
||||||
break;
|
break;
|
||||||
|
case IDC_NOTES_TO_SUBTITLES:
|
||||||
|
TASEdit_last_export_subtitles ^= 1;
|
||||||
|
CheckDlgButton(hwndDlg, IDC_NOTES_TO_SUBTITLES, TASEdit_last_export_subtitles?MF_CHECKED : MF_UNCHECKED);
|
||||||
|
break;
|
||||||
case IDOK:
|
case IDOK:
|
||||||
EndDialog(hwndDlg, 1);
|
EndDialog(hwndDlg, 1);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
@ -1161,6 +1169,25 @@ void Export()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
temp_md.loadFrameCount = -1;
|
temp_md.loadFrameCount = -1;
|
||||||
|
if (TASEdit_last_export_subtitles)
|
||||||
|
{
|
||||||
|
// convert Marker Notes to Movie Subtitles
|
||||||
|
char framenum[11];
|
||||||
|
std::string subtitle;
|
||||||
|
int marker_id;
|
||||||
|
for (int i = 0; i < current_markers.GetMarkersSize(); ++i)
|
||||||
|
{
|
||||||
|
marker_id = current_markers.GetMarker(i);
|
||||||
|
if (marker_id)
|
||||||
|
{
|
||||||
|
_itoa(i, framenum, 10);
|
||||||
|
strcat(framenum, " ");
|
||||||
|
subtitle = framenum;
|
||||||
|
subtitle.append(current_markers.GetNote(marker_id));
|
||||||
|
temp_md.subtitles.push_back(subtitle);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
// dump to disk
|
// dump to disk
|
||||||
temp_md.dump(osRecordingMovie, false);
|
temp_md.dump(osRecordingMovie, false);
|
||||||
delete osRecordingMovie;
|
delete osRecordingMovie;
|
||||||
|
@ -1176,10 +1203,13 @@ BOOL CALLBACK WndprocTasEdit(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPar
|
||||||
case WM_PAINT:
|
case WM_PAINT:
|
||||||
break;
|
break;
|
||||||
case WM_INITDIALOG:
|
case WM_INITDIALOG:
|
||||||
|
{
|
||||||
if (TasEdit_wndx==-32000) TasEdit_wndx=0; //Just in case
|
if (TasEdit_wndx==-32000) TasEdit_wndx=0; //Just in case
|
||||||
if (TasEdit_wndy==-32000) TasEdit_wndy=0;
|
if (TasEdit_wndy==-32000) TasEdit_wndy=0;
|
||||||
|
SendMessage(hwndDlg, WM_SETICON, ICON_SMALL, (LPARAM)hTaseditorIcon);
|
||||||
SetWindowPos(hwndDlg, 0, TasEdit_wndx, TasEdit_wndy, 0, 0, SWP_NOSIZE | SWP_NOZORDER | SWP_NOOWNERZORDER);
|
SetWindowPos(hwndDlg, 0, TasEdit_wndx, TasEdit_wndy, 0, 0, SWP_NOSIZE | SWP_NOZORDER | SWP_NOOWNERZORDER);
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
case WM_MOVE:
|
case WM_MOVE:
|
||||||
{
|
{
|
||||||
if (!IsIconic(hwndDlg))
|
if (!IsIconic(hwndDlg))
|
||||||
|
@ -1614,28 +1644,35 @@ BOOL CALLBACK WndprocTasEdit(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPar
|
||||||
CheckMenuItem(hmenu, ID_CONFIG_HUDINBRANCHSCREENSHOTS, TASEdit_branch_scr_hud?MF_CHECKED : MF_UNCHECKED);
|
CheckMenuItem(hmenu, ID_CONFIG_HUDINBRANCHSCREENSHOTS, TASEdit_branch_scr_hud?MF_CHECKED : MF_UNCHECKED);
|
||||||
break;
|
break;
|
||||||
case ID_CONFIG_BINDMARKERSTOINPUT:
|
case ID_CONFIG_BINDMARKERSTOINPUT:
|
||||||
//switch "Bind Markers to Input" flag
|
|
||||||
TASEdit_bind_markers ^= 1;
|
TASEdit_bind_markers ^= 1;
|
||||||
CheckMenuItem(hmenu, ID_CONFIG_BINDMARKERSTOINPUT, TASEdit_bind_markers?MF_CHECKED : MF_UNCHECKED);
|
CheckMenuItem(hmenu, ID_CONFIG_BINDMARKERSTOINPUT, TASEdit_bind_markers?MF_CHECKED : MF_UNCHECKED);
|
||||||
break;
|
break;
|
||||||
case ID_CONFIG_USE1PFORRECORDING:
|
case ID_CONFIG_EMPTYNEWMARKERNOTES:
|
||||||
//switch "Use 1P keys for single Recordings" flag
|
TASEdit_empty_marker_notes ^= 1;
|
||||||
TASEdit_use_1p_rec ^= 1;
|
CheckMenuItem(hmenu, ID_CONFIG_EMPTYNEWMARKERNOTES, TASEdit_empty_marker_notes?MF_CHECKED : MF_UNCHECKED);
|
||||||
CheckMenuItem(hmenu, ID_CONFIG_USE1PFORRECORDING, TASEdit_use_1p_rec?MF_CHECKED : MF_UNCHECKED);
|
|
||||||
break;
|
break;
|
||||||
case ID_CONFIG_COMBINECONSECUTIVERECORDINGS:
|
case ID_CONFIG_COMBINECONSECUTIVERECORDINGS:
|
||||||
//switch "Combine consecutive Recordings" flag
|
//switch "Combine consecutive Recordings" flag
|
||||||
TASEdit_combine_consecutive_rec ^= 1;
|
TASEdit_combine_consecutive_rec ^= 1;
|
||||||
CheckMenuItem(hmenu, ID_CONFIG_COMBINECONSECUTIVERECORDINGS, TASEdit_combine_consecutive_rec?MF_CHECKED : MF_UNCHECKED);
|
CheckMenuItem(hmenu, ID_CONFIG_COMBINECONSECUTIVERECORDINGS, TASEdit_combine_consecutive_rec?MF_CHECKED : MF_UNCHECKED);
|
||||||
break;
|
break;
|
||||||
case ID_CONFIG_SUPERIMPOSE_AFFECTS_PASTE:
|
case ID_CONFIG_USE1PFORRECORDING:
|
||||||
TASEdit_superimpose_affects_paste ^= 1;
|
//switch "Use 1P keys for single Recordings" flag
|
||||||
CheckMenuItem(hmenu, ID_CONFIG_SUPERIMPOSE_AFFECTS_PASTE, TASEdit_superimpose_affects_paste?MF_CHECKED : MF_UNCHECKED);
|
TASEdit_use_1p_rec ^= 1;
|
||||||
|
CheckMenuItem(hmenu, ID_CONFIG_USE1PFORRECORDING, TASEdit_use_1p_rec?MF_CHECKED : MF_UNCHECKED);
|
||||||
|
break;
|
||||||
|
case ID_CONFIG_USEINPUTKEYSFORCOLUMNSET:
|
||||||
|
TASEdit_columnset_by_keys ^= 1;
|
||||||
|
CheckMenuItem(hmenu, ID_CONFIG_USEINPUTKEYSFORCOLUMNSET, TASEdit_columnset_by_keys?MF_CHECKED : MF_UNCHECKED);
|
||||||
break;
|
break;
|
||||||
case ID_CONFIG_KEYBOARDCONTROLSINLISTVIEW:
|
case ID_CONFIG_KEYBOARDCONTROLSINLISTVIEW:
|
||||||
TASEdit_keyboard_for_listview ^= 1;
|
TASEdit_keyboard_for_listview ^= 1;
|
||||||
CheckMenuItem(hmenu, ID_CONFIG_KEYBOARDCONTROLSINLISTVIEW, TASEdit_keyboard_for_listview?MF_CHECKED : MF_UNCHECKED);
|
CheckMenuItem(hmenu, ID_CONFIG_KEYBOARDCONTROLSINLISTVIEW, TASEdit_keyboard_for_listview?MF_CHECKED : MF_UNCHECKED);
|
||||||
break;
|
break;
|
||||||
|
case ID_CONFIG_SUPERIMPOSE_AFFECTS_PASTE:
|
||||||
|
TASEdit_superimpose_affects_paste ^= 1;
|
||||||
|
CheckMenuItem(hmenu, ID_CONFIG_SUPERIMPOSE_AFFECTS_PASTE, TASEdit_superimpose_affects_paste?MF_CHECKED : MF_UNCHECKED);
|
||||||
|
break;
|
||||||
case ID_CONFIG_MUTETURBO:
|
case ID_CONFIG_MUTETURBO:
|
||||||
muteTurbo ^= 1;
|
muteTurbo ^= 1;
|
||||||
CheckMenuItem(hmenu, ID_CONFIG_MUTETURBO, muteTurbo?MF_CHECKED : MF_UNCHECKED);
|
CheckMenuItem(hmenu, ID_CONFIG_MUTETURBO, muteTurbo?MF_CHECKED : MF_UNCHECKED);
|
||||||
|
@ -1649,33 +1686,24 @@ BOOL CALLBACK WndprocTasEdit(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPar
|
||||||
TASEdit_view_branches_tree ^= 1;
|
TASEdit_view_branches_tree ^= 1;
|
||||||
bookmarks.RedrawBookmarksCaption();
|
bookmarks.RedrawBookmarksCaption();
|
||||||
break;
|
break;
|
||||||
case IDC_RADIO1:
|
case IDC_RECORDING:
|
||||||
// switch to readonly, no need to recheck radiobuttons
|
// toggle readonly, no need to recheck radiobuttons
|
||||||
if (!movie_readonly) FCEUI_MovieToggleReadOnly();
|
FCEUI_MovieToggleReadOnly();
|
||||||
|
CheckDlgButton(hwndTasEdit, IDC_RECORDING, movie_readonly?BST_UNCHECKED : BST_CHECKED);
|
||||||
break;
|
break;
|
||||||
case IDC_RADIO2:
|
case IDC_RADIO2:
|
||||||
// switch to read+write for all, no need to recheck radiobuttons
|
|
||||||
if (movie_readonly) FCEUI_MovieToggleReadOnly();
|
|
||||||
recorder.multitrack_recording_joypad = MULTITRACK_RECORDING_ALL;
|
recorder.multitrack_recording_joypad = MULTITRACK_RECORDING_ALL;
|
||||||
break;
|
break;
|
||||||
case IDC_RADIO3:
|
case IDC_RADIO3:
|
||||||
// switch to read+write for 1P, no need to recheck radiobuttons
|
|
||||||
if (movie_readonly) FCEUI_MovieToggleReadOnly();
|
|
||||||
recorder.multitrack_recording_joypad = MULTITRACK_RECORDING_1P;
|
recorder.multitrack_recording_joypad = MULTITRACK_RECORDING_1P;
|
||||||
break;
|
break;
|
||||||
case IDC_RADIO4:
|
case IDC_RADIO4:
|
||||||
// switch to read+write for 2P, no need to recheck radiobuttons
|
|
||||||
if (movie_readonly) FCEUI_MovieToggleReadOnly();
|
|
||||||
recorder.multitrack_recording_joypad = MULTITRACK_RECORDING_2P;
|
recorder.multitrack_recording_joypad = MULTITRACK_RECORDING_2P;
|
||||||
break;
|
break;
|
||||||
case IDC_RADIO5:
|
case IDC_RADIO5:
|
||||||
// switch to read+write for 3P, no need to recheck radiobuttons
|
|
||||||
if (movie_readonly) FCEUI_MovieToggleReadOnly();
|
|
||||||
recorder.multitrack_recording_joypad = MULTITRACK_RECORDING_3P;
|
recorder.multitrack_recording_joypad = MULTITRACK_RECORDING_3P;
|
||||||
break;
|
break;
|
||||||
case IDC_RADIO6:
|
case IDC_RADIO6:
|
||||||
// switch to read+write for 4P, no need to recheck radiobuttons
|
|
||||||
if (movie_readonly) FCEUI_MovieToggleReadOnly();
|
|
||||||
recorder.multitrack_recording_joypad = MULTITRACK_RECORDING_4P;
|
recorder.multitrack_recording_joypad = MULTITRACK_RECORDING_4P;
|
||||||
break;
|
break;
|
||||||
case IDC_SUPERIMPOSE:
|
case IDC_SUPERIMPOSE:
|
||||||
|
@ -1784,7 +1812,6 @@ BOOL CALLBACK WndprocTasEdit(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPar
|
||||||
{
|
{
|
||||||
selection.must_find_current_marker = playback.must_find_current_marker = true;
|
selection.must_find_current_marker = playback.must_find_current_marker = true;
|
||||||
history.RegisterMarkersChange(MODTYPE_MARKER_SET, *current_selection_begin, *current_selection->rbegin());
|
history.RegisterMarkersChange(MODTYPE_MARKER_SET, *current_selection_begin, *current_selection->rbegin());
|
||||||
project.SetProjectChanged();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -1810,7 +1837,6 @@ BOOL CALLBACK WndprocTasEdit(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPar
|
||||||
{
|
{
|
||||||
selection.must_find_current_marker = playback.must_find_current_marker = true;
|
selection.must_find_current_marker = playback.must_find_current_marker = true;
|
||||||
history.RegisterMarkersChange(MODTYPE_MARKER_UNSET, *current_selection_begin, *current_selection->rbegin());
|
history.RegisterMarkersChange(MODTYPE_MARKER_UNSET, *current_selection_begin, *current_selection->rbegin());
|
||||||
project.SetProjectChanged();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -1851,6 +1877,7 @@ bool EnterTasEdit()
|
||||||
if(!FCEU_IsValidUI(FCEUI_TASEDIT)) return false;
|
if(!FCEU_IsValidUI(FCEUI_TASEDIT)) return false;
|
||||||
if(!hwndTasEdit)
|
if(!hwndTasEdit)
|
||||||
{
|
{
|
||||||
|
hTaseditorIcon = (HICON)LoadImage(fceu_hInstance, MAKEINTRESOURCE(IDI_ICON3), IMAGE_ICON, 16, 16, LR_DEFAULTSIZE);
|
||||||
hwndTasEdit = CreateDialog(fceu_hInstance,"TASEDIT", hAppWnd, WndprocTasEdit);
|
hwndTasEdit = CreateDialog(fceu_hInstance,"TASEDIT", hAppWnd, WndprocTasEdit);
|
||||||
if(hwndTasEdit)
|
if(hwndTasEdit)
|
||||||
{
|
{
|
||||||
|
@ -1887,10 +1914,12 @@ bool EnterTasEdit()
|
||||||
CheckMenuItem(hmenu, ID_CONFIG_BRANCHESWORKONLYWHENRECORDING, TASEdit_branch_only_when_rec?MF_CHECKED : MF_UNCHECKED);
|
CheckMenuItem(hmenu, ID_CONFIG_BRANCHESWORKONLYWHENRECORDING, TASEdit_branch_only_when_rec?MF_CHECKED : MF_UNCHECKED);
|
||||||
CheckMenuItem(hmenu, ID_CONFIG_HUDINBRANCHSCREENSHOTS, TASEdit_branch_scr_hud?MF_CHECKED : MF_UNCHECKED);
|
CheckMenuItem(hmenu, ID_CONFIG_HUDINBRANCHSCREENSHOTS, TASEdit_branch_scr_hud?MF_CHECKED : MF_UNCHECKED);
|
||||||
CheckMenuItem(hmenu, ID_CONFIG_BINDMARKERSTOINPUT, TASEdit_bind_markers?MF_CHECKED : MF_UNCHECKED);
|
CheckMenuItem(hmenu, ID_CONFIG_BINDMARKERSTOINPUT, TASEdit_bind_markers?MF_CHECKED : MF_UNCHECKED);
|
||||||
CheckMenuItem(hmenu, ID_CONFIG_USE1PFORRECORDING, TASEdit_use_1p_rec?MF_CHECKED : MF_UNCHECKED);
|
CheckMenuItem(hmenu, ID_CONFIG_EMPTYNEWMARKERNOTES, TASEdit_empty_marker_notes?MF_CHECKED : MF_UNCHECKED);
|
||||||
CheckMenuItem(hmenu, ID_CONFIG_COMBINECONSECUTIVERECORDINGS, TASEdit_combine_consecutive_rec?MF_CHECKED : MF_UNCHECKED);
|
CheckMenuItem(hmenu, ID_CONFIG_COMBINECONSECUTIVERECORDINGS, TASEdit_combine_consecutive_rec?MF_CHECKED : MF_UNCHECKED);
|
||||||
CheckMenuItem(hmenu, ID_CONFIG_SUPERIMPOSE_AFFECTS_PASTE, TASEdit_superimpose_affects_paste?MF_CHECKED : MF_UNCHECKED);
|
CheckMenuItem(hmenu, ID_CONFIG_USE1PFORRECORDING, TASEdit_use_1p_rec?MF_CHECKED : MF_UNCHECKED);
|
||||||
|
CheckMenuItem(hmenu, ID_CONFIG_USEINPUTKEYSFORCOLUMNSET, TASEdit_columnset_by_keys?MF_CHECKED : MF_UNCHECKED);
|
||||||
CheckMenuItem(hmenu, ID_CONFIG_KEYBOARDCONTROLSINLISTVIEW, TASEdit_keyboard_for_listview?MF_CHECKED : MF_UNCHECKED);
|
CheckMenuItem(hmenu, ID_CONFIG_KEYBOARDCONTROLSINLISTVIEW, TASEdit_keyboard_for_listview?MF_CHECKED : MF_UNCHECKED);
|
||||||
|
CheckMenuItem(hmenu, ID_CONFIG_SUPERIMPOSE_AFFECTS_PASTE, TASEdit_superimpose_affects_paste?MF_CHECKED : MF_UNCHECKED);
|
||||||
CheckMenuItem(hmenu, ID_CONFIG_MUTETURBO, muteTurbo?MF_CHECKED : MF_UNCHECKED);
|
CheckMenuItem(hmenu, ID_CONFIG_MUTETURBO, muteTurbo?MF_CHECKED : MF_UNCHECKED);
|
||||||
CheckDlgButton(hwndTasEdit,CHECK_AUTORESTORE_PLAYBACK,TASEdit_restore_position?BST_CHECKED:BST_UNCHECKED);
|
CheckDlgButton(hwndTasEdit,CHECK_AUTORESTORE_PLAYBACK,TASEdit_restore_position?BST_CHECKED:BST_UNCHECKED);
|
||||||
CheckDlgButton(hwndTasEdit, IDC_SUPERIMPOSE, TASEdit_superimpose);
|
CheckDlgButton(hwndTasEdit, IDC_SUPERIMPOSE, TASEdit_superimpose);
|
||||||
|
@ -1950,6 +1979,8 @@ bool ExitTasEdit()
|
||||||
DestroyWindow(hwndTasEdit);
|
DestroyWindow(hwndTasEdit);
|
||||||
hwndTasEdit = 0;
|
hwndTasEdit = 0;
|
||||||
TASEdit_focus = false;
|
TASEdit_focus = false;
|
||||||
|
DestroyIcon(hTaseditorIcon);
|
||||||
|
hTaseditorIcon = 0;
|
||||||
ClearTaseditInput();
|
ClearTaseditInput();
|
||||||
// restore "eoptions"
|
// restore "eoptions"
|
||||||
eoptions = saved_eoptions;
|
eoptions = saved_eoptions;
|
||||||
|
|
|
@ -413,8 +413,6 @@ void BOOKMARKS::jump(int slot)
|
||||||
playback.jump(frame);
|
playback.jump(frame);
|
||||||
if (playback.GetPauseFrame())
|
if (playback.GetPauseFrame())
|
||||||
tasedit_list.FollowPauseframe();
|
tasedit_list.FollowPauseframe();
|
||||||
else
|
|
||||||
tasedit_list.FollowPlayback();
|
|
||||||
bookmarks_array[slot].jump();
|
bookmarks_array[slot].jump();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -342,6 +342,7 @@ void INPUT_HISTORY::RegisterMarkersChange(int mod_type, int start, int end)
|
||||||
inp.copyHotChanges(&GetCurrentSnapshot());
|
inp.copyHotChanges(&GetCurrentSnapshot());
|
||||||
AddInputSnapshotToHistory(inp);
|
AddInputSnapshotToHistory(inp);
|
||||||
bookmarks.ChangesMadeSinceBranch();
|
bookmarks.ChangesMadeSinceBranch();
|
||||||
|
project.SetProjectChanged();
|
||||||
}
|
}
|
||||||
void INPUT_HISTORY::RegisterBranching(int mod_type, int first_change, int slot)
|
void INPUT_HISTORY::RegisterBranching(int mod_type, int first_change, int slot)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,8 +1,10 @@
|
||||||
//Implementation file of Markers class
|
//Implementation file of Markers class
|
||||||
|
|
||||||
#include "taseditproj.h"
|
#include "taseditproj.h"
|
||||||
#include "zlib.h"
|
#include "zlib.h"
|
||||||
|
|
||||||
|
extern bool TASEdit_empty_marker_notes;
|
||||||
|
|
||||||
|
// resources
|
||||||
char markers_save_id[MARKERS_ID_LEN] = "MARKERS";
|
char markers_save_id[MARKERS_ID_LEN] = "MARKERS";
|
||||||
char markers_skipsave_id[MARKERS_ID_LEN] = "MARKERX";
|
char markers_skipsave_id[MARKERS_ID_LEN] = "MARKERX";
|
||||||
|
|
||||||
|
@ -257,7 +259,11 @@ void MARKERS::SetMarker(int frame)
|
||||||
{
|
{
|
||||||
int marker_num = GetMarkerUp(frame) + 1;
|
int marker_num = GetMarkerUp(frame) + 1;
|
||||||
markers_array[frame] = marker_num;
|
markers_array[frame] = marker_num;
|
||||||
notes.insert(notes.begin() + marker_num, 1, "");
|
if (TASEdit_empty_marker_notes)
|
||||||
|
notes.insert(notes.begin() + marker_num, 1, "");
|
||||||
|
else
|
||||||
|
// copy previous marker note
|
||||||
|
notes.insert(notes.begin() + marker_num, 1, notes[marker_num - 1]);
|
||||||
// increase following markers' ids
|
// increase following markers' ids
|
||||||
int size = markers_array.size();
|
int size = markers_array.size();
|
||||||
for (frame++; frame < size; ++frame)
|
for (frame++; frame < size; ++frame)
|
||||||
|
|
|
@ -113,7 +113,7 @@ void PLAYBACK::update()
|
||||||
// update the playback cursor
|
// update the playback cursor
|
||||||
if(currFrameCounter != lastCursor)
|
if(currFrameCounter != lastCursor)
|
||||||
{
|
{
|
||||||
tasedit_list.FollowPlayback();
|
tasedit_list.FollowPlaybackIfNeeded();
|
||||||
// update gfx of the old and new rows
|
// update gfx of the old and new rows
|
||||||
tasedit_list.RedrawRow(lastCursor);
|
tasedit_list.RedrawRow(lastCursor);
|
||||||
bookmarks.RedrawChangedBookmarks(lastCursor);
|
bookmarks.RedrawChangedBookmarks(lastCursor);
|
||||||
|
@ -253,7 +253,7 @@ void PLAYBACK::RewindFrame()
|
||||||
if (currFrameCounter > 0)
|
if (currFrameCounter > 0)
|
||||||
jump(currFrameCounter-1);
|
jump(currFrameCounter-1);
|
||||||
else
|
else
|
||||||
tasedit_list.FollowPlayback();
|
tasedit_list.FollowPlaybackIfNeeded();
|
||||||
if (!pause_frame) PauseEmulation();
|
if (!pause_frame) PauseEmulation();
|
||||||
}
|
}
|
||||||
void PLAYBACK::ForwardFrame()
|
void PLAYBACK::ForwardFrame()
|
||||||
|
@ -315,7 +315,7 @@ void PLAYBACK::jump(int frame)
|
||||||
if (JumpToFrame(frame))
|
if (JumpToFrame(frame))
|
||||||
{
|
{
|
||||||
ForceExecuteLuaFrameFunctions();
|
ForceExecuteLuaFrameFunctions();
|
||||||
tasedit_list.FollowPlayback();
|
tasedit_list.FollowPlaybackIfNeeded();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void PLAYBACK::restorePosition()
|
void PLAYBACK::restorePosition()
|
||||||
|
|
|
@ -4,14 +4,19 @@
|
||||||
|
|
||||||
extern HWND hwndTasEdit;
|
extern HWND hwndTasEdit;
|
||||||
|
|
||||||
|
extern uint32 GetGamepadPressedImmediate();
|
||||||
|
extern void ColumnSet(int column);
|
||||||
|
|
||||||
extern BOOKMARKS bookmarks;
|
extern BOOKMARKS bookmarks;
|
||||||
extern INPUT_HISTORY history;
|
extern INPUT_HISTORY history;
|
||||||
extern GREENZONE greenzone;
|
extern GREENZONE greenzone;
|
||||||
|
extern TASEDIT_LIST tasedit_list;
|
||||||
|
|
||||||
extern void RedrawWindowCaption();
|
extern void RedrawWindowCaption();
|
||||||
extern bool TASEdit_branch_only_when_rec;
|
extern bool TASEdit_branch_only_when_rec;
|
||||||
extern bool TASEdit_use_1p_rec;
|
extern bool TASEdit_use_1p_rec;
|
||||||
extern int TASEdit_superimpose;
|
extern int TASEdit_superimpose;
|
||||||
|
extern bool TASEdit_columnset_by_keys;
|
||||||
|
|
||||||
// resources
|
// resources
|
||||||
char recordingCaptions[5][30] = { " (Recording All)",
|
char recordingCaptions[5][30] = { " (Recording All)",
|
||||||
|
@ -25,7 +30,7 @@ RECORDER::RECORDER()
|
||||||
|
|
||||||
void RECORDER::init()
|
void RECORDER::init()
|
||||||
{
|
{
|
||||||
hwndRB_RecOff = GetDlgItem(hwndTasEdit, IDC_RADIO1);
|
hwndRecCheckbox = GetDlgItem(hwndTasEdit, IDC_RECORDING);
|
||||||
hwndRB_RecAll = GetDlgItem(hwndTasEdit, IDC_RADIO2);
|
hwndRB_RecAll = GetDlgItem(hwndTasEdit, IDC_RADIO2);
|
||||||
hwndRB_Rec1P = GetDlgItem(hwndTasEdit, IDC_RADIO3);
|
hwndRB_Rec1P = GetDlgItem(hwndTasEdit, IDC_RADIO3);
|
||||||
hwndRB_Rec2P = GetDlgItem(hwndTasEdit, IDC_RADIO4);
|
hwndRB_Rec2P = GetDlgItem(hwndTasEdit, IDC_RADIO4);
|
||||||
|
@ -36,6 +41,7 @@ void RECORDER::init()
|
||||||
old_movie_readonly = movie_readonly;
|
old_movie_readonly = movie_readonly;
|
||||||
old_joy.resize(4);
|
old_joy.resize(4);
|
||||||
new_joy.resize(4);
|
new_joy.resize(4);
|
||||||
|
current_joy.resize(4);
|
||||||
}
|
}
|
||||||
void RECORDER::reset()
|
void RECORDER::reset()
|
||||||
{
|
{
|
||||||
|
@ -60,7 +66,7 @@ void RECORDER::update()
|
||||||
// update window caption if needed
|
// update window caption if needed
|
||||||
if (old_movie_readonly != movie_readonly || old_multitrack_recording_joypad != multitrack_recording_joypad)
|
if (old_movie_readonly != movie_readonly || old_multitrack_recording_joypad != multitrack_recording_joypad)
|
||||||
RedrawWindowCaption();
|
RedrawWindowCaption();
|
||||||
// update Bookmarks/Branches groupbox caption
|
// update Bookmarks/Branches groupbox caption if needed
|
||||||
if (TASEdit_branch_only_when_rec && old_movie_readonly != movie_readonly)
|
if (TASEdit_branch_only_when_rec && old_movie_readonly != movie_readonly)
|
||||||
bookmarks.RedrawBookmarksCaption();
|
bookmarks.RedrawBookmarksCaption();
|
||||||
// update recording radio buttons if user used hotkey to switch R/W
|
// update recording radio buttons if user used hotkey to switch R/W
|
||||||
|
@ -70,11 +76,49 @@ void RECORDER::update()
|
||||||
RecheckRecordingRadioButtons();
|
RecheckRecordingRadioButtons();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
old_joy[0] = current_joy[0];
|
||||||
|
old_joy[1] = current_joy[1];
|
||||||
|
old_joy[2] = current_joy[2];
|
||||||
|
old_joy[3] = current_joy[3];
|
||||||
|
// fill current_joy data for listview header lights
|
||||||
|
uint32 joypads = GetGamepadPressedImmediate();
|
||||||
|
current_joy[0] = (joypads & 0xFF);
|
||||||
|
current_joy[1] = ((joypads >> 8) & 0xFF);
|
||||||
|
current_joy[2] = ((joypads >> 16) & 0xFF);
|
||||||
|
current_joy[3] = ((joypads >> 24) & 0xFF);
|
||||||
|
if (multitrack_recording_joypad != MULTITRACK_RECORDING_ALL)
|
||||||
|
{
|
||||||
|
int joy = multitrack_recording_joypad - 1;
|
||||||
|
// substitute target joypad with 1p joypad
|
||||||
|
if (multitrack_recording_joypad > MULTITRACK_RECORDING_1P && TASEdit_use_1p_rec)
|
||||||
|
current_joy[joy] = current_joy[0];
|
||||||
|
// clear all other joypads (pressing them does not count)
|
||||||
|
for (int i = 0; i < NUM_JOYPADS; ++i)
|
||||||
|
if (i != joy)
|
||||||
|
current_joy[i] = 0;
|
||||||
|
}
|
||||||
|
// call ColumnSet if needed
|
||||||
|
if (TASEdit_columnset_by_keys && movie_readonly)
|
||||||
|
{
|
||||||
|
int num_joys;
|
||||||
|
if (currMovieData.fourscore)
|
||||||
|
num_joys = NUM_JOYPADS;
|
||||||
|
else
|
||||||
|
num_joys = 2;
|
||||||
|
for (int joy = 0; joy < num_joys; ++joy)
|
||||||
|
{
|
||||||
|
for (int button = 0; button < NUM_JOYPAD_BUTTONS; ++button)
|
||||||
|
{
|
||||||
|
// if the button was pressed right now
|
||||||
|
if ((current_joy[joy] & (1 << button)) && !(old_joy[joy] & (1 << button)))
|
||||||
|
ColumnSet(COLUMN_JOYPAD1_A + joy * NUM_JOYPAD_BUTTONS + button);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// ------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------
|
||||||
void RECORDER::UncheckRecordingRadioButtons()
|
void RECORDER::UncheckRecordingRadioButtons()
|
||||||
{
|
{
|
||||||
Button_SetCheck(hwndRB_RecOff, BST_UNCHECKED);
|
|
||||||
Button_SetCheck(hwndRB_RecAll, BST_UNCHECKED);
|
Button_SetCheck(hwndRB_RecAll, BST_UNCHECKED);
|
||||||
Button_SetCheck(hwndRB_Rec1P, BST_UNCHECKED);
|
Button_SetCheck(hwndRB_Rec1P, BST_UNCHECKED);
|
||||||
Button_SetCheck(hwndRB_Rec2P, BST_UNCHECKED);
|
Button_SetCheck(hwndRB_Rec2P, BST_UNCHECKED);
|
||||||
|
@ -85,29 +129,24 @@ void RECORDER::RecheckRecordingRadioButtons()
|
||||||
{
|
{
|
||||||
old_movie_readonly = movie_readonly;
|
old_movie_readonly = movie_readonly;
|
||||||
old_multitrack_recording_joypad = multitrack_recording_joypad;
|
old_multitrack_recording_joypad = multitrack_recording_joypad;
|
||||||
if (movie_readonly)
|
Button_SetCheck(hwndRecCheckbox, movie_readonly?BST_UNCHECKED : BST_CHECKED);
|
||||||
|
switch(multitrack_recording_joypad)
|
||||||
{
|
{
|
||||||
Button_SetCheck(hwndRB_RecOff, BST_CHECKED);
|
case MULTITRACK_RECORDING_ALL:
|
||||||
} else
|
Button_SetCheck(hwndRB_RecAll, BST_CHECKED);
|
||||||
{
|
break;
|
||||||
switch(multitrack_recording_joypad)
|
case MULTITRACK_RECORDING_1P:
|
||||||
{
|
Button_SetCheck(hwndRB_Rec1P, BST_CHECKED);
|
||||||
case MULTITRACK_RECORDING_ALL:
|
break;
|
||||||
Button_SetCheck(hwndRB_RecAll, BST_CHECKED);
|
case MULTITRACK_RECORDING_2P:
|
||||||
break;
|
Button_SetCheck(hwndRB_Rec2P, BST_CHECKED);
|
||||||
case MULTITRACK_RECORDING_1P:
|
break;
|
||||||
Button_SetCheck(hwndRB_Rec1P, BST_CHECKED);
|
case MULTITRACK_RECORDING_3P:
|
||||||
break;
|
Button_SetCheck(hwndRB_Rec3P, BST_CHECKED);
|
||||||
case MULTITRACK_RECORDING_2P:
|
break;
|
||||||
Button_SetCheck(hwndRB_Rec2P, BST_CHECKED);
|
case MULTITRACK_RECORDING_4P:
|
||||||
break;
|
Button_SetCheck(hwndRB_Rec4P, BST_CHECKED);
|
||||||
case MULTITRACK_RECORDING_3P:
|
break;
|
||||||
Button_SetCheck(hwndRB_Rec3P, BST_CHECKED);
|
|
||||||
break;
|
|
||||||
case MULTITRACK_RECORDING_4P:
|
|
||||||
Button_SetCheck(hwndRB_Rec4P, BST_CHECKED);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -138,12 +177,18 @@ void RECORDER::InputChanged()
|
||||||
// change this joystick
|
// change this joystick
|
||||||
currMovieData.records[currFrameCounter].joysticks[i] = new_joy[i];
|
currMovieData.records[currFrameCounter].joysticks[i] = new_joy[i];
|
||||||
if (new_joy[i] != old_joy[i])
|
if (new_joy[i] != old_joy[i])
|
||||||
|
{
|
||||||
changes_made = true;
|
changes_made = true;
|
||||||
|
// set lights for changed buttons
|
||||||
|
for (int button = 0; button < NUM_JOYPAD_BUTTONS; ++button)
|
||||||
|
if ((new_joy[i] & (1 << button)) && !(old_joy[i] & (1 << button)))
|
||||||
|
tasedit_list.SetHeaderColumnLight(COLUMN_JOYPAD1_A + i * NUM_JOYPAD_BUTTONS + button, HEADER_LIGHT_MAX);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
{
|
{
|
||||||
int joy = multitrack_recording_joypad - 1;
|
int joy = multitrack_recording_joypad - 1;
|
||||||
// substitute targed joypad with 1p joypad
|
// substitute target joypad with 1p joypad
|
||||||
if (multitrack_recording_joypad > MULTITRACK_RECORDING_1P && TASEdit_use_1p_rec)
|
if (multitrack_recording_joypad > MULTITRACK_RECORDING_1P && TASEdit_use_1p_rec)
|
||||||
new_joy[joy] = new_joy[0];
|
new_joy[joy] = new_joy[0];
|
||||||
// superimpose (bitwise OR) if needed
|
// superimpose (bitwise OR) if needed
|
||||||
|
@ -160,7 +205,13 @@ void RECORDER::InputChanged()
|
||||||
// change only this joystick
|
// change only this joystick
|
||||||
currMovieData.records[currFrameCounter].joysticks[joy] = new_joy[joy];
|
currMovieData.records[currFrameCounter].joysticks[joy] = new_joy[joy];
|
||||||
if (new_joy[joy] != old_joy[joy])
|
if (new_joy[joy] != old_joy[joy])
|
||||||
|
{
|
||||||
changes_made = true;
|
changes_made = true;
|
||||||
|
// set lights for changed buttons
|
||||||
|
for (int button = 0; button < NUM_JOYPAD_BUTTONS; ++button)
|
||||||
|
if ((new_joy[joy] & (1 << button)) && !(old_joy[joy] & (1 << button)))
|
||||||
|
tasedit_list.SetHeaderColumnLight(COLUMN_JOYPAD1_A + joy * NUM_JOYPAD_BUTTONS + button, HEADER_LIGHT_MAX);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (changes_made)
|
if (changes_made)
|
||||||
{
|
{
|
||||||
|
|
|
@ -20,12 +20,13 @@ public:
|
||||||
void InputChanged();
|
void InputChanged();
|
||||||
|
|
||||||
int multitrack_recording_joypad;
|
int multitrack_recording_joypad;
|
||||||
|
std::vector<uint8> current_joy;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
int old_multitrack_recording_joypad;
|
int old_multitrack_recording_joypad;
|
||||||
bool old_movie_readonly;
|
bool old_movie_readonly;
|
||||||
|
|
||||||
HWND hwndRB_RecOff, hwndRB_RecAll, hwndRB_Rec1P, hwndRB_Rec2P, hwndRB_Rec3P, hwndRB_Rec4P;
|
HWND hwndRecCheckbox, hwndRB_RecAll, hwndRB_Rec1P, hwndRB_Rec2P, hwndRB_Rec3P, hwndRB_Rec4P;
|
||||||
|
|
||||||
// temps
|
// temps
|
||||||
std::vector<uint8> old_joy;
|
std::vector<uint8> old_joy;
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
//Implementation file of TASEDIT_LIST class
|
//Implementation file of TASEDIT_LIST class
|
||||||
|
|
||||||
#include "taseditproj.h"
|
#include "taseditproj.h"
|
||||||
#include "utils/xstring.h"
|
#include "utils/xstring.h"
|
||||||
|
#include "uxtheme.h"
|
||||||
|
|
||||||
|
#pragma comment(lib, "UxTheme.lib")
|
||||||
|
|
||||||
extern HWND hwndTasEdit;
|
extern HWND hwndTasEdit;
|
||||||
extern char buttonNames[NUM_JOYPAD_BUTTONS][2];
|
extern char buttonNames[NUM_JOYPAD_BUTTONS][2];
|
||||||
|
@ -24,11 +26,12 @@ extern bool TASEdit_keyboard_for_listview;
|
||||||
|
|
||||||
LRESULT APIENTRY HeaderWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
|
LRESULT APIENTRY HeaderWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
|
||||||
LRESULT APIENTRY ListWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
|
LRESULT APIENTRY ListWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
|
||||||
WNDPROC hwndList_oldWndProc, hwndHeader_oldWndproc;
|
WNDPROC hwndList_oldWndProc = 0, hwndHeader_oldWndproc = 0;
|
||||||
|
|
||||||
// resources
|
// resources
|
||||||
COLORREF hot_changes_colors[16] = { 0x0, 0x5c4c44, 0x854604, 0xab2500, 0xc20006, 0xd6006f, 0xd40091, 0xba00a4, 0x9500ba, 0x7a00cc, 0x5800d4, 0x0045e2, 0x0063ea, 0x0079f4, 0x0092fa, 0x00aaff };
|
COLORREF hot_changes_colors[16] = { 0x0, 0x5c4c44, 0x854604, 0xab2500, 0xc20006, 0xd6006f, 0xd40091, 0xba00a4, 0x9500ba, 0x7a00cc, 0x5800d4, 0x0045e2, 0x0063ea, 0x0079f4, 0x0092fa, 0x00aaff };
|
||||||
//COLORREF hot_changes_colors[16] = { 0x0, 0x661212, 0x842B4E, 0x652C73, 0x48247D, 0x383596, 0x2947AE, 0x1E53C1, 0x135DD2, 0x116EDA, 0x107EE3, 0x0F8EEB, 0x209FF4, 0x3DB1FD, 0x51C2FF, 0x4DCDFF };
|
//COLORREF hot_changes_colors[16] = { 0x0, 0x661212, 0x842B4E, 0x652C73, 0x48247D, 0x383596, 0x2947AE, 0x1E53C1, 0x135DD2, 0x116EDA, 0x107EE3, 0x0F8EEB, 0x209FF4, 0x3DB1FD, 0x51C2FF, 0x4DCDFF };
|
||||||
|
COLORREF header_lights_colors[11] = { 0x0, 0x00661f, 0x008a15, 0x00a800, 0x24c700, 0x4bd600, 0x79e300, 0x97e800, 0xb4f000, 0xd6f700, 0xffff00 };
|
||||||
|
|
||||||
char list_save_id[LIST_ID_LEN] = "LIST";
|
char list_save_id[LIST_ID_LEN] = "LIST";
|
||||||
char list_skipsave_id[LIST_ID_LEN] = "LISX";
|
char list_skipsave_id[LIST_ID_LEN] = "LISX";
|
||||||
|
@ -68,6 +71,7 @@ TASEDIT_LIST::TASEDIT_LIST()
|
||||||
void TASEDIT_LIST::init()
|
void TASEDIT_LIST::init()
|
||||||
{
|
{
|
||||||
free();
|
free();
|
||||||
|
header_colors.resize(MAX_NUM_COLUMNS);
|
||||||
hwndList = GetDlgItem(hwndTasEdit, IDC_LIST1);
|
hwndList = GetDlgItem(hwndTasEdit, IDC_LIST1);
|
||||||
// prepare the main listview
|
// prepare the main listview
|
||||||
ListView_SetExtendedListViewStyleEx(hwndList, LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_INFOTIP, LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_INFOTIP);
|
ListView_SetExtendedListViewStyleEx(hwndList, LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_INFOTIP, LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_INFOTIP);
|
||||||
|
@ -76,6 +80,8 @@ void TASEDIT_LIST::init()
|
||||||
hwndHeader_oldWndproc = (WNDPROC)SetWindowLong(hwndHeader, GWL_WNDPROC, (LONG)HeaderWndProc);
|
hwndHeader_oldWndproc = (WNDPROC)SetWindowLong(hwndHeader, GWL_WNDPROC, (LONG)HeaderWndProc);
|
||||||
// subclass the whole listview
|
// subclass the whole listview
|
||||||
hwndList_oldWndProc = (WNDPROC)SetWindowLong(hwndList, GWL_WNDPROC, (LONG)ListWndProc);
|
hwndList_oldWndProc = (WNDPROC)SetWindowLong(hwndList, GWL_WNDPROC, (LONG)ListWndProc);
|
||||||
|
// disable Visual Themes for header
|
||||||
|
SetWindowTheme(hwndHeader, L"", L"");
|
||||||
// setup images for the listview
|
// setup images for the listview
|
||||||
himglist = ImageList_Create(9, 13, ILC_COLOR8 | ILC_MASK, 1, 1);
|
himglist = ImageList_Create(9, 13, ILC_COLOR8 | ILC_MASK, 1, 1);
|
||||||
HBITMAP bmp = LoadBitmap(fceu_hInstance, MAKEINTRESOURCE(IDB_BITMAP0));
|
HBITMAP bmp = LoadBitmap(fceu_hInstance, MAKEINTRESOURCE(IDB_BITMAP0));
|
||||||
|
@ -144,17 +150,17 @@ void TASEDIT_LIST::init()
|
||||||
ListView_SetImageList(hwndList, himglist, LVSIL_SMALL);
|
ListView_SetImageList(hwndList, himglist, LVSIL_SMALL);
|
||||||
// setup columns
|
// setup columns
|
||||||
LVCOLUMN lvc;
|
LVCOLUMN lvc;
|
||||||
int colidx=0;
|
num_columns = 0;
|
||||||
// icons column
|
// icons column
|
||||||
lvc.mask = LVCF_WIDTH;
|
lvc.mask = LVCF_WIDTH;
|
||||||
lvc.cx = 13;
|
lvc.cx = 13;
|
||||||
ListView_InsertColumn(hwndList, colidx++, &lvc);
|
ListView_InsertColumn(hwndList, num_columns++, &lvc);
|
||||||
// frame number column
|
// frame number column
|
||||||
lvc.mask = LVCF_WIDTH | LVCF_TEXT | LVCF_FMT;
|
lvc.mask = LVCF_WIDTH | LVCF_TEXT | LVCF_FMT;
|
||||||
lvc.fmt = LVCFMT_CENTER;
|
lvc.fmt = LVCFMT_CENTER;
|
||||||
lvc.cx = 75;
|
lvc.cx = 75;
|
||||||
lvc.pszText = "Frame#";
|
lvc.pszText = "Frame#";
|
||||||
ListView_InsertColumn(hwndList, colidx++, &lvc);
|
ListView_InsertColumn(hwndList, num_columns++, &lvc);
|
||||||
// pads columns
|
// pads columns
|
||||||
lvc.cx = 21;
|
lvc.cx = 21;
|
||||||
// add pads 1 and 2
|
// add pads 1 and 2
|
||||||
|
@ -163,14 +169,14 @@ void TASEDIT_LIST::init()
|
||||||
for (int btn = 0; btn < NUM_JOYPAD_BUTTONS; ++btn)
|
for (int btn = 0; btn < NUM_JOYPAD_BUTTONS; ++btn)
|
||||||
{
|
{
|
||||||
lvc.pszText = buttonNames[btn];
|
lvc.pszText = buttonNames[btn];
|
||||||
ListView_InsertColumn(hwndList, colidx++, &lvc);
|
ListView_InsertColumn(hwndList, num_columns++, &lvc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// add pads 3 and 4 and frame_number2
|
// add pads 3 and 4 and frame_number2
|
||||||
if (currMovieData.fourscore) AddFourscore();
|
if (currMovieData.fourscore) AddFourscore();
|
||||||
|
|
||||||
update();
|
|
||||||
reset();
|
reset();
|
||||||
|
//update();
|
||||||
}
|
}
|
||||||
void TASEDIT_LIST::free()
|
void TASEDIT_LIST::free()
|
||||||
{
|
{
|
||||||
|
@ -179,10 +185,11 @@ void TASEDIT_LIST::free()
|
||||||
ImageList_Destroy(himglist);
|
ImageList_Destroy(himglist);
|
||||||
himglist = 0;
|
himglist = 0;
|
||||||
}
|
}
|
||||||
|
header_colors.resize(0);
|
||||||
}
|
}
|
||||||
void TASEDIT_LIST::reset()
|
void TASEDIT_LIST::reset()
|
||||||
{
|
{
|
||||||
|
next_header_update_time = 0;
|
||||||
// scroll to the beginning
|
// scroll to the beginning
|
||||||
ListView_EnsureVisible(hwndList, 0, FALSE);
|
ListView_EnsureVisible(hwndList, 0, FALSE);
|
||||||
}
|
}
|
||||||
|
@ -194,7 +201,51 @@ void TASEDIT_LIST::update()
|
||||||
if(currLVItemCount != movie_size)
|
if(currLVItemCount != movie_size)
|
||||||
ListView_SetItemCountEx(hwndList, movie_size, LVSICF_NOSCROLL|LVSICF_NOINVALIDATEALL);
|
ListView_SetItemCountEx(hwndList, movie_size, LVSICF_NOSCROLL|LVSICF_NOINVALIDATEALL);
|
||||||
|
|
||||||
|
// once per 40 milliseconds update screenshot_bitmap alpha
|
||||||
|
if (clock() > next_header_update_time)
|
||||||
|
{
|
||||||
|
next_header_update_time = clock() + HEADER_LIGHT_UPDATE_TICK;
|
||||||
|
bool changes_made = false;
|
||||||
|
// 1 - update Frame# columns' heads
|
||||||
|
if (header_colors[COLUMN_FRAMENUM])
|
||||||
|
{
|
||||||
|
header_colors[COLUMN_FRAMENUM]--;
|
||||||
|
header_colors[COLUMN_FRAMENUM2] = header_colors[COLUMN_FRAMENUM];
|
||||||
|
changes_made = true;
|
||||||
|
}
|
||||||
|
// update input columns' heads
|
||||||
|
int i = num_columns-1;
|
||||||
|
if (i == COLUMN_FRAMENUM2) i--;
|
||||||
|
for (; i >= COLUMN_JOYPAD1_A; i--)
|
||||||
|
{
|
||||||
|
if (header_colors[i] > HEADER_LIGHT_HOLD)
|
||||||
|
{
|
||||||
|
header_colors[i]--;
|
||||||
|
changes_made = true;
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
if (recorder.current_joy[(i - COLUMN_JOYPAD1_A) / NUM_JOYPAD_BUTTONS] & (1 << ((i - COLUMN_JOYPAD1_A) % NUM_JOYPAD_BUTTONS)))
|
||||||
|
{
|
||||||
|
// the button is held
|
||||||
|
if (header_colors[i] < HEADER_LIGHT_HOLD)
|
||||||
|
{
|
||||||
|
header_colors[i]++;
|
||||||
|
changes_made = true;
|
||||||
|
}
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
// the button is released
|
||||||
|
if (header_colors[i])
|
||||||
|
{
|
||||||
|
header_colors[i]--;
|
||||||
|
changes_made = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (changes_made)
|
||||||
|
RedrawHeader();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void TASEDIT_LIST::save(EMUFILE *os, bool really_save)
|
void TASEDIT_LIST::save(EMUFILE *os, bool really_save)
|
||||||
|
@ -247,29 +298,26 @@ void TASEDIT_LIST::AddFourscore()
|
||||||
lvc.mask = LVCF_WIDTH | LVCF_TEXT | LVCF_FMT;
|
lvc.mask = LVCF_WIDTH | LVCF_TEXT | LVCF_FMT;
|
||||||
lvc.fmt = LVCFMT_CENTER;
|
lvc.fmt = LVCFMT_CENTER;
|
||||||
lvc.cx = 21;
|
lvc.cx = 21;
|
||||||
int colidx = COLUMN_JOYPAD3_A;
|
|
||||||
for (int joy = 0; joy < 2; ++joy)
|
for (int joy = 0; joy < 2; ++joy)
|
||||||
{
|
{
|
||||||
for (int btn = 0; btn < NUM_JOYPAD_BUTTONS; ++btn)
|
for (int btn = 0; btn < NUM_JOYPAD_BUTTONS; ++btn)
|
||||||
{
|
{
|
||||||
lvc.pszText = buttonNames[btn];
|
lvc.pszText = buttonNames[btn];
|
||||||
ListView_InsertColumn(hwndList, colidx++, &lvc);
|
ListView_InsertColumn(hwndList, num_columns++, &lvc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// frame number column again
|
// frame number column again
|
||||||
lvc.cx = 75;
|
lvc.cx = 75;
|
||||||
lvc.pszText = "Frame#";
|
lvc.pszText = "Frame#";
|
||||||
ListView_InsertColumn(hwndList, colidx++, &lvc);
|
ListView_InsertColumn(hwndList, num_columns++, &lvc);
|
||||||
// change eoptions
|
// change eoptions
|
||||||
FCEUI_SetInputFourscore(true);
|
FCEUI_SetInputFourscore(true);
|
||||||
}
|
}
|
||||||
void TASEDIT_LIST::RemoveFourscore()
|
void TASEDIT_LIST::RemoveFourscore()
|
||||||
{
|
{
|
||||||
// remove list columns
|
// remove list columns
|
||||||
for (int i = COLUMN_FRAMENUM2; i >= COLUMN_JOYPAD3_A; --i)
|
for (num_columns = COLUMN_FRAMENUM2; num_columns >= COLUMN_JOYPAD3_A; num_columns--)
|
||||||
{
|
ListView_DeleteColumn (hwndList, num_columns);
|
||||||
ListView_DeleteColumn (hwndList, i);
|
|
||||||
}
|
|
||||||
// change eoptions
|
// change eoptions
|
||||||
FCEUI_SetInputFourscore(false);
|
FCEUI_SetInputFourscore(false);
|
||||||
}
|
}
|
||||||
|
@ -282,7 +330,10 @@ void TASEDIT_LIST::RedrawRow(int index)
|
||||||
{
|
{
|
||||||
ListView_RedrawItems(hwndList, index, index);
|
ListView_RedrawItems(hwndList, index, index);
|
||||||
}
|
}
|
||||||
|
void TASEDIT_LIST::RedrawHeader()
|
||||||
|
{
|
||||||
|
InvalidateRect(hwndHeader, 0, FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
// -------------------------------------------------------------------------
|
// -------------------------------------------------------------------------
|
||||||
bool TASEDIT_LIST::CheckItemVisible(int frame)
|
bool TASEDIT_LIST::CheckItemVisible(int frame)
|
||||||
|
@ -295,6 +346,10 @@ bool TASEDIT_LIST::CheckItemVisible(int frame)
|
||||||
}
|
}
|
||||||
|
|
||||||
void TASEDIT_LIST::FollowPlayback()
|
void TASEDIT_LIST::FollowPlayback()
|
||||||
|
{
|
||||||
|
ListView_EnsureVisible(hwndList,currFrameCounter,FALSE);
|
||||||
|
}
|
||||||
|
void TASEDIT_LIST::FollowPlaybackIfNeeded()
|
||||||
{
|
{
|
||||||
if (TASEdit_follow_playback) ListView_EnsureVisible(hwndList,currFrameCounter,FALSE);
|
if (TASEdit_follow_playback) ListView_EnsureVisible(hwndList,currFrameCounter,FALSE);
|
||||||
}
|
}
|
||||||
|
@ -379,6 +434,19 @@ void TASEDIT_LIST::FollowPauseframe()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TASEDIT_LIST::SetHeaderColumnLight(int column, int level)
|
||||||
|
{
|
||||||
|
if (column < COLUMN_FRAMENUM || column >= num_columns || level < 0 || level > HEADER_LIGHT_MAX)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (header_colors[column] != level)
|
||||||
|
{
|
||||||
|
header_colors[column] = level;
|
||||||
|
RedrawHeader();
|
||||||
|
next_header_update_time = clock() + HEADER_LIGHT_UPDATE_TICK;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void TASEDIT_LIST::GetDispInfo(NMLVDISPINFO* nmlvDispInfo)
|
void TASEDIT_LIST::GetDispInfo(NMLVDISPINFO* nmlvDispInfo)
|
||||||
{
|
{
|
||||||
LVITEM& item = nmlvDispInfo->item;
|
LVITEM& item = nmlvDispInfo->item;
|
||||||
|
@ -583,6 +651,28 @@ LONG TASEDIT_LIST::CustomDraw(NMLVCUSTOMDRAW* msg)
|
||||||
return CDRF_DODEFAULT;
|
return CDRF_DODEFAULT;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
LONG TASEDIT_LIST::HeaderCustomDraw(NMLVCUSTOMDRAW* msg)
|
||||||
|
{
|
||||||
|
switch(msg->nmcd.dwDrawStage)
|
||||||
|
{
|
||||||
|
case CDDS_PREPAINT:
|
||||||
|
SelectObject(msg->nmcd.hdc, hMainListFont);
|
||||||
|
return CDRF_NOTIFYITEMDRAW;
|
||||||
|
case CDDS_ITEMPREPAINT:
|
||||||
|
{
|
||||||
|
int cell_x = msg->nmcd.dwItemSpec;
|
||||||
|
if (cell_x < num_columns)
|
||||||
|
{
|
||||||
|
int cur_color = header_colors[cell_x];
|
||||||
|
if (cur_color)
|
||||||
|
SetTextColor(msg->nmcd.hdc, header_lights_colors[cur_color]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
return CDRF_DODEFAULT;
|
||||||
|
}
|
||||||
|
}
|
||||||
// -------------------------------------------------------------------------
|
// -------------------------------------------------------------------------
|
||||||
LRESULT APIENTRY HeaderWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
LRESULT APIENTRY HeaderWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||||
{
|
{
|
||||||
|
@ -612,6 +702,7 @@ LRESULT APIENTRY HeaderWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam
|
||||||
//The subclass wndproc for the listview
|
//The subclass wndproc for the listview
|
||||||
LRESULT APIENTRY ListWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
LRESULT APIENTRY ListWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||||
{
|
{
|
||||||
|
extern TASEDIT_LIST tasedit_list;
|
||||||
switch(msg)
|
switch(msg)
|
||||||
{
|
{
|
||||||
case WM_CHAR:
|
case WM_CHAR:
|
||||||
|
@ -619,12 +710,17 @@ LRESULT APIENTRY ListWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||||
return 0;
|
return 0;
|
||||||
case WM_NOTIFY:
|
case WM_NOTIFY:
|
||||||
{
|
{
|
||||||
switch (((LPNMHDR)lParam)->code)
|
if (((LPNMHDR)lParam)->hwndFrom == tasedit_list.hwndHeader)
|
||||||
{
|
{
|
||||||
case HDN_BEGINTRACKW:
|
switch (((LPNMHDR)lParam)->code)
|
||||||
case HDN_BEGINTRACKA:
|
{
|
||||||
case HDN_TRACK:
|
case HDN_BEGINTRACKW:
|
||||||
return true; // no column resizing
|
case HDN_BEGINTRACKA:
|
||||||
|
case HDN_TRACK:
|
||||||
|
return true; // no column resizing
|
||||||
|
case NM_CUSTOMDRAW:
|
||||||
|
return tasedit_list.HeaderCustomDraw((NMLVCUSTOMDRAW*)lParam);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -643,5 +739,3 @@ LRESULT APIENTRY ListWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||||
}
|
}
|
||||||
return CallWindowProc(hwndList_oldWndProc, hWnd, msg, wParam, lParam);
|
return CallWindowProc(hwndList_oldWndProc, hWnd, msg, wParam, lParam);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -9,6 +9,11 @@
|
||||||
#define NUM_JOYPADS 4
|
#define NUM_JOYPADS 4
|
||||||
#define NUM_JOYPAD_BUTTONS 8
|
#define NUM_JOYPAD_BUTTONS 8
|
||||||
|
|
||||||
|
#define HEADER_LIGHT_MAX 10
|
||||||
|
#define HEADER_LIGHT_HOLD 5
|
||||||
|
#define HEADER_LIGHT_UPDATE_TICK 40 // 25FPS
|
||||||
|
|
||||||
|
#define MAX_NUM_COLUMNS 35
|
||||||
#define COLUMN_ICONS 0
|
#define COLUMN_ICONS 0
|
||||||
#define COLUMN_FRAMENUM 1
|
#define COLUMN_FRAMENUM 1
|
||||||
#define COLUMN_JOYPAD1_A 2
|
#define COLUMN_JOYPAD1_A 2
|
||||||
|
@ -44,6 +49,7 @@
|
||||||
#define COLUMN_JOYPAD4_L 32
|
#define COLUMN_JOYPAD4_L 32
|
||||||
#define COLUMN_JOYPAD4_R 33
|
#define COLUMN_JOYPAD4_R 33
|
||||||
#define COLUMN_FRAMENUM2 34
|
#define COLUMN_FRAMENUM2 34
|
||||||
|
|
||||||
#define DIGITS_IN_FRAMENUM 7
|
#define DIGITS_IN_FRAMENUM 7
|
||||||
#define ARROW_IMAGE_ID 20
|
#define ARROW_IMAGE_ID 20
|
||||||
|
|
||||||
|
@ -82,8 +88,6 @@
|
||||||
#define CUR_MARKED_FRAMENUM_COLOR 0xDEF7F3
|
#define CUR_MARKED_FRAMENUM_COLOR 0xDEF7F3
|
||||||
#define MARKED_UNDOHINT_FRAMENUM_COLOR 0xE1E7EC
|
#define MARKED_UNDOHINT_FRAMENUM_COLOR 0xE1E7EC
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class TASEDIT_LIST
|
class TASEDIT_LIST
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
@ -101,17 +105,21 @@ public:
|
||||||
|
|
||||||
void RedrawList();
|
void RedrawList();
|
||||||
void RedrawRow(int index);
|
void RedrawRow(int index);
|
||||||
|
void RedrawHeader();
|
||||||
|
|
||||||
bool CheckItemVisible(int frame);
|
bool CheckItemVisible(int frame);
|
||||||
|
|
||||||
void FollowPlayback();
|
void FollowPlayback();
|
||||||
|
void FollowPlaybackIfNeeded();
|
||||||
void FollowUndo();
|
void FollowUndo();
|
||||||
void FollowSelection();
|
void FollowSelection();
|
||||||
void FollowPauseframe();
|
void FollowPauseframe();
|
||||||
|
|
||||||
|
void SetHeaderColumnLight(int column, int level);
|
||||||
|
|
||||||
void GetDispInfo(NMLVDISPINFO* nmlvDispInfo);
|
void GetDispInfo(NMLVDISPINFO* nmlvDispInfo);
|
||||||
LONG CustomDraw(NMLVCUSTOMDRAW* msg);
|
LONG CustomDraw(NMLVCUSTOMDRAW* msg);
|
||||||
|
LONG HeaderCustomDraw(NMLVCUSTOMDRAW* msg);
|
||||||
|
|
||||||
HWND hwndList, hwndHeader;
|
HWND hwndList, hwndHeader;
|
||||||
|
|
||||||
|
@ -120,5 +128,8 @@ public:
|
||||||
HFONT hMainListFont, hMainListSelectFont, hMarkersFont, hMarkersEditFont;
|
HFONT hMainListFont, hMainListSelectFont, hMarkersFont, hMarkersEditFont;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
std::vector<uint8> header_colors;
|
||||||
|
int num_columns;
|
||||||
|
int next_header_update_time;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
//Implementation file of TASEDIT_SELECTION class
|
//Implementation file of TASEDIT_SELECTION class
|
||||||
#include "taseditproj.h"
|
#include "taseditproj.h"
|
||||||
#include "..\tasedit.h" // only for MARKER_NOTE_EDIT_UPPER
|
#include "..\tasedit.h" // only for MARKER_NOTE_EDIT_LOWER
|
||||||
|
|
||||||
char selection_save_id[SELECTION_ID_LEN] = "SELECTION";
|
char selection_save_id[SELECTION_ID_LEN] = "SELECTION";
|
||||||
char selection_skipsave_id[SELECTION_ID_LEN] = "SELECTIOX";
|
char selection_skipsave_id[SELECTION_ID_LEN] = "SELECTIOX";
|
||||||
|
|
|
@ -858,8 +858,11 @@
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="..\src\drivers\win\res\branch_spritesheet.bmp" />
|
<None Include="..\src\drivers\win\res\branch_spritesheet.bmp" />
|
||||||
|
<None Include="..\src\drivers\win\res\icon3.ico" />
|
||||||
|
<None Include="..\src\drivers\win\res\icon4.ico" />
|
||||||
<None Include="..\src\drivers\win\res\ICON_1.ico" />
|
<None Include="..\src\drivers\win\res\ICON_1.ico" />
|
||||||
<None Include="..\src\drivers\win\res\ICON_2.ico" />
|
<None Include="..\src\drivers\win\res\ICON_2.ico" />
|
||||||
|
<None Include="..\src\drivers\win\res\tasedit-icon.ico" />
|
||||||
<None Include="..\src\drivers\win\res\te_0.bmp" />
|
<None Include="..\src\drivers\win\res\te_0.bmp" />
|
||||||
<None Include="..\src\drivers\win\res\te_1.bmp" />
|
<None Include="..\src\drivers\win\res\te_1.bmp" />
|
||||||
<None Include="..\src\drivers\win\res\te_10.bmp" />
|
<None Include="..\src\drivers\win\res\te_10.bmp" />
|
||||||
|
@ -897,6 +900,7 @@
|
||||||
</CustomBuild>
|
</CustomBuild>
|
||||||
<None Include="..\src\pputile.inc" />
|
<None Include="..\src\pputile.inc" />
|
||||||
<None Include="ClassDiagram1.cd" />
|
<None Include="ClassDiagram1.cd" />
|
||||||
|
<None Include="res\tasedit-icon.ico" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
<ImportGroup Label="ExtensionTargets">
|
<ImportGroup Label="ExtensionTargets">
|
||||||
|
|
|
@ -1498,6 +1498,10 @@
|
||||||
<None Include="..\src\drivers\win\res\te_arrow.bmp">
|
<None Include="..\src\drivers\win\res\te_arrow.bmp">
|
||||||
<Filter>pix</Filter>
|
<Filter>pix</Filter>
|
||||||
</None>
|
</None>
|
||||||
|
<None Include="..\src\drivers\win\res\icon3.ico" />
|
||||||
|
<None Include="..\src\drivers\win\res\icon4.ico" />
|
||||||
|
<None Include="res\tasedit-icon.ico" />
|
||||||
|
<None Include="..\src\drivers\win\res\tasedit-icon.ico" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<CustomBuild Include="..\src\auxlib.lua" />
|
<CustomBuild Include="..\src\auxlib.lua" />
|
||||||
|
|
Loading…
Reference in New Issue