Add submenu for quick location configuration
This commit is contained in:
parent
1c7111c10d
commit
70d09224a4
|
@ -470,7 +470,12 @@ BEGIN
|
|||
MENUITEM "Config &Video...", ID_SETTINGS_CONFIG_VIDEO,MFT_STRING,MFS_ENABLED
|
||||
MENUITEM "Config &Audio...", ID_SETTINGS_CONFIG_AUDIO,MFT_STRING,MFS_ENABLED
|
||||
MENUITEM "Config &Eeprom...", ID_SETTINGS_CONFIG_EEPROM,MFT_STRING,MFS_ENABLED
|
||||
MENUITEM "Config Data Location...", 40104,MFT_STRING,MFS_ENABLED
|
||||
POPUP "Config &Data Location...", 65535,MFT_STRING,MFS_ENABLED
|
||||
BEGIN
|
||||
MENUITEM "Store in AppData", ID_SETTINGS_CONFIG_DLOCAPPDATA,MFT_STRING,MFS_ENABLED
|
||||
MENUITEM "Store with Executable", ID_SETTINGS_CONFIG_DLOCCURDIR,MFT_STRING,MFS_ENABLED
|
||||
MENUITEM "Custom", ID_SETTINGS_CONFIG_DLOCCUSTOM,MFT_STRING,MFS_ENABLED
|
||||
END
|
||||
POPUP "&HLE Cache", 65535,MFT_STRING,MFS_ENABLED
|
||||
BEGIN
|
||||
MENUITEM "&Clear entire HLE Cache", ID_CACHE_CLEARHLECACHE_ALL,MFT_STRING,MFS_ENABLED
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
//{{NO_DEPENDENCIES}}
|
||||
// Microsoft Visual C++ generated include file.
|
||||
// Used by C:\Users\Aaron\Source\Repos\cxbx-reloaded2\resource\Cxbx.rc
|
||||
// Used by c:\Users\Aaron\source\repos\cxbx-reloaded2\resource\Cxbx.rc
|
||||
//
|
||||
#define IDI_CXBX 101
|
||||
#define IDB_SPLASH 102
|
||||
|
@ -279,7 +279,9 @@
|
|||
#define ID_SETTINGS_CONFIG_XBOX_CONTROLLER_MAPPING 40101
|
||||
#define ID_HACKS_RENDERDIRECTLYTOHOSTBACKBUFFER 40102
|
||||
#define ID_HACKS_SPEEDHACKS 40103
|
||||
#define ID_SETTINGS_CONFIG_DATALOC 40104
|
||||
#define ID_SETTINGS_CONFIG_DLOCCUSTOM 40104
|
||||
#define ID_SETTINGS_CONFIG_DLOCAPPDATA 40105
|
||||
#define ID_SETTINGS_CONFIG_DLOCCURDIR 40106
|
||||
#define IDC_STATIC -1
|
||||
|
||||
// Next default values for new objects
|
||||
|
@ -287,7 +289,7 @@
|
|||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 135
|
||||
#define _APS_NEXT_COMMAND_VALUE 40105
|
||||
#define _APS_NEXT_COMMAND_VALUE 40107
|
||||
#define _APS_NEXT_CONTROL_VALUE 1256
|
||||
#define _APS_NEXT_SYMED_VALUE 104
|
||||
#endif
|
||||
|
|
|
@ -1089,46 +1089,46 @@ LRESULT CALLBACK WndMain::WndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lP
|
|||
|
||||
// dump xbe information to file
|
||||
{
|
||||
std::string Xbe_info = DumpInformation(m_Xbe);
|
||||
if (m_Xbe->HasError()) {
|
||||
MessageBox(m_hwnd, m_Xbe->GetError().c_str(), "Cxbx-Reloaded", MB_ICONSTOP | MB_OK);
|
||||
}
|
||||
else {
|
||||
std::ofstream Xbe_dump_file(ofn.lpstrFile);
|
||||
if(Xbe_dump_file.is_open()) {
|
||||
Xbe_dump_file << Xbe_info;
|
||||
Xbe_dump_file.close();
|
||||
char buffer[255];
|
||||
sprintf(buffer, "%s's .xbe info was successfully dumped.", m_Xbe->m_szAsciiTitle);
|
||||
printf("WndMain: %s\n", buffer);
|
||||
MessageBox(m_hwnd, buffer, "Cxbx-Reloaded", MB_ICONINFORMATION | MB_OK);
|
||||
}
|
||||
else {
|
||||
MessageBox(m_hwnd, "Could not open Xbe text file.", "Cxbx-Reloaded", MB_ICONSTOP | MB_OK);
|
||||
}
|
||||
}
|
||||
std::string Xbe_info = DumpInformation(m_Xbe);
|
||||
if (m_Xbe->HasError()) {
|
||||
MessageBox(m_hwnd, m_Xbe->GetError().c_str(), "Cxbx-Reloaded", MB_ICONSTOP | MB_OK);
|
||||
}
|
||||
else {
|
||||
std::ofstream Xbe_dump_file(ofn.lpstrFile);
|
||||
if (Xbe_dump_file.is_open()) {
|
||||
Xbe_dump_file << Xbe_info;
|
||||
Xbe_dump_file.close();
|
||||
char buffer[255];
|
||||
sprintf(buffer, "%s's .xbe info was successfully dumped.", m_Xbe->m_szAsciiTitle);
|
||||
printf("WndMain: %s\n", buffer);
|
||||
MessageBox(m_hwnd, buffer, "Cxbx-Reloaded", MB_ICONINFORMATION | MB_OK);
|
||||
}
|
||||
else {
|
||||
MessageBox(m_hwnd, "Could not open Xbe text file.", "Cxbx-Reloaded", MB_ICONSTOP | MB_OK);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case ID_EDIT_DUMPXBEINFOTO_DEBUGCONSOLE:
|
||||
{
|
||||
std::string Xbe_info = DumpInformation(m_Xbe);
|
||||
if (m_Xbe->HasError()) {
|
||||
MessageBox(m_hwnd, m_Xbe->GetError().c_str(), "Cxbx-Reloaded", MB_ICONSTOP | MB_OK);
|
||||
}
|
||||
else {
|
||||
std::cout << Xbe_info;
|
||||
char buffer[255];
|
||||
sprintf(buffer, "%s's .xbe info was successfully dumped to console.", m_Xbe->m_szAsciiTitle);
|
||||
printf("WndMain: %s\n", buffer);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case ID_SETTINGS_CONFIG_XBOX_CONTROLLER_MAPPING:
|
||||
ShowXboxControllerPortMappingConfig(hwnd);
|
||||
break;
|
||||
case ID_EDIT_DUMPXBEINFOTO_DEBUGCONSOLE:
|
||||
{
|
||||
std::string Xbe_info = DumpInformation(m_Xbe);
|
||||
if (m_Xbe->HasError()) {
|
||||
MessageBox(m_hwnd, m_Xbe->GetError().c_str(), "Cxbx-Reloaded", MB_ICONSTOP | MB_OK);
|
||||
}
|
||||
else {
|
||||
std::cout << Xbe_info;
|
||||
char buffer[255];
|
||||
sprintf(buffer, "%s's .xbe info was successfully dumped to console.", m_Xbe->m_szAsciiTitle);
|
||||
printf("WndMain: %s\n", buffer);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case ID_SETTINGS_CONFIG_XBOX_CONTROLLER_MAPPING:
|
||||
ShowXboxControllerPortMappingConfig(hwnd);
|
||||
break;
|
||||
case ID_SETTINGS_CONFIG_CONTROLLER:
|
||||
ShowControllerConfig(hwnd);
|
||||
break;
|
||||
|
@ -1137,9 +1137,9 @@ LRESULT CALLBACK WndMain::WndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lP
|
|||
ShowVideoConfig(hwnd);
|
||||
break;
|
||||
|
||||
case ID_SETTINGS_CONFIG_AUDIO:
|
||||
ShowAudioConfig(hwnd);
|
||||
break;
|
||||
case ID_SETTINGS_CONFIG_AUDIO:
|
||||
ShowAudioConfig(hwnd);
|
||||
break;
|
||||
|
||||
case ID_SETTINGS_CONFIG_EEPROM:
|
||||
{
|
||||
|
@ -1151,7 +1151,7 @@ LRESULT CALLBACK WndMain::WndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lP
|
|||
}
|
||||
ShowEepromConfig(hwnd);
|
||||
}
|
||||
case ID_SETTINGS_CONFIG_DATALOC:
|
||||
case ID_SETTINGS_CONFIG_DLOCCUSTOM: //for custom
|
||||
{
|
||||
char szDir[MAX_PATH];
|
||||
BROWSEINFO bInfo;
|
||||
|
@ -1172,20 +1172,55 @@ LRESULT CALLBACK WndMain::WndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lP
|
|||
HKEY hKey;
|
||||
|
||||
SHGetPathFromIDList(lpItem, szDir);
|
||||
|
||||
if (RegCreateKeyEx(HKEY_CURRENT_USER, "Software\\Cxbx-Reloaded", 0, NULL, REG_OPTION_NON_VOLATILE, KEY_SET_VALUE, NULL, &hKey, &dwDisposition) == ERROR_SUCCESS)
|
||||
if (RegCreateKeyEx(HKEY_CURRENT_USER, "Software\\Cxbx-Reloaded\\DataStorageLocation", 0, NULL, REG_OPTION_NON_VOLATILE,
|
||||
KEY_SET_VALUE, NULL, &hKey, &dwDisposition) == ERROR_SUCCESS)
|
||||
{
|
||||
dwType = REG_SZ;
|
||||
dwSize = sizeof(szDir);
|
||||
|
||||
RegSetValueEx(hKey, "DATALOC", 0, dwType, (PBYTE)&szDir, dwSize);
|
||||
|
||||
dwType = REG_SZ; dwSize = sizeof(szDir);
|
||||
RegSetValueEx(hKey, "DataStorageLocationDirectory", 0, dwType, (PBYTE)&szDir, dwSize);
|
||||
RegCloseKey(hKey);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case ID_SETTINGS_CONFIG_DLOCAPPDATA:
|
||||
{
|
||||
char szDir[MAX_PATH];
|
||||
char szFolder_CxbxReloadedData[MAX_PATH];
|
||||
DWORD dwDisposition, dwType, dwSize;
|
||||
HKEY hKey;
|
||||
|
||||
SHGetSpecialFolderPath(NULL, szDir, CSIDL_APPDATA, TRUE);
|
||||
snprintf(szFolder_CxbxReloadedData, MAX_PATH, "%s\\Cxbx-Reloaded", szDir);
|
||||
if (RegCreateKeyEx(HKEY_CURRENT_USER, "Software\\Cxbx-Reloaded\\DataStorageLocation", 0, NULL, REG_OPTION_NON_VOLATILE,
|
||||
KEY_SET_VALUE, NULL, &hKey, &dwDisposition) == ERROR_SUCCESS)
|
||||
{
|
||||
dwType = REG_SZ; dwSize = sizeof(szFolder_CxbxReloadedData);
|
||||
RegSetValueEx(hKey, "DataStorageLocationDirectory", 0, dwType, (PBYTE)&szFolder_CxbxReloadedData, dwSize);
|
||||
RegCloseKey(hKey);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case ID_SETTINGS_CONFIG_DLOCCURDIR:
|
||||
{
|
||||
char szDir[MAX_PATH];
|
||||
char szFolder_CxbxReloadedData[MAX_PATH];
|
||||
DWORD dwDisposition, dwType, dwSize;
|
||||
HKEY hKey;
|
||||
|
||||
GetCurrentDirectory(MAX_PATH, szDir);
|
||||
snprintf(szFolder_CxbxReloadedData, MAX_PATH, "%s\\Cxbx-Reloaded", szDir);
|
||||
if (RegCreateKeyEx(HKEY_CURRENT_USER, "Software\\Cxbx-Reloaded\\DataStorageLocation", 0, NULL, REG_OPTION_NON_VOLATILE,
|
||||
KEY_SET_VALUE, NULL, &hKey, &dwDisposition) == ERROR_SUCCESS)
|
||||
{
|
||||
dwType = REG_SZ; dwSize = sizeof(szFolder_CxbxReloadedData);
|
||||
RegSetValueEx(hKey, "DataStorageLocationDirectory", 0, dwType, (PBYTE)&szFolder_CxbxReloadedData, dwSize);
|
||||
RegCloseKey(hKey);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case ID_CACHE_CLEARHLECACHE_ALL:
|
||||
{
|
||||
ClearHLECache();
|
||||
|
|
|
@ -1454,16 +1454,16 @@ void CxbxInitFilePaths()
|
|||
DWORD dwDisposition, dwType, dwSize;
|
||||
HKEY hKey;
|
||||
|
||||
if (RegCreateKeyEx(HKEY_CURRENT_USER, "Software\\Cxbx-Reloaded", 0, NULL, REG_OPTION_NON_VOLATILE, KEY_QUERY_VALUE, NULL, &hKey, &dwDisposition) == ERROR_SUCCESS)
|
||||
if (RegCreateKeyEx(HKEY_CURRENT_USER, "Software\\Cxbx-Reloaded\\DataStorageLocation", 0, NULL, REG_OPTION_NON_VOLATILE,
|
||||
KEY_QUERY_VALUE, NULL, &hKey, &dwDisposition) == ERROR_SUCCESS)
|
||||
{
|
||||
LONG result = ERROR_SUCCESS;
|
||||
|
||||
dwType = REG_SZ; dwSize = sizeof(szAppData);
|
||||
result = RegQueryValueEx(hKey, "DATALOC", NULL, &dwType, (PBYTE)&szAppData, &dwSize);
|
||||
result = RegQueryValueEx(hKey, "DataStorageLocationDirectory", NULL, &dwType, (PBYTE)&szAppData, &dwSize);
|
||||
if (result != ERROR_SUCCESS) {
|
||||
SHGetSpecialFolderPath(NULL, szAppData, CSIDL_APPDATA, TRUE); //Luke wants default to be %appdata%
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
snprintf(szFolder_CxbxReloadedData, MAX_PATH, "%s\\Cxbx-Reloaded", szAppData);
|
||||
|
|
Loading…
Reference in New Issue