diff options
| author | Shawn Hoffman <godisgovernment@gmail.com> | 2008-11-22 00:03:37 +0000 |
|---|---|---|
| committer | Shawn Hoffman <godisgovernment@gmail.com> | 2008-11-22 00:03:37 +0000 |
| commit | 016d9c1ba10367edef8ee1fdf045c45273727bb9 (patch) | |
| tree | 7a8ae4111a16fa82799e73e317118143d00e0926 /Source/Core | |
| parent | e17e084a159328fc94443d91d184c6f82158a698 (diff) | |
Fixed ISOProperties handling of manually editing the GameConfig file, and made clear that the patch and cheat gui does, in fact, do nothing at the moment.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@1239 8ced0084-cf51-0410-be5f-012b33b47a6e
Diffstat (limited to 'Source/Core')
| -rw-r--r-- | Source/Core/DolphinWX/Src/ISOProperties.cpp | 34 | ||||
| -rw-r--r-- | Source/Core/DolphinWX/Src/ISOProperties.h | 1 |
2 files changed, 29 insertions, 6 deletions
diff --git a/Source/Core/DolphinWX/Src/ISOProperties.cpp b/Source/Core/DolphinWX/Src/ISOProperties.cpp index cc54649b83..818088a58f 100644 --- a/Source/Core/DolphinWX/Src/ISOProperties.cpp +++ b/Source/Core/DolphinWX/Src/ISOProperties.cpp @@ -17,7 +17,6 @@ #include "Globals.h"
-#include "FileUtil.h"
#include "ISOFile.h"
#include "VolumeCreator.h"
#include "Filesystem.h"
@@ -59,7 +58,6 @@ CISOProperties::CISOProperties(const std::string fileName, wxWindow* parent, wxW fprintf(f, "# %s - %s\n", OpenISO->GetUniqueID().c_str(), OpenISO->GetName().c_str());
fprintf(f, "[Core]\n#Values set here will override the main dolphin settings.\n");
fprintf(f, "[EmuState]\n#The Emulation State. 1 is worst, 5 is best, 0 is not set.\n");
- fprintf(f, "EmulationStateId = 0\n");
fprintf(f, "[OnLoad]\n#Add memory patches to be loaded once on boot here.\n");
fprintf(f, "[OnFrame]\n#Add memory patches to be applied every frame here.\n");
fprintf(f, "[ActionReplay]\n#Add action replay cheats here.\n");
@@ -203,7 +201,7 @@ void CISOProperties::CreateGUIControls() sbCoreOverrides = new wxStaticBoxSizer(wxVERTICAL, m_GameConfig, _("Game-Specific Settings"));
sCoreOverrides = new wxBoxSizer(wxVERTICAL);
EditConfig = new wxButton(m_GameConfig, ID_EDITCONFIG, _("Edit Config"), wxDefaultPosition, wxDefaultSize);
- OverrideText = new wxStaticText(m_GameConfig, ID_OVERRIDE_TEXT, _("These settings override core Dolphin settings. The 3rd state means the game uses Dolphin's setting."), wxDefaultPosition, wxDefaultSize);
+ OverrideText = new wxStaticText(m_GameConfig, ID_OVERRIDE_TEXT, _("These settings override core Dolphin settings.\nThe 3rd state means the game uses Dolphin's setting."), wxDefaultPosition, wxDefaultSize);
UseDualCore = new wxCheckBox(m_GameConfig, ID_USEDUALCORE, _("Enable Dual Core"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER, wxDefaultValidator);
SkipIdle = new wxCheckBox(m_GameConfig, ID_IDLESKIP, _("Enable Idle Skipping"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER, wxDefaultValidator);
OptimizeQuantizers = new wxCheckBox(m_GameConfig, ID_OPTIMIZEQUANTIZERS, _("Optimize Quantizers"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER, wxDefaultValidator);
@@ -242,6 +240,15 @@ void CISOProperties::CreateGUIControls() EditCheat->Enable(false);
RemoveCheat->Enable(false);
+ // Remove when cheat + patch editor works
+ Patches->Append(_("Not yet functional"));
+ Patches->Enable(false);
+ AddPatch->Enable(false);
+ Cheats->Append(_("Not yet functional"));
+ Cheats->Enable(false);
+ AddCheat->Enable(false);
+ // --------------------------------------
+
wxBoxSizer* sConfigPage;
sConfigPage = new wxBoxSizer(wxVERTICAL);
sCoreOverrides->Add(OverrideText, 0, wxEXPAND|wxALL, 5);
@@ -375,6 +382,7 @@ void CISOProperties::OnClose(wxCloseEvent& WXUNUSED (event)) {
if (!SaveGameConfig())
wxMessageBox(wxString::Format(_("Could not save %s"), GameIniFile.c_str()), _("Error"), wxOK|wxICON_ERROR, this);
+
Destroy();
}
@@ -491,7 +499,12 @@ void CISOProperties::LoadGameConfig() else
EnableWideScreen->Set3StateValue(wxCHK_UNDETERMINED);
- GameIni.Get("EmuState", "EmulationStateId", &iTemp, 0);
+ GameIni.Get("EmuState", "EmulationStateId", &iTemp, -1);
+ if (iTemp == -1)
+ {
+ iTemp = 0;
+ bRefreshList = true;
+ }
EmuState->SetSelection(iTemp);
// TODO handle patches+cheats
@@ -528,6 +541,7 @@ bool CISOProperties::SaveGameConfig() GameIni.Set("Core", "EnableWideScreen", EnableWideScreen->Get3StateValue());
GameIni.Set("EmuState", "EmulationStateId", EmuState->GetSelection());
+
return GameIni.Save(GameIniFile.c_str());
// TODO save patches+cheats
@@ -535,8 +549,16 @@ bool CISOProperties::SaveGameConfig() void CISOProperties::OnEditConfig(wxCommandEvent& WXUNUSED (event))
{
- if (File::Exists(GameIniFile.c_str()))
+ if (wxFileExists(GameIniFile.c_str()))
{
- File::Launch(GameIniFile.c_str());
+ SaveGameConfig();
+
+ wxFileType* filetype = wxTheMimeTypesManager->GetFileTypeFromExtension(_("ini"));
+ wxExecute(filetype->GetOpenCommand(_(GameIniFile.c_str())), wxEXEC_SYNC);
+
+ GameIni.Load(GameIniFile.c_str());
+ LoadGameConfig();
+
+ bRefreshList = true; // Just in case
}
}
diff --git a/Source/Core/DolphinWX/Src/ISOProperties.h b/Source/Core/DolphinWX/Src/ISOProperties.h index 67702c5d0e..4c346b8480 100644 --- a/Source/Core/DolphinWX/Src/ISOProperties.h +++ b/Source/Core/DolphinWX/Src/ISOProperties.h @@ -26,6 +26,7 @@ #include <wx/treectrl.h>
#include <wx/gbsizer.h>
#include <wx/notebook.h>
+#include <wx/mimetype.h>
#include <string>
#include "Filesystem.h"
|
