// Copyright 2021 Dolphin Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later #pragma once #include #include #include #include #include #include #include "Common/CommonTypes.h" namespace DiscIO { struct GameModDescriptorRiivolution; } namespace DiscIO::Riivolution { class FileDataLoader; // Data to determine the game patches are valid for. struct GameFilter { std::optional m_game; std::optional m_developer; std::optional m_disc; std::optional m_version; std::optional> m_regions; }; // Which patches will get activated by selecting a Choice in the Riivolution GUI. struct PatchReference { std::string m_id; std::map m_params; }; // A single choice within an Option in the Riivolution GUI. struct Choice { std::string m_name; std::vector m_patch_references; }; // A single option presented to the user in the Riivolution GUI. struct Option { std::string m_name; std::string m_id; std::vector m_choices; // The currently selected patch choice in the m_choices vector. // Note that this index is 1-based; 0 means no choice is selected and this Option is disabled. u32 m_selected_choice = 0; }; // A single page of options presented to the user in the Riivolution GUI. struct Section { std::string m_name; std::vector