51 lines
1.2 KiB
C++
51 lines
1.2 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!");
|
|
|
|
video_ = std::make_shared<Video>(
|
|
Video::Config{
|
|
Defaults::Video::FULLSCREEN,
|
|
Defaults::Video::ZOOM,
|
|
Defaults::Video::WIDTH,
|
|
Defaults::Video::HEIGHT});
|
|
scene_ = std::make_unique<Test>();
|
|
}
|
|
|
|
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>();
|
|
break;
|
|
case Scenes::QUIT:
|
|
scene_.reset();
|
|
break;
|
|
}
|
|
}
|
|
|
|
return 0;
|
|
} |