From 3e0c356b0ba4ba8bdb5778054d64c486a035d0e7 Mon Sep 17 00:00:00 2001 From: georgemoralis Date: Thu, 23 Feb 2017 17:08:52 +0200 Subject: [PATCH] per game config.yml (#2418) --- Utilities/File.cpp | 2 +- rpcs3/Emu/System.cpp | 4 ++-- rpcs3/Gui/GameViewer.cpp | 3 +-- rpcs3/Gui/MainFrame.cpp | 2 +- rpcs3/Gui/SettingsDialog.cpp | 5 +++-- rpcs3/Gui/SettingsDialog.h | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Utilities/File.cpp b/Utilities/File.cpp index d7b345ffe4..9bfcf76c58 100644 --- a/Utilities/File.cpp +++ b/Utilities/File.cpp @@ -1166,7 +1166,7 @@ std::string fs::get_data_dir(const std::string& prefix, const std::string& locat { static const std::string s_dir = [] { - const std::string& dir = get_config_dir() + "/data/"; + const std::string& dir = get_config_dir() + "data/"; if (!is_dir(dir) && !create_path(dir)) { diff --git a/rpcs3/Emu/System.cpp b/rpcs3/Emu/System.cpp index 2ca973ca8f..dc8f1ff323 100644 --- a/rpcs3/Emu/System.cpp +++ b/rpcs3/Emu/System.cpp @@ -229,9 +229,9 @@ void Emulator::Load() } // Load custom config-1 - if (fs::file cfg_file{m_cache_path + "config.yml"}) + if (fs::file cfg_file{ fs::get_config_dir() + "data/" + m_title_id + "/config.yml" }) { - LOG_NOTICE(LOADER, "Applying custom config (config.yml)"); + LOG_NOTICE(LOADER, "Applying custom config %s", fs::get_config_dir() + "data/" + m_title_id + "/config.yml"); cfg::root.from_string(cfg_file.to_string()); } diff --git a/rpcs3/Gui/GameViewer.cpp b/rpcs3/Gui/GameViewer.cpp index 705696ab8b..2116e86322 100644 --- a/rpcs3/Gui/GameViewer.cpp +++ b/rpcs3/Gui/GameViewer.cpp @@ -230,8 +230,7 @@ void GameViewer::ConfigureGame(wxCommandEvent& WXUNUSED(event)) { long i = GetFirstSelected(); if (i < 0) return; - - LOG_TODO(LOADER, "Configure: %s", m_game_data[i].root); + SettingsDialog(this, fs::get_config_dir() + "data/" + m_game_data[i].root + "/config.yml"); } void GameViewer::RemoveGame(wxCommandEvent& event) diff --git a/rpcs3/Gui/MainFrame.cpp b/rpcs3/Gui/MainFrame.cpp index d7a22ed7ae..506cc6a15f 100644 --- a/rpcs3/Gui/MainFrame.cpp +++ b/rpcs3/Gui/MainFrame.cpp @@ -553,7 +553,7 @@ void MainFrame::SendOpenCloseSysMenu(wxCommandEvent& event) void MainFrame::Config(wxCommandEvent& WXUNUSED(event)) { - SettingsDialog(this); + SettingsDialog(this,""); } void MainFrame::ConfigPad(wxCommandEvent& WXUNUSED(event)) diff --git a/rpcs3/Gui/SettingsDialog.cpp b/rpcs3/Gui/SettingsDialog.cpp index 1ed0eeab43..8de6552490 100644 --- a/rpcs3/Gui/SettingsDialog.cpp +++ b/rpcs3/Gui/SettingsDialog.cpp @@ -202,14 +202,15 @@ struct textctrl_pad : cfg_adapter }; -SettingsDialog::SettingsDialog(wxWindow* parent) +SettingsDialog::SettingsDialog(wxWindow* parent, const wxString& pergameload) : wxDialog(parent, wxID_ANY, "Settings", wxDefaultPosition) { // Load default config loaded = YAML::Load(g_cfg_defaults); // Incrementally load config.yml - const fs::file config(fs::get_config_dir() + "/config.yml", fs::read + fs::write + fs::create); + const fs::file config(!pergameload.IsEmpty() ? pergameload.ToStdString() : fs::get_config_dir() + "/config.yml", fs::read + fs::write + fs::create); + loaded += YAML::Load(config.to_string()); std::vector> pads; diff --git a/rpcs3/Gui/SettingsDialog.h b/rpcs3/Gui/SettingsDialog.h index 44cd6c792b..1f2f84784a 100644 --- a/rpcs3/Gui/SettingsDialog.h +++ b/rpcs3/Gui/SettingsDialog.h @@ -3,7 +3,7 @@ class SettingsDialog : public wxDialog { public: - SettingsDialog(wxWindow* parent); + SettingsDialog(wxWindow* parent, const wxString& pergameload); private: wxCheckListBox* chbox_list_core_lle;