Merge remote-tracking branch 'john-peterson/cheat2'
This commit is contained in:
commit
7d74e30423
|
@ -14,6 +14,7 @@
|
||||||
#include "WxUtils.h"
|
#include "WxUtils.h"
|
||||||
|
|
||||||
#define MAX_CHEAT_SEARCH_RESULTS_DISPLAY 256
|
#define MAX_CHEAT_SEARCH_RESULTS_DISPLAY 256
|
||||||
|
const std::string title = _("Cheats Manager");
|
||||||
|
|
||||||
extern std::vector<ActionReplay::ARCode> arCodes;
|
extern std::vector<ActionReplay::ARCode> arCodes;
|
||||||
extern CFrame* main_frame;
|
extern CFrame* main_frame;
|
||||||
|
@ -22,26 +23,15 @@ extern CFrame* main_frame;
|
||||||
static wxCheatsWindow *g_cheat_window;
|
static wxCheatsWindow *g_cheat_window;
|
||||||
|
|
||||||
wxCheatsWindow::wxCheatsWindow(wxWindow* const parent)
|
wxCheatsWindow::wxCheatsWindow(wxWindow* const parent)
|
||||||
: wxDialog(parent, wxID_ANY, _("Cheats Manager"), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER|wxMAXIMIZE_BOX|wxMINIMIZE_BOX|wxDIALOG_NO_PARENT)
|
: wxDialog(parent, wxID_ANY, title, wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER|wxMAXIMIZE_BOX|wxMINIMIZE_BOX|wxDIALOG_NO_PARENT)
|
||||||
{
|
{
|
||||||
::g_cheat_window = this;
|
::g_cheat_window = this;
|
||||||
|
|
||||||
// Create the GUI controls
|
// Create the GUI controls
|
||||||
Init_ChildControls();
|
Init_ChildControls();
|
||||||
|
|
||||||
// Load Data
|
// load codes
|
||||||
Load_ARCodes();
|
UpdateGUI();
|
||||||
|
|
||||||
// Load Gecko Codes :/
|
|
||||||
{
|
|
||||||
const DiscIO::IVolume* const vol = VolumeHandler::GetVolume();
|
|
||||||
if (vol)
|
|
||||||
{
|
|
||||||
m_gameini_path = File::GetUserPath(D_GAMECONFIG_IDX) + vol->GetUniqueID() + ".ini";
|
|
||||||
m_gameini.Load(m_gameini_path);
|
|
||||||
m_geckocode_panel->LoadCodes(m_gameini, Core::g_CoreStartupParameter.GetUniqueID());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
SetSize(wxSize(-1, 600));
|
SetSize(wxSize(-1, 600));
|
||||||
Center();
|
Center();
|
||||||
|
@ -119,7 +109,7 @@ void wxCheatsWindow::Init_ChildControls()
|
||||||
m_Notebook_Main->AddPage(m_Tab_Log, _("Logging"));
|
m_Notebook_Main->AddPage(m_Tab_Log, _("Logging"));
|
||||||
|
|
||||||
// Button Strip
|
// Button Strip
|
||||||
wxButton* const button_apply = new wxButton(panel, wxID_APPLY, _("Apply"), wxDefaultPosition, wxDefaultSize);
|
button_apply = new wxButton(panel, wxID_APPLY, _("Apply"), wxDefaultPosition, wxDefaultSize);
|
||||||
button_apply->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &wxCheatsWindow::OnEvent_ApplyChanges_Press, this);
|
button_apply->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &wxCheatsWindow::OnEvent_ApplyChanges_Press, this);
|
||||||
wxButton* const button_cancel = new wxButton(panel, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize);
|
wxButton* const button_cancel = new wxButton(panel, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize);
|
||||||
button_cancel->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &wxCheatsWindow::OnEvent_ButtonClose_Press, this);
|
button_cancel->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &wxCheatsWindow::OnEvent_ButtonClose_Press, this);
|
||||||
|
@ -249,12 +239,34 @@ void wxCheatsWindow::OnEvent_Close(wxCloseEvent& ev)
|
||||||
Destroy();
|
Destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// load codes for a new ISO ID
|
||||||
|
void wxCheatsWindow::UpdateGUI()
|
||||||
|
{
|
||||||
|
// load code
|
||||||
|
m_gameini_path = File::GetUserPath(D_GAMECONFIG_IDX) + Core::g_CoreStartupParameter.GetUniqueID() + ".ini";
|
||||||
|
m_gameini.Load(m_gameini_path);
|
||||||
|
Load_ARCodes();
|
||||||
|
Load_GeckoCodes();
|
||||||
|
|
||||||
|
// enable controls
|
||||||
|
button_apply->Enable(Core::IsRunning());
|
||||||
|
|
||||||
|
// write the ISO name in the title
|
||||||
|
if (Core::IsRunning())
|
||||||
|
SetTitle(title + ": " + Core::g_CoreStartupParameter.GetUniqueID() + " - " + Core::g_CoreStartupParameter.m_strName);
|
||||||
|
else
|
||||||
|
SetTitle(title);
|
||||||
|
}
|
||||||
|
|
||||||
void wxCheatsWindow::Load_ARCodes()
|
void wxCheatsWindow::Load_ARCodes()
|
||||||
{
|
{
|
||||||
using namespace ActionReplay;
|
using namespace ActionReplay;
|
||||||
|
|
||||||
m_CheckListBox_CheatsList->Clear();
|
m_CheckListBox_CheatsList->Clear();
|
||||||
|
|
||||||
|
if (!Core::IsRunning())
|
||||||
|
return;
|
||||||
|
|
||||||
indexList.clear();
|
indexList.clear();
|
||||||
size_t size = GetCodeListSize();
|
size_t size = GetCodeListSize();
|
||||||
for (size_t i = 0; i < size; i++)
|
for (size_t i = 0; i < size; i++)
|
||||||
|
@ -269,6 +281,11 @@ void wxCheatsWindow::Load_ARCodes()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void wxCheatsWindow::Load_GeckoCodes()
|
||||||
|
{
|
||||||
|
m_geckocode_panel->LoadCodes(m_gameini, Core::g_CoreStartupParameter.GetUniqueID(), true);
|
||||||
|
}
|
||||||
|
|
||||||
void wxCheatsWindow::OnEvent_CheatsList_ItemSelected(wxCommandEvent& WXUNUSED (event))
|
void wxCheatsWindow::OnEvent_CheatsList_ItemSelected(wxCommandEvent& WXUNUSED (event))
|
||||||
{
|
{
|
||||||
using namespace ActionReplay;
|
using namespace ActionReplay;
|
||||||
|
|
|
@ -96,6 +96,7 @@ class wxCheatsWindow : public wxDialog
|
||||||
public:
|
public:
|
||||||
wxCheatsWindow(wxWindow* const parent);
|
wxCheatsWindow(wxWindow* const parent);
|
||||||
~wxCheatsWindow();
|
~wxCheatsWindow();
|
||||||
|
void UpdateGUI();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
|
@ -105,6 +106,7 @@ class wxCheatsWindow : public wxDialog
|
||||||
};
|
};
|
||||||
|
|
||||||
// --- GUI Controls ---
|
// --- GUI Controls ---
|
||||||
|
wxButton* button_apply;
|
||||||
wxNotebook *m_Notebook_Main;
|
wxNotebook *m_Notebook_Main;
|
||||||
|
|
||||||
wxPanel *m_Tab_Cheats;
|
wxPanel *m_Tab_Cheats;
|
||||||
|
@ -134,6 +136,7 @@ class wxCheatsWindow : public wxDialog
|
||||||
void Init_ChildControls();
|
void Init_ChildControls();
|
||||||
|
|
||||||
void Load_ARCodes();
|
void Load_ARCodes();
|
||||||
|
void Load_GeckoCodes();
|
||||||
|
|
||||||
// --- Wx Events Handlers ---
|
// --- Wx Events Handlers ---
|
||||||
|
|
||||||
|
|
|
@ -1133,6 +1133,7 @@ void CFrame::OnConfigMain(wxCommandEvent& WXUNUSED (event))
|
||||||
CConfigMain ConfigMain(this);
|
CConfigMain ConfigMain(this);
|
||||||
if (ConfigMain.ShowModal() == wxID_OK)
|
if (ConfigMain.ShowModal() == wxID_OK)
|
||||||
m_GameListCtrl->Update();
|
m_GameListCtrl->Update();
|
||||||
|
UpdateGUI();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CFrame::OnConfigGFX(wxCommandEvent& WXUNUSED (event))
|
void CFrame::OnConfigGFX(wxCommandEvent& WXUNUSED (event))
|
||||||
|
@ -1568,6 +1569,9 @@ void CFrame::UpdateGUI()
|
||||||
if (DiscIO::CNANDContentManager::Access().GetNANDLoader(TITLEID_SYSMENU).IsValid())
|
if (DiscIO::CNANDContentManager::Access().GetNANDLoader(TITLEID_SYSMENU).IsValid())
|
||||||
GetMenuBar()->FindItem(IDM_LOAD_WII_MENU)->Enable(!Initialized);
|
GetMenuBar()->FindItem(IDM_LOAD_WII_MENU)->Enable(!Initialized);
|
||||||
|
|
||||||
|
// Tools
|
||||||
|
GetMenuBar()->FindItem(IDM_CHEATS)->Enable(SConfig::GetInstance().m_LocalCoreStartupParameter.bEnableCheats);
|
||||||
|
|
||||||
GetMenuBar()->FindItem(IDM_CONNECT_WIIMOTE1)->Enable(RunningWii);
|
GetMenuBar()->FindItem(IDM_CONNECT_WIIMOTE1)->Enable(RunningWii);
|
||||||
GetMenuBar()->FindItem(IDM_CONNECT_WIIMOTE2)->Enable(RunningWii);
|
GetMenuBar()->FindItem(IDM_CONNECT_WIIMOTE2)->Enable(RunningWii);
|
||||||
GetMenuBar()->FindItem(IDM_CONNECT_WIIMOTE3)->Enable(RunningWii);
|
GetMenuBar()->FindItem(IDM_CONNECT_WIIMOTE3)->Enable(RunningWii);
|
||||||
|
@ -1675,6 +1679,15 @@ void CFrame::UpdateGUI()
|
||||||
|
|
||||||
// Commit changes to manager
|
// Commit changes to manager
|
||||||
m_Mgr->Update();
|
m_Mgr->Update();
|
||||||
|
|
||||||
|
// Update non-modal windows
|
||||||
|
if (g_CheatsWindow)
|
||||||
|
{
|
||||||
|
if (SConfig::GetInstance().m_LocalCoreStartupParameter.bEnableCheats)
|
||||||
|
g_CheatsWindow->UpdateGUI();
|
||||||
|
else
|
||||||
|
g_CheatsWindow->Close();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CFrame::UpdateGameList()
|
void CFrame::UpdateGameList()
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
// Refer to the license.txt file included.
|
// Refer to the license.txt file included.
|
||||||
|
|
||||||
#include "GeckoCodeDiag.h"
|
#include "GeckoCodeDiag.h"
|
||||||
|
#include "Core.h"
|
||||||
#include "WxUtils.h"
|
#include "WxUtils.h"
|
||||||
|
|
||||||
#include <SFML/Network/Http.hpp>
|
#include <SFML/Network/Http.hpp>
|
||||||
|
@ -59,10 +60,10 @@ CodeConfigPanel::CodeConfigPanel(wxWindow* const parent)
|
||||||
SetSizerAndFit(sizer_main);
|
SetSizerAndFit(sizer_main);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CodeConfigPanel::UpdateCodeList()
|
void CodeConfigPanel::UpdateCodeList(bool checkRunning)
|
||||||
{
|
{
|
||||||
// disable the button if it doesn't have an effect
|
// disable the button if it doesn't have an effect
|
||||||
btn_download->Enable(!m_gameid.empty());
|
btn_download->Enable((!checkRunning || Core::IsRunning()) && !m_gameid.empty());
|
||||||
|
|
||||||
m_listbox_gcodes->Clear();
|
m_listbox_gcodes->Clear();
|
||||||
// add the codes to the listbox
|
// add the codes to the listbox
|
||||||
|
@ -80,14 +81,15 @@ void CodeConfigPanel::UpdateCodeList()
|
||||||
UpdateInfoBox(evt);
|
UpdateInfoBox(evt);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CodeConfigPanel::LoadCodes(const IniFile& inifile, const std::string& gameid)
|
void CodeConfigPanel::LoadCodes(const IniFile& inifile, const std::string& gameid, bool checkRunning)
|
||||||
{
|
{
|
||||||
m_gameid = gameid;
|
m_gameid = gameid;
|
||||||
|
|
||||||
m_gcodes.clear();
|
m_gcodes.clear();
|
||||||
Gecko::LoadCodes(inifile, m_gcodes);
|
if (!checkRunning || Core::IsRunning())
|
||||||
|
Gecko::LoadCodes(inifile, m_gcodes);
|
||||||
|
|
||||||
UpdateCodeList();
|
UpdateCodeList(checkRunning);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CodeConfigPanel::ToggleCode(wxCommandEvent& evt)
|
void CodeConfigPanel::ToggleCode(wxCommandEvent& evt)
|
||||||
|
|
|
@ -20,7 +20,7 @@ public:
|
||||||
CodeConfigPanel(wxWindow* const parent);
|
CodeConfigPanel(wxWindow* const parent);
|
||||||
|
|
||||||
|
|
||||||
void LoadCodes(const IniFile& inifile, const std::string& gameid = "");
|
void LoadCodes(const IniFile& inifile, const std::string& gameid = "", bool checkRunning = false);
|
||||||
const std::vector<GeckoCode>& GetCodes() const { return m_gcodes; }
|
const std::vector<GeckoCode>& GetCodes() const { return m_gcodes; }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
@ -29,7 +29,7 @@ protected:
|
||||||
void DownloadCodes(wxCommandEvent&);
|
void DownloadCodes(wxCommandEvent&);
|
||||||
//void ApplyChanges(wxCommandEvent&);
|
//void ApplyChanges(wxCommandEvent&);
|
||||||
|
|
||||||
void UpdateCodeList();
|
void UpdateCodeList(bool checkRunning = false);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::vector<GeckoCode> m_gcodes;
|
std::vector<GeckoCode> m_gcodes;
|
||||||
|
|
Loading…
Reference in New Issue