#ifndef _H_SCENE_H #define _H_SCENE_H #include #include #include class Entity; class Camera; class Map; class ResourceManager; class EventManager; class GameActor; class Line; class PhysicsEngine; struct SceneData; enum SceneType { SCENE_STORY, SCENE_SHOOTER }; class Scene { public: Scene(SceneType type, std::shared_ptr resources); void update(float deltaTime); void render(); std::shared_ptr getPlayer() const; void unloadScene(); protected: void loadDebugShooterScene(); void loadDebugStoryScene() { /*not implemented yet*/ } private: SceneType type; std::shared_ptr map; //std::shared_ptr tileSet; std::shared_ptr player; std::vector> entities; std::shared_ptr camera; std::shared_ptr physicsEngine; std::shared_ptr debugLine; std::shared_ptr resourceManager; std::shared_ptr eventManager; std::shared_ptr sceneData; }; #endif //_H_SCENE_H