From ede689d23e57c9b701ab19aa9112a0b2368865c9 Mon Sep 17 00:00:00 2001 From: HampusM Date: Mon, 28 Feb 2022 21:30:30 +0100 Subject: feat: add input handler & quitting with 'q' --- src/game/game.cpp | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) (limited to 'src/game/game.cpp') diff --git a/src/game/game.cpp b/src/game/game.cpp index 2c99c6a..2b09470 100644 --- a/src/game/game.cpp +++ b/src/game/game.cpp @@ -1,15 +1,28 @@ #include "game.hpp" -#include -#include - -Game::Game(std::shared_ptr scene) : _scene(std::move(scene)) {} +Game::Game(std::shared_ptr scene, std::shared_ptr input_handler) + : _scene(std::move(scene)), _input_handler(std::move(input_handler)) +{ +} void Game::run() { _scene->enter(); - std::this_thread::sleep_for(std::chrono::seconds(3)); + _input_handler->enter_raw_mode(); + + auto scene = _scene; + auto input_handler = _input_handler; + + _input_handler->attach('q', + [&input_handler, &scene]() + { + input_handler->leave_raw_mode(); + scene->leave(); + exit(EXIT_SUCCESS); + }); + + _input_handler->listen(); _scene->leave(); } -- cgit v1.2.3-18-g5258