Clean up some of the games plugin settings
This commit is contained in:
parent
67deab4699
commit
aae61e8350
|
@ -457,15 +457,16 @@ bool CN64Rom::LoadN64Image ( const char * FileLoc, bool LoadBootCodeOnly ) {
|
|||
|
||||
if (!LoadBootCodeOnly && g_Rom == this)
|
||||
{
|
||||
SaveRomSettingID();
|
||||
SaveRomSettingID(false);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
//Save the settings of the loaded rom, so all loaded settings about rom will be identified with
|
||||
//this rom
|
||||
void CN64Rom::SaveRomSettingID ( void )
|
||||
void CN64Rom::SaveRomSettingID ( bool temp )
|
||||
{
|
||||
g_Settings->SaveBool(Game_TempLoaded,temp);
|
||||
g_Settings->SaveString(Game_GameName,m_RomName.c_str());
|
||||
g_Settings->SaveString(Game_IniKey,m_RomIdent.c_str());
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ public:
|
|||
~CN64Rom ( void );
|
||||
bool LoadN64Image ( const char * FileLoc, bool LoadBootCodeOnly = false );
|
||||
static bool IsValidRomImage( BYTE Test[4] );
|
||||
void SaveRomSettingID ( void );
|
||||
void SaveRomSettingID ( bool temp );
|
||||
void ClearRomSettingID ( void );
|
||||
CICChip CicChipID ( void );
|
||||
BYTE * GetRomAddress ( void ) { return m_ROMImage; }
|
||||
|
|
|
@ -42,10 +42,17 @@ bool CPlugin::Load (const char * FileName)
|
|||
|
||||
// Try to load the plugin DLL
|
||||
//Try to load the DLL library
|
||||
UINT LastErrorMode = SetErrorMode(SEM_FAILCRITICALERRORS);
|
||||
m_hDll = LoadLibrary(FileName);
|
||||
SetErrorMode(LastErrorMode);
|
||||
|
||||
if (bHaveDebugger())
|
||||
{
|
||||
m_hDll = LoadLibrary(FileName);
|
||||
}
|
||||
else
|
||||
{
|
||||
UINT LastErrorMode = SetErrorMode(SEM_FAILCRITICALERRORS);
|
||||
m_hDll = LoadLibrary(FileName);
|
||||
SetErrorMode(LastErrorMode);
|
||||
}
|
||||
|
||||
if (m_hDll == NULL)
|
||||
{
|
||||
return false;
|
||||
|
|
|
@ -10,7 +10,8 @@
|
|||
****************************************************************************/
|
||||
#pragma once
|
||||
|
||||
class CPlugin
|
||||
class CPlugin :
|
||||
private CDebugSettings
|
||||
{
|
||||
public:
|
||||
CPlugin();
|
||||
|
|
|
@ -20,13 +20,12 @@ CPlugins::CPlugins (const stdstr & PluginDir):
|
|||
g_Settings->RegisterChangeCB(Plugin_GFX_Current,this,(CSettings::SettingChangedFunc)PluginChanged);
|
||||
g_Settings->RegisterChangeCB(Plugin_AUDIO_Current,this,(CSettings::SettingChangedFunc)PluginChanged);
|
||||
g_Settings->RegisterChangeCB(Plugin_CONT_Current,this,(CSettings::SettingChangedFunc)PluginChanged);
|
||||
/*g_Settings->RegisterChangeCB(Plugin_UseHleGfx,this,(CSettings::SettingChangedFunc)PluginChanged);
|
||||
g_Settings->RegisterChangeCB(Plugin_UseHleGfx,this,(CSettings::SettingChangedFunc)PluginChanged);
|
||||
g_Settings->RegisterChangeCB(Plugin_UseHleAudio,this,(CSettings::SettingChangedFunc)PluginChanged);
|
||||
g_Settings->RegisterChangeCB(Game_EditPlugin_Gfx,this,(CSettings::SettingChangedFunc)PluginChanged);
|
||||
g_Settings->RegisterChangeCB(Game_EditPlugin_Audio,this,(CSettings::SettingChangedFunc)PluginChanged);
|
||||
g_Settings->RegisterChangeCB(Game_EditPlugin_Contr,this,(CSettings::SettingChangedFunc)PluginChanged);
|
||||
g_Settings->RegisterChangeCB(Game_EditPlugin_RSP,this,(CSettings::SettingChangedFunc)PluginChanged);
|
||||
*/
|
||||
}
|
||||
|
||||
CPlugins::~CPlugins (void)
|
||||
|
@ -35,13 +34,13 @@ CPlugins::~CPlugins (void)
|
|||
g_Settings->UnregisterChangeCB(Plugin_GFX_Current,this,(CSettings::SettingChangedFunc)PluginChanged);
|
||||
g_Settings->UnregisterChangeCB(Plugin_AUDIO_Current,this,(CSettings::SettingChangedFunc)PluginChanged);
|
||||
g_Settings->UnregisterChangeCB(Plugin_CONT_Current,this,(CSettings::SettingChangedFunc)PluginChanged);
|
||||
/* g_Settings->UnregisterChangeCB(Plugin_UseHleGfx,this,(CSettings::SettingChangedFunc)PluginChanged);
|
||||
g_Settings->UnregisterChangeCB(Plugin_UseHleGfx,this,(CSettings::SettingChangedFunc)PluginChanged);
|
||||
g_Settings->UnregisterChangeCB(Plugin_UseHleAudio,this,(CSettings::SettingChangedFunc)PluginChanged);
|
||||
g_Settings->UnregisterChangeCB(Game_EditPlugin_Gfx,this,(CSettings::SettingChangedFunc)PluginChanged);
|
||||
g_Settings->UnregisterChangeCB(Game_EditPlugin_Audio,this,(CSettings::SettingChangedFunc)PluginChanged);
|
||||
g_Settings->UnregisterChangeCB(Game_EditPlugin_Contr,this,(CSettings::SettingChangedFunc)PluginChanged);
|
||||
g_Settings->UnregisterChangeCB(Game_EditPlugin_RSP,this,(CSettings::SettingChangedFunc)PluginChanged);
|
||||
*/
|
||||
|
||||
DestroyGfxPlugin();
|
||||
DestroyAudioPlugin();
|
||||
DestroyRspPlugin();
|
||||
|
@ -50,6 +49,10 @@ CPlugins::~CPlugins (void)
|
|||
|
||||
void CPlugins::PluginChanged ( CPlugins * _this )
|
||||
{
|
||||
if (g_Settings->LoadBool(Game_TempLoaded) == true)
|
||||
{
|
||||
return;
|
||||
}
|
||||
bool bGfxChange = _stricmp(_this->m_GfxFile.c_str(),g_Settings->LoadString(Game_Plugin_Gfx).c_str()) != 0;
|
||||
bool bAudioChange = _stricmp(_this->m_AudioFile.c_str(),g_Settings->LoadString(Game_Plugin_Audio).c_str()) != 0;
|
||||
bool bRspChange = _stricmp(_this->m_RSPFile.c_str(),g_Settings->LoadString(Game_Plugin_RSP).c_str()) != 0;
|
||||
|
@ -374,8 +377,8 @@ void CPlugins::CreatePluginDir ( const stdstr & DstDir ) const {
|
|||
bool CPlugins::CopyPlugins ( const stdstr & DstDir ) const
|
||||
{
|
||||
//Copy GFX Plugin
|
||||
CPath srcGfxPlugin(m_PluginDir.c_str(),g_Settings->LoadString(Plugin_GFX_Current).c_str());
|
||||
CPath dstGfxPlugin(DstDir.c_str(),g_Settings->LoadString(Plugin_GFX_Current).c_str());
|
||||
CPath srcGfxPlugin(m_PluginDir.c_str(),g_Settings->LoadString(Game_Plugin_Gfx).c_str());
|
||||
CPath dstGfxPlugin(DstDir.c_str(),g_Settings->LoadString(Game_Plugin_Gfx).c_str());
|
||||
|
||||
if (CopyFile(srcGfxPlugin,dstGfxPlugin,false) == 0)
|
||||
{
|
||||
|
@ -387,8 +390,8 @@ bool CPlugins::CopyPlugins ( const stdstr & DstDir ) const
|
|||
}
|
||||
|
||||
//Copy m_Audio Plugin
|
||||
CPath srcAudioPlugin(m_PluginDir.c_str(),g_Settings->LoadString(Plugin_AUDIO_Current).c_str());
|
||||
CPath dstAudioPlugin(DstDir.c_str(), g_Settings->LoadString(Plugin_AUDIO_Current).c_str());
|
||||
CPath srcAudioPlugin(m_PluginDir.c_str(),g_Settings->LoadString(Game_Plugin_Audio).c_str());
|
||||
CPath dstAudioPlugin(DstDir.c_str(), g_Settings->LoadString(Game_Plugin_Audio).c_str());
|
||||
if (CopyFile(srcAudioPlugin,dstAudioPlugin,false) == 0) {
|
||||
if (GetLastError() == ERROR_PATH_NOT_FOUND) { dstAudioPlugin.CreateDirectory(); }
|
||||
if (!CopyFile(srcAudioPlugin,dstAudioPlugin,false))
|
||||
|
@ -397,9 +400,9 @@ bool CPlugins::CopyPlugins ( const stdstr & DstDir ) const
|
|||
}
|
||||
}
|
||||
|
||||
//Copy m_RSP Plugin
|
||||
CPath srcRSPPlugin(m_PluginDir.c_str(), g_Settings->LoadString(Plugin_RSP_Current).c_str());
|
||||
CPath dstRSPPlugin(DstDir.c_str(),g_Settings->LoadString(Plugin_RSP_Current).c_str());
|
||||
//Copy RSP Plugin
|
||||
CPath srcRSPPlugin(m_PluginDir.c_str(), g_Settings->LoadString(Game_Plugin_RSP).c_str());
|
||||
CPath dstRSPPlugin(DstDir.c_str(),g_Settings->LoadString(Game_Plugin_RSP).c_str());
|
||||
if (CopyFile(srcRSPPlugin,dstRSPPlugin,false) == 0) {
|
||||
if (GetLastError() == ERROR_PATH_NOT_FOUND) { dstRSPPlugin.CreateDirectory(); }
|
||||
if (!CopyFile(srcRSPPlugin,dstRSPPlugin,false))
|
||||
|
@ -409,8 +412,8 @@ bool CPlugins::CopyPlugins ( const stdstr & DstDir ) const
|
|||
}
|
||||
|
||||
//Copy Controller Plugin
|
||||
CPath srcContPlugin(m_PluginDir.c_str(), g_Settings->LoadString(Plugin_CONT_Current).c_str());
|
||||
CPath dstContPlugin(DstDir.c_str(),g_Settings->LoadString(Plugin_CONT_Current).c_str());
|
||||
CPath srcContPlugin(m_PluginDir.c_str(), g_Settings->LoadString(Game_Plugin_Controller).c_str());
|
||||
CPath dstContPlugin(DstDir.c_str(),g_Settings->LoadString(Game_Plugin_Controller).c_str());
|
||||
if (!srcContPlugin.CopyTo(dstContPlugin))
|
||||
{
|
||||
if (GetLastError() == ERROR_PATH_NOT_FOUND) { dstContPlugin.CreateDirectory(); }
|
||||
|
|
|
@ -99,6 +99,7 @@ enum SettingID {
|
|||
Game_IniKey,
|
||||
Game_GameName,
|
||||
Game_GoodName,
|
||||
Game_TempLoaded,
|
||||
Game_SystemType,
|
||||
Game_EditPlugin_Gfx,
|
||||
Game_EditPlugin_Audio,
|
||||
|
|
|
@ -67,7 +67,12 @@ void CSettings::AddHandler ( SettingID TypeID, CSettingType * Handler )
|
|||
SETTING_MAP::_Pairib res = m_SettingInfo.insert(SETTING_MAP::value_type(TypeID,Handler));
|
||||
if (!res.second)
|
||||
{
|
||||
delete Handler;
|
||||
m_SettingInfo.erase(res.first);
|
||||
res = m_SettingInfo.insert(SETTING_MAP::value_type(TypeID,Handler));
|
||||
if (!res.second)
|
||||
{
|
||||
delete Handler;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -78,7 +83,6 @@ void CSettings::AddHowToHandleSetting ()
|
|||
|
||||
|
||||
//Support Files
|
||||
AddHandler(SupportFile_SettingsDefault, new CSettingTypeRelativePath("Config","Project64.cfg"));
|
||||
AddHandler(SupportFile_Settings, new CSettingTypeApplicationPath("","ConfigFile",SupportFile_SettingsDefault));
|
||||
AddHandler(SupportFile_SettingsDefault, new CSettingTypeRelativePath("Config","Project64.cfg"));
|
||||
AddHandler(SupportFile_RomDatabase, new CSettingTypeApplicationPath("","RomDatabase",SupportFile_RomDatabaseDefault));
|
||||
|
@ -165,6 +169,7 @@ void CSettings::AddHowToHandleSetting ()
|
|||
AddHandler(Game_IniKey, new CSettingTypeTempString(""));
|
||||
AddHandler(Game_GameName, new CSettingTypeTempString(""));
|
||||
AddHandler(Game_GoodName, new CSettingTypeGame("Good Name",Rdb_GoodName));
|
||||
AddHandler(Game_TempLoaded, new CSettingTypeTempBool(false));
|
||||
AddHandler(Game_SystemType, new CSettingTypeTempNumber(SYSTEM_NTSC));
|
||||
AddHandler(Game_EditPlugin_Gfx, new CSettingTypeGame("Plugin-Gfx",Default_None));
|
||||
AddHandler(Game_EditPlugin_Audio, new CSettingTypeGame("Plugin-Audio",Default_None));
|
||||
|
|
|
@ -816,7 +816,7 @@ DWORD CALLBACK CMainGui::MainGui_Proc (HWND hWnd, DWORD uMsg, DWORD wParam, DWOR
|
|||
{
|
||||
CN64Rom Rom;
|
||||
Rom.LoadN64Image(_this->CurrentedSelectedRom(),true);
|
||||
Rom.SaveRomSettingID();
|
||||
Rom.SaveRomSettingID(true);
|
||||
/*if (g_Settings->LoadString(ROM_MD5).length() == 0) {
|
||||
Rom.LoadN64Image(_this->CurrentedSelectedRom(),false);
|
||||
g_Settings->SaveString(ROM_MD5,Rom.GetRomMD5().c_str());
|
||||
|
@ -835,7 +835,7 @@ DWORD CALLBACK CMainGui::MainGui_Proc (HWND hWnd, DWORD uMsg, DWORD wParam, DWOR
|
|||
}
|
||||
|
||||
if (g_Rom) {
|
||||
g_Rom->SaveRomSettingID();
|
||||
g_Rom->SaveRomSettingID(false);
|
||||
} else {
|
||||
Rom.ClearRomSettingID();
|
||||
}
|
||||
|
@ -863,14 +863,14 @@ DWORD CALLBACK CMainGui::MainGui_Proc (HWND hWnd, DWORD uMsg, DWORD wParam, DWOR
|
|||
{
|
||||
break;
|
||||
}
|
||||
Rom.SaveRomSettingID();
|
||||
Rom.SaveRomSettingID(true);
|
||||
g_Notify->DisplayMessage(0,"");
|
||||
BYTE * RomHeader = Rom.GetRomAddress();
|
||||
WriteTrace(TraceGfxPlugin,__FUNCTION__ ": OnRomBrowserMenuItem - Starting");
|
||||
g_Plugins->Gfx()->OnRomBrowserMenuItem(LOWORD(wParam),hWnd,RomHeader);
|
||||
WriteTrace(TraceGfxPlugin,__FUNCTION__ ": OnRomBrowserMenuItem - Done");
|
||||
if (g_Rom) {
|
||||
g_Rom->SaveRomSettingID();
|
||||
g_Rom->SaveRomSettingID(false);
|
||||
} else {
|
||||
g_Settings->SaveString(Game_IniKey,"");
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue