diff options
Diffstat (limited to 'src/game/game.cpp')
-rw-r--r-- | src/game/game.cpp | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/src/game/game.cpp b/src/game/game.cpp index 9d8c246..2eef4cf 100644 --- a/src/game/game.cpp +++ b/src/game/game.cpp @@ -86,23 +86,31 @@ void Game::on_update() noexcept switch (pressed_key) { case 'h': - _move_cursor(Vector2::left()); - cursor_has_moved = true; + if (_move_cursor(Vector2::left())) + { + cursor_has_moved = true; + } break; case 'j': - _move_cursor(Vector2::down()); - cursor_has_moved = true; + if (_move_cursor(Vector2::down())) + { + cursor_has_moved = true; + } break; case 'k': - _move_cursor(Vector2::up()); - cursor_has_moved = true; + if (_move_cursor(Vector2::up())) + { + cursor_has_moved = true; + } break; case 'l': - _move_cursor(Vector2::right()); - cursor_has_moved = true; + if (_move_cursor(Vector2::right())) + { + cursor_has_moved = true; + } break; case 'q': @@ -264,7 +272,7 @@ void Game::on_exit() const noexcept std::cout.flush(); } -void Game::_move_cursor(const Vector2 &direction) noexcept +auto Game::_move_cursor(const Vector2 &direction) noexcept -> bool { const auto current_position = _cursor_controller->where(); @@ -274,10 +282,12 @@ void Game::_move_cursor(const Vector2 &direction) noexcept if (scene_size.validate_coords(dest_position) != CoordsValidation::VALID) { - return; + return false; } _cursor_controller->move_to(dest_position); + + return true; } void Game::_set_space( |