From a9683b36fb064b1a0779587bca1990e5021298a3 Mon Sep 17 00:00:00 2001 From: zilmar Date: Tue, 6 Jun 2017 04:26:54 +1000 Subject: [PATCH] [Video] Ignore changes when writing settings --- Source/Project64-video/Settings.cpp | 11 +++++++++-- Source/Project64-video/Settings.h | 1 + 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/Source/Project64-video/Settings.cpp b/Source/Project64-video/Settings.cpp index b1934a6a3..f1eb20a62 100644 --- a/Source/Project64-video/Settings.cpp +++ b/Source/Project64-video/Settings.cpp @@ -93,7 +93,8 @@ CSettings::CSettings() : m_wrpVRAM(0), m_wrpFBO(false), m_wrpAnisotropic(false), - m_FlushLogs(false) + m_FlushLogs(false), + m_InWriteSettings(false) { memset(m_log_dir, 0, sizeof(m_log_dir)); RegisterSettings(); @@ -568,7 +569,7 @@ void CSettings::ReadSettings() m_debugger_enabled = m_advanced_options && m_Set_debugger ? GetSystemSetting(m_Set_debugger) == 1 : false; m_texenh_options = GetSetting(Set_texenh_options) != 0; m_aspectmode = (AspectMode_t)GetSetting(Set_aspect); - + m_wrpVRAM = GetSetting(Set_wrpVRAM); m_wrpFBO = GetSetting(Set_wrpFBO) != 0; m_wrpAnisotropic = GetSetting(Set_wrpAnisotropic) != 0; @@ -831,6 +832,7 @@ void CSettings::ReadGameSettings(const char * name) void CSettings::WriteSettings(void) { + m_InWriteSettings = true; SetSetting(Set_Resolution, m_ScreenRes); #ifndef ANDROID SetSetting(Set_FullScreenRes, m_FullScreenRes); @@ -893,6 +895,7 @@ void CSettings::WriteSettings(void) } FlushSettings(); + m_InWriteSettings = false; } void CSettings::general_setting(short setting_ID, const char * name, unsigned int value) @@ -912,6 +915,10 @@ void CSettings::game_setting_default(short setting_ID, const char * name, short void CSettings::SettingsChanged(void) { + if (m_InWriteSettings) + { + return; + } m_ScreenRes = GetSetting(Set_Resolution); m_aspectmode = (AspectMode_t)GetSetting(Set_aspect); } diff --git a/Source/Project64-video/Settings.h b/Source/Project64-video/Settings.h index 79e0adf4a..bb70aa581 100644 --- a/Source/Project64-video/Settings.h +++ b/Source/Project64-video/Settings.h @@ -406,6 +406,7 @@ private: bool m_old_style_adither; bool m_n64_z_scale; hacks_t m_hacks; + bool m_InWriteSettings; }; extern CSettings * g_settings;