static void miscComboboxInit() { if (!hMiscDlg) { return; } #ifndef NO_IMAGEMENU for (int i = IDS_PREF_MENUNONE; i <= IDS_PREF_MENUEXTRA; i++) { SendDlgItemMessage(hMiscDlg, IDC_PREF_MENUSTYLE, CB_ADDSTRING, 0, (LPARAM)FBALoadStringEx(i)); } SendDlgItemMessage(hMiscDlg, IDC_PREF_MENUSTYLE, CB_SETCURSEL, (WPARAM)menuNewStyle, 0); #endif for (int i = IDS_PREF_EFFECTNONE; i <= IDS_PREF_EFFECTTV; i++) { SendDlgItemMessage(hMiscDlg, IDC_PREF_EFFECTTYPE, CB_ADDSTRING, 0, (LPARAM)FBALoadStringEx(i)); } SendDlgItemMessage(hMiscDlg, IDC_PREF_EFFECTTYPE, CB_SETCURSEL, (WPARAM)nShowEffect, 0); TCHAR speedstr[32] = _T(""); for (int i = 2; i < 9; i++) { _stprintf(speedstr, _T("%d%%"), i * 100); SendDlgItemMessage(hMiscDlg, IDC_PREF_FASTFORWARD, CB_ADDSTRING, 0, (LPARAM)speedstr); } SendDlgItemMessage(hMiscDlg, IDC_PREF_FASTFORWARD, CB_SETCURSEL, (WPARAM)nFastSpeed - 1, 0); }
int createDatfileWindows(int type) { TCHAR szTitle[MAX_PATH]; TCHAR szFilter[MAX_PATH]; _sntprintf(szChoice, sizearray(szChoice), _T(APP_TITLE) _T(" v%.20s (%s).dat"), szAppBurnVer, _T("clrmamepro")); _sntprintf(szTitle, sizearray(szTitle), FBALoadStringEx(IDS_DAT_GENERATE), _T("clrmamepro")); _stprintf(szFilter, FBALoadStringEx(IDS_DISK_ALL_DAT), _T(APP_TITLE)); memcpy(szFilter + _tcslen(szFilter), _T(" (*.dat)\0*.dat\0\0"), 16 * sizeof(TCHAR)); memset(&ofn, 0, sizeof(ofn)); ofn.lStructSize = sizeof(ofn); ofn.hwndOwner = hScrnWnd; ofn.lpstrFilter = szFilter; ofn.lpstrFile = szChoice; ofn.nMaxFile = sizearray(szChoice); ofn.lpstrInitialDir = _T("."); ofn.Flags = OFN_NOCHANGEDIR | OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT; ofn.lpstrDefExt = _T("dat"); ofn.lpstrTitle = szTitle; if (GetSaveFileName(&ofn) == 0) return 1; return create_datfile(szChoice, type); }
static int InpsInit() { TCHAR szTitle[128]; memset(&OldInp, 0, sizeof(OldInp)); pgi = NULL; if (nInpsInput >= nGameInpCount + nMacroCount) { // input out of range return 1; } pgi = GameInp + nInpsInput; memset(&bii,0,sizeof(bii)); BurnDrvGetInputInfo(&bii, nInpsInput); if (bii.nType & BIT_GROUP_CONSTANT) { // This dialog doesn't handle constants return 1; } OldInp = *pgi; bOldPush = 0; bGrabMouse = false; bOldLeftAltkeyMapped = bLeftAltkeyMapped; bLeftAltkeyMapped = true; // Set the dialog title if (nInpsInput >= nGameInpCount) { // Macro _stprintf(szTitle, FBALoadStringEx(hAppInst, IDS_INPSET_MOVENAME, true), pgi->Macro.szName); } else { // Normal input if (bii.szName == NULL || bii.szName[0] == _T('\0')) { _stprintf(szTitle, FBALoadStringEx(hAppInst, IDS_INPSET_MOVE, true)); } else { _stprintf(szTitle, FBALoadStringEx(hAppInst, IDS_INPSET_MOVENAME, true), bii.szName); } } SetWindowText(hInpsDlg, szTitle); InputFind(2); nDlgState = 4; nInputCode = -1; nCounter = 0; return 0; }
int MemCardCreate() { TCHAR szFilter[1024]; int nRet; _stprintf(szFilter, FBALoadStringEx(hAppInst, IDS_DISK_FILE_CARD, true), _T(APP_TITLE)); memcpy(szFilter + _tcslen(szFilter), _T(" (*.fc)\0*.fc\0\0"), 14 * sizeof(TCHAR)); _stprintf (szMemoryCardFile, _T("memorycard")); MakeOfn(); ofn.lpstrTitle = FBALoadStringEx(hAppInst, IDS_MEMCARD_CREATE, true); ofn.lpstrFilter = szFilter; ofn.Flags |= OFN_OVERWRITEPROMPT; int bOldPause = bRunPause; bRunPause = 1; nRet = GetSaveFileName(&ofn); bRunPause = bOldPause; if (nRet == 0) { return 1; } { unsigned char* pCard; MemCardGetSize(); pCard = (unsigned char*)malloc(nMemoryCardSize); memset(pCard, 0, nMemoryCardSize); bMemCardFC1Format = true; if (MemCardWrite(szMemoryCardFile, pCard, nMemoryCardSize)) { return 1; } if (pCard) { free(pCard); pCard = NULL; } } nMemoryCardStatus = 1; MenuEnableItems(); return 0; }
// Property sheet void preferenceCreate(HWND parent) { HINSTANCE instance = FBALocaliseInstance(); PROPSHEETPAGE psp[3]; PROPSHEETHEADER psh; for (int i = 0; i < sizearray(psp); i++) { psp[i].dwSize = sizeof(PROPSHEETPAGE); psp[i].dwFlags = PSP_DEFAULT; psp[i].hInstance = instance; psp[i].lParam = 0; psp[i].pfnCallback = NULL; } psp[0].pszTemplate = MAKEINTRESOURCE(IDD_PREF_VIDEO); psp[0].pfnDlgProc = (DLGPROC)prefVideoDlgProc; psp[1].pszTemplate = MAKEINTRESOURCE(IDD_PREF_AUDIO); psp[1].pfnDlgProc = (DLGPROC)prefAudioDlgProc; psp[2].pszTemplate = MAKEINTRESOURCE(IDD_PREF_MISC); psp[2].pfnDlgProc = (DLGPROC)prefMiscDlgProc; psh.dwSize = sizeof(PROPSHEETHEADER); psh.dwFlags = PSH_PROPSHEETPAGE | PSH_NOAPPLYNOW | PSH_NOCONTEXTHELP; psh.hwndParent = parent; psh.hInstance = instance; psh.pszCaption = FBALoadStringEx(IDS_PREF_SETTINGS); psh.nPages = sizearray(psp); psh.nStartPage = 0; psh.ppsp = (LPCPROPSHEETPAGE)&psp; psh.pfnCallback = NULL; PropertySheet(&psh); }
int patchSettingInit() { // clear active patch index for (int i = 0; i < MAX_ACTIVE_PATCHES; i++) { _stprintf(szActivePatches[i], _T("")); } // Get game full name TCHAR szText[1024] = _T(""); TCHAR* pszFullName = transGameName(BurnDrvGetText(DRV_FULLNAME)); _stprintf(szText, _T("%s") _T(SEPERATOR_1) _T("%s"), FBALoadStringEx(IDS_IPSMANAGER), pszFullName); // Set the window caption SetWindowText(hIpsDlg, szText); // init ips language combobox for (int i = 0; ui_lang_info[i].name; i++) { SendDlgItemMessage(hIpsDlg, IDC_IPS_LANG, CB_ADDSTRING, 0, (LPARAM)AtoW(ui_lang_info[i].name)); } SendDlgItemMessage(hIpsDlg, IDC_IPS_LANG, CB_SETCURSEL, (WPARAM)nPatchLang, 0); CheckDlgButton(hIpsDlg, IDC_IPS_ENFORCE, bEnforceDep ? BST_CHECKED : BST_UNCHECKED); rebuildIpsList(); return 0; }
int StatedLoad(int nSlot) { TCHAR szFilter[1024]; int nRet; int bOldPause; if (nSlot) { CreateStateName(nSlot); } else { if (bDrvOkay) { _stprintf(szChoice, _T("%s*.fs"), BurnDrvGetText(DRV_NAME)); } else { _stprintf(szChoice, _T("savestate")); } MakeOfn(szFilter); ofn.lpstrTitle = FBALoadStringEx(hAppInst, IDS_STATE_LOAD, true); bOldPause = bRunPause; bRunPause = 1; nRet = GetOpenFileName(&ofn); bRunPause = bOldPause; if (nRet == 0) { // Error return 1; } } nRet = BurnStateLoad(szChoice, 1, &DrvInitCallback); if (nSlot) { return nRet; } // Describe any possible errors: if (nRet == 3) { FBAPopupAddText(PUF_TEXT_DEFAULT, MAKEINTRESOURCE(IDS_DISK_THIS_STATE)); FBAPopupAddText(PUF_TEXT_DEFAULT, MAKEINTRESOURCE(IDS_ERR_DISK_UNAVAIL)); } else { if (nRet == 4) { FBAPopupAddText(PUF_TEXT_DEFAULT, MAKEINTRESOURCE(IDS_DISK_THIS_STATE)); FBAPopupAddText(PUF_TEXT_DEFAULT, MAKEINTRESOURCE(IDS_ERR_DISK_TOOOLD), _T(APP_TITLE)); } else { if (nRet == 5) { FBAPopupAddText(PUF_TEXT_DEFAULT, MAKEINTRESOURCE(IDS_DISK_THIS_STATE)); FBAPopupAddText(PUF_TEXT_DEFAULT, MAKEINTRESOURCE(IDS_ERR_DISK_TOONEW), _T(APP_TITLE)); } else { if (nRet && !nSlot) { FBAPopupAddText(PUF_TEXT_DEFAULT, MAKEINTRESOURCE(IDS_ERR_DISK_LOAD)); FBAPopupAddText(PUF_TEXT_DEFAULT, MAKEINTRESOURCE(IDS_DISK_STATE)); } } } } if (nRet) { FBAPopupDisplay(PUF_TYPE_ERROR); } return nRet; }
static int InpDIPSWListBegin() { LVCOLUMN LvCol; if (hInpDIPSWList == NULL) { return 1; } // Full row select style: SendMessage(hInpDIPSWList, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, LVS_EX_FULLROWSELECT); // Make column headers memset(&LvCol, 0, sizeof(LvCol)); LvCol.mask = LVCF_TEXT | LVCF_WIDTH | LVCF_SUBITEM; LvCol.cx = 158; LvCol.pszText = FBALoadStringEx(hAppInst, IDS_DIP_GROUP, true); SendMessage(hInpDIPSWList, LVM_INSERTCOLUMN, 0, (LPARAM)&LvCol); LvCol.cx = 215; LvCol.pszText = FBALoadStringEx(hAppInst, IDS_DIP_SETTING, true); SendMessage(hInpDIPSWList, LVM_INSERTCOLUMN, 1, (LPARAM)&LvCol); return 0; }
// enable/disable autofire buttons int setAutofire(const int& player, const int& fire, bool state) { if (!nAutofireEnabled) return 0; if (player < P_1 || player > P_4 || fire < F_1 || fire > F_6) return 1; autofireOn[player][fire] = state; #if 0 // add message TCHAR msg[64] = _T(""); if (autofireOn[player][fire]) sprintf(msg, FBALoadStringEx(IDS_AUTOFIRE_ON), player + 1, fire + 1); else sprintf(msg, FBALoadStringEx(IDS_AUTOFIRE_OFF), player + 1, fire + 1); VidSNewShortMsg(msg); #endif return 0; }
int MemCardSelect() { TCHAR szFilter[1024]; TCHAR* pszTemp = szFilter; int nRet; pszTemp += _stprintf(pszTemp, FBALoadStringEx(hAppInst, IDS_DISK_ALL_CARD, true)); memcpy(pszTemp, _T(" (*.fc, MEMCARD.\?\?\?)\0*.fc;MEMCARD.\?\?\?\0"), 38 * sizeof(TCHAR)); pszTemp += 38; pszTemp += _stprintf(pszTemp, FBALoadStringEx(hAppInst, IDS_DISK_FILE_CARD, true), _T(APP_TITLE)); memcpy(pszTemp, _T(" (*.fc)\0*.fc\0"), 13 * sizeof(TCHAR)); pszTemp += 13; pszTemp += _stprintf(pszTemp, FBALoadStringEx(hAppInst, IDS_DISK_FILE_CARD, true), _T("MAME")); memcpy(pszTemp, _T(" (MEMCARD.\?\?\?)\0MEMCARD.\?\?\?\0\0"), 28 * sizeof(TCHAR)); MakeOfn(); ofn.lpstrTitle = FBALoadStringEx(hAppInst, IDS_MEMCARD_SELECT, true); ofn.lpstrFilter = szFilter; int bOldPause = bRunPause; bRunPause = 1; nRet = GetOpenFileName(&ofn); bRunPause = bOldPause; if (nRet == 0) { return 1; } MemCardGetSize(); if (nMemoryCardSize <= 0) { return 1; } nMemoryCardStatus = 1; MenuEnableItems(); return 0; }
static int FBAPopupLog() { TCHAR* pszTypeEnglish; switch (nPopupFlags & 7) { case PUF_TYPE_ERROR: pszTypeEnglish = FBALoadStringEx(hAppInst, IDS_ERR_ERROR, false); break; case PUF_TYPE_WARNING: pszTypeEnglish = FBALoadStringEx(hAppInst, IDS_ERR_WARNING, false); break; default: pszTypeEnglish = FBALoadStringEx(hAppInst, IDS_ERR_INFORMATION, false); break; } dprintf(_T("*** %s message:\n"), pszTypeEnglish); for (TCHAR* szText = pszBufferEnglish; ; ) { int nLen; for (nLen = 0; szText[nLen] && szText[nLen] != _T('\n'); nLen++) { } if (nLen) { TCHAR szFormat[16]; _stprintf(szFormat, _T(" %%.%is\n"), nLen); dprintf(szFormat, szText); } if (!szText[nLen]) { break; } szText += nLen + 1; } return 0; }
static void audioFrameInit() { if (!hAudioDlg) { return; } // Initialise slider TCHAR szText[MAX_PATH]; _sntprintf(szText, sizearray(szText), FBALoadStringEx(IDS_NUMDLG_FRAME), nAudSegCount, int(1000.0 * (nAudSegCount - 1.0) / 60)); SetDlgItemText(hAudioDlg, IDC_PREF_AUDFRAME_TEXT, szText); // limit in 2 - 10 SendDlgItemMessage(hAudioDlg, IDC_PREF_AUDFRAME, TBM_SETRANGE, (WPARAM)TRUE, (LPARAM)MAKELONG(2, 10)); SendDlgItemMessage(hAudioDlg, IDC_PREF_AUDFRAME, TBM_SETTIC, 0, (LPARAM)6); SendDlgItemMessage(hAudioDlg, IDC_PREF_AUDFRAME, TBM_SETPOS, (WPARAM)TRUE, (LPARAM)nAudSegCount); }
static void MakeOfn(TCHAR* pszFilter) { _stprintf(pszFilter, FBALoadStringEx(hAppInst, IDS_DISK_FILE_STATE, true), _T(APP_TITLE)); memcpy(pszFilter + _tcslen(pszFilter), _T(" (*.fs, *.fr)\0*.fs;*.fr\0\0"), 25 * sizeof(TCHAR)); memset(&ofn, 0, sizeof(ofn)); ofn.lStructSize = sizeof(ofn); ofn.hwndOwner = hScrnWnd; ofn.lpstrFilter = pszFilter; ofn.lpstrFile = szChoice; ofn.nMaxFile = sizeof(szChoice) / sizeof(TCHAR); ofn.lpstrInitialDir = _T(".\\savestates"); ofn.Flags = OFN_NOCHANGEDIR | OFN_HIDEREADONLY; ofn.lpstrDefExt = _T("fs"); return; }
static void WaveMakeOfn(TCHAR* pszFilter) { _stprintf(pszFilter, FBALoadStringEx(IDS_DISK_FILE_SOUND), _T(APP_TITLE)); memcpy(pszFilter + _tcslen(pszFilter), _T(" (*.wav)\0*.wav\0\0"), 16 * sizeof(TCHAR)); memset(&ofn, 0, sizeof(ofn)); ofn.lStructSize = sizeof(ofn); ofn.hwndOwner = hScrnWnd; ofn.lpstrFilter = pszFilter; ofn.lpstrFile = szChoice; ofn.nMaxFile = sizearray(szChoice); ofn.lpstrInitialDir = _T(".\\wav"); ofn.Flags = OFN_NOCHANGEDIR | OFN_HIDEREADONLY; ofn.lpstrDefExt = _T("wav"); return; }
int FBALocaliseLoad() { localiseMakeOfn(); ofn.lpstrTitle = FBALoadStringEx(IDS_LOCAL_SELECT); int bOldPause = bRunPause; bRunPause = 1; int ret = GetOpenFileName(&ofn); bRunPause = bOldPause; if (ret == 0) { return 1; } return FBALocaliseInit(szChoice); }
int SelectPlaceHolder() { int nRet; int bOldPause; MakeOfn(); ofn.lpstrTitle = FBALoadStringEx(hAppInst, IDS_PLACEHOLDER_LOAD, true); bOldPause = bRunPause; bRunPause = 1; nRet = GetOpenFileName(&ofn); bRunPause = bOldPause; if (nRet == 0) { // Error return 1; } szPlaceHolder[0] = _T('\0'); memcpy(szPlaceHolder, szChoice, sizeof(szChoice)); return nRet; }
int StatedSave(int nSlot) { TCHAR szFilter[1024]; int nRet; int bOldPause; if (bDrvOkay == 0) { return 1; } if (nSlot) { CreateStateName(nSlot); } else { _stprintf(szChoice, _T("%s"), BurnDrvGetText(DRV_NAME)); MakeOfn(szFilter); ofn.lpstrTitle = FBALoadStringEx(hAppInst, IDS_STATE_SAVE, true); ofn.Flags |= OFN_OVERWRITEPROMPT; bOldPause = bRunPause; bRunPause = 1; nRet = GetSaveFileName(&ofn); bRunPause = bOldPause; if (nRet == 0) { // Error return 1; } } nRet = BurnStateSave(szChoice, 1); if (nRet && !nSlot) { FBAPopupAddText(PUF_TEXT_DEFAULT, MAKEINTRESOURCE(IDS_ERR_DISK_CREATE)); FBAPopupAddText(PUF_TEXT_DEFAULT, MAKEINTRESOURCE(IDS_DISK_STATE)); FBAPopupDisplay(PUF_TYPE_ERROR); } return nRet; }
static INT_PTR CALLBACK ProgressProc(HWND hDlg, UINT Msg, WPARAM /*wParam*/, LPARAM /*lParam*/) { if (Msg == WM_INITDIALOG) { TCHAR szText[128] = _T(""); hProgressDlg = hDlg; SendDlgItemMessage(hDlg, IDC_WAIT_PROG, PBM_SETRANGE32, nProgressMin, nProgressMax); _stprintf(szText, FBALoadStringEx(hAppInst, IDS_PROGRESS_LOADING, true), BurnDrvGetText(DRV_NAME)); SendDlgItemMessage(hDlg, IDC_WAIT_LABEL_B1, WM_SETTEXT, 0, (LPARAM)szText); ShowWindow(GetDlgItem(hDlg, IDC_WAIT_LABEL_B1), TRUE); ShowWindow(GetDlgItem(hDlg, IDC_WAIT_LABEL_B2), TRUE); WndInMid(hDlg, hScrnWnd); SetForegroundWindow(hDlg); SetWindowPos(hDlg, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW); return TRUE; } return 0; }
static int IpsManagerInit() { // Get the games full name TCHAR szText[1024] = _T(""); TCHAR* pszPosition = szText; TCHAR* pszName = BurnDrvGetText(DRV_FULLNAME); pszPosition += _sntprintf(szText, 1024, pszName); pszName = BurnDrvGetText(DRV_FULLNAME); while ((pszName = BurnDrvGetText(DRV_NEXTNAME | DRV_FULLNAME)) != NULL) { if (pszPosition + _tcslen(pszName) - 1024 > szText) { break; } pszPosition += _stprintf(pszPosition, _T(SEPERATOR_2) _T("%s"), pszName); } _tcscpy(szFullName, szText); _stprintf(szText, _T("%s") _T(SEPERATOR_1) _T("%s"), FBALoadStringEx(hAppInst, IDS_IPSMANAGER_TITLE, true), szFullName); // Set the window caption SetWindowText(hIpsDlg, szText); // Fill the combo box _stprintf(szLanguages[0], _T("English (US)")); _stprintf(szLanguages[1], _T("Simplified Chinese")); _stprintf(szLanguages[2], _T("Traditional Chinese")); _stprintf(szLanguages[3], _T("Japanese")); _stprintf(szLanguages[4], _T("Korean")); _stprintf(szLanguages[5], _T("French")); _stprintf(szLanguages[6], _T("Spanish")); _stprintf(szLanguages[7], _T("Italian")); _stprintf(szLanguages[8], _T("German")); _stprintf(szLanguages[9], _T("Portuguese")); _stprintf(szLanguages[10], _T("Polish")); _stprintf(szLanguages[11], _T("Hungarian")); _stprintf(szLanguageCodes[0], _T("en_US")); _stprintf(szLanguageCodes[1], _T("zh_CN")); _stprintf(szLanguageCodes[2], _T("zh_TW")); _stprintf(szLanguageCodes[3], _T("ja_JP")); _stprintf(szLanguageCodes[4], _T("ko_KR")); _stprintf(szLanguageCodes[5], _T("fr_FR")); _stprintf(szLanguageCodes[6], _T("es_ES")); _stprintf(szLanguageCodes[7], _T("it_IT")); _stprintf(szLanguageCodes[8], _T("de_DE")); _stprintf(szLanguageCodes[9], _T("pt_BR")); _stprintf(szLanguageCodes[10], _T("pl_PL")); _stprintf(szLanguageCodes[11], _T("hu_HU")); for (int i = 0; i < NUM_LANGUAGES; i++) { SendDlgItemMessage(hIpsDlg, IDC_CHOOSE_LIST, CB_ADDSTRING, 0, (LPARAM)&szLanguages[i]); } SendDlgItemMessage(hIpsDlg, IDC_CHOOSE_LIST, CB_SETCURSEL, (WPARAM)nIpsSelectedLanguage, (LPARAM)0); hIpsList = GetDlgItem(hIpsDlg, IDC_TREE1); FillListBox(); CheckActivePatches(); return 0; }
// The main message loop int RunMessageLoop() { int bRestartVideo; MSG Msg; do { bRestartVideo = 0; // Remove pending initialisation messages from the queue while (PeekMessage(&Msg, NULL, WM_APP + 0, WM_APP + 0, PM_NOREMOVE)) { if (Msg.message != WM_QUIT) { PeekMessage(&Msg, NULL, WM_APP + 0, WM_APP + 0, PM_REMOVE); } } RunInit(); ShowWindow(hScrnWnd, nAppShowCmd); // Show the screen window nAppShowCmd = SW_NORMAL; SetForegroundWindow(hScrnWnd); GameInpCheckLeftAlt(); GameInpCheckMouse(); // Hide the cursor while (1) { if (PeekMessage(&Msg, NULL, 0, 0, PM_REMOVE)) { // A message is waiting to be processed if (Msg.message == WM_QUIT) { // Quit program break; } if (Msg.message == (WM_APP + 0)) { // Restart video bRestartVideo = 1; break; } if (bMenuEnabled && nVidFullscreen == 0) { // Handle keyboard messages for the menu if (MenuHandleKeyboard(&Msg)) { continue; } } if (Msg.message == WM_SYSKEYDOWN || Msg.message == WM_KEYDOWN) { if (Msg.lParam & 0x20000000) { // An Alt/AltGr-key was pressed switch (Msg.wParam) { #if defined (FBA_DEBUG) case 'C': { static int count = 0; if (count == 0) { count++; { char* p = NULL; if (*p) { printf("crash...\n"); } } } break; } #endif case VK_OEM_PLUS: { TCHAR buffer[15]; nAudVolume += 100; if (GetAsyncKeyState(VK_CONTROL) & 0x80000000) { nAudVolume += 900; } if (nAudVolume > 10000) { nAudVolume = 10000; } if (AudSoundSetVolume() == 0) { VidSNewShortMsg(FBALoadStringEx(hAppInst, IDS_SOUND_NOVOLUME, true)); } else { _stprintf(buffer, FBALoadStringEx(hAppInst, IDS_SOUND_VOLUMESET, true), nAudVolume / 100); VidSNewShortMsg(buffer); } break; } case VK_OEM_MINUS: { TCHAR buffer[15]; nAudVolume -= 100; if (GetAsyncKeyState(VK_CONTROL) & 0x80000000) { nAudVolume -= 900; } if (nAudVolume < 0) { nAudVolume = 0; } if (AudSoundSetVolume() == 0) { VidSNewShortMsg(FBALoadStringEx(hAppInst, IDS_SOUND_NOVOLUME, true)); } else { _stprintf(buffer, FBALoadStringEx(hAppInst, IDS_SOUND_VOLUMESET, true), nAudVolume / 100); VidSNewShortMsg(buffer); } break; } case VK_MENU: { continue; } } } else { switch (Msg.wParam) { #if defined (FBA_DEBUG) case 'N': counter--; bprintf(PRINT_IMPORTANT, _T("*** New counter value: %04X.\n"), counter); break; case 'M': counter++; bprintf(PRINT_IMPORTANT, _T("*** New counter value: %04X.\n"), counter); break; #endif case VK_ESCAPE: { if (hwndChat) { DeActivateChat(); } else { if (bCmdOptUsed) { PostQuitMessage(0); } else { if (nVidFullscreen) { nVidFullscreen = 0; POST_INITIALISE_MESSAGE; } } } break; } case VK_RETURN: { if (hwndChat) { int i = 0; while (EditText[i]) { if (EditText[i++] != 0x20) { break; } } if (i) { Kaillera_Chat_Send(TCHARToANSI(EditText, NULL, 0)); //kailleraChatSend(TCHARToANSI(EditText, NULL, 0)); } DeActivateChat(); break; } if (GetAsyncKeyState(VK_CONTROL) & 0x80000000) { bMenuEnabled = !bMenuEnabled; POST_INITIALISE_MESSAGE; break; } break; } case VK_F1: { if (kNetGame) { break; } if (((GetAsyncKeyState(VK_CONTROL) | GetAsyncKeyState(VK_SHIFT)) & 0x80000000) == 0) { if (bRunPause) { bAppDoStep = 1; } else { bAppDoFast = 1; } } break; } case VK_BACK: { bShowFPS = !bShowFPS; if (bShowFPS) { DisplayFPS(); } else { VidSKillShortMsg(); VidSKillOSDMsg(); } break; } case 'T': { if (kNetGame && hwndChat == NULL) { if (AppMessage(&Msg)) { ActivateChat(); } } break; } } } } else { if (Msg.message == WM_SYSKEYUP || Msg.message == WM_KEYUP) { switch (Msg.wParam) { case VK_MENU: continue; case VK_F1: bAppDoFast = 0; break; } } } // Check for messages for dialogs etc. if (AppMessage(&Msg)) { if (TranslateAccelerator(hScrnWnd, hAccel, &Msg) == 0) { if (hwndChat) { TranslateMessage(&Msg); } DispatchMessage(&Msg); } } } else { // No messages are waiting SplashDestroy(0); RunIdle(); } } RunExit(); MediaExit(); if (bRestartVideo) { MediaInit(); } } while (bRestartVideo); return 0; }
int FBAPopupAddText(int nFlags, TCHAR* pszFormat, ...) { TCHAR szString[1024] = _T(""); TCHAR* pszStringEnglish; va_list vaEnglish; va_start(vaEnglish, pszFormat); if (IS_INTRESOURCE(pszFormat)) { pszStringEnglish = FBALoadStringEx(hAppInst, (UINT)pszFormat, false); } else { pszStringEnglish = pszFormat; } // See if we need to load strings from reources if (nFlags & PUF_TEXT_TRANSLATE) { TCHAR* pszStringLocal; va_list vaLocal; va_start(vaLocal, pszFormat); if (IS_INTRESOURCE(pszFormat)) { pszStringLocal = FBALoadStringEx(hAppInst, (UINT)pszFormat, true); } else { pszStringLocal = pszFormat; } // Add the translated string if present if (bLocalisationActive && (nFlags & PUF_TEXT_TRANSLATE) && pszStringLocal && *pszStringLocal) { // Add the translated string int nLen = _vsntprintf(szString, 1024, pszStringLocal, vaLocal); if (nLen > 0) { TCHAR* pszNewBuffer = (TCHAR*)realloc(pszBufferLocal, (nLen + nBufferLocalSize + 1) * sizeof(TCHAR)); if (pszNewBuffer) { pszBufferLocal = pszNewBuffer; _tcsncpy(pszBufferLocal + nBufferLocalSize, szString, nLen); nBufferLocalSize += nLen; pszBufferLocal[nBufferLocalSize] = 0; } } } va_end(vaLocal); } // Add the English language string if (pszStringEnglish && *pszStringEnglish) { int nLen = _vsntprintf(szString, 1024, pszStringEnglish, vaEnglish); if (nLen > 0) { TCHAR* pszNewBuffer = (TCHAR*)realloc(pszBufferEnglish, (nLen + nBufferEnglishSize + 1) * sizeof(TCHAR)); if (pszNewBuffer) { pszBufferEnglish = pszNewBuffer; _tcsncpy(pszBufferEnglish + nBufferEnglishSize, szString, nLen); nBufferEnglishSize += nLen; pszBufferEnglish[nBufferEnglishSize] = 0; } } } va_end(vaEnglish); return 0; }
static INT_PTR CALLBACK FBAPopupProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam) { switch (Msg) { // Grab the handle to the font we need to use case WM_SETFONT: { hEditFont = (HFONT)wParam; break; } case WM_DRAWITEM: { if (((LPDRAWITEMSTRUCT)lParam)->CtlID == IDC_MESSAGE_ICON) { DrawIconEx(((LPDRAWITEMSTRUCT)lParam)->hDC, 0, 0, (HICON)LoadImage(NULL, MAKEINTRESOURCE(nIcon), IMAGE_ICON, 0, 0, LR_LOADTRANSPARENT | LR_SHARED), 32, 32, 0, NULL, DI_NORMAL | DI_DEFAULTSIZE); } break; } case WM_INITDIALOG: { int nBeep = -1; TCHAR szCaption[1024] = _T(""); TCHAR* pszTypeEnglish; TCHAR* pszTypeLocal; nIcon = 0; switch (nPopupFlags & 7) { case PUF_TYPE_ERROR: nIcon = OIC_ERROR; nBeep = MB_ICONHAND; pszTypeEnglish = FBALoadStringEx(hAppInst, IDS_ERR_ERROR, false); pszTypeLocal = FBALoadStringEx(hAppInst, IDS_ERR_ERROR, true); break; case PUF_TYPE_WARNING: nIcon = OIC_WARNING; nBeep = MB_ICONEXCLAMATION; pszTypeEnglish = FBALoadStringEx(hAppInst, IDS_ERR_WARNING, false); pszTypeLocal = FBALoadStringEx(hAppInst, IDS_ERR_WARNING, true); break; default: nIcon = OIC_INFORMATION; nBeep = MB_ICONASTERISK; pszTypeEnglish = FBALoadStringEx(hAppInst, IDS_ERR_INFORMATION, false); pszTypeLocal = FBALoadStringEx(hAppInst, IDS_ERR_INFORMATION, true); break; } // Set the icon SendDlgItemMessage(hDlg, IDC_MESSAGE_ICON, STM_SETIMAGE, IMAGE_ICON, (LPARAM)LoadImage(NULL, MAKEINTRESOURCE(nIcon), IMAGE_ICON, 32, 32, LR_SHARED)); // Set the caption _sntprintf(szCaption, 1024, _T(APP_TITLE) _T(" %s"), pszTypeLocal); SetWindowText(hDlg, szCaption); { SIZE sizee = { 0, 0 }; SIZE sizel = { 0, 0 }; POINT p = { 0, 0 }; RECT rect; HWND hWnd; { hWnd = GetDlgItem(hDlg, IDC_MESSAGE_EDIT_ENG); HDC hDC = GetDC(hWnd); HFONT hFont = (HFONT)SelectObject(hDC, hEditFont); for (TCHAR* szText = pszBufferEnglish; ; ) { SIZE line; int nLen; for (nLen = 0; szText[nLen] && szText[nLen] != _T('\n'); nLen++) { } GetTextExtentPoint32(hDC, szText, nLen ? nLen : 1, &line); if (sizee.cx < line.cx) { sizee.cx = line.cx; } sizee.cy += line.cy; if (!szText[nLen]) { break; } szText += nLen + 1; } if (bLocalisationActive && pszBufferLocal) { for (TCHAR* szText = pszBufferLocal; ; ) { SIZE line; int nLen; for (nLen = 0; szText[nLen] && szText[nLen] != _T('\n'); nLen++) { } GetTextExtentPoint32(hDC, szText, nLen ? nLen : 1, &line); if (sizel.cx < line.cx) { sizel.cx = line.cx; } sizel.cy += line.cy; if (!szText[nLen]) { break; } szText += nLen + 1; } } SelectObject(hDC, hFont); ReleaseDC(hWnd, hDC); } // Set minimum size if needed hWnd = GetDlgItem(hDlg, IDOK); GetWindowRect(hWnd, &rect); if (sizee.cx < (rect.right - rect.left)) { sizee.cx = rect.right - rect.left; } ClientToScreen(hDlg, &p); GetWindowRect(hDlg, &rect); // Size dialog and edit control containing message text if (bLocalisationActive && pszBufferLocal) { if (sizel.cx < sizee.cx) { sizel.cx = sizee.cx; } else { sizee.cx = sizel.cx; } if (sizel.cy < 32) { sizel.cy = 32; } MoveWindow(hDlg, rect.left, rect.top, rect.right - rect.left + sizee.cx, rect.bottom - rect.top + sizee.cy + sizel.cy + 12, FALSE); hWnd = GetDlgItem(hDlg, IDC_MESSAGE_EDIT_LOCAL); GetWindowRect(hWnd, &rect); SetWindowPos(hWnd, NULL, 0, 0, rect.right - rect.left + sizel.cx, rect.bottom - rect.top + sizel.cy, SWP_NOMOVE | SWP_NOZORDER | SWP_NOREDRAW); SendMessage(hWnd, WM_SETTEXT, (WPARAM)0, (LPARAM)pszBufferLocal); SendMessage(hWnd, EM_SETMARGINS, EC_LEFTMARGIN, 3); ShowWindow(hWnd, SW_SHOW); hWnd = GetDlgItem(hDlg, IDC_MESSAGE_BACK); SetWindowPos(hWnd, NULL, 0, 0, 9999, rect.bottom - p.y + sizel.cy + 6, SWP_NOZORDER | SWP_NOREDRAW); ShowWindow(hWnd, SW_SHOW); p.y -= rect.bottom - rect.top + sizel.cy + 12; } else { if (sizee.cy < 32) { sizee.cy = 32; } MoveWindow(hDlg, rect.left, rect.top, rect.right - rect.left + sizee.cx, rect.bottom - rect.top + sizee.cy, FALSE); } hWnd = GetDlgItem(hDlg, IDC_MESSAGE_EDIT_ENG); SendMessage(hWnd, EM_SETBKGNDCOLOR, 0, GetSysColor(COLOR_3DFACE)); GetWindowRect(hWnd, &rect); SetWindowPos(hWnd, NULL, rect.left - p.x, rect.top - p.y, rect.right - rect.left + sizee.cx, rect.bottom - rect.top + sizee.cy, (pszBufferLocal ? 0 : SWP_NOMOVE) | SWP_NOZORDER | SWP_NOREDRAW); SendMessage(hWnd, WM_SETTEXT, (WPARAM)0, (LPARAM)pszBufferEnglish); SendMessage(hWnd, EM_SETMARGINS, EC_LEFTMARGIN, 3); // Center button GetClientRect(hDlg, &rect); p.x = (rect.right - rect.left) / 2; hWnd = GetDlgItem(hDlg, IDOK); GetWindowRect(hWnd, &rect); SetWindowPos(hWnd, NULL, p.x - (rect.right - rect.left) / 2, rect.top - p.y + sizee.cy, 0, 0, SWP_NOSIZE | SWP_NOZORDER); } WndInMid(hDlg, hScrnWnd); SetForegroundWindow(hDlg); MessageBeep(nBeep); return TRUE; } case WM_COMMAND: { if (HIWORD(wParam) == BN_CLICKED && LOWORD(wParam) == IDOK) { SendMessage(hDlg, WM_CLOSE, 0, 0); } break; } case WM_CLOSE: { EndDialog(hDlg, 0); break; } } return 0; }
static INT_PTR CALLBACK DefInpProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam) { int var; static bool chOk; switch (Msg) { case WM_INITDIALOG: { chOk = false; // Setup edit controls values (ROMs Paths) for(int x = 0; x < 8; x++) { SetDlgItemText(hDlg, IDC_ROMSDIR_EDIT1 + x, szAppRomPaths[x]); } // Setup the tabs hTabControl = GetDlgItem(hDlg, IDC_ROMPATH_TAB); TC_ITEM tcItem; tcItem.mask = TCIF_TEXT; UINT idsString[8] = { IDS_ROMPATH_1,IDS_ROMPATH_2,IDS_ROMPATH_3,IDS_ROMPATH_4,IDS_ROMPATH_5,IDS_ROMPATH_6,IDS_ROMPATH_7,IDS_ROMPATH_8 }; for(int nIndex = 0; nIndex < 8; nIndex++) { tcItem.pszText = FBALoadStringEx(hAppInst, idsString[nIndex], true); TabCtrl_InsertItem(hTabControl, nIndex, &tcItem); } int TabPage = TabCtrl_GetCurSel(hTabControl); // hide all controls excluding the selected controls for(int x = 0; x < 8; x++) { if(x != TabPage) { ShowWindow(GetDlgItem(hDlg, IDC_ROMSDIR_BR1 + x), SW_HIDE); // browse buttons ShowWindow(GetDlgItem(hDlg, IDC_ROMSDIR_EDIT1 + x), SW_HIDE); // edit controls } } // Show the proper controls ShowWindow(GetDlgItem(hDlg, IDC_ROMSDIR_BR1 + TabPage), SW_SHOW); // browse buttons ShowWindow(GetDlgItem(hDlg, IDC_ROMSDIR_EDIT1 + TabPage), SW_SHOW); // edit controls UpdateWindow(hDlg); WndInMid(hDlg, hParent); SetFocus(hDlg); // Enable Esc=close break; } case WM_NOTIFY: { NMHDR* pNmHdr = (NMHDR*)lParam; if (pNmHdr->code == TCN_SELCHANGE) { int TabPage = TabCtrl_GetCurSel(hTabControl); // hide all controls excluding the selected controls for(int x = 0; x < 8; x++) { if(x != TabPage) { ShowWindow(GetDlgItem(hDlg, IDC_ROMSDIR_BR1 + x), SW_HIDE); // browse buttons ShowWindow(GetDlgItem(hDlg, IDC_ROMSDIR_EDIT1 + x), SW_HIDE); // edit controls } } // Show the proper controls ShowWindow(GetDlgItem(hDlg, IDC_ROMSDIR_BR1 + TabPage), SW_SHOW); // browse buttons ShowWindow(GetDlgItem(hDlg, IDC_ROMSDIR_EDIT1 + TabPage), SW_SHOW); // edit controls UpdateWindow(hDlg); return FALSE; } break; } case WM_COMMAND: { LPMALLOC pMalloc = NULL; BROWSEINFO bInfo; ITEMIDLIST* pItemIDList = NULL; TCHAR buffer[MAX_PATH]; if (LOWORD(wParam) == IDOK) { for (int i = 0; i < 8; i++) { // if (GetDlgItemText(hDlg, IDC_ROMSDIR_EDIT1 + i, buffer, sizeof(buffer)) && lstrcmp(szAppRomPaths[i], buffer)) { GetDlgItemText(hDlg, IDC_ROMSDIR_EDIT1 + i, buffer, sizeof(buffer)); if (lstrcmp(szAppRomPaths[i], buffer)) chOk = true; lstrcpy(szAppRomPaths[i], buffer); // } } SendMessage(hDlg, WM_CLOSE, 0, 0); break; } else { if (LOWORD(wParam) >= IDC_ROMSDIR_BR1 && LOWORD(wParam) <= IDC_ROMSDIR_BR8) { var = IDC_ROMSDIR_EDIT1 + LOWORD(wParam) - IDC_ROMSDIR_BR1; } else { if (HIWORD(wParam) == BN_CLICKED && LOWORD(wParam) == IDCANCEL) { SendMessage(hDlg, WM_CLOSE, 0, 0); } break; } } SHGetMalloc(&pMalloc); memset(&bInfo, 0, sizeof(bInfo)); bInfo.hwndOwner = hDlg; bInfo.pszDisplayName = buffer; bInfo.lpszTitle = FBALoadStringEx(hAppInst, IDS_ROMS_SELECT_DIR, true); bInfo.ulFlags = BIF_EDITBOX | BIF_RETURNONLYFSDIRS; pItemIDList = SHBrowseForFolder(&bInfo); if (pItemIDList) { if (SHGetPathFromIDList(pItemIDList, buffer)) { int strLen = _tcslen(buffer); if (strLen) { if (buffer[strLen - 1] != _T('\\')) { buffer[strLen] = _T('\\'); buffer[strLen + 1] = _T('\0'); } SetDlgItemText(hDlg, var, buffer); } } pMalloc->Free(pItemIDList); } pMalloc->Release(); break; } case WM_CLOSE: { hParent = NULL; EndDialog(hDlg, 0); if (chOk) { bRescanRoms = true; CreateROMInfo(hDlg); } } } return 0; }
static void onCommand(HWND hDlg, int id, HWND /*hwndCtl*/, UINT codeNotify) { if (bLoading) { return; } switch (id) { case MENU_LOAD: HK_openGame(0); break; case MENU_LOAD_QUICK: HK_quickOpenGame(0); break; case MENU_QUIT: HK_exitGame(0); break; case MENU_EXIT: StopReplay(); AviStop(); FBA_KailleraEnd(); PostQuitMessage(0); menuSync(MENUT_ALL); return; case MENU_PAUSE: HK_pause(0); break; case MENU_CARTR_MOUNT: mountCartridge(true); menuSync(MENUT_FILE); break; case MENU_CARTR_UNMOUNT: mountCartridge(false); menuSync(MENUT_FILE); break; case MENU_STARTNET: if (!kNetGame) { InputSetCooperativeLevel(false, !bAlwaysProcessKey); audio.blank(); SplashDestroy(1); StopReplay(); AviStop(); BurnerDrvExit(); // load kaillera.dll if (FBA_KailleraInit()) { DoNetGame(); } menuSync(MENUT_ALL); InputSetCooperativeLevel(false, !bAlwaysProcessKey); } break; case MENU_STARTREPLAY: HK_playRec(0); break; case MENU_STARTRECORD: HK_startRec(0); break; case MENU_STOPREPLAY: HK_stopRec(0); break; case MENU_AVISTART: HK_startAvi(0); break; case MENU_AVISTOP: HK_stopAvi(0); break; case MENU_AVIINTAUD: nAviIntAudio = !nAviIntAudio; menuSync(MENUT_FILE); break; case MENU_MEMCARD_CREATE: if (useDialogs() && bDrvOkay && !kNetGame && (BurnDrvGetHardwareCode() & HARDWARE_PUBLIC_MASK) == HARDWARE_SNK_NEOGEO) { InputSetCooperativeLevel(false, !bAlwaysProcessKey); audio.blank(); MemCardEject(); MemCardCreate(); MemCardInsert(); menuSync(MENUT_FILE); GameInpCheckMouse(); } break; case MENU_MEMCARD_SELECT: if (useDialogs() && bDrvOkay && !kNetGame && (BurnDrvGetHardwareCode() & HARDWARE_PUBLIC_MASK) == HARDWARE_SNK_NEOGEO) { InputSetCooperativeLevel(false, !bAlwaysProcessKey); audio.blank(); MemCardEject(); MemCardSelect(); MemCardInsert(); menuSync(MENUT_FILE); GameInpCheckMouse(); } break; case MENU_MEMCARD_INSERT: if (bDrvOkay && !kNetGame && (BurnDrvGetHardwareCode() & HARDWARE_PUBLIC_MASK) == HARDWARE_SNK_NEOGEO) { MemCardInsert(); } break; case MENU_MEMCARD_EJECT: if (bDrvOkay && !kNetGame && (BurnDrvGetHardwareCode() & HARDWARE_PUBLIC_MASK) == HARDWARE_SNK_NEOGEO) { MemCardEject(); } break; case MENU_MEMCARD_TOGGLE: if (bDrvOkay && !kNetGame && (BurnDrvGetHardwareCode() & HARDWARE_PUBLIC_MASK) == HARDWARE_SNK_NEOGEO) { MemCardToggle(); } break; case MENU_STATE_LOAD_DIALOG: HK_loadStateDialog(0); break; case MENU_STATE_SAVE_DIALOG: HK_saveStateDialog(0); return; case MENU_STATE_PREVSLOT: HK_prevState(0); break; case MENU_STATE_NEXTSLOT: HK_nextState(0); break; case MENU_STATE_LOAD_SLOT: HK_loadCurState(0); break; case MENU_STATE_SAVE_SLOT: HK_saveCurState(0); break; case MENU_STATE_ALLRAM: bDrvSaveAll = !bDrvSaveAll; menuSync(MENUT_FILE); break; case MENU_WLOGSTART: audio.blank(); waveLogStart(); break; case MENU_WLOGEND: audio.blank(); waveLogStop(); break; case MENU_NOSTRETCH: bVidCorrectAspect = 0; bVidFullStretch = 0; simpleReinitScrn(false); menuSync(MENUT_SETTING); break; case MENU_STRETCH: bVidFullStretch = 1; bVidCorrectAspect = 0; simpleReinitScrn(false); menuSync(MENUT_SETTING); break; case MENU_ASPECT: bVidCorrectAspect = 1; bVidFullStretch = 0; simpleReinitScrn(false); menuSync(MENUT_SETTING); break; case MENU_FULL: HK_fullscreen(0); return; case MENU_AUTOSIZE: if (nWindowSize != 0) { nWindowSize = 0; simpleReinitScrn(false); menuSync(MENUT_SETTING); } break; case MENU_WINDOWSIZE1X: HK_windowSize(1); break; case MENU_WINDOWSIZE2X: HK_windowSize(2); break; case MENU_WINDOWSIZE3X: HK_windowSize(3); break; case MENU_WINDOWSIZE4X: HK_windowSize(4); break; case MENU_WINDOWSIZEMAX: HK_windowSizeMax(0); break; case MENU_HOTKEYS: MHkeysCreate(hDlg); break; case MENU_INPUT: HK_configPad(0); break; case MENU_DIPSW: HK_setDips(0); break; case MENU_SETCPUCLOCK: audio.blank(); CPUClockDialog(hDlg); menuSync(MENUT_GAME); GameInpCheckMouse(); break; case MENU_RESETCPUCLOCK: nBurnCPUSpeedAdjust = 0x0100; menuSync(MENUT_GAME); break; // ==> rom save case MENU_SAVEC: bsavedecryptedcs = !bsavedecryptedcs; menuSync(MENUT_GAME); break; case MENU_SAVEP: bsavedecryptedps = !bsavedecryptedps; menuSync(MENUT_GAME); break; case MENU_SAVES: bsavedecrypteds1 = !bsavedecrypteds1; menuSync(MENUT_GAME); break; case MENU_SAVEV: bsavedecryptedvs = !bsavedecryptedvs; menuSync(MENUT_GAME); break; case MENU_SAVEM: bsavedecryptedm1 = !bsavedecryptedm1; menuSync(MENUT_GAME); break; case MENU_SAVEXOR: bsavedecryptedxor = !bsavedecryptedxor; menuSync(MENUT_GAME); break; case MENU_SAVEDPROM: bsavedecryptedprom = !bsavedecryptedprom; menuSync(MENUT_GAME); break; // <== rom save case MENU_LANGUAGE_SELECT: if (useDialogs()) { if (!FBALocaliseLoad()) { menuReinit(); } } break; case MENU_LANGUAGE_UNLOAD: _tcsncpy(szLanguage, _T(""), sizearray(szLanguage)); FBALocaliseExit(); menuReinit(); break; case MENU_GAMELIST_SELECT: if (useDialogs()) { loadGamelist(); } break; case MENU_GAMELIST_EXPORT: if (useDialogs()) { createGamelist(); } break; case MENU_MISCDIR_EDIT: if (useDialogs()) { pathSheetCreate(hDlg); } break; case MENU_ROMDIR_EDIT: if (useDialogs()) { RomsDirCreate(hDlg); } break; case MENU_ENABLECHEAT: HK_cheatEditor(0); break; #ifndef NO_CHEATSEARCH case MENU_CHEATSEARCH: HK_cheatSearch(0); break; #endif // ==> simple jukebox, added by regret case MENU_JUKEBOX: if (useDialogs()) { jukeCreate(); InputSetCooperativeLevel(false, !bAlwaysProcessKey); } break; // <== simple jukebox case MENU_DEBUG: if (useDialogs()) { InputSetCooperativeLevel(false, !bAlwaysProcessKey); DebugCreate(); } break; case MENU_SAVESNAP: { HK_screenShot(0); break; } case MENU_SNAPFACT: HK_shotFactory(0); break; case MENU_SKIN_SELECT: if (useDialogs()) { if (selectSkin() == 0) { simpleReinitScrn(true); } } break; case MENU_SKIN_UNLOAD: _tcsncpy(szPlaceHolder, _T(""), sizearray(szPlaceHolder)); simpleReinitScrn(true); break; case MENU_CLRMAMEPRO_XML: if (useDialogs()) { createDatfileWindows(1); } break; case MENU_CLRMAME_PRO: if (useDialogs()) { createDatfileWindows(0); } break; case MENU_SAVESET: configAppSaveXml(); break; case MENU_LOADSET: configAppLoadXml(); POST_INITIALISE_MESSAGE; break; case MENU_ABOUT: if (useDialogs()) { InputSetCooperativeLevel(false, !bAlwaysProcessKey); audio.blank(); AboutCreate(hDlg); GameInpCheckMouse(); } break; case MENU_SYSINFO: if (useDialogs()) { InputSetCooperativeLevel(false, !bAlwaysProcessKey); audio.blank(); SystemInfoCreate(hDlg); GameInpCheckMouse(); } break; case MENU_CONTENTS: { if (useDialogs()) { FILE* fp = _tfopen(_T("readme.txt"), _T("r")); if (fp) { fclose(fp); ShellExecute(NULL, _T("open"), _T("readme.txt"), NULL, NULL, SW_SHOWNORMAL); } } break; } case MENU_WWW_HOME: ShellExecute(NULL, _T("open"), _T("http://www.barryharris.me.uk/"), NULL, NULL, SW_SHOWNORMAL); break; case MENU_WWW_FORUM: ShellExecute(NULL, _T("open"), _T("http://neosource.1emulation.com/forums/"), NULL, NULL, SW_SHOWNORMAL); break; case MENU_WWW_FORUM1: ShellExecute(NULL, _T("open"), _T("http://www.egcg.com.cn/bbs/"), NULL, NULL, SW_SHOWNORMAL); break; // filters case MENU_SOFT_NONE: vidUseFilter = 0; nVidFilter = 0; VidReinit(); menuSync(MENUT_SETTING); break; case MENU_SOFT_EPXB: case MENU_SOFT_EPXC: case MENU_SOFT_SCALE2X: case MENU_SOFT_SCALE3X: case MENU_SOFT_2XSAI: case MENU_SOFT_SUPER2XSAI: case MENU_SOFT_SUPEREAGLE: case MENU_SOFT_2XPMHQ: case MENU_SOFT_HQ2X: case MENU_SOFT_HQ2XS: case MENU_SOFT_HQ2XBOLD: case MENU_SOFT_HQ3X: case MENU_SOFT_HQ3XS: case MENU_SOFT_HQ3XBOLD: case MENU_SOFT_SCANLINE: case MENU_SOFT_SCANLINE50: case MENU_SOFT_SCANLINE25: case MENU_SOFT_INTERSCANLINE: case MENU_SOFT_INTERSCANLINE50: case MENU_SOFT_INTERSCANLINE25: vidUseFilter = 1; nVidFilter = id - MENU_SOFT_NONE; scrnSize(); VidSwitchFilter(nVidFilter); menuSync(MENUT_SETTING); break; case MENU_FILTER_AUTOSIZE: vidForceFilterSize = !vidForceFilterSize; simpleReinitScrn(true); menuSync(MENUT_SETTING); break; // Options for blitters case MENU_FILTER_POINT: if (vidFilterLinear) { vidFilterLinear = 0; VidReinit(); menuSync(MENUT_SETTING); } break; case MENU_FILTER_LINEAR: if (!vidFilterLinear) { vidFilterLinear = 1; VidReinit(); menuSync(MENUT_SETTING); } break; case MENU_CONFIGALL: if (useDialogs()) { preferenceCreate(hDlg); setWindowAspect(); menuReinit(); simpleReinitScrn(true); mediaReInitAudio(); } break; case MENU_VIDEOCONFIG: if (useDialogs()) { prefVideoCreate(hDlg); setWindowAspect(); simpleReinitScrn(true); } break; case MENU_AUDIOCONFIG: if (useDialogs()) { prefAudioCreate(hDlg); mediaReInitAudio(); } break; case MENU_MISCCONFIG: if (useDialogs()) { prefMiscCreate(hDlg); menuReinit(); VidReinit(); } break; // default: // printf(" * Command %i sent.\n"); } if (ChatActivated()) { switch (codeNotify) { case EN_CHANGE: { bEditTextChanged = true; SendMessage(GetChatWindow(), WM_GETTEXT, (WPARAM)MAX_CHAT_SIZE + 1, (LPARAM)EditText); break; } case EN_KILLFOCUS: { ActivateChat(); break; } case EN_MAXTEXT: { VidSNewShortMsg(FBALoadStringEx(IDS_NETPLAY_TOOMUCH), 0xFF3F3F); break; } } } }
static INT_PTR CALLBACK prefAudioDlgProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam) { switch (Msg) { case WM_INITDIALOG: wndInMid(hDlg, hScrnWnd); SetFocus(hDlg); hAudioDlg = hDlg; // init controls audioOutputInit(); audioDeviceInit(); audioSampleInit(); audioOptionInit(); audioFrameInit(); return TRUE; case WM_COMMAND: { int Id = LOWORD(wParam); int Notify = HIWORD(wParam); if ((Id == IDOK && Notify == BN_CLICKED) || (Id == IDCANCEL && Notify == BN_CLICKED)) { SendMessage(hDlg, WM_CLOSE, 0, 0); return 0; } if ((HWND)lParam == GetDlgItem(hDlg, IDC_PREF_AUDIOOUTPUT)) { if (Notify == CBN_SELCHANGE) { audioOutputChange(); } } } break; case WM_HSCROLL: switch (LOWORD(wParam)) { case TB_BOTTOM: case TB_ENDTRACK: case TB_LINEDOWN: case TB_LINEUP: case TB_PAGEDOWN: case TB_PAGEUP: case TB_THUMBPOSITION: case TB_THUMBTRACK: case TB_TOP: { TCHAR szText[MAX_PATH]; int frame = SendDlgItemMessage(hDlg, IDC_PREF_AUDFRAME, TBM_GETPOS, 0, 0); _sntprintf(szText, sizearray(szText), FBALoadStringEx(IDS_NUMDLG_FRAME), frame, int(1000.0 * (frame - 1.0) / 60)); SetDlgItemText(hDlg, IDC_PREF_AUDFRAME_TEXT, szText); break; } } break; case WM_NOTIFY: { switch (((NMHDR *)lParam)->code) { case PSN_APPLY: prefAudioExit(); break; } } break; case WM_CLOSE: prefAudioExit(); EndDialog(hDlg, 0); hAudioDlg = NULL; break; } return 0; }