#pragma once #include #include #include "core/systemevent.h" #include "core/vector.h" #include "core/time.h" class GUIState { public: enum Tag { SPLASH_SCREEN, MAIN_MENU, GAME_PICKER, GAME, EDITOR_PICKER, EDITOR, SETTINGS, ABOUT, AMOUNT }; virtual ~GUIState() = default; virtual void input(const kku::SystemEvent& event) = 0; virtual void update(const kku::microsec& dt) = 0; virtual void display() const = 0; virtual void enter() = 0; virtual void leave() = 0; };