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