aboutsummaryrefslogtreecommitdiff
path: root/src/game/game.cpp
diff options
context:
space:
mode:
authorHampusM <hampus@hampusmat.com>2022-03-20 13:17:16 +0100
committerHampusM <hampus@hampusmat.com>2022-06-13 17:56:56 +0200
commit78f5d8cf644383adf20933ad64c160c07c2c54fb (patch)
tree2a348d90f8f150665c379bf2f3741731999dd679 /src/game/game.cpp
parentb6061eff99907495de282f611e8389e6468a1fb0 (diff)
refactor: improve input configuring structure
Diffstat (limited to 'src/game/game.cpp')
-rw-r--r--src/game/game.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/game/game.cpp b/src/game/game.cpp
index d7e9056..45e6a79 100644
--- a/src/game/game.cpp
+++ b/src/game/game.cpp
@@ -1,3 +1,23 @@
#include "game.hpp"
+#include "commands/insert_cell.hpp"
+#include "commands/move_cursor.hpp"
+#include "commands/quit.hpp"
+
void Game::run() noexcept {}
+
+std::unordered_map<char, std::shared_ptr<ICommand>> Game::get_input_config(
+ const std::shared_ptr<IWindow> &window, const std::shared_ptr<IScene> &scene,
+ const std::shared_ptr<ICursorController> &cursor_controller) const noexcept
+{
+ return {{'q', std::make_shared<QuitCommand>()},
+ {'i', std::make_shared<InsertCellCommand>(cursor_controller, scene)},
+ {'k', std::make_shared<MoveCursorCommand>(Vector2::up(), cursor_controller,
+ scene, window)},
+ {'j', std::make_shared<MoveCursorCommand>(Vector2::down(), cursor_controller,
+ scene, window)},
+ {'h', std::make_shared<MoveCursorCommand>(Vector2::left(), cursor_controller,
+ scene, window)},
+ {'l', std::make_shared<MoveCursorCommand>(Vector2::right(), cursor_controller,
+ scene, window)}};
+}