#ifndef MENU_SYSTEM_H_205861EC #define MENU_SYSTEM_H_205861EC #include "system.h" #include "interpolation.h" class Game; class MenuSystem : public System { public: static constexpr SystemKey Key = SystemKey::Menu; explicit MenuSystem(Game& game) : game_(game) {} void tick(double dt) override; // Commands void openPauseMenu(); void closePauseMenu(); // Info double getPauseAnimationProgress() const { return pauseAnimation_.getProgress(); } bool isMenuOpen() const { return openState_ == OpenState::Open; } private: enum class OpenState { Closed, Animating, Open }; Game& game_; Interpolation pauseAnimation_; OpenState openState_ = OpenState::Closed; }; #endif /* end of include guard: MENU_SYSTEM_H_205861EC */