aboutsummaryrefslogtreecommitdiff
path: root/src/engine/user
diff options
context:
space:
mode:
authorHampusM <hampus@hampusmat.com>2022-03-06 13:16:05 +0100
committerHampusM <hampus@hampusmat.com>2022-06-13 17:56:54 +0200
commit0e40bc7ce8c3b3be083002f88c3317d65f6570ad (patch)
tree2fcc470a0f1ce1d51ff26c53c8a9a890b3f31b3b /src/engine/user
parentf4d812a5b9131e65bb55db7211dc68fc453792df (diff)
refactor: make vector2 & bounds data classes
Diffstat (limited to 'src/engine/user')
-rw-r--r--src/engine/user/cursor.cpp13
-rw-r--r--src/engine/user/cursor.hpp15
2 files changed, 10 insertions, 18 deletions
diff --git a/src/engine/user/cursor.cpp b/src/engine/user/cursor.cpp
index 9d6e28c..d4a2997 100644
--- a/src/engine/user/cursor.cpp
+++ b/src/engine/user/cursor.cpp
@@ -5,29 +5,24 @@
#include <cstdlib>
#include <iostream>
-CursorController::CursorController(IVector2Factory vector2_factory)
- : _vector2_factory(vector2_factory)
-{
-}
-
-void CursorController::move_to(const IVector2 &pos)
+void CursorController::move_to(const Vector2 &pos)
{
fmt::print(MOVE_CURSOR_TO, fmt::arg("esc", ESC), fmt::arg("row", pos.y()),
fmt::arg("column", pos.x()));
std::cout.flush();
}
-std::shared_ptr<IVector2> CursorController::where()
+Vector2 CursorController::where()
{
fmt::print(REQUEST_CURSOR_POSITION, fmt::arg("esc", ESC));
std::cout.flush();
- IVector2Options vector2_options = {};
+ Vector2Options vector2_options = {};
// NOLINTNEXTLINE(cppcoreguidelines-pro-type-vararg)
scanf("\033[%u;%uR", &vector2_options.y, &vector2_options.x);
- return _vector2_factory(vector2_options);
+ return Vector2(vector2_options);
}
void CursorController::hide()
diff --git a/src/engine/user/cursor.hpp b/src/engine/user/cursor.hpp
index 0317dc5..69d639a 100644
--- a/src/engine/user/cursor.hpp
+++ b/src/engine/user/cursor.hpp
@@ -2,7 +2,8 @@
#include "DI/auto_wirable.hpp"
#include "interfaces/direction.hpp"
-#include "interfaces/vector2.hpp"
+
+#include "engine/data/vector2.hpp"
#include "fmt/core.h"
#include <array>
@@ -21,25 +22,21 @@ constexpr fmt::string_view REQUEST_CURSOR_POSITION = "{esc}[6n";
constexpr fmt::string_view CURSOR_VISIBLE = "{esc}[?25h";
constexpr fmt::string_view CURSOR_INVISIBLE = "{esc}[?25l";
-class CursorController
- : public AutoWirable<CursorController, CursorController, IVector2Factory>
+class CursorController : public AutoWirable<CursorController, CursorController>
{
public:
- explicit CursorController(IVector2Factory vector2_factory);
+ CursorController() = default;
template <Direction::value_type direction>
constexpr void move(const unsigned int &amount) const;
- static void move_to(const IVector2 &pos);
+ static void move_to(const Vector2 &pos);
static void hide();
static void show();
- [[nodiscard]] std::shared_ptr<IVector2> where();
-
-private:
- IVector2Factory _vector2_factory;
+ [[nodiscard]] static Vector2 where();
};
#include "cursor.tpp"