// Copyright 2022 Dolphin Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later #pragma once #include #include #include #include #include "Common/CommonTypes.h" struct GraphicsModConfig; class GraphicsModGroupConfig { public: explicit GraphicsModGroupConfig(std::string game_id); ~GraphicsModGroupConfig(); GraphicsModGroupConfig(const GraphicsModGroupConfig&); GraphicsModGroupConfig(GraphicsModGroupConfig&&) noexcept; GraphicsModGroupConfig& operator=(const GraphicsModGroupConfig&); GraphicsModGroupConfig& operator=(GraphicsModGroupConfig&&) noexcept; void Load(); void Save() const; void SetChangeCount(u32 change_count); u32 GetChangeCount() const; const std::vector& GetMods() const; std::vector& GetMods(); GraphicsModConfig* GetMod(std::string_view absolute_path) const; const std::string& GetGameID() const; private: std::string GetPath() const; std::string m_game_id; std::vector m_graphics_mods; std::map> m_path_to_graphics_mod; u32 m_change_count = 0; };