From eeb4d4d4dec4af7a15700c894629bbe41dae794d Mon Sep 17 00:00:00 2001 From: Megamouse Date: Sat, 12 Aug 2017 11:12:21 +0200 Subject: [PATCH] emu_settings: fix faulty custom config file creation --- rpcs3/rpcs3qt/emu_settings.cpp | 13 ++++++++++--- rpcs3/rpcs3qt/emu_settings.h | 1 + 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/rpcs3/rpcs3qt/emu_settings.cpp b/rpcs3/rpcs3qt/emu_settings.cpp index 9e15d038db..fc5cc052e0 100644 --- a/rpcs3/rpcs3qt/emu_settings.cpp +++ b/rpcs3/rpcs3qt/emu_settings.cpp @@ -174,6 +174,8 @@ Render_Creator::Render_Creator() emu_settings::emu_settings(const std::string& path) : QObject() { + m_path = path; + // Create config path if necessary fs::create_path(fs::get_config_dir() + path); @@ -185,9 +187,9 @@ emu_settings::emu_settings(const std::string& path) : QObject() currentSettings += YAML::Load(config.to_string()); // Add game config - if (!path.empty()) + if (!path.empty() && fs::is_file(fs::get_config_dir() + path + "/config.yml")) { - config = fs::file(fs::get_config_dir() + path + "/config.yml", fs::read + fs::write + fs::create); + config = fs::file(fs::get_config_dir() + path + "/config.yml", fs::read + fs::write); currentSettings += YAML::Load(config.to_string()); } } @@ -200,7 +202,12 @@ void emu_settings::SaveSettings() { YAML::Emitter out; emitData(out, currentSettings); - + + if (!m_path.empty()) + { + config = fs::file(fs::get_config_dir() + m_path + "/config.yml", fs::read + fs::write + fs::create); + } + // Save config config.seek(0); config.trunc(0); diff --git a/rpcs3/rpcs3qt/emu_settings.h b/rpcs3/rpcs3qt/emu_settings.h index ab88faced0..2e7e4c4e17 100644 --- a/rpcs3/rpcs3qt/emu_settings.h +++ b/rpcs3/rpcs3qt/emu_settings.h @@ -205,4 +205,5 @@ private: YAML::Node currentSettings; // The current settings as a YAML node. fs::file config; //! File to read/write the config settings. + std::string m_path; };