#pragma once #include class Engine; class World; class GameInstance { public: GameInstance(Engine* engine); ~GameInstance(); void Update(); void SaveOptions(); void LoadOptions(); void CreateEmptyWorld(); void CleanupWorld(); World* DuplicateWorld(); void LoadMap(const std::string& path, bool doNotCreateActors = false); void LoadWorld(World* world); void CreateActors(); World* GetWorld() const { return m_world; } struct { bool fullscreen; bool vsync; } options; private: Engine* m_engine; World* m_world = nullptr; bool m_mouselookEnabled = true; };