#pragma once #include #include class Level; class GameLoop { private: std::vector lvls; bool running; public: GameLoop(); GameLoop(GameLoop&& gl) noexcept; GameLoop(const GameLoop& gl); GameLoop& operator=(GameLoop&& gl) noexcept; GameLoop& operator=(const GameLoop& gl); bool HasLevel(size_t hashId) const; bool HasLevel(const std::string& id) const; bool AddLevel(Level* newLvl); Level* GetLevel(size_t hashId) const; Level* GetLevel(const std::string& id) const; void Update(); void Render(); void Tick(); void Start(); void Stop(); };