#pragma once #include #include #include #include "Engine/Graphics/UI.hpp" #include "Engine/Graphics/DebugUI.hpp" #include "Engine/Utils/Timers.hpp" typedef enum eGameStatus { GAME_INIT, GAME_RUNNING, GAME_QUIT } GAME_STATUS; class Game final { public: Game(bool dbg) noexcept(false); ~Game() {} Game(Game&&) = default; Game& operator= (Game&&) = default; Game(Game const&) = delete; Game& operator= (Game const&) = delete; GAME_STATUS Tick(SysTimer& time); private: void InitWindows(); void Update(); void Render(); bool mbDbgModeEnabled; std::unique_ptr mDbgUI = nullptr; std::shared_ptr mMainWindow = nullptr; std::unique_ptr mCockpitUI = nullptr; std::unique_ptr mWorldUI = nullptr; };