diff --git a/include/game-engine.h b/include/game-engine.h index e66e60194b902cb42eee173381e2cae1d4f7212e..d8f4e779d09cbd975965e3eeba6978e2e674dce0 100644 --- a/include/game-engine.h +++ b/include/game-engine.h @@ -1,8 +1,13 @@ #ifndef __GAME_H__ #define __GAME_H__ +#include <map> +#include <string> +#include <vector> + #include "logger.h" #include "entity-manager.h" +#include "scene.h" class GameEngine { @@ -10,15 +15,28 @@ class GameEngine GameEngine(); ~GameEngine(); void init(); + void run(); void update(); + void close(); + Scene currentScene(); + void changeScene( Scene scene ); + // std::vector< Asset& > getAssets(); + // Window& getWindow(); + bool isRunning; private: EntityManager _entityManager; Logger& _logger; + std::string _currScene; + void changeScene( Scene scene ); + // Window* _window; + // std::vector<Asset> _assets; + std::map< std::string, Scene > _scenes; - // Systems + /* Systems */ + // sUserInput }; #endif // __GAME_H__ diff --git a/include/scene.h b/include/scene.h new file mode 100644 index 0000000000000000000000000000000000000000..149f98d55d7c0700570d500b4a18273afef7155c --- /dev/null +++ b/include/scene.h @@ -0,0 +1,14 @@ +#ifndef __SCENE_H__ +#define __SCENE_H__ + +#include "logger.h" + +class Scene{ + public: + Scene(); + ~Scene(); + private: + Logger& _logger; +}; + +#endif // __SCENE_H__ diff --git a/src/Scene.cpp b/src/Scene.cpp new file mode 100644 index 0000000000000000000000000000000000000000..3d38a18b8bb40f780f5b1b9ea39cc3b99c80e406 --- /dev/null +++ b/src/Scene.cpp @@ -0,0 +1,8 @@ +#include "scene.h" + + +Scene::Scene() + : _logger( Logger::instance() ) +{ this->_logger.info( "Creating new Scene" ); } +Scene::~Scene() + { this->_logger.info( "Deleting Scene" ); } diff --git a/src/game-engine.cpp b/src/game-engine.cpp index 806836f90bce64f17b904cea828af91b5f06b374..ea8cbdcb7f94b39c6400b8e5260f8b90af310c7d 100644 --- a/src/game-engine.cpp +++ b/src/game-engine.cpp @@ -10,7 +10,21 @@ GameEngine::~GameEngine() { this->_logger.info( "Cleaning GameEngine Object" ); } -void GameEngine::init(){} +void GameEngine::close(){} +void GameEngine::init() +{ + this->isRunning = false; + this->_currScene = ""; +} +void GameEngine::changeScene( Scene scene ){} +Scene* GameEngine::currentScene() +{ + return nullptr; +} +void GameEngine::run() +{ + this->isRunning = true; +} void GameEngine::update() { this->_entityManager.update();