diff --git a/cpp/src/pathfinder.cpp b/cpp/src/pathfinder.cpp index fd290bb..365284e 100644 --- a/cpp/src/pathfinder.cpp +++ b/cpp/src/pathfinder.cpp @@ -6,7 +6,7 @@ namespace pathfinder { -void PathFinderBase::SetMap(std::shared_ptr map) +void PathFinderBase::SetMap(const Map* map) { m_Map = map; } diff --git a/cpp/src/pathfinder.hpp b/cpp/src/pathfinder.hpp index 82b0993..ee19b6e 100644 --- a/cpp/src/pathfinder.hpp +++ b/cpp/src/pathfinder.hpp @@ -26,12 +26,12 @@ public: PathFinderBase& operator=(const PathFinderBase&) = delete; PathFinderBase& operator=(PathFinderBase&&) = delete; - void SetMap(std::shared_ptr map); + void SetMap(const Map* map); virtual const std::string_view& GetName() const = 0; virtual Path CalculatePath(WorldPos target) = 0; private: - std::shared_ptr m_Map; + const Map* m_Map; }; diff --git a/cpp/src/pathfindingdemo.cpp b/cpp/src/pathfindingdemo.cpp index b945f19..4d80d1e 100644 --- a/cpp/src/pathfindingdemo.cpp +++ b/cpp/src/pathfindingdemo.cpp @@ -17,6 +17,7 @@ PathFindingDemo::PathFindingDemo(int width, int height) : LOG_DEBUG("."); // set default pathfinder method m_PathFinder = pathfinder::create(pathfinder::PathFinderType::LINEAR); + m_PathFinder->SetMap(&m_Map); } PathFindingDemo::~PathFindingDemo() { LOG_DEBUG("."); } @@ -89,6 +90,7 @@ void PathFindingDemo::HandleActions(const std::vector &actions) { using namespace pathfinder; PathFinderType type = static_cast(action.Argument.number); m_PathFinder = create(type); + m_PathFinder->SetMap(&m_Map); LOG_INFO("Switched to path finding method: ", m_PathFinder->GetName()); } };