#include "game_initializer.hpp" #include "util/function.hpp" #include #include GameInitializer::GameInitializer(std::shared_ptr scene, std::shared_ptr input_handler, std::shared_ptr game) : _scene(std::move(scene)), _input_handler(std::move(input_handler)), _game(std::move(game)) { } void GameInitializer::initialize() { _scene->enter(); _input_handler->enter_raw_mode(); std::atexit(normalize_lambda( [this]() { _scene->leave(); _input_handler->leave_raw_mode(); })); _game->run(*_scene, *_input_handler); }