Files
spectrum/source/game/director.cpp
T

57 lines
1.3 KiB
C++

// director.cpp
#include "director.hpp"
#include "core/rendering/video.hpp"
#include "defaults.hpp"
#include "game/scenes/scenes.hpp"
#include "game/scenes/test.hpp"
Director::Director() {
SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION,
"Game start!");
// Inicializa los subsistemas
video_ = std::make_unique<Video>(
Video::Config{
Defaults::Video::FULLSCREEN,
Defaults::Video::ZOOM,
Defaults::Video::WIDTH,
Defaults::Video::HEIGHT});
// Inicializa el contexto
context_.video = video_.get();
// Establece la escena inicial
scene_ = std::make_unique<Test>(context_);
}
Director::~Director() {
SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION,
"Bye!");
SDL_Quit();
}
auto Director::iterate() -> int {
while (scene_) {
scene_->render();
switch (scene_->update()) {
case Scenes::CONTINUE:
break;
case Scenes::LOGO:
break;
case Scenes::INTRO:
break;
case Scenes::GAME:
break;
case Scenes::TEST:
scene_ = std::make_unique<Test>(context_);
break;
case Scenes::QUIT:
scene_.reset();
break;
}
}
return 0;
}