mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2024-11-15 13:57:57 -07:00
0a15aaaa12
At first there weren't many enums in Volume.h, but the number has been growing, and I'm planning to add one more for regions. To not make Volume.h too large, and to avoid needing to include Volume.h in code that doesn't use volume objects, I'm moving the enums to a new file. I'm also turning them into enum classes while I'm at it.
251 lines
6.2 KiB
C++
251 lines
6.2 KiB
C++
// Copyright 2008 Dolphin Emulator Project
|
|
// Licensed under GPLv2+
|
|
// Refer to the license.txt file included.
|
|
|
|
#pragma once
|
|
|
|
#include <cstddef>
|
|
#include <memory>
|
|
#include <set>
|
|
#include <string>
|
|
#include <utility>
|
|
#include <vector>
|
|
#include <wx/dialog.h>
|
|
#include <wx/treebase.h>
|
|
|
|
#include "Common/IniFile.h"
|
|
#include "Core/ActionReplay.h"
|
|
#include "DiscIO/Filesystem.h"
|
|
#include "DiscIO/Volume.h"
|
|
#include "DolphinWX/ARCodeAddEdit.h"
|
|
#include "DolphinWX/ISOFile.h"
|
|
#include "DolphinWX/PatchAddEdit.h"
|
|
|
|
class GameListItem;
|
|
class wxButton;
|
|
class wxCheckBox;
|
|
class wxCheckListBox;
|
|
class wxChoice;
|
|
class wxSlider;
|
|
class wxSpinCtrl;
|
|
class wxStaticBitmap;
|
|
class wxTextCtrl;
|
|
class wxTreeCtrl;
|
|
|
|
namespace DiscIO
|
|
{
|
|
enum class Language;
|
|
}
|
|
namespace Gecko
|
|
{
|
|
class CodeConfigPanel;
|
|
}
|
|
|
|
class WiiPartition final : public wxTreeItemData
|
|
{
|
|
public:
|
|
WiiPartition(std::unique_ptr<DiscIO::IVolume> partition,
|
|
std::unique_ptr<DiscIO::IFileSystem> file_system)
|
|
: Partition(std::move(partition)), FileSystem(std::move(file_system))
|
|
{
|
|
}
|
|
|
|
std::unique_ptr<DiscIO::IVolume> Partition;
|
|
std::unique_ptr<DiscIO::IFileSystem> FileSystem;
|
|
};
|
|
|
|
struct PHackData
|
|
{
|
|
bool PHackSZNear;
|
|
bool PHackSZFar;
|
|
std::string PHZNear;
|
|
std::string PHZFar;
|
|
};
|
|
|
|
class CISOProperties : public wxDialog
|
|
{
|
|
public:
|
|
CISOProperties(const GameListItem& game_list_item, wxWindow* parent, wxWindowID id = wxID_ANY,
|
|
const wxString& title = _("Properties"), const wxPoint& pos = wxDefaultPosition,
|
|
const wxSize& size = wxDefaultSize,
|
|
long style = wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER);
|
|
virtual ~CISOProperties();
|
|
|
|
private:
|
|
DECLARE_EVENT_TABLE();
|
|
|
|
std::unique_ptr<DiscIO::IVolume> m_open_iso;
|
|
std::unique_ptr<DiscIO::IFileSystem> m_filesystem;
|
|
|
|
std::vector<PatchEngine::Patch> onFrame;
|
|
std::vector<ActionReplay::ARCode> arCodes;
|
|
PHackData m_PHack_Data;
|
|
|
|
// Core
|
|
wxCheckBox *CPUThread, *SkipIdle, *MMU, *DCBZOFF, *FPRF;
|
|
wxCheckBox *SyncGPU, *FastDiscSpeed, *DSPHLE;
|
|
|
|
wxArrayString arrayStringFor_GPUDeterminism;
|
|
wxChoice* GPUDeterminism;
|
|
// Wii
|
|
wxCheckBox* EnableWideScreen;
|
|
|
|
// Stereoscopy
|
|
wxSlider* DepthPercentage;
|
|
wxSpinCtrl* Convergence;
|
|
wxCheckBox* MonoDepth;
|
|
|
|
wxArrayString arrayStringFor_EmuState;
|
|
wxChoice* EmuState;
|
|
wxTextCtrl* EmuIssues;
|
|
|
|
wxCheckListBox* Patches;
|
|
wxButton* EditPatch;
|
|
wxButton* RemovePatch;
|
|
|
|
wxCheckListBox* Cheats;
|
|
wxButton* EditCheat;
|
|
wxButton* RemoveCheat;
|
|
|
|
wxTextCtrl* m_InternalName;
|
|
wxTextCtrl* m_GameID;
|
|
wxTextCtrl* m_Country;
|
|
wxTextCtrl* m_MakerID;
|
|
wxTextCtrl* m_Revision;
|
|
wxTextCtrl* m_Date;
|
|
wxTextCtrl* m_FST;
|
|
wxTextCtrl* m_MD5Sum;
|
|
wxButton* m_MD5SumCompute;
|
|
wxArrayString arrayStringFor_Lang;
|
|
wxChoice* m_Lang;
|
|
wxTextCtrl* m_Name;
|
|
wxTextCtrl* m_Maker;
|
|
wxTextCtrl* m_Comment;
|
|
wxStaticBitmap* m_Banner;
|
|
|
|
wxTreeCtrl* m_Treectrl;
|
|
wxTreeItemId RootId;
|
|
|
|
Gecko::CodeConfigPanel* m_geckocode_panel;
|
|
|
|
enum
|
|
{
|
|
ID_TREECTRL = 1000,
|
|
|
|
ID_NOTEBOOK,
|
|
ID_GAMECONFIG,
|
|
ID_PATCH_PAGE,
|
|
ID_ARCODE_PAGE,
|
|
ID_SPEEDHACK_PAGE,
|
|
ID_INFORMATION,
|
|
ID_FILESYSTEM,
|
|
|
|
ID_USEDUALCORE,
|
|
ID_IDLESKIP,
|
|
ID_MMU,
|
|
ID_DCBZOFF,
|
|
ID_FPRF,
|
|
ID_SYNCGPU,
|
|
ID_DISCSPEED,
|
|
ID_AUDIO_DSP_HLE,
|
|
ID_USE_BBOX,
|
|
ID_ENABLEPROGRESSIVESCAN,
|
|
ID_ENABLEWIDESCREEN,
|
|
ID_EDITCONFIG,
|
|
ID_SHOWDEFAULTCONFIG,
|
|
ID_EMUSTATE,
|
|
ID_EMU_ISSUES,
|
|
ID_PATCHES_LIST,
|
|
ID_EDITPATCH,
|
|
ID_ADDPATCH,
|
|
ID_REMOVEPATCH,
|
|
ID_CHEATS_LIST,
|
|
ID_EDITCHEAT,
|
|
ID_ADDCHEAT,
|
|
ID_REMOVECHEAT,
|
|
ID_GPUDETERMINISM,
|
|
ID_DEPTHPERCENTAGE,
|
|
ID_CONVERGENCE,
|
|
ID_MONODEPTH,
|
|
|
|
ID_NAME,
|
|
ID_GAMEID,
|
|
ID_COUNTRY,
|
|
ID_MAKERID,
|
|
ID_REVISION,
|
|
ID_DATE,
|
|
ID_FST,
|
|
ID_MD5SUM,
|
|
ID_MD5SUMCOMPUTE,
|
|
ID_VERSION,
|
|
ID_LANG,
|
|
ID_SHORTNAME,
|
|
ID_LONGNAME,
|
|
ID_MAKER,
|
|
ID_COMMENT,
|
|
ID_BANNER,
|
|
IDM_EXTRACTDIR,
|
|
IDM_EXTRACTALL,
|
|
IDM_EXTRACTFILE,
|
|
IDM_EXTRACTAPPLOADER,
|
|
IDM_EXTRACTDOL,
|
|
IDM_CHECKINTEGRITY,
|
|
IDM_BNRSAVEAS
|
|
};
|
|
|
|
void LaunchExternalEditor(const std::string& filename, bool wait_until_closed);
|
|
|
|
void CreateGUIControls();
|
|
void OnClose(wxCloseEvent& event);
|
|
void OnCloseClick(wxCommandEvent& event);
|
|
void OnEditConfig(wxCommandEvent& event);
|
|
void OnComputeMD5Sum(wxCommandEvent& event);
|
|
void OnShowDefaultConfig(wxCommandEvent& event);
|
|
void ListSelectionChanged(wxCommandEvent& event);
|
|
void OnActionReplayCodeChecked(wxCommandEvent& event);
|
|
void PatchButtonClicked(wxCommandEvent& event);
|
|
void ActionReplayButtonClicked(wxCommandEvent& event);
|
|
void RightClickOnBanner(wxMouseEvent& event);
|
|
void OnBannerImageSave(wxCommandEvent& event);
|
|
void OnRightClickOnTree(wxTreeEvent& event);
|
|
void OnExtractFile(wxCommandEvent& event);
|
|
void OnExtractDir(wxCommandEvent& event);
|
|
void OnExtractDataFromHeader(wxCommandEvent& event);
|
|
void CheckPartitionIntegrity(wxCommandEvent& event);
|
|
void OnEmustateChanged(wxCommandEvent& event);
|
|
void OnChangeBannerLang(wxCommandEvent& event);
|
|
|
|
const GameListItem OpenGameListItem;
|
|
|
|
typedef std::vector<const DiscIO::SFileInfo*>::iterator fileIter;
|
|
|
|
size_t CreateDirectoryTree(wxTreeItemId& parent, const std::vector<DiscIO::SFileInfo>& fileInfos);
|
|
size_t CreateDirectoryTree(wxTreeItemId& parent, const std::vector<DiscIO::SFileInfo>& fileInfos,
|
|
const size_t _FirstIndex, const size_t _LastIndex);
|
|
void ExportDir(const std::string& _rFullPath, const std::string& _rExportFilename,
|
|
const WiiPartition* partition = nullptr);
|
|
|
|
IniFile GameIniDefault;
|
|
IniFile GameIniLocal;
|
|
std::string GameIniFileLocal;
|
|
std::string game_id;
|
|
|
|
std::set<std::string> DefaultPatches;
|
|
std::set<std::string> DefaultCheats;
|
|
|
|
void LoadGameConfig();
|
|
bool SaveGameConfig();
|
|
void OnLocalIniModified(wxCommandEvent& ev);
|
|
void GenerateLocalIniModified();
|
|
void PatchList_Load();
|
|
void PatchList_Save();
|
|
void ActionReplayList_Load();
|
|
void ActionReplayList_Save();
|
|
void ChangeBannerDetails(DiscIO::Language language);
|
|
|
|
long GetElementStyle(const char* section, const char* key);
|
|
void SetCheckboxValueFromGameini(const char* section, const char* key, wxCheckBox* checkbox);
|
|
void SaveGameIniValueFrom3StateCheckbox(const char* section, const char* key,
|
|
wxCheckBox* checkbox);
|
|
};
|