From 4b8db1ab0ae53bd8f6685af2fb55a550c04f8199 Mon Sep 17 00:00:00 2001 From: HampusM Date: Mon, 23 May 2022 19:46:11 +0200 Subject: refactor: use char as matrix element in scene --- src/bootstrap.cpp | 6 +++--- src/engine/graphics/scene.cpp | 7 +++---- src/engine/graphics/scene.hpp | 6 +++--- src/interfaces/scene.hpp | 4 +++- 4 files changed, 12 insertions(+), 11 deletions(-) diff --git a/src/bootstrap.cpp b/src/bootstrap.cpp index ef54940..02ec92d 100644 --- a/src/bootstrap.cpp +++ b/src/bootstrap.cpp @@ -76,16 +76,16 @@ auto bootstrap() noexcept -> yacppdic::Container return std::make_unique(seed); }); - container.bind>().to_factory( + container.bind>().to_factory( [](const Bounds &bounds) { - return std::make_unique>(bounds); + return std::make_unique>(bounds); }); container.bind().to_factory( [&container](const std::shared_ptr &cursor_controller) { - auto matrix_factory = container.get>(); + auto matrix_factory = container.get>(); return std::make_unique(matrix_factory, cursor_controller); }); diff --git a/src/engine/graphics/scene.cpp b/src/engine/graphics/scene.cpp index b0d77b8..7a0e960 100644 --- a/src/engine/graphics/scene.cpp +++ b/src/engine/graphics/scene.cpp @@ -11,13 +11,13 @@ #include Scene::Scene( - IMatrixFactory matrix_factory, + IMatrixFactory matrix_factory, std::shared_ptr cursor_controller) noexcept : _matrix(matrix_factory(size() - Bounds({.width = 0U, .height = 1U}))), _cursor_controller(std::move(cursor_controller)), _is_shown(false) { - _matrix->fill(" "); + _matrix->fill(' '); } void Scene::enter() noexcept @@ -80,8 +80,7 @@ auto Scene::size() const noexcept -> Bounds return Bounds({window_size.ws_col, window_size.ws_row}); } -auto Scene::get_matrix() const noexcept - -> const std::shared_ptr> & +auto Scene::get_matrix() const noexcept -> const std::shared_ptr> & { return _matrix; } diff --git a/src/engine/graphics/scene.hpp b/src/engine/graphics/scene.hpp index e57e1f8..60b541a 100644 --- a/src/engine/graphics/scene.hpp +++ b/src/engine/graphics/scene.hpp @@ -17,7 +17,7 @@ class Scene : public IScene { public: explicit Scene( - IMatrixFactory matrix_factory, + IMatrixFactory matrix_factory, std::shared_ptr cursor_controller) noexcept; void enter() noexcept override; @@ -27,10 +27,10 @@ public: [[nodiscard]] auto size() const noexcept -> Bounds override; [[nodiscard]] auto get_matrix() const noexcept - -> const std::shared_ptr> & override; + -> const std::shared_ptr> & override; private: - std::shared_ptr> _matrix; + std::shared_ptr> _matrix; std::shared_ptr _cursor_controller; bool _is_shown; diff --git a/src/interfaces/scene.hpp b/src/interfaces/scene.hpp index 08615a9..903a299 100644 --- a/src/interfaces/scene.hpp +++ b/src/interfaces/scene.hpp @@ -16,6 +16,8 @@ class IScene public: virtual ~IScene() noexcept = default; + using MatrixElement = char; + virtual void enter() noexcept = 0; virtual void leave() noexcept = 0; @@ -23,7 +25,7 @@ public: [[nodiscard]] virtual auto size() const noexcept -> Bounds = 0; [[nodiscard]] virtual auto get_matrix() const noexcept - -> const std::shared_ptr> & = 0; + -> const std::shared_ptr> & = 0; }; using ISceneFactory = yacppdic::Factory( -- cgit v1.2.3-18-g5258