aboutsummaryrefslogtreecommitdiff
path: root/src/game
diff options
context:
space:
mode:
authorHampusM <hampus@hampusmat.com>2022-03-07 20:20:18 +0100
committerHampusM <hampus@hampusmat.com>2022-06-13 17:56:55 +0200
commitf0824fdebc79fbf3843c2053522107c33e3ce2a3 (patch)
treee5bd34fa89cbe80cf8a30596766cf95098465aec /src/game
parent12fffa7df0685ef6d23ffe888a06695ae490df81 (diff)
refactor: move directions to vector2 & make vector2 hashable
Diffstat (limited to 'src/game')
-rw-r--r--src/game/input_configurator.cpp16
-rw-r--r--src/game/input_configurator.hpp7
-rw-r--r--src/game/input_configurator.tpp17
3 files changed, 14 insertions, 26 deletions
diff --git a/src/game/input_configurator.cpp b/src/game/input_configurator.cpp
index 4daee21..e8d2fe5 100644
--- a/src/game/input_configurator.cpp
+++ b/src/game/input_configurator.cpp
@@ -8,6 +8,14 @@ void exit_success()
exit(EXIT_SUCCESS);
}
+auto move_cursor(const Vector2 &direction, const CursorController &cursor_controller)
+{
+ return [direction, cursor_controller]()
+ {
+ cursor_controller.move(direction, 1U);
+ };
+}
+
} // namespace InputActions
InputConfigurator::InputConfigurator(std::shared_ptr<CursorController> cursor_controller)
@@ -20,14 +28,14 @@ void InputConfigurator::configure(IInputHandler &input_handler)
input_handler.attach('q', InputActions::exit_success);
input_handler.attach('k',
- InputActions::move_cursor<Direction::UP>(*_cursor_controller));
+ InputActions::move_cursor(Vector2::up(), *_cursor_controller));
input_handler.attach('j',
- InputActions::move_cursor<Direction::DOWN>(*_cursor_controller));
+ InputActions::move_cursor(Vector2::down(), *_cursor_controller));
input_handler.attach('h',
- InputActions::move_cursor<Direction::LEFT>(*_cursor_controller));
+ InputActions::move_cursor(Vector2::left(), *_cursor_controller));
input_handler.attach(
- 'l', InputActions::move_cursor<Direction::RIGHT>(*_cursor_controller));
+ 'l', InputActions::move_cursor(Vector2::right(), *_cursor_controller));
}
diff --git a/src/game/input_configurator.hpp b/src/game/input_configurator.hpp
index 217c21e..3846d50 100644
--- a/src/game/input_configurator.hpp
+++ b/src/game/input_configurator.hpp
@@ -1,10 +1,10 @@
#pragma once
#include "DI/auto_wirable.hpp"
-#include "interfaces/direction.hpp"
#include "interfaces/input.hpp"
#include "interfaces/input_configurator.hpp"
+#include "engine/data/vector2.hpp"
#include "engine/user/cursor.hpp"
#include <array>
@@ -13,8 +13,7 @@
namespace InputActions
{
-template <Direction::value_type direction>
-auto move_cursor(CursorController cursor_controller);
+auto move_cursor(const Vector2 &direction, const CursorController &cursor_controller);
void exit_success();
@@ -32,5 +31,3 @@ public:
private:
std::shared_ptr<CursorController> _cursor_controller;
};
-
-#include "input_configurator.tpp"
diff --git a/src/game/input_configurator.tpp b/src/game/input_configurator.tpp
deleted file mode 100644
index f3c9482..0000000
--- a/src/game/input_configurator.tpp
+++ /dev/null
@@ -1,17 +0,0 @@
-#pragma once
-
-#include "input_configurator.hpp"
-
-namespace InputActions
-{
-
-template <Direction::value_type direction>
-auto move_cursor(CursorController cursor_controller)
-{
- return [cursor_controller]()
- {
- cursor_controller.move<direction>(1U);
- };
-}
-
-} // namespace InputActions