diff --git a/lib/CGameState.cpp b/lib/CGameState.cpp index 575601fce..3b4217ac5 100644 --- a/lib/CGameState.cpp +++ b/lib/CGameState.cpp @@ -2164,11 +2164,8 @@ void CGameState::apply(CPack *pack) void CGameState::calculatePaths(const CGHeroInstance *hero, CPathsInfo &out) { - if(pathfinderWorking) - pathfinderWorking->interrupt(); - CPathfinder pathfinder(out, this, hero); - pathfinderWorking = make_unique(&CPathfinder::startPathfinder, pathfinder); + pathfinder.calculatePaths(); } /** diff --git a/lib/CGameState.h b/lib/CGameState.h index d0cd983ab..6702616bf 100644 --- a/lib/CGameState.h +++ b/lib/CGameState.h @@ -314,8 +314,6 @@ public: boost::shared_mutex *mx; - unique_ptr pathfinderWorking; - void giveHeroArtifact(CGHeroInstance *h, ArtifactID aid); void apply(CPack *pack); diff --git a/lib/CPathfinder.cpp b/lib/CPathfinder.cpp index 6fa558eaf..732261152 100644 --- a/lib/CPathfinder.cpp +++ b/lib/CPathfinder.cpp @@ -7,7 +7,6 @@ #include "mapObjects/CGHeroInstance.h" #include "GameConstants.h" #include "CStopWatch.h" -#include "CThreadHelper.h" /* * CPathfinder.cpp, part of VCMI engine @@ -60,24 +59,6 @@ CPathfinder::CPathfinder(CPathsInfo &_out, CGameState *_gs, const CGHeroInstance neighbours.reserve(16); } -void CPathfinder::startPathfinder() -{ - try - { - setThreadName("CPathfinder::startPathfinder"); - - calculatePaths(); - } - catch(boost::thread_interrupted &e) - { - gs->pathfinderWorking.reset(); - return; - } - - gs->pathfinderWorking.reset(); -} - - void CPathfinder::calculatePaths() { int maxMovePointsLand = hero->maxMovePoints(true); @@ -211,8 +192,6 @@ void CPathfinder::calculatePaths() } } } - - boost::this_thread::interruption_point(); } //queue loop } diff --git a/lib/CPathfinder.h b/lib/CPathfinder.h index 0238110cb..e6c346dee 100644 --- a/lib/CPathfinder.h +++ b/lib/CPathfinder.h @@ -91,7 +91,6 @@ class CPathfinder : private CGameInfoCallback { public: CPathfinder(CPathsInfo &_out, CGameState *_gs, const CGHeroInstance *_hero); - void startPathfinder(); void calculatePaths(); //calculates possible paths for hero, uses current hero position and movement left; returns pointer to newly allocated CPath or nullptr if path does not exists private: