#pragma once #include #include #include #include enum class OptionType { Bool, Text, Integer, Enum, Hex, }; struct OptionDefinition { std::string title; // unique identifier used for flag matching but also stored in config files // (should not be changed once published for compat) std::string name; // what's displayed in the UI/logs as the flag name std::string display_name = ""; // slash-delimited list of strings that also work as flag std::string aliases = ""; // what's displayed in the UI/logs as the tooltip std::string desc; OptionType type; bool hidden = false; std::string setting_name = ""; std::string game_name = ""; std::string category = "Development"; bool sensitive = false; std::vector> elements = {}; bool disabled = false; }; class Option { private: OptionDefinition definition; std::string search_string; public: std::string value; std::vector