summaryrefslogtreecommitdiff
path: root/Source/Core/DolphinWX/Cheats/CreateCodeDialog.cpp
diff options
context:
space:
mode:
authorEmptyChaos <EmptyChaos@users.noreply.github.com>2016-04-19 21:19:31 +0000
committerEmptyChaos <EmptyChaos@users.noreply.github.com>2016-05-29 23:33:24 +1000
commit25b072ff2ba6839b300b05a45ce76e94d84ded32 (patch)
tree2c17f26fac961a5a5b0d69501c72bd09ca69325d /Source/Core/DolphinWX/Cheats/CreateCodeDialog.cpp
parent0fa9233c1acb91c89f1cecad1340621e375dc083 (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.cpp16
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();
}