Added wad files detection to the GameListCtrl, some changes to ISOProperties, needs a bit more work ?

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3348 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
sl1nk3.s
2009-06-07 02:54:07 +00:00
parent 7eea69f5c2
commit 8cb67f4729
14 changed files with 347 additions and 29 deletions

View File

@ -83,15 +83,19 @@ CISOProperties::CISOProperties(const std::string fileName, wxWindow* parent, wxW
}
else
{
pFileSystem = DiscIO::CreateFileSystem(OpenISO);
pFileSystem->GetFileList(GCFiles);
// TODO : Should we add a way to browse the wad file ?
if (!DiscIO::IsVolumeWadFile(OpenISO))
{
pFileSystem = DiscIO::CreateFileSystem(OpenISO);
pFileSystem->GetFileList(GCFiles);
}
}
OpenGameListItem = new GameListItem(fileName);
bRefreshList = false;
CreateGUIControls();
CreateGUIControls(DiscIO::IsVolumeWadFile(OpenISO));
GameIniFile = FULL_GAMECONFIG_DIR + (OpenISO->GetUniqueID()) + ".ini";
if (GameIni.Load(GameIniFile.c_str()))
@ -157,8 +161,12 @@ CISOProperties::CISOProperties(const std::string fileName, wxWindow* parent, wxW
}
else
{
fileIter beginning = GCFiles.begin(), end = GCFiles.end(), pos = GCFiles.begin();
CreateDirectoryTree(RootId, beginning, end, pos, (char *)"/");
// TODO : Should we add a way to browse the wad file ?
if (!DiscIO::IsVolumeWadFile(OpenISO))
{
fileIter beginning = GCFiles.begin(), end = GCFiles.end(), pos = GCFiles.begin();
CreateDirectoryTree(RootId, beginning, end, pos, (char *)"/");
}
}
m_Treectrl->Expand(RootId);
@ -177,7 +185,8 @@ CISOProperties::~CISOProperties()
if (IsVolumeWiiDisc(OpenISO))
WiiDisc.clear();
else
delete pFileSystem;
if (!IsVolumeWadFile(OpenISO))
delete pFileSystem;
delete OpenISO;
}
@ -232,9 +241,11 @@ void CISOProperties::CreateDirectoryTree(wxTreeItemId& parent,
} while(bRoot || strstr(name, directory));
}
void CISOProperties::CreateGUIControls()
void CISOProperties::CreateGUIControls(bool IsWad)
{
m_Close = new wxButton(this, ID_CLOSE, _("Close"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
EditConfig = new wxButton(this, ID_EDITCONFIG, _("Edit Config"), wxDefaultPosition, wxDefaultSize);
EditConfig->SetToolTip(_("This will let you Manually Edit the INI config file"));
// Notebook
m_Notebook = new wxNotebook(this, ID_NOTEBOOK, wxDefaultPosition, wxDefaultSize);
@ -251,6 +262,7 @@ void CISOProperties::CreateGUIControls()
wxBoxSizer* sButtons;
sButtons = new wxBoxSizer(wxHORIZONTAL);
sButtons->Add(EditConfig, 0, wxALL, 5);
sButtons->Add(0, 0, 1, wxEXPAND, 5);
sButtons->Add(m_Close, 0, wxALL, 5);
@ -269,7 +281,7 @@ void CISOProperties::CreateGUIControls()
sbWiiOverrides = new wxStaticBoxSizer(wxVERTICAL, m_GameConfig, _("Wii Console"));
EnableProgressiveScan = new wxCheckBox(m_GameConfig, ID_ENABLEPROGRESSIVESCAN, _("Enable Progressive Scan"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER, wxDefaultValidator);
EnableWideScreen = new wxCheckBox(m_GameConfig, ID_ENABLEWIDESCREEN, _("Enable WideScreen"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER, wxDefaultValidator);
if (!DiscIO::IsVolumeWiiDisc(OpenISO))
if (!DiscIO::IsVolumeWiiDisc(OpenISO) && !DiscIO::IsVolumeWadFile(OpenISO))
{
sbWiiOverrides->ShowItems(false);
EnableProgressiveScan->Hide();
@ -299,10 +311,9 @@ void CISOProperties::CreateGUIControls()
//HLE Audio
sbHLEaudioOverrides = new wxStaticBoxSizer(wxVERTICAL, m_GameConfig, _("HLE Audio"));
UseRE0Fix = new wxCheckBox(m_GameConfig, ID_RE0FIX, _("Use RE0 Fix"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER, wxDefaultValidator);
// Manual edit config file
sEmuState = new wxBoxSizer(wxHORIZONTAL);
EditConfig = new wxButton(m_GameConfig, ID_EDITCONFIG, _("Edit Config"), wxDefaultPosition, wxDefaultSize);
// Emulation State
sEmuState = new wxBoxSizer(wxHORIZONTAL);
EmuStateText = new wxStaticText(m_GameConfig, ID_EMUSTATE_TEXT, _("Emulation State: "), wxDefaultPosition, wxDefaultSize);
arrayStringFor_EmuState.Add(_("Not Set"));
arrayStringFor_EmuState.Add(_("Broken"));
@ -336,7 +347,6 @@ void CISOProperties::CreateGUIControls()
sbGameConfig->Add(sbWiiOverrides, 0, wxEXPAND);
sbGameConfig->Add(sbVideoOverrides, 0, wxEXPAND);
sbGameConfig->Add(sbHLEaudioOverrides, 0, wxEXPAND);
sbGameConfig->Add(EditConfig);
sConfigPage->Add(sbGameConfig, 0, wxEXPAND|wxALL, 5);
sEmuState->Add(EmuStateText, 0, wxALIGN_CENTER_VERTICAL);
sEmuState->Add(EmuState, 0, wxEXPAND);
@ -474,13 +484,17 @@ void CISOProperties::CreateGUIControls()
m_Filesystem->SetSizer(sTreePage);
sTreePage->Layout();
// It's a wad file, so we remove the FileSystem page
if (IsWad)
m_Notebook->RemovePage(4);
//////////////////////////////////////////////////////////////////////////
// Add notebook and buttons to the dialog
wxBoxSizer* sMain;
sMain = new wxBoxSizer(wxVERTICAL);
sMain->Add(m_Notebook, 1, wxEXPAND|wxALL, 5);
sMain->Add(sButtons, 0, wxEXPAND, 5);
sMain->SetMinSize(wxSize(400,550));
sMain->SetMinSize(wxSize(400,500));
SetSizerAndFit(sMain);
}
@ -790,6 +804,9 @@ void CISOProperties::OnEditConfig(wxCommandEvent& WXUNUSED (event))
bRefreshList = true; // Just in case
}
// Once we're done with the ini edit, give the focus back to Dolphin
SetFocus();
}
void CISOProperties::ListSelectionChanged(wxCommandEvent& event)