#ifndef PKE_GAME_HPP #define PKE_GAME_HPP #include #include #include #include "asset-manager.hpp" #include "ecs.hpp" #include "entities.hpp" #include "event.hpp" #include "helpers.hpp" #include "imgui.h" #include "memory.hpp" #include "window.hpp" using GameTimeDuration = std::chrono::duration; using GameTimePoint = std::chrono::steady_clock::time_point; #define NANO_DENOM std::chrono::nanoseconds::period::den #define NANO_DENOM_DOUBLE double(std::chrono::nanoseconds::period::den) struct GameSettings { bool isGameRunning = true; bool isGamePaused = false; bool isFramerateUnlocked = true; bool isShowingEditor = true; int64_t targetFPS = 144; int64_t minFPS = 20; double deltaPerFrame = 1 / double(targetFPS); double minimumDeltaPerFrame = 1 / double(minFPS); struct { bool isShowingConsole = true; bool isShowingEntityList = true; bool isShowingSceneEditor = true; } editorSettings; }; extern GameSettings pkeSettings; void Game_Init(); void Game_Tick(double delta); #endif /* PKE_GAME_HPP */