int ConfigCheatLoad() { TCHAR szFilename[MAX_PATH] = _T(""); _stprintf(szFilename, _T("%s%s.ini"), szAppCheatsPath, BurnDrvGetText(DRV_NAME)); if (ConfigParseFile(szFilename)) { _stprintf(szFilename, _T("%s%s.dat"), szAppCheatsPath, BurnDrvGetText(DRV_NAME)); if (ConfigParseNebulaFile(szFilename)) { if (ConfigParseMAMEFile()) { return 1; } } } if (pCheatInfo) { int nCurrentCheat = 0; while (CheatEnable(nCurrentCheat, -1) == 0) { nCurrentCheat++; } CheatUpdate(); } return 0; }
static void InpCheatCancel() { if (!bOK) { CheatInfo* pCurrentCheat = pCheatInfo; nCurrentCheat = 0; while (pCurrentCheat) { CheatEnable(nCurrentCheat, nPrevCheatSettings[nCurrentCheat]); pCurrentCheat = pCurrentCheat->pNext; nCurrentCheat++; } } }
static INT_PTR CALLBACK DialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam) { if (Msg == WM_INITDIALOG) { // EnableWindow(hScrnWnd, FALSE); hInpCheatDlg = hDlg; InpCheatInit(); if (!kNetGame && bAutoPause) { bRunPause = 1; } WndInMid(hDlg, hScrnWnd); SetFocus(hDlg); // Enable Esc=close return TRUE; } if (Msg == WM_CLOSE) { EnableWindow(hScrnWnd, TRUE); DestroyWindow(hInpCheatDlg); return 0; } if (Msg == WM_DESTROY) { InpCheatCancel(); InpCheatExit(); return 0; } if (Msg == WM_COMMAND) { int Id = LOWORD(wParam); int Notify = HIWORD(wParam); if (Id == IDOK && Notify == BN_CLICKED) { // OK button bOK = true; SendMessage(hDlg, WM_CLOSE, 0, 0); return 0; } if (Id == IDCANCEL && Notify == BN_CLICKED) { // cancel = close SendMessage(hDlg, WM_CLOSE, 0, 0); return 0; } if (Id == IDC_INPCX1_VALUE && Notify == CBN_SELCHANGE) { int nSel = SendMessage(GetDlgItem(hInpCheatDlg, IDC_INPCX1_VALUE), CB_GETCURSEL, 0, 0); CheatEnable(nCurrentCheat, nSel); InpCheatListMake(); return 0; } if (Id == IDC_INPC_RESET && Notify == BN_CLICKED) { CheatInfo* pCurrentCheat = pCheatInfo; nCurrentCheat = 0; while (pCurrentCheat) { CheatEnable(nCurrentCheat, -1); pCurrentCheat = pCurrentCheat->pNext; nCurrentCheat++; } InpCheatListMake(); // refresh view SendMessage(GetDlgItem(hInpCheatDlg, IDC_INPCX1_VALUE), CB_RESETCONTENT, 0, 0); return 0; } } if (Msg == WM_NOTIFY && lParam) { int Id = LOWORD(wParam); NMHDR *pnm = (NMHDR*)lParam; if (Id == IDC_INPCHEAT_LIST && pnm->code == LVN_ITEMCHANGED) { if (((NM_LISTVIEW*)lParam)->uNewState & LVIS_SELECTED) { InpCheatSelect(); } return 0; } if (Id == IDC_INPCHEAT_LIST && ((pnm->code == NM_DBLCLK) || (pnm->code == NM_RDBLCLK))) { // Select the next item of the currently selected one. int nSel_Dbl = SendMessage(GetDlgItem(hInpCheatDlg, IDC_INPCX1_VALUE), CB_GETCURSEL, 0, 0); int nCount = SendMessage(GetDlgItem(hInpCheatDlg, IDC_INPCX1_VALUE), CB_GETCOUNT, 0, 0); if ((nSel_Dbl != LB_ERR) && (nCount > 1)) { if (pnm->code == NM_DBLCLK) { if (++nSel_Dbl >= nCount) nSel_Dbl = 0; } else { if (--nSel_Dbl < 0) nSel_Dbl = nCount - 1; } SendMessage(GetDlgItem(hInpCheatDlg, IDC_INPCX1_VALUE), CB_SETCURSEL, nSel_Dbl, 0); CheatEnable(nCurrentCheat, nSel_Dbl); InpCheatListMake(); } return 0; } } return 0; }