1 #ifndef GAME_STATES_SETTINGSMENU_HPP
2 #define GAME_STATES_SETTINGSMENU_HPP
4 #include <BLIB/Interfaces/Menu.hpp>
14 ,
public bl::input::Listener {
34 virtual const char*
name()
const override;
41 virtual void activate(bl::engine::Engine& engine)
override;
48 virtual void deactivate(bl::engine::Engine& engine)
override;
56 virtual void update(bl::engine::Engine& engine,
float dt,
float)
override;
59 enum struct MenuState {
71 ControlsBindingControl
75 bl::rc::res::TextureRef bgndTexture;
76 bl::gfx::Sprite background;
80 bl::menu::Menu topMenu;
82 bl::menu::Menu videoMenu;
83 bl::menu::TextItem::Ptr windowModeTextItem;
84 bl::menu::SubmenuItem::Ptr windowModeDropdownItem;
85 bl::menu::TextItem::Ptr fullscreenItem;
86 bl::menu::TextItem::Ptr windowedItem;
87 bl::menu::ToggleTextItem::Ptr vsyncItem;
89 bl::menu::Menu audioMenu;
90 bl::menu::ToggleTextItem::Ptr muteItem;
91 bl::menu::TextItem::Ptr volumeItem;
94 bl::menu::Menu controlsTopMenu;
95 bl::input::Configurator ctrlConfigurator;
96 unsigned int bindingCtrl;
98 bl::menu::TextItem* ctrlItem;
100 bl::menu::Menu controlsKbmMenu;
101 bl::menu::Menu controlsPadMenu;
105 void enterState(MenuState state);
106 void setHint(
const std::string& message);
108 void onWindowModeOpen();
109 bool isFullscreen()
const;
110 std::string windowModeString()
const;
111 void onWindowModeChange(
bool fullscreen);
112 void onVsyncUpdate();
114 void startBindControl(
bool kbm,
unsigned int ctrl);
115 std::string ctrlString(
unsigned int ctrl,
bool kbm)
const;
120 virtual bool observe(
const bl::input::Actor&,
unsigned int activatedControl,
121 bl::input::DispatchType,
bool eventTriggered)
override;
bl::menu::TriggerDriver< Control::MoveUp, Control::MoveRight, Control::MoveDown, Control::MoveLeft, Control::Interact > MenuDriver
Helper typedef for Peoplemon specific menu driving.
Parent namespace for all functionality unique to the game.
Helper class to render a number selector.
Owns all primary systems and a reference to the engine.
static bl::engine::State::Ptr create(core::system::Systems &systems)
Creates the settings menu state.
virtual ~SettingsMenu()=default
Destroy the Settings Menu state.
virtual const char * name() const override
Returns "SettingsMenu".
virtual void activate(bl::engine::Engine &engine) override
Activates the state.
virtual void update(bl::engine::Engine &engine, float dt, float) override
Updates the state and menus and whatnot.
virtual void deactivate(bl::engine::Engine &engine) override
Deactivates the state.
Parent to all game states. Provides some commonly required data like core game systems.
core::system::Systems & systems