From 7041e81abbdae6b895bda149e5369e0d52dce6ee Mon Sep 17 00:00:00 2001 From: HampusM Date: Sun, 22 May 2022 17:13:24 +0200 Subject: refactor: remove statusline as game dependency --- src/bootstrap.cpp | 1 - src/game/game.cpp | 4 +--- src/game/game.hpp | 3 --- src/game/status_manager.cpp | 6 ++++++ src/game/status_manager.hpp | 2 ++ src/interfaces/status_manager.hpp | 2 ++ 6 files changed, 11 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/bootstrap.cpp b/src/bootstrap.cpp index 2e687ed..14aa922 100644 --- a/src/bootstrap.cpp +++ b/src/bootstrap.cpp @@ -69,7 +69,6 @@ auto bootstrap() noexcept -> yacppdic::Container return std::make_unique( scene, cursor_controller, - statusline, generation_tracker, status_manager, vector2_statusline_subscriber_adapter_factory); diff --git a/src/game/game.cpp b/src/game/game.cpp index d642f7c..18db133 100644 --- a/src/game/game.cpp +++ b/src/game/game.cpp @@ -13,14 +13,12 @@ Game::Game( std::shared_ptr scene, std::shared_ptr cursor_controller, - std::shared_ptr statusline, std::shared_ptr generation_tracker, std::shared_ptr status_manager, IStatusLineSubscriberAdapterFactory vector2_statusline_subscriber_adapter_factory) noexcept : _scene(std::move(scene)), _cursor_controller(std::move(cursor_controller)), - _statusline(std::move(statusline)), _generation_tracker(std::move(generation_tracker)), _status_manager(std::move(status_manager)), _vector2_statusline_subscriber_adapter_factory( @@ -30,7 +28,7 @@ Game::Game( void Game::on_start() noexcept { - _statusline->initialize_background(); + _status_manager->initialize(); _status_manager->set_section_title(StatusLineSection::A, ""); _status_manager->set_section_title(StatusLineSection::B, "X: "); diff --git a/src/game/game.hpp b/src/game/game.hpp index c765312..1546a9c 100644 --- a/src/game/game.hpp +++ b/src/game/game.hpp @@ -5,7 +5,6 @@ #include "interfaces/generation_tracker.hpp" #include "interfaces/scene.hpp" #include "interfaces/status_manager.hpp" -#include "interfaces/statusline.hpp" #include "interfaces/statusline_subscriber_adapter.hpp" #include @@ -16,7 +15,6 @@ public: Game( std::shared_ptr scene, std::shared_ptr cursor_controller, - std::shared_ptr statusline, std::shared_ptr generation_tracker, std::shared_ptr status_manager, IStatusLineSubscriberAdapterFactory @@ -34,7 +32,6 @@ public: private: std::shared_ptr _scene; std::shared_ptr _cursor_controller; - std::shared_ptr _statusline; std::shared_ptr _generation_tracker; std::shared_ptr _status_manager; IStatusLineSubscriberAdapterFactory diff --git a/src/game/status_manager.cpp b/src/game/status_manager.cpp index 927f645..1a709d3 100644 --- a/src/game/status_manager.cpp +++ b/src/game/status_manager.cpp @@ -7,6 +7,10 @@ StatusManager::StatusManager(std::shared_ptr statusline) noexcept : _statusline(std::move(statusline)) +{ +} + +void StatusManager::initialize() noexcept { _statusline->set_section_length(StatusLineSection::A, 5U); _statusline->set_section_length(StatusLineSection::B, 15U); @@ -14,6 +18,8 @@ StatusManager::StatusManager(std::shared_ptr statusline) noexcept _statusline->set_section_length(StatusLineSection::D, 20U); _statusline->set_section_length(StatusLineSection::E, 15U); _statusline->set_section_length(StatusLineSection::F, 15U); + + _statusline->initialize_background(); } void StatusManager::set_section_title( diff --git a/src/game/status_manager.hpp b/src/game/status_manager.hpp index cdc9de5..ea61ff8 100644 --- a/src/game/status_manager.hpp +++ b/src/game/status_manager.hpp @@ -15,6 +15,8 @@ class StatusManager : public IStatusManager public: explicit StatusManager(std::shared_ptr statusline) noexcept; + void initialize() noexcept override; + void set_section_title( const StatusLineSection §ion, const std::string_view &title) noexcept override; diff --git a/src/interfaces/status_manager.hpp b/src/interfaces/status_manager.hpp index 94464f0..18d6928 100644 --- a/src/interfaces/status_manager.hpp +++ b/src/interfaces/status_manager.hpp @@ -13,6 +13,8 @@ class IStatusManager public: virtual ~IStatusManager() = default; + virtual void initialize() noexcept = 0; + virtual void set_section_title( const StatusLineSection §ion, const std::string_view &title) noexcept = 0; -- cgit v1.2.3-18-g5258