#pragma once class SceneManager; /** * Base state interface for scene manager states. */ class Scene { public: explicit Scene(SceneManager &owner) : manager(owner) {} virtual ~Scene() = default; virtual void Enter() {} virtual void Exit() {} virtual void Update(float dt) = 0; virtual void Draw() = 0; protected: SceneManager &manager; };