diff --git a/Source/Project64/N64 System/Mips/System Events.cpp b/Source/Project64/N64 System/Mips/System Events.cpp index 9a155d076..42a4de7f8 100644 --- a/Source/Project64/N64 System/Mips/System Events.cpp +++ b/Source/Project64/N64 System/Mips/System Events.cpp @@ -115,9 +115,9 @@ void CSystemEvents::ExecuteEvents ( void ) bLoadedSave = true; } break; - /*case SysEvent_ChangePlugins: + case SysEvent_ChangePlugins: ChangePluginFunc(); - break;*/ + break; case SysEvent_ChangingFullScreen: g_Notify->ChangeFullScreen(); break; @@ -182,6 +182,14 @@ void CSystemEvents::ExecuteEvents ( void ) bPause = true; } break; + case SysEvent_PauseCPU_Settings: + if (!g_Settings->LoadBool(GameRunning_CPU_Paused)) + { + g_Settings->SaveBool(GameRunning_CPU_Paused,true); + g_Settings->SaveDword(GameRunning_CPU_PausedType, PauseType_Settings); + bPause = true; + } + break; default: g_Notify->BreakPoint(__FILE__,__LINE__); break; @@ -194,36 +202,8 @@ void CSystemEvents::ExecuteEvents ( void ) } } -/*void CSystemEvents::ChangePluginFunc ( void ) +void CSystemEvents::ChangePluginFunc ( void ) { g_Notify->DisplayMessage(0,MSG_PLUGIN_INIT); - if (g_Settings->LoadBool(Plugin_GFX_Changed)) - { - g_Plugins->Reset(PLUGIN_TYPE_GFX); - } - if (g_Settings->LoadBool(Plugin_AUDIO_Changed)) - { - g_Plugins->Reset(PLUGIN_TYPE_AUDIO); - } - if (g_Settings->LoadBool(Plugin_CONT_Changed)) - { - g_Plugins->Reset(PLUGIN_TYPE_CONTROLLER); - } - if (g_Settings->LoadBool(Plugin_RSP_Changed) || - g_Settings->LoadBool(Plugin_AUDIO_Changed) || - g_Settings->LoadBool(Plugin_GFX_Changed)) - { - g_Plugins->Reset(PLUGIN_TYPE_RSP); - } - g_Settings->SaveBool(Plugin_RSP_Changed, false); - g_Settings->SaveBool(Plugin_AUDIO_Changed,false); - g_Settings->SaveBool(Plugin_GFX_Changed, false); - g_Settings->SaveBool(Plugin_CONT_Changed, false); - g_Notify->RefreshMenu(); - if (!g_Plugins->Initiate()) - { - g_Notify->DisplayMessage(5,MSG_PLUGIN_NOT_INIT); - g_BaseSystem->m_EndEmulation = true; - } - g_Recompiler->ResetRecompCode(); -}*/ + m_System->PluginReset(); +} diff --git a/Source/Project64/N64 System/Mips/System Events.h b/Source/Project64/N64 System/Mips/System Events.h index 2f9663f37..4c202bdac 100644 --- a/Source/Project64/N64 System/Mips/System Events.h +++ b/Source/Project64/N64 System/Mips/System Events.h @@ -25,6 +25,7 @@ enum SystemEvent { SysEvent_PauseCPU_LoadGame, SysEvent_PauseCPU_DumpMemory, SysEvent_PauseCPU_SearchMemory, + SysEvent_PauseCPU_Settings, SysEvent_ResumeCPU_FromMenu, SysEvent_ResumeCPU_AppGainedActive, SysEvent_ResumeCPU_AppGainedFocus, @@ -32,8 +33,9 @@ enum SystemEvent { SysEvent_ResumeCPU_LoadGame, SysEvent_ResumeCPU_DumpMemory, SysEvent_ResumeCPU_SearchMemory, + SysEvent_ResumeCPU_Settings, SysEvent_ChangingFullScreen, -// SysEvent_ChangePlugins, + SysEvent_ChangePlugins, SysEvent_SaveMachineState, SysEvent_LoadMachineState, SysEvent_Interrupt_SP, @@ -66,7 +68,7 @@ private: CSystemEvents(const CSystemEvents&); // Disable copy constructor CSystemEvents& operator=(const CSystemEvents&); // Disable assignment - //void ChangePluginFunc( void ); + void ChangePluginFunc( void ); CN64System * m_System; EventList m_Events; diff --git a/Source/Project64/N64 System/N64 Class.cpp b/Source/Project64/N64 System/N64 Class.cpp index 1399672ba..cf2a3d30c 100644 --- a/Source/Project64/N64 System/N64 Class.cpp +++ b/Source/Project64/N64 System/N64 Class.cpp @@ -100,7 +100,8 @@ void CN64System::ExternalEvent ( SystemEvent action ) case SysEvent_Interrupt_DP: case SysEvent_ResetCPU_Hard: case SysEvent_ResetCPU_Soft: - case SysEvent_CloseCPU: + case SysEvent_CloseCPU: + case SysEvent_ChangePlugins: QueueEvent(action); break; case SysEvent_PauseCPU_FromMenu: @@ -110,6 +111,7 @@ void CN64System::ExternalEvent ( SystemEvent action ) case SysEvent_PauseCPU_LoadGame: case SysEvent_PauseCPU_DumpMemory: case SysEvent_PauseCPU_SearchMemory: + case SysEvent_PauseCPU_Settings: if (!g_Settings->LoadBool(GameRunning_CPU_Paused)) { QueueEvent(action); @@ -155,6 +157,12 @@ void CN64System::ExternalEvent ( SystemEvent action ) SetEvent(m_hPauseEvent); } break; + case SysEvent_ResumeCPU_Settings: + if (g_Settings->LoadDword(GameRunning_CPU_PausedType) == PauseType_Settings ) + { + SetEvent(m_hPauseEvent); + } + break; default: WriteTraceF(TraceError,__FUNCTION__ ": Unknown event %d",action); g_Notify->BreakPoint(__FILE__,__LINE__); @@ -506,6 +514,39 @@ void CN64System::GameReset (void) } } +void CN64System::PluginReset ( void ) +{ + if (!m_Plugins->ResetInUiThread(this)) + { + g_Notify->DisplayMessage(5,MSG_PLUGIN_NOT_INIT); + if (g_BaseSystem) + { + g_BaseSystem->m_EndEmulation = true; + } + } + if (m_SyncCPU) + { + if (!m_SyncCPU->m_Plugins->ResetInUiThread(m_SyncCPU)) + { + g_Notify->DisplayMessage(5,MSG_PLUGIN_NOT_INIT); + if (g_BaseSystem) + { + g_BaseSystem->m_EndEmulation = true; + } + } + } + g_Notify->RefreshMenu(); + if (m_Recomp) + { + m_Recomp->Reset(); + } + m_Plugins->RomOpened(); + if (m_SyncCPU) + { + m_SyncCPU->m_Plugins->RomOpened(); + } +} + void CN64System::Reset (bool bInitReg, bool ClearMenory) { RefreshGameSettings(); @@ -631,7 +672,7 @@ bool CN64System::SetActiveSystem( bool bActive ) { WriteTrace(TraceDebug,__FUNCTION__ ": Reseting Plugins"); g_Notify->DisplayMessage(5,MSG_PLUGIN_INIT); - m_Plugins->Reset(); + m_Plugins->CreatePlugins(); bRes = m_Plugins->Initiate(this); if (!bRes) { diff --git a/Source/Project64/N64 System/N64 Class.h b/Source/Project64/N64 System/N64 Class.h index 1c7a212f7..b94ef9899 100644 --- a/Source/Project64/N64 System/N64 Class.h +++ b/Source/Project64/N64 System/N64 Class.h @@ -58,6 +58,7 @@ public: void DecreaeSpeed ( void ) { m_Limitor.DecreaeSpeed(); } void Reset ( bool bInitReg, bool ClearMenory ); void GameReset ( void ); + void PluginReset ( void ); void Pause ( void ); void RunRSP ( void ); diff --git a/Source/Project64/N64 System/N64 Types.h b/Source/Project64/N64 System/N64 Types.h index 63adf19e8..83ff7ddf6 100644 --- a/Source/Project64/N64 System/N64 Types.h +++ b/Source/Project64/N64 System/N64 Types.h @@ -25,6 +25,7 @@ enum PauseType PauseType_LoadGame, PauseType_DumpMemory, PauseType_SearchMemory, + PauseType_Settings, }; enum CPU_TYPE { diff --git a/Source/Project64/Plugins/Plugin Base.cpp b/Source/Project64/Plugins/Plugin Base.cpp index 5ddae3378..96a6bae44 100644 --- a/Source/Project64/Plugins/Plugin Base.cpp +++ b/Source/Project64/Plugins/Plugin Base.cpp @@ -111,10 +111,13 @@ bool CPlugin::Load (const char * FileName) { return false; } + WriteTraceF(PluginTraceType(),__FUNCTION__ "(%s): Functions loaded",PluginType()); if (PluginOpened) { + WriteTraceF(PluginTraceType(),__FUNCTION__ "(%s): Before Plugin Opened",PluginType()); PluginOpened(); + WriteTraceF(PluginTraceType(),__FUNCTION__ "(%s): After Plugin Opened",PluginType()); } return true; } @@ -124,8 +127,10 @@ void CPlugin::RomOpened() if (m_RomOpen || RomOpen == NULL) return; + WriteTraceF(PluginTraceType(),__FUNCTION__ "(%s): Before Rom Open",PluginType()); RomOpen(); m_RomOpen = true; + WriteTraceF(PluginTraceType(),__FUNCTION__ "(%s): After Rom Open",PluginType()); } void CPlugin::RomClose() @@ -133,8 +138,10 @@ void CPlugin::RomClose() if (!m_RomOpen) return; + WriteTraceF(PluginTraceType(),__FUNCTION__ "(%s): Before Rom Close",PluginType()); RomClosed(); m_RomOpen = false; + WriteTraceF(PluginTraceType(),__FUNCTION__ "(%s): After Rom Close",PluginType()); } void CPlugin::GameReset() @@ -151,19 +158,19 @@ void CPlugin::GameReset() void CPlugin::Close() { - if (m_RomOpen) { - RomClosed(); - m_RomOpen = false; - } + WriteTraceF(PluginTraceType(),__FUNCTION__ "(%s): Start",PluginType()); + RomClose(); if (m_Initilized) { CloseDLL(); m_Initilized = false; } + WriteTraceF(PluginTraceType(),__FUNCTION__ "(%s): Done",PluginType()); } void CPlugin::UnloadPlugin() { + WriteTraceF(PluginTraceType(),__FUNCTION__ "(%s): unloading",PluginType()); memset(&m_PluginInfo, 0, sizeof(m_PluginInfo)); if (m_hDll != NULL) { @@ -182,3 +189,27 @@ void CPlugin::UnloadPlugin() SetSettingInfo2 = NULL; SetSettingInfo3 = NULL; } + +const char * CPlugin::PluginType () const +{ + switch (m_PluginInfo.Type) + { + case PLUGIN_TYPE_RSP: return "RSP"; + case PLUGIN_TYPE_GFX: return "GFX"; + case PLUGIN_TYPE_AUDIO: return "Audio"; + case PLUGIN_TYPE_CONTROLLER: return "Control"; + } + return "Unknown"; +} + +TraceType CPlugin::PluginTraceType () const +{ + switch (m_PluginInfo.Type) + { + case PLUGIN_TYPE_RSP: return TraceRSP; + case PLUGIN_TYPE_GFX: return TraceGfxPlugin; + case PLUGIN_TYPE_AUDIO: return TraceDebug; + case PLUGIN_TYPE_CONTROLLER: return TraceDebug; + } + return TraceDebug; +} diff --git a/Source/Project64/Plugins/Plugin Base.h b/Source/Project64/Plugins/Plugin Base.h index e5cfb40ff..7a91266ab 100644 --- a/Source/Project64/Plugins/Plugin Base.h +++ b/Source/Project64/Plugins/Plugin Base.h @@ -34,6 +34,8 @@ public: protected: void UnloadPlugin(); + const char * PluginType () const; + TraceType PluginTraceType () const; virtual void UnloadPluginDetails() = 0; virtual PLUGIN_TYPE type() = 0; virtual bool LoadFunctions ( void ) = 0; diff --git a/Source/Project64/Plugins/Plugin Class.cpp b/Source/Project64/Plugins/Plugin Class.cpp index 442eaba81..1f1bcc6af 100644 --- a/Source/Project64/Plugins/Plugin Class.cpp +++ b/Source/Project64/Plugins/Plugin Class.cpp @@ -50,11 +50,6 @@ CPlugins::~CPlugins (void) void CPlugins::PluginChanged ( CPlugins * _this ) { - if (g_Settings->LoadBool(GameRunning_CPU_Running)) - { - 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; @@ -62,8 +57,19 @@ void CPlugins::PluginChanged ( CPlugins * _this ) if ( bGfxChange || bAudioChange || bRspChange || bContChange ) { - _this->Reset(); - g_Notify->RefreshMenu(); + if (g_Settings->LoadBool(GameRunning_CPU_Running)) + { + //Ensure that base system actually exists before we go triggering the event + if (g_BaseSystem) + { + g_BaseSystem->ExternalEvent(SysEvent_ChangePlugins); + } + } + else + { + _this->Reset(NULL); + g_Notify->RefreshMenu(); + } } } @@ -82,7 +88,7 @@ static void LoadPlugin (SettingID PluginSettingID, SettingID PluginVerSettingID, WriteTraceF(TraceLevel,__FUNCTION__ ": %s Loading (%s): Starting",type,(LPCTSTR)PluginFileName); if (plugin->Load(PluginFileName)) { - WriteTraceF(TraceLevel,__FUNCTION__ ": %a Current Ver: %s",type,plugin->PluginName().c_str()); + WriteTraceF(TraceLevel,__FUNCTION__ ": %s Current Ver: %s",type,plugin->PluginName().c_str()); g_Settings->SaveString(PluginVerSettingID,plugin->PluginName().c_str()); } else @@ -250,19 +256,57 @@ bool CPlugins::Initiate ( CN64System * System ) return true; } -void CPlugins::Reset ( void ) +bool CPlugins::ResetInUiThread ( CN64System * System ) { + return m_RenderWindow->ResetPlugins(this, System); +} + +bool CPlugins::Reset ( CN64System * System ) +{ + WriteTrace(TraceDebug,__FUNCTION__ ": Start"); + bool bGfxChange = _stricmp(m_GfxFile.c_str(),g_Settings->LoadString(Game_Plugin_Gfx).c_str()) != 0; bool bAudioChange = _stricmp(m_AudioFile.c_str(),g_Settings->LoadString(Game_Plugin_Audio).c_str()) != 0; bool bRspChange = _stricmp(m_RSPFile.c_str(),g_Settings->LoadString(Game_Plugin_RSP).c_str()) != 0; bool bContChange = _stricmp(m_ControlFile.c_str(),g_Settings->LoadString(Game_Plugin_Controller).c_str()) != 0; + //if GFX and Audio has changed we also need to force reset of RSP + if (bGfxChange || bAudioChange) + bRspChange = true; + if (bGfxChange) { DestroyGfxPlugin(); } if (bAudioChange) { DestroyAudioPlugin(); } if (bRspChange) { DestroyRspPlugin(); } if (bContChange) { DestroyControlPlugin(); } CreatePlugins(); + + if (bGfxChange) + { + WriteTrace(TraceGfxPlugin,__FUNCTION__ ": Gfx Initiate Starting"); + if (!m_Gfx->Initiate(System,m_RenderWindow)) { return false; } + WriteTrace(TraceGfxPlugin,__FUNCTION__ ": Gfx Initiate Done"); + } + if (bAudioChange) + { + WriteTrace(TraceDebug,__FUNCTION__ ": Audio Initiate Starting"); + if (!m_Audio->Initiate(System,m_RenderWindow)) { return false; } + WriteTrace(TraceDebug,__FUNCTION__ ": Audio Initiate Done"); + } + if (bContChange) + { + WriteTrace(TraceDebug, __FUNCTION__ ": Control Initiate Starting"); + if (!m_Control->Initiate(System,m_RenderWindow)) { return false; } + WriteTrace(TraceDebug, __FUNCTION__ ": Control Initiate Done"); + } + if (bRspChange) + { + WriteTrace(TraceRSP,__FUNCTION__ ": RSP Initiate Starting"); + if (!m_RSP->Initiate(this,System)) { return false; } + WriteTrace(TraceRSP,__FUNCTION__ ": RSP Initiate Done"); + } + WriteTrace(TraceDebug,__FUNCTION__ ": Done"); + return true; } void CPlugins::ConfigPlugin ( DWORD hParent, PLUGIN_TYPE Type ) { diff --git a/Source/Project64/Plugins/Plugin Class.h b/Source/Project64/Plugins/Plugin Class.h index 3c8bc3173..ea6e3b136 100644 --- a/Source/Project64/Plugins/Plugin Class.h +++ b/Source/Project64/Plugins/Plugin Class.h @@ -97,7 +97,9 @@ public: void SetRenderWindows ( CMainGui * RenderWindow, CMainGui * DummyWindow ); void ConfigPlugin ( DWORD hParent, PLUGIN_TYPE Type ); bool CopyPlugins ( const stdstr & DstDir ) const; - void Reset ( void ); + void CreatePlugins ( void ); + bool Reset ( CN64System * System ); + bool ResetInUiThread ( CN64System * System ); void GameReset ( void ); inline CGfxPlugin * Gfx ( void) const { return m_Gfx; }; @@ -112,7 +114,6 @@ private: // void Reset ( PLUGIN_TYPE Type ); - void CreatePlugins ( void ); void CreatePluginDir ( const stdstr & DstDir ) const; void DestroyGfxPlugin ( void ); diff --git a/Source/Project64/Settings.h b/Source/Project64/Settings.h index beabff52f..a1d31cf85 100644 --- a/Source/Project64/Settings.h +++ b/Source/Project64/Settings.h @@ -232,20 +232,15 @@ enum SettingID { //Plugins Plugin_RSP_Current, Plugin_RSP_CurVer, - Plugin_RSP_Changed, Plugin_GFX_Current, Plugin_GFX_CurVer, - Plugin_GFX_Changed, Plugin_AUDIO_Current, Plugin_AUDIO_CurVer, - Plugin_AUDIO_Changed, Plugin_CONT_Current, Plugin_CONT_CurVer, - Plugin_CONT_Changed, Plugin_UseHleGfx, Plugin_UseHleAudio, - //Cheats Cheat_Entry, Cheat_Active, diff --git a/Source/Project64/Settings/Settings Class.cpp b/Source/Project64/Settings/Settings Class.cpp index 32cc4d985..74c7131e0 100644 --- a/Source/Project64/Settings/Settings Class.cpp +++ b/Source/Project64/Settings/Settings Class.cpp @@ -310,11 +310,6 @@ void CSettings::AddHowToHandleSetting () AddHandler(Plugin_AUDIO_CurVer, new CSettingTypeApplication("Plugin","Audio Dll Ver", "")); AddHandler(Plugin_CONT_CurVer, new CSettingTypeApplication("Plugin","Controller Dll Ver", "")); - AddHandler(Plugin_RSP_Changed, new CSettingTypeTempBool(true)); - AddHandler(Plugin_GFX_Changed, new CSettingTypeTempBool(true)); - AddHandler(Plugin_AUDIO_Changed, new CSettingTypeTempBool(true)); - AddHandler(Plugin_CONT_Changed, new CSettingTypeTempBool(true)); - AddHandler(Plugin_UseHleGfx, new CSettingTypeApplication("RSP","HLE GFX",true)); AddHandler(Plugin_UseHleAudio, new CSettingTypeApplication("RSP","HLE Audio",false)); diff --git a/Source/Project64/User Interface/Gui Class.cpp b/Source/Project64/User Interface/Gui Class.cpp index 02ef8ae11..0fb3d5831 100644 --- a/Source/Project64/User Interface/Gui Class.cpp +++ b/Source/Project64/User Interface/Gui Class.cpp @@ -273,21 +273,28 @@ DWORD CALLBACK AboutIniBoxProc (HWND WndHandle, DWORD uMsg, DWORD wParam, DWORD return TRUE; } -bool CMainGui::InitiatePlugins (void) +bool CMainGui::ResetPlugins (CPlugins * plugins, CN64System * System) { - /*HANDLE hEvent = CreateEvent(NULL,TRUE,FALSE,NULL); + RESET_PLUGIN info; + info.system = System; + info.plugins = plugins; + info.hEvent = CreateEvent(NULL,TRUE,FALSE,NULL); bool bRes = true; - if (hEvent) + if (info.hEvent) { - PostMessage((HWND)m_hMainWindow,WM_INIATE_PLUGIN,(WPARAM)&bRes,(LPARAM)hEvent); - DWORD dwRes = WaitForSingleObject(hEvent,5000); - CloseHandle(hEvent); + PostMessage((HWND)m_hMainWindow,WM_RESET_PLUGIN,(WPARAM)&bRes,(LPARAM)&info); +#ifdef _DEBUG + DWORD dwRes = WaitForSingleObject(info.hEvent,INFINITE); +#else + DWORD dwRes = WaitForSingleObject(info.hEvent,5000); +#endif + dwRes = dwRes; + CloseHandle(info.hEvent); } else { WriteTrace(TraceError,__FUNCTION__ ": Failed to create event"); bRes = false; } - return bRes;*/ - return false; + return bRes; } void CMainGui::BringToTop (void) { @@ -757,15 +764,14 @@ DWORD CALLBACK CMainGui::MainGui_Proc (HWND hWnd, DWORD uMsg, DWORD wParam, DWOR _this->RomBrowserToTop(); } break; - /*case WM_INIATE_PLUGIN: + case WM_RESET_PLUGIN: { - bool * bRes = (bool *)wParam; - HANDLE hEvent = (HANDLE)lParam; + RESET_PLUGIN * info = (RESET_PLUGIN *)lParam; - *bRes = g_Plugins->InitiateMainThread(); - SetEvent(hEvent); + info->res = info->plugins->Reset(info->system); + SetEvent(info->hEvent); } - break;*/ + break; case WM_COMMAND: { CMainGui * _this = (CMainGui *)GetProp((HWND)hWnd,"Class"); diff --git a/Source/Project64/User Interface/Gui Class.h b/Source/Project64/User Interface/Gui Class.h index 4c54c5d88..7241d8630 100644 --- a/Source/Project64/User Interface/Gui Class.h +++ b/Source/Project64/User Interface/Gui Class.h @@ -21,7 +21,7 @@ class CriticalSection; enum { WM_HIDE_CUROSR = WM_USER + 10, WM_MAKE_FOCUS = WM_USER + 17, - //WM_INIATE_PLUGIN = WM_USER + 18, + WM_RESET_PLUGIN = WM_USER + 18, WM_BORWSER_TOP = WM_USER + 40, }; @@ -31,6 +31,13 @@ class CMainGui : { enum { StatusBarID = 400 }; + typedef struct + { + CN64System * system; + CPlugins * plugins; + HANDLE hEvent; + bool res; + } RESET_PLUGIN; public: CMainGui ( bool bMainWindow, const char * WindowTitle = "" ); ~CMainGui ( void ); @@ -68,7 +75,7 @@ public: void AboutBox ( void ); //Plugins - bool InitiatePlugins ( void ); + bool ResetPlugins ( CPlugins * plugins, CN64System * System ); //Get Window Handle inline HWND GetHandle ( void ) const { return m_hMainWindow; } diff --git a/Source/Project64/User Interface/Settings Config.cpp b/Source/Project64/User Interface/Settings Config.cpp index a22368cf4..2978d7394 100644 --- a/Source/Project64/User Interface/Settings Config.cpp +++ b/Source/Project64/User Interface/Settings Config.cpp @@ -22,7 +22,17 @@ CSettingConfig::~CSettingConfig () void CSettingConfig::Display(void * ParentWindow) { + if (g_BaseSystem) + { + g_BaseSystem->ExternalEvent(SysEvent_PauseCPU_Settings); + } + DoModal((HWND)ParentWindow); + + if (g_BaseSystem) + { + g_BaseSystem->ExternalEvent(SysEvent_ResumeCPU_Settings); + } } void CSettingConfig::UpdateAdvanced ( bool AdvancedMode ) diff --git a/Source/Project64/User Interface/Settings/Settings Page - Game - Plugin.cpp b/Source/Project64/User Interface/Settings/Settings Page - Game - Plugin.cpp index 866fdc768..f7ed1a90e 100644 --- a/Source/Project64/User Interface/Settings/Settings Page - Game - Plugin.cpp +++ b/Source/Project64/User Interface/Settings/Settings Page - Game - Plugin.cpp @@ -264,15 +264,6 @@ void CGamePluginPage::ApplyComboBoxes ( void ) } else { g_Settings->DeleteSetting(cb_iter->first); } - switch (cb_iter->first) - { - case Game_EditPlugin_RSP: g_Settings->SaveBool(Plugin_RSP_Changed,true); break; - case Game_EditPlugin_Gfx: g_Settings->SaveBool(Plugin_GFX_Changed,true); break; - case Game_EditPlugin_Audio: g_Settings->SaveBool(Plugin_AUDIO_Changed,true); break; - case Game_EditPlugin_Contr: g_Settings->SaveBool(Plugin_CONT_Changed,true); break; - default: - Notify().BreakPoint(__FILE__,__LINE__); - } } if (ComboBox->IsReset()) { diff --git a/Source/Project64/User Interface/Settings/Settings Page - Plugin.cpp b/Source/Project64/User Interface/Settings/Settings Page - Plugin.cpp index 1435120b0..e839cb619 100644 --- a/Source/Project64/User Interface/Settings/Settings Page - Plugin.cpp +++ b/Source/Project64/User Interface/Settings/Settings Page - Plugin.cpp @@ -247,15 +247,6 @@ void COptionPluginPage::ApplyComboBoxes ( void ) const CPluginList::PLUGIN * Plugin = *PluginPtr; g_Settings->SaveString(cb_iter->first,Plugin->FileName.c_str()); - switch (Plugin->Info.Type) - { - case PLUGIN_TYPE_RSP: g_Settings->SaveBool(Plugin_RSP_Changed,true); break; - case PLUGIN_TYPE_GFX: g_Settings->SaveBool(Plugin_GFX_Changed,true); break; - case PLUGIN_TYPE_AUDIO: g_Settings->SaveBool(Plugin_AUDIO_Changed,true); break; - case PLUGIN_TYPE_CONTROLLER: g_Settings->SaveBool(Plugin_CONT_Changed,true); break; - default: - g_Notify->BreakPoint(__FILE__,__LINE__); - } } if (ComboBox->IsReset()) {