enable "add cheat" button in ram search and ram watch, and fix some cheat add/edit dialog bugs/limitations
This commit is contained in:
parent
b3b25bcc96
commit
d37f31bf68
|
@ -39,8 +39,10 @@ static u32 searchAddValue = 0;
|
|||
static u8 searchAddMode = 0;
|
||||
static u8 searchAddFreeze = 1;
|
||||
static u8 searchAddSize = 0;
|
||||
static const char* searchAddDesc = 0;
|
||||
static char editBuf[3][75] = { 0 };
|
||||
static u32 cheatEditPos = 0;
|
||||
static u8 cheatAddPasteCheck = 0;
|
||||
static u8 cheatXXtype = 0;
|
||||
static u8 cheatXXaction = 0;
|
||||
|
||||
|
@ -68,14 +70,13 @@ char *searchRangeText[2][4] = { {"[0..255]", "[0..65536]", "[0..16777215]", "[0.
|
|||
|
||||
u32 searchRange[4][2] = {
|
||||
{ 0, 255 },
|
||||
{ 0, 65536 },
|
||||
{ 0, 65535 },
|
||||
{ 0, 16777215 },
|
||||
{ 0, 4294967295 }
|
||||
};
|
||||
|
||||
LONG_PTR CALLBACK EditValueProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
// TODO: check paste
|
||||
if (msg == WM_CHAR)
|
||||
{
|
||||
switch (wParam)
|
||||
|
@ -91,15 +92,25 @@ LONG_PTR CALLBACK EditValueProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lPara
|
|||
case '8':
|
||||
case '9':
|
||||
break;
|
||||
case 'o':
|
||||
case 'O':
|
||||
wParam = '0';
|
||||
break;
|
||||
case '-':
|
||||
{
|
||||
u8 pos = 0;
|
||||
u32 pos = 0;
|
||||
SendMessage(hwnd, EM_GETSEL, (WPARAM)&pos, NULL);
|
||||
if (pos != 0) wParam = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
case VK_BACK:
|
||||
case 0x3: // ^C
|
||||
case 0x18: // ^X
|
||||
case 0x1a: // ^Z
|
||||
break;
|
||||
case 0x16: // ^V
|
||||
cheatAddPasteCheck = true;
|
||||
break;
|
||||
default:
|
||||
wParam = 0;
|
||||
|
@ -113,7 +124,6 @@ LONG_PTR CALLBACK EditValueProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lPara
|
|||
|
||||
LONG_PTR CALLBACK EditValueHEXProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
// TODO: check paste
|
||||
if (msg == WM_CHAR)
|
||||
{
|
||||
switch (wParam)
|
||||
|
@ -143,7 +153,17 @@ LONG_PTR CALLBACK EditValueHEXProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lP
|
|||
case 'f':
|
||||
wParam -= 32;
|
||||
break;
|
||||
case 'o':
|
||||
case 'O':
|
||||
wParam = '0';
|
||||
break;
|
||||
case VK_BACK:
|
||||
case 0x3: // ^C
|
||||
case 0x18: // ^X
|
||||
case 0x1a: // ^Z
|
||||
break;
|
||||
case 0x16: // ^V
|
||||
cheatAddPasteCheck = true;
|
||||
break;
|
||||
default:
|
||||
wParam = 0;
|
||||
|
@ -165,26 +185,29 @@ INT_PTR CALLBACK CheatsAddProc(HWND dialog, UINT msg,WPARAM wparam,LPARAM lparam
|
|||
{
|
||||
saveOldEditProc = oldEditProc;
|
||||
SendMessage(GetDlgItem(dialog, IDC_EDIT1), EM_SETLIMITTEXT, 6, 0);
|
||||
SendMessage(GetDlgItem(dialog, IDC_EDIT2), EM_SETLIMITTEXT, 10, 0);
|
||||
SendMessage(GetDlgItem(dialog, IDC_EDIT2), EM_SETLIMITTEXT, 11, 0);
|
||||
SendMessage(GetDlgItem(dialog, IDC_EDIT3), EM_SETLIMITTEXT, 75, 0);
|
||||
oldEditProcHEX = SetWindowLongPtr(GetDlgItem(dialog, IDC_EDIT1), GWLP_WNDPROC, (LONG_PTR)EditValueHEXProc);
|
||||
oldEditProc = SetWindowLongPtr(GetDlgItem(dialog, IDC_EDIT2), GWLP_WNDPROC, (LONG_PTR)EditValueProc);
|
||||
|
||||
if (searchAddMode == 1)
|
||||
if (searchAddMode == 1 || searchAddMode == 2)
|
||||
{
|
||||
char buf[10];
|
||||
char buf[12];
|
||||
searchAddAddress &= 0x00FFFFFF;
|
||||
wsprintf(buf, "%06X", searchAddAddress);
|
||||
SetWindowText(GetDlgItem(dialog, IDC_EDIT1), buf);
|
||||
wsprintf(buf, "%i", searchAddValue);
|
||||
SetWindowText(GetDlgItem(dialog, IDC_EDIT2), buf);
|
||||
EnableWindow(GetDlgItem(dialog, IDOK), TRUE);
|
||||
EnableWindow(GetDlgItem(dialog, IDC_EDIT1), FALSE);
|
||||
EnableWindow(GetDlgItem(dialog, IDC_RADIO1), FALSE);
|
||||
EnableWindow(GetDlgItem(dialog, IDC_RADIO2), FALSE);
|
||||
EnableWindow(GetDlgItem(dialog, IDC_RADIO3), FALSE);
|
||||
EnableWindow(GetDlgItem(dialog, IDC_RADIO4), FALSE);
|
||||
EnableWindow(GetDlgItem(dialog, IDC_RADIO8), FALSE);
|
||||
if (searchAddMode == 1)
|
||||
{
|
||||
EnableWindow(GetDlgItem(dialog, IDC_EDIT1), FALSE);
|
||||
EnableWindow(GetDlgItem(dialog, IDC_RADIO1), FALSE);
|
||||
EnableWindow(GetDlgItem(dialog, IDC_RADIO2), FALSE);
|
||||
EnableWindow(GetDlgItem(dialog, IDC_RADIO3), FALSE);
|
||||
EnableWindow(GetDlgItem(dialog, IDC_RADIO4), FALSE);
|
||||
EnableWindow(GetDlgItem(dialog, IDC_RADIO8), FALSE);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -193,14 +216,26 @@ INT_PTR CALLBACK CheatsAddProc(HWND dialog, UINT msg,WPARAM wparam,LPARAM lparam
|
|||
}
|
||||
|
||||
memset(editBuf, 0, sizeof(editBuf));
|
||||
if(searchAddDesc)
|
||||
{
|
||||
strncpy(editBuf[2], searchAddDesc, sizeof(editBuf[2]) - 1);
|
||||
SetWindowText(GetDlgItem(dialog, IDC_EDIT3), editBuf[2]);
|
||||
}
|
||||
searchAddDesc = 0;
|
||||
|
||||
GetWindowText(GetDlgItem(dialog, IDC_EDIT1), editBuf[0], 10);
|
||||
GetWindowText(GetDlgItem(dialog, IDC_EDIT2), editBuf[1], 11);
|
||||
|
||||
CheckDlgButton(dialog, IDC_CHECK1, BST_CHECKED);
|
||||
CheckDlgButton(dialog, searchSizeIDDs[searchAddSize], BST_CHECKED);
|
||||
|
||||
if(searchAddMode == 2)
|
||||
{
|
||||
SetFocus(GetDlgItem(dialog, IDC_EDIT2));
|
||||
SendMessage(GetDlgItem(dialog, IDC_EDIT2), EM_SETSEL, 0, -1);
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
return searchAddMode != 2;
|
||||
|
||||
case WM_COMMAND:
|
||||
{
|
||||
|
@ -213,7 +248,7 @@ INT_PTR CALLBACK CheatsAddProc(HWND dialog, UINT msg,WPARAM wparam,LPARAM lparam
|
|||
|
||||
if (cheatsAdd(searchAddSize, tmp_addr, atol(editBuf[1]), editBuf[2], searchAddFreeze))
|
||||
{
|
||||
if ((searchAddMode == 0) || (cheatsSave() && searchAddMode == 1))
|
||||
if ((searchAddMode == 0) || (cheatsSave() && (searchAddMode == 1 || searchAddMode == 2)))
|
||||
{
|
||||
oldEditProc = saveOldEditProc;
|
||||
searchAddAddress = tmp_addr;
|
||||
|
@ -235,20 +270,32 @@ INT_PTR CALLBACK CheatsAddProc(HWND dialog, UINT msg,WPARAM wparam,LPARAM lparam
|
|||
if (HIWORD(wparam) == EN_UPDATE)
|
||||
{
|
||||
GetWindowText(GetDlgItem(dialog, IDC_EDIT1), editBuf[0], 8);
|
||||
if ( (strlen(editBuf[0]) < 6) || (!strlen(editBuf[1])) )
|
||||
|
||||
u32 val = 0;
|
||||
sscanf_s(editBuf[0], "%x", &val);
|
||||
val &= 0x00FFFFFF;
|
||||
|
||||
if(cheatAddPasteCheck)
|
||||
{
|
||||
cheatAddPasteCheck = 0;
|
||||
char temp [12];
|
||||
sprintf(temp, "%06X", val);
|
||||
if(strcmp(editBuf[0], temp))
|
||||
{
|
||||
strcpy(editBuf[0], temp);
|
||||
int sel1=-1, sel2=0;
|
||||
SendMessage(GetDlgItem(dialog , IDC_EDIT1), EM_GETSEL, (WPARAM)&sel1, (LPARAM)&sel2);
|
||||
SetWindowText(GetDlgItem(dialog, IDC_EDIT1), editBuf[0]);
|
||||
SendMessage(GetDlgItem(dialog, IDC_EDIT1), EM_SETSEL, sel1, sel2);
|
||||
}
|
||||
}
|
||||
|
||||
if ( (strlen(editBuf[0]) < 6) || (!strlen(editBuf[1])) || val > 0x400000)
|
||||
{
|
||||
EnableWindow(GetDlgItem(dialog, IDOK), FALSE);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
u32 val = 0;
|
||||
sscanf_s(editBuf[0], "%x", &val);
|
||||
val &= 0x00FFFFFF;
|
||||
if (val > 0x400000)
|
||||
{
|
||||
EnableWindow(GetDlgItem(dialog, IDOK), FALSE);
|
||||
return TRUE;
|
||||
}
|
||||
EnableWindow(GetDlgItem(dialog, IDOK), TRUE);
|
||||
}
|
||||
return TRUE;
|
||||
|
@ -258,19 +305,35 @@ INT_PTR CALLBACK CheatsAddProc(HWND dialog, UINT msg,WPARAM wparam,LPARAM lparam
|
|||
{
|
||||
if (HIWORD(wparam) == EN_UPDATE)
|
||||
{
|
||||
GetWindowText(GetDlgItem(dialog, IDC_EDIT2), editBuf[1], 11);
|
||||
if ( (strlen(editBuf[0]) < 6) || (!strlen(editBuf[1])) )
|
||||
{
|
||||
EnableWindow(GetDlgItem(dialog, IDOK), FALSE);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
u32 val = strtoul(editBuf[1],NULL,10);
|
||||
if (val > searchRange[searchAddSize][1])
|
||||
GetWindowText(GetDlgItem(dialog, IDC_EDIT2), editBuf[1], 12);
|
||||
int parseOffset = 0;
|
||||
if(editBuf[1][0] && editBuf[1][1] == '-')
|
||||
parseOffset = 1; // typed something in front of -
|
||||
u32 val = strtoul(editBuf[1]+parseOffset,NULL,10);
|
||||
|
||||
if(cheatAddPasteCheck || parseOffset)
|
||||
{
|
||||
cheatAddPasteCheck = 0;
|
||||
val &= searchRange[searchAddSize][1];
|
||||
char temp [12];
|
||||
sprintf(temp, "%u", val);
|
||||
if(strcmp(editBuf[1], temp))
|
||||
{
|
||||
strcpy(editBuf[1], temp);
|
||||
int sel1=-1, sel2=0;
|
||||
SendMessage(GetDlgItem(dialog, IDC_EDIT2), EM_GETSEL, (WPARAM)&sel1, (LPARAM)&sel2);
|
||||
SetWindowText(GetDlgItem(dialog, IDC_EDIT2), editBuf[1]);
|
||||
SendMessage(GetDlgItem(dialog, IDC_EDIT2), EM_SETSEL, sel1, sel2);
|
||||
}
|
||||
}
|
||||
|
||||
if ( (strlen(editBuf[0]) < 6) || (!strlen(editBuf[1]))
|
||||
|| (val > searchRange[searchAddSize][1] && !(editBuf[1][0] == '-' && u32(-s32(val))-1 <= searchRange[searchAddSize][1])) )
|
||||
{
|
||||
EnableWindow(GetDlgItem(dialog, IDOK), FALSE);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
EnableWindow(GetDlgItem(dialog, IDOK), TRUE);
|
||||
}
|
||||
return TRUE;
|
||||
|
@ -393,16 +456,31 @@ INT_PTR CALLBACK CheatsEditProc(HWND dialog, UINT msg,WPARAM wparam,LPARAM lpara
|
|||
{
|
||||
if (HIWORD(wparam) == EN_UPDATE)
|
||||
{
|
||||
GetWindowText(GetDlgItem(dialog, IDC_EDIT2), buf, 10);
|
||||
GetWindowText(GetDlgItem(dialog, IDC_EDIT2), buf, 12);
|
||||
GetWindowText(GetDlgItem(dialog, IDC_EDIT1), buf2, 8);
|
||||
if ( (strlen(buf2) < 6) || (!strlen(buf)) )
|
||||
int parseOffset = 0;
|
||||
if(buf[0] && buf[1] == '-')
|
||||
parseOffset = 1; // typed something in front of -
|
||||
u32 val = strtoul(buf+parseOffset,NULL,10);
|
||||
|
||||
if(cheatAddPasteCheck || parseOffset)
|
||||
{
|
||||
EnableWindow(GetDlgItem(dialog, IDOK), FALSE);
|
||||
return TRUE;
|
||||
cheatAddPasteCheck = 0;
|
||||
val &= searchRange[tempCheat.size][1];
|
||||
char temp [12];
|
||||
sprintf(temp, "%u", val);
|
||||
if(strcmp(buf, temp))
|
||||
{
|
||||
strcpy(buf, temp);
|
||||
int sel1=-1, sel2=0;
|
||||
SendMessage(GetDlgItem(dialog, IDC_EDIT2), EM_GETSEL, (WPARAM)&sel1, (LPARAM)&sel2);
|
||||
SetWindowText(GetDlgItem(dialog, IDC_EDIT2), buf);
|
||||
SendMessage(GetDlgItem(dialog, IDC_EDIT2), EM_SETSEL, sel1, sel2);
|
||||
}
|
||||
}
|
||||
|
||||
u32 val = atol(buf);
|
||||
if (val > searchRange[tempCheat.size][1])
|
||||
|
||||
if ( (strlen(buf2) < 6) || (!strlen(buf))
|
||||
|| (val > searchRange[tempCheat.size][1] && !(buf[0] == '-' && u32(-s32(val))-1 <= searchRange[tempCheat.size][1])) )
|
||||
{
|
||||
EnableWindow(GetDlgItem(dialog, IDOK), FALSE);
|
||||
return TRUE;
|
||||
|
@ -919,6 +997,32 @@ void CheatsListDialog(HWND hwnd)
|
|||
}
|
||||
}
|
||||
|
||||
void CheatsAddDialog(HWND parentHwnd, u32 address, u32 value, u8 size, const char* description)
|
||||
{
|
||||
searchAddAddress = address;
|
||||
searchAddValue = value;
|
||||
searchAddMode = 2;
|
||||
searchAddFreeze = 1;
|
||||
searchAddSize = size - 1;
|
||||
searchAddDesc = description;
|
||||
|
||||
if (DialogBoxW(hAppInst, MAKEINTRESOURCEW(IDD_CHEAT_ADD), parentHwnd, (DLGPROC) CheatsAddProc))
|
||||
{
|
||||
// disabled here for now because it's modal and that's annoying.
|
||||
//CheatsListDialog(listParentHwnd);
|
||||
//
|
||||
//char buf[256];
|
||||
//cheatsGet(&tempCheat, cheatEditPos);
|
||||
//if (tempCheat.enabled)
|
||||
// ListView_SetItemText(cheatListView, cheatEditPos, 0, "X");
|
||||
//wsprintf(buf, "0x02%06X", tempCheat.hi[0]);
|
||||
//ListView_SetItemText(cheatListView, cheatEditPos, 1, buf);
|
||||
//ltoa(tempCheat.lo[0], buf, 10);
|
||||
//ListView_SetItemText(cheatListView, cheatEditPos, 2, buf);
|
||||
//ListView_SetItemText(cheatListView, cheatEditPos, 3, tempCheat.description);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ================================================================================== Search
|
||||
INT_PTR CALLBACK CheatsSearchExactWnd(HWND dialog, UINT msg,WPARAM wparam,LPARAM lparam)
|
||||
|
@ -953,7 +1057,7 @@ INT_PTR CALLBACK CheatsSearchExactWnd(HWND dialog, UINT msg,WPARAM wparam,LPARAM
|
|||
{
|
||||
if (HIWORD(wparam) == EN_UPDATE)
|
||||
{
|
||||
char buf[10];
|
||||
char buf[12];
|
||||
GetWindowText(GetDlgItem(dialog, IDC_EVALUE), buf, 10);
|
||||
if (!strlen(buf))
|
||||
{
|
||||
|
|
|
@ -21,4 +21,5 @@
|
|||
|
||||
extern void CheatsListDialog(HWND hwnd);
|
||||
extern void CheatsSearchDialog(HWND hwnd);
|
||||
extern void CheatsSearchReset();
|
||||
extern void CheatsSearchReset();
|
||||
extern void CheatsAddDialog(HWND parentHwnd, u32 address, u32 value, u8 size, const char* description=0);
|
||||
|
|
|
@ -4683,7 +4683,8 @@ LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM
|
|||
|
||||
case ID_VIEW_FRAMECOUNTER:
|
||||
CommonSettings.hud.FrameCounterDisplay ^= true;
|
||||
WritePrivateProfileBool("Display", "Display Fps", CommonSettings.hud.FpsDisplay, IniName);
|
||||
WritePrivateProfileBool("Display", "FrameCounter", CommonSettings.hud.FrameCounterDisplay, IniName);
|
||||
osd->clear();
|
||||
return 0;
|
||||
|
||||
case ID_VIEW_DISPLAYFPS:
|
||||
|
|
|
@ -8,6 +8,8 @@
|
|||
// update every single value in RAM every single frame, and
|
||||
// keep track of the exact number of frames across which each value has changed,
|
||||
// without causing the emulation to run noticeably slower than normal.
|
||||
// [note: in DeSmuME it is noticeably slower because the emulation is already only barely fast enough.
|
||||
// but especially after narrowing down the search results a little, it's still decently fast.]
|
||||
//
|
||||
// The data representation was changed from one entry per valid address
|
||||
// to one entry per contiguous range of uneliminated addresses
|
||||
|
@ -38,6 +40,7 @@
|
|||
#include <assert.h>
|
||||
#include <commctrl.h>
|
||||
#include "ramwatch.h"
|
||||
#include "cheatsWin.h"
|
||||
#include <list>
|
||||
#include <vector>
|
||||
#ifdef _WIN32
|
||||
|
@ -1043,7 +1046,7 @@ void RefreshRamListSelectedCountControlStatus(HWND hDlg)
|
|||
if(selCount < 2 || prevSelCount < 2)
|
||||
{
|
||||
EnableWindow(GetDlgItem(hDlg, IDC_C_WATCH), (selCount == 1 && WatchCount < MAX_WATCH_COUNT) ? TRUE : FALSE);
|
||||
EnableWindow(GetDlgItem(hDlg, IDC_C_ADDCHEAT), (selCount == 1) ? /*TRUE*/FALSE : FALSE);
|
||||
EnableWindow(GetDlgItem(hDlg, IDC_C_ADDCHEAT), (selCount == 1) ? TRUE : FALSE);
|
||||
EnableWindow(GetDlgItem(hDlg, IDC_C_ELIMINATE), (selCount >= 1) ? TRUE : FALSE);
|
||||
}
|
||||
prevSelCount = selCount;
|
||||
|
@ -1680,14 +1683,15 @@ LRESULT CALLBACK RamSearchProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lPara
|
|||
} {rv = true; break;}
|
||||
case IDC_C_ADDCHEAT:
|
||||
{
|
||||
// watchIndex = ListView_GetSelectionMark(GetDlgItem(hDlg,IDC_RAMLIST));
|
||||
// Liste_GG[CheatCount].restore = Liste_GG[CheatCount].data = rsresults[watchIndex].cur;
|
||||
// Liste_GG[CheatCount].addr = rsresults[watchIndex].Address;
|
||||
// Liste_GG[CheatCount].size = rs_type_size;
|
||||
// Liste_GG[CheatCount].Type = rs_t;
|
||||
// Liste_GG[CheatCount].oper = '=';
|
||||
// Liste_GG[CheatCount].mode = 0;
|
||||
// DialogBoxParam(ghInstance, MAKEINTRESOURCE(IDD_EDITCHEAT), hDlg, (DLGPROC) EditCheatProc,(LPARAM) 0);
|
||||
int cheatItemIndex = ListView_GetSelectionMark(GetDlgItem(hDlg,IDC_RAMLIST));
|
||||
if(cheatItemIndex >= 0)
|
||||
{
|
||||
u32 address = CALL_WITH_T_SIZE_TYPES(GetHardwareAddressFromItemIndex, rs_type_size,rs_t=='s',noMisalign, cheatItemIndex);
|
||||
u8 size = (rs_type_size=='b') ? 1 : (rs_type_size=='w' ? 2 : 4);
|
||||
u32 value = CALL_WITH_T_SIZE_TYPES(GetCurValueFromItemIndex, rs_type_size,rs_t=='s',noMisalign, cheatItemIndex);
|
||||
CheatsAddDialog(hDlg, address, value, size);
|
||||
}
|
||||
{rv = true; break;}
|
||||
}
|
||||
case IDC_C_RESET:
|
||||
{
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
#include "NDSSystem.h"
|
||||
#include "ramwatch.h"
|
||||
#include "ram_search.h"
|
||||
#include "cheatsWin.h"
|
||||
#include <assert.h>
|
||||
#include <windows.h>
|
||||
#include <commctrl.h>
|
||||
|
@ -48,9 +49,9 @@ unsigned int GetCurrentValue(AddressWatcher& watch)
|
|||
|
||||
switch (watch.Size)
|
||||
{
|
||||
case 0x62: return val_u8;
|
||||
case 0x77: return val_u16;
|
||||
case 0x64: return val_u32;
|
||||
case 'b': return val_u8;
|
||||
case 'w': return val_u16;
|
||||
case 'd': return val_u32;
|
||||
default: return 0;
|
||||
}
|
||||
// return ReadValueAtHardwareAddress(watch.Address, watch.Size == 'd' ? 4 : watch.Size == 'w' ? 2 : 1);
|
||||
|
@ -1046,10 +1047,14 @@ LRESULT CALLBACK RamWatchProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam
|
|||
}
|
||||
case IDC_C_ADDCHEAT:
|
||||
{
|
||||
watchIndex = ListView_GetSelectionMark(GetDlgItem(hDlg,IDC_WATCHLIST)) | (1 << 24);
|
||||
watchIndex = ListView_GetSelectionMark(GetDlgItem(hDlg,IDC_WATCHLIST));
|
||||
if(watchIndex != -1)
|
||||
{
|
||||
// DialogBoxParam(hAppInst, MAKEINTRESOURCE(IDD_EDITCHEAT), hDlg, (DLGPROC) EditCheatProc,(LPARAM) searchIndex); //TODO: made a IDD_EDITCHEAT dialog, and EditCheatProc (are they in GENS?) and integrate into cheats system
|
||||
u32 address = rswatches[watchIndex].Address;
|
||||
u8 size = (rswatches[watchIndex].Size=='b') ? 1 : (rswatches[watchIndex].Size=='w' ? 2 : 4);
|
||||
u32 value = rswatches[watchIndex].CurValue;
|
||||
const char* desc = rswatches[watchIndex].comment;
|
||||
CheatsAddDialog(hDlg, address, value, size, desc);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
Binary file not shown.
Loading…
Reference in New Issue