* Cheats: added "Add from CHT file..." button
This commit is contained in:
parent
15adae5df9
commit
3cb74f7780
|
@ -86,8 +86,8 @@ struct CHEATF *cheats=0,*cheatsl=0;
|
|||
#define CHEATC_EXCLUDED 0x4000
|
||||
#define CHEATC_NOSHOW 0xC000
|
||||
|
||||
static uint16 *CheatComp=0;
|
||||
static int savecheats;
|
||||
static uint16 *CheatComp = 0;
|
||||
int savecheats = 0;
|
||||
|
||||
static DECLFR(SubCheatsRead)
|
||||
{
|
||||
|
@ -215,7 +215,6 @@ void FCEU_LoadGameCheats(FILE *override)
|
|||
}
|
||||
|
||||
FCEU_DispMessage("Cheats file loaded.",0); //Tells user a cheats file was loaded.
|
||||
FCEU_printf("Cheats file loaded.\n",0); //Sends message to message log.
|
||||
while(fgets(linebuf,2048,fp)>0)
|
||||
{
|
||||
char *tbuf=linebuf;
|
||||
|
|
|
@ -8,3 +8,5 @@ void FCEU_PowerCheats(void);
|
|||
|
||||
int FCEU_CheatGetByte(uint32 A);
|
||||
void FCEU_CheatSetByte(uint32 A, uint8 V);
|
||||
|
||||
extern int savecheats;
|
|
@ -25,6 +25,7 @@
|
|||
#include "debugger.h"
|
||||
#include "../../fceu.h"
|
||||
#include "../../cart.h"
|
||||
#include "../../cheat.h" // For FCEU_LoadGameCheats()
|
||||
|
||||
static HWND pwindow = 0; //Handle to Cheats dialog
|
||||
HWND hCheat = 0; //mbg merge 7/19/06 had to add
|
||||
|
@ -541,6 +542,39 @@ BOOL CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM l
|
|||
else SetDlgItemText(hwndDlg,IDC_CHEAT_COM,(LPTSTR)U8ToStr(c));
|
||||
if(hMemView)UpdateColorTable(); //if the memory viewer is open then update any blue freeze locations in it as well
|
||||
break;
|
||||
case IDC_BTN_CHEAT_ADDFROMFILE:
|
||||
{
|
||||
OPENFILENAME ofn;
|
||||
memset(&ofn, 0, sizeof(ofn));
|
||||
ofn.lStructSize = sizeof(ofn);
|
||||
ofn.hwndOwner = hwndDlg;
|
||||
ofn.hInstance = fceu_hInstance;
|
||||
ofn.lpstrTitle = "Open Cheats file";
|
||||
const char filter[] = "Cheat files (*.cht)\0*.cht\0All Files (*.*)\0*.*\0\0";
|
||||
ofn.lpstrFilter = filter;
|
||||
|
||||
char nameo[2048] = {0};
|
||||
ofn.lpstrFile = nameo;
|
||||
ofn.nMaxFile = 2048;
|
||||
ofn.Flags = OFN_EXPLORER|OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT|OFN_FILEMUSTEXIST;
|
||||
std::string initdir = FCEU_GetPath(FCEUMKF_CHEAT);
|
||||
ofn.lpstrInitialDir = initdir.c_str();
|
||||
|
||||
if (GetOpenFileName(&ofn))
|
||||
{
|
||||
FILE* file = FCEUD_UTF8fopen(nameo, "rb");
|
||||
if (file)
|
||||
{
|
||||
FCEU_LoadGameCheats(file);
|
||||
EnableWindow(GetDlgItem(hwndDlg,IDC_BTN_CHEAT_DEL),TRUE);
|
||||
EnableWindow(GetDlgItem(hwndDlg,IDC_BTN_CHEAT_UPD),TRUE);
|
||||
if (hMemView) UpdateColorTable(); //if the memory viewer is open then update any blue freeze locations in it as well
|
||||
UpdateCheatsAdded();
|
||||
savecheats = 1;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case IDC_BTN_CHEAT_RESET:
|
||||
FCEUI_CheatSearchBegin();
|
||||
ShowResults(hwndDlg);
|
||||
|
@ -726,19 +760,20 @@ void InitializeCheatsAdded(HWND hwndDlg)
|
|||
char temp[64];
|
||||
if (FrozenAddressCount < 256)
|
||||
sprintf(temp,"Active Cheats %d", FrozenAddressCount);
|
||||
|
||||
else if (FrozenAddressCount == 256)
|
||||
{
|
||||
sprintf(temp,"Active Cheats %d (Max Limit)", FrozenAddressCount);
|
||||
EnableWindow(GetDlgItem(hwndDlg,IDC_BTN_CHEAT_ADD),FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
sprintf(temp,"%d Error: Too many cheats loaded!", FrozenAddressCount);
|
||||
EnableWindow(GetDlgItem(hwndDlg,IDC_BTN_CHEAT_ADD),FALSE);
|
||||
}
|
||||
SetDlgItemText(hwndDlg,201,temp);
|
||||
RedoCheatsLB(hwndDlg);
|
||||
else if (FrozenAddressCount == 256)
|
||||
{
|
||||
sprintf(temp,"Active Cheats %d (Max Limit)", FrozenAddressCount);
|
||||
EnableWindow(GetDlgItem(hwndDlg,IDC_BTN_CHEAT_ADD),FALSE);
|
||||
EnableWindow(GetDlgItem(hwndDlg,IDC_BTN_CHEAT_ADDFROMFILE),FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
sprintf(temp,"%d Error: Too many cheats loaded!", FrozenAddressCount);
|
||||
EnableWindow(GetDlgItem(hwndDlg,IDC_BTN_CHEAT_ADD),FALSE);
|
||||
EnableWindow(GetDlgItem(hwndDlg,IDC_BTN_CHEAT_ADDFROMFILE),FALSE);
|
||||
}
|
||||
SetDlgItemText(hwndDlg,201,temp);
|
||||
RedoCheatsLB(hwndDlg);
|
||||
}
|
||||
|
||||
//Used by cheats and external dialogs such as hex editor to update items in the cheat search dialog
|
||||
|
@ -756,11 +791,13 @@ void UpdateCheatsAdded()
|
|||
{
|
||||
sprintf(temp,"Active Cheats %d (Max Limit)", FrozenAddressCount);
|
||||
EnableWindow(GetDlgItem(hCheat,IDC_BTN_CHEAT_ADD),FALSE);
|
||||
EnableWindow(GetDlgItem(hCheat,IDC_BTN_CHEAT_ADDFROMFILE),FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
sprintf(temp,"%d Error: Too many cheats loaded!", FrozenAddressCount);
|
||||
EnableWindow(GetDlgItem(hCheat,IDC_BTN_CHEAT_ADD),FALSE);
|
||||
EnableWindow(GetDlgItem(hCheat,IDC_BTN_CHEAT_ADDFROMFILE),FALSE);
|
||||
}
|
||||
SetDlgItemText(hCheat,201,temp);
|
||||
RedoCheatsLB(hCheat);
|
||||
|
|
|
@ -498,7 +498,7 @@ CHEATCONTEXTMENUS MENU
|
|||
BEGIN
|
||||
POPUP "CheatListPopup"
|
||||
BEGIN
|
||||
MENUITEM "Toggle Cheat\tDbl-Clk", CHEAT_CONTEXT_TOGGLECHEAT
|
||||
MENUITEM "Toggle selected Cheats\tDbl-Clk", CHEAT_CONTEXT_TOGGLECHEAT
|
||||
MENUITEM "Poke Cheat Value", CHEAT_CONTEXT_POKECHEATVALUE
|
||||
MENUITEM "Goto In Hex Editor", CHEAT_CONTEXT_GOTOINHEXEDITOR
|
||||
MENUITEM "Delete Selected Cheats", ID_CHEATLISTPOPUP_DELETESELECTEDCHEATS
|
||||
|
@ -1670,25 +1670,25 @@ BEGIN
|
|||
LTEXT "New Selection Name:",-1,5,240,68,8
|
||||
END
|
||||
|
||||
CHEATCONSOLE DIALOGEX 0, 0, 379, 186
|
||||
CHEATCONSOLE DIALOGEX 0, 0, 379, 189
|
||||
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Cheat Search"
|
||||
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
||||
BEGIN
|
||||
GROUPBOX "Active Cheats",201,5,1,129,168,WS_TABSTOP
|
||||
GROUPBOX "Cheat Search",202,139,1,234,168,WS_TABSTOP
|
||||
LISTBOX IDC_LIST_CHEATS,11,11,118,102,LBS_NOINTEGRALHEIGHT | LBS_EXTENDEDSEL | WS_VSCROLL
|
||||
LTEXT "Name:",IDC_STATIC,12,118,22,10
|
||||
LTEXT "Addr:",IDC_STATIC,12,134,18,10
|
||||
LTEXT "Val:",IDC_STATIC,61,134,12,10
|
||||
LTEXT "Cmp:",IDC_STATIC,95,134,16,10
|
||||
EDITTEXT IDC_CHEAT_NAME,35,116,94,12,ES_AUTOHSCROLL | ES_WANTRETURN
|
||||
EDITTEXT IDC_CHEAT_ADDR,31,132,25,12,ES_UPPERCASE | ES_WANTRETURN
|
||||
EDITTEXT IDC_CHEAT_VAL,74,132,16,12,ES_UPPERCASE | ES_WANTRETURN
|
||||
EDITTEXT IDC_CHEAT_COM,113,132,16,12,ES_UPPERCASE | ES_WANTRETURN
|
||||
DEFPUSHBUTTON "Add",IDC_BTN_CHEAT_ADD,11,148,36,16
|
||||
PUSHBUTTON "Delete",IDC_BTN_CHEAT_DEL,52,148,36,16
|
||||
PUSHBUTTON "Update",IDC_BTN_CHEAT_UPD,93,148,36,16
|
||||
GROUPBOX "Active Cheats",201,5,2,129,182,WS_TABSTOP
|
||||
GROUPBOX "Cheat Search",202,140,2,233,182,WS_TABSTOP
|
||||
LISTBOX IDC_LIST_CHEATS,11,11,118,98,LBS_NOINTEGRALHEIGHT | LBS_EXTENDEDSEL | WS_VSCROLL
|
||||
LTEXT "Name:",IDC_STATIC,12,114,22,10
|
||||
LTEXT "Addr:",IDC_STATIC,12,130,18,10
|
||||
LTEXT "Val:",IDC_STATIC,61,130,12,10
|
||||
LTEXT "Cmp:",IDC_STATIC,95,130,16,10
|
||||
EDITTEXT IDC_CHEAT_NAME,35,112,94,12,ES_AUTOHSCROLL | ES_WANTRETURN
|
||||
EDITTEXT IDC_CHEAT_ADDR,31,128,25,12,ES_UPPERCASE | ES_WANTRETURN
|
||||
EDITTEXT IDC_CHEAT_VAL,74,128,16,12,ES_UPPERCASE | ES_WANTRETURN
|
||||
EDITTEXT IDC_CHEAT_COM,113,128,16,12,ES_UPPERCASE | ES_WANTRETURN
|
||||
DEFPUSHBUTTON "Add",IDC_BTN_CHEAT_ADD,11,144,36,16
|
||||
PUSHBUTTON "Delete",IDC_BTN_CHEAT_DEL,52,144,36,16
|
||||
PUSHBUTTON "Update",IDC_BTN_CHEAT_UPD,93,144,36,16
|
||||
PUSHBUTTON "Reset",IDC_BTN_CHEAT_RESET,146,12,55,15
|
||||
PUSHBUTTON "Known Value:",IDC_BTN_CHEAT_KNOWN,146,31,55,15
|
||||
LTEXT "0x",IDC_STATIC,205,34,9,8
|
||||
|
@ -1707,7 +1707,9 @@ BEGIN
|
|||
GROUPBOX "Possibilities",IDC_CHEAT_BOX_POSSIBILITIES,263,8,105,156,WS_TABSTOP
|
||||
LISTBOX IDC_CHEAT_LIST_POSSIBILITIES,268,18,85,142,LBS_SORT | LBS_NOINTEGRALHEIGHT | LBS_WANTKEYBOARDINPUT | WS_TABSTOP
|
||||
SCROLLBAR IDC_CHEAT_SCRL_POSSIBILITIES,354,18,10,142,SBS_VERT
|
||||
CONTROL "Pause when active",IDC_CHEAT_PAUSEWHENACTIVE,"Button",BS_AUTOCHECKBOX,10,172,76,10
|
||||
CONTROL " Pause emulation when this window is active",IDC_CHEAT_PAUSEWHENACTIVE,
|
||||
"Button",BS_AUTOCHECKBOX,147,169,157,10
|
||||
PUSHBUTTON "Add from CHT file...",IDC_BTN_CHEAT_ADDFROMFILE,23,163,93,16
|
||||
END
|
||||
|
||||
IDD_LUA DIALOGEX 0, 0, 270, 150
|
||||
|
@ -2102,7 +2104,7 @@ BEGIN
|
|||
|
||||
"CHEATCONSOLE", DIALOG
|
||||
BEGIN
|
||||
TOPMARGIN, 7
|
||||
BOTTOMMARGIN, 188
|
||||
END
|
||||
|
||||
IDD_LUA, DIALOG
|
||||
|
|
|
@ -403,6 +403,8 @@
|
|||
#define MENU_PAL 311
|
||||
#define IDC_DEBUGGER_VAL_SPR 311
|
||||
#define IDC_LABEL_TWEAKCOUNT 311
|
||||
#define IDC_BTN_CHEAT_UPD2 311
|
||||
#define IDC_BTN_CHEAT_ADDFROMFILE 311
|
||||
#define IDC_DEBUGGER_BOOKMARK 312
|
||||
#define IDC_DEBUGGER_CYCLES_EXCEED 313
|
||||
#define IDC_DEBUGGER_INSTRUCTIONS_EXCEED 314
|
||||
|
|
Loading…
Reference in New Issue