#ifndef PORTMENU_H #define PORTMENU_H #include #include "UIWidgets.h" #include "Menu.h" #include "fast/backends/gfx_rendering_api.h" namespace GameUI { constexpr size_t MAX_FPS = 480; static const std::unordered_map menuExtentOptions = { { UIWidgets::MenuExtent::Condensed, "Condensed" }, { UIWidgets::MenuExtent::Stretched, "Stretched" }, }; static const std::unordered_map menuThemeOptions = { { UIWidgets::Colors::Red, "Red" }, { UIWidgets::Colors::DarkRed, "Dark Red" }, { UIWidgets::Colors::Orange, "Orange" }, { UIWidgets::Colors::Green, "Green" }, { UIWidgets::Colors::DarkGreen, "Dark Green" }, { UIWidgets::Colors::LightBlue, "Light Blue" }, { UIWidgets::Colors::Blue, "Blue" }, { UIWidgets::Colors::DarkBlue, "Dark Blue" }, { UIWidgets::Colors::Indigo, "Indigo" }, { UIWidgets::Colors::Violet, "Violet" }, { UIWidgets::Colors::Purple, "Purple" }, { UIWidgets::Colors::Brown, "Brown" }, { UIWidgets::Colors::Gray, "Gray" }, { UIWidgets::Colors::DarkGray, "Dark Gray" }, }; static const std::unordered_map introBehaviourOptions = { { 0, "Both" }, { 1, "Authentic" }, { 2, "Start Menu" }, { 3, "Main Menu" }, }; static const std::unordered_map textureFilteringMap = { { Fast::FilteringMode::FILTER_THREE_POINT, "Three-Point" }, { Fast::FilteringMode::FILTER_LINEAR, "Linear" }, { Fast::FilteringMode::FILTER_NONE, "None" }, }; static const std::unordered_map motionBlurOptions = { { MOTION_BLUR_DYNAMIC, "Dynamic (default)" }, { MOTION_BLUR_ALWAYS_OFF, "Always Off" }, { MOTION_BLUR_ALWAYS_ON, "Always On" }, }; static const std::unordered_map logLevels = { { DEBUG_LOG_TRACE, "Trace" }, { DEBUG_LOG_DEBUG, "Debug" }, { DEBUG_LOG_INFO, "Info" }, { DEBUG_LOG_WARN, "Warn" }, { DEBUG_LOG_ERROR, "Error" }, { DEBUG_LOG_CRITICAL, "Critical" }, { DEBUG_LOG_OFF, "Off" }, }; class PortMenu : public Ship::Menu { public: PortMenu(const std::string& consoleVariable, const std::string& name); ~PortMenu() {} void InitElement() override; void DrawElement() override; void UpdateElement() override; void Draw() override; void AddSidebarEntry(std::string sectionName, std::string sidbarName, uint32_t columnCount); WidgetInfo& AddWidget(WidgetPath& pathInfo, std::string widgetName, WidgetType widgetType); void AddSettings(); void AddEnhancements(); void AddRulesets(); void AddDevTools(); void AddSceneVisibility(); }; } // namespace BenGui #endif // PORTMENU_H