diff options
| author | EmptyChaos <EmptyChaos@users.noreply.github.com> | 2016-04-19 21:19:31 +0000 |
|---|---|---|
| committer | EmptyChaos <EmptyChaos@users.noreply.github.com> | 2016-05-29 23:33:24 +1000 |
| commit | 25b072ff2ba6839b300b05a45ce76e94d84ded32 (patch) | |
| tree | 2c17f26fac961a5a5b0d69501c72bd09ca69325d /Source/Core/DolphinWX/Cheats/CreateCodeDialog.cpp | |
| parent | 0fa9233c1acb91c89f1cecad1340621e375dc083 (diff) | |
ActionReplay: Fix ISOProperties corrupting active code set
ISOProperties loads codes using ActionReplay::LoadCodes which actually applies
the codes to the global state. If a game is running then that games receives
all the codes (and ACTIVE status) from the second game being shown in
ISOProperties which is not desirable.
Diffstat (limited to 'Source/Core/DolphinWX/Cheats/CreateCodeDialog.cpp')
| -rw-r--r-- | Source/Core/DolphinWX/Cheats/CreateCodeDialog.cpp | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/Source/Core/DolphinWX/Cheats/CreateCodeDialog.cpp b/Source/Core/DolphinWX/Cheats/CreateCodeDialog.cpp index 364dfbad41..d53136987a 100644 --- a/Source/Core/DolphinWX/Cheats/CreateCodeDialog.cpp +++ b/Source/Core/DolphinWX/Cheats/CreateCodeDialog.cpp @@ -14,9 +14,6 @@ #include "DolphinWX/WxUtils.h" #include "DolphinWX/Cheats/CreateCodeDialog.h" -// Fired when an ActionReplay code is created. -wxDEFINE_EVENT(UPDATE_CHEAT_LIST_EVENT, wxCommandEvent); - CreateCodeDialog::CreateCodeDialog(wxWindow* const parent, const u32 address) : wxDialog(parent, wxID_ANY, _("Create AR Code")) , m_code_address(address) @@ -80,24 +77,21 @@ void CreateCodeDialog::PressOK(wxCommandEvent& ev) // create the new code ActionReplay::ARCode new_cheat; new_cheat.active = false; + new_cheat.user_defined = true; new_cheat.name = WxStrToStr(code_name); - const ActionReplay::AREntry new_entry(m_code_address, code_value); - new_cheat.ops.push_back(new_entry); + new_cheat.ops.emplace_back(ActionReplay::AREntry(m_code_address, code_value)); + ActionReplay::AddCode(new_cheat); // pretty hacky - add the code to the gameini + // FIXME: The save logic should be ActionReplay since it mirrors the parser { - CISOProperties isoprops(GameListItem(SConfig::GetInstance().m_LastFilename, std::unordered_map<std::string, std::string>()), this); + CISOProperties isoprops(GameListItem(SConfig::GetInstance().m_LastFilename, {}), this); // add the code to the isoproperties arcode list isoprops.AddARCode(new_cheat); // save the gameini isoprops.SaveGameConfig(); - isoprops.ActionReplayList_Load(); // loads the new arcodes - //ActionReplay::UpdateActiveList(); } - // Propagate back to the parent frame to update the cheat list. - GetEventHandler()->AddPendingEvent(wxCommandEvent(UPDATE_CHEAT_LIST_EVENT)); - Close(); } |
