From a49619fa6c23bf7ad8839de63d8454291cb29cf3 Mon Sep 17 00:00:00 2001 From: James Turner Date: Fri, 18 Jun 2021 09:34:30 +0100 Subject: [PATCH] =?UTF-8?q?TerraSync:=20add=20another=20=E2=80=98is=20down?= =?UTF-8?q?loading=E2=80=99=20helper?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- simgear/scene/tsync/terrasync.cxx | 13 +++++++++++-- simgear/scene/tsync/terrasync.hxx | 3 +++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/simgear/scene/tsync/terrasync.cxx b/simgear/scene/tsync/terrasync.cxx index 24b99b8b..24996cb8 100644 --- a/simgear/scene/tsync/terrasync.cxx +++ b/simgear/scene/tsync/terrasync.cxx @@ -1362,14 +1362,18 @@ void SGTerraSync::setSceneryPathSuffixes(const string_list& suffixes) } bool SGTerraSync::isTileDirPending(const std::string& sceneryDir) const +{ + return innerIsTileDirPending(sceneryDir, false); +} + +bool SGTerraSync::innerIsTileDirPending(const std::string& sceneryDir, bool isOSM) const { if (!_workerThread->isRunning()) { return false; } for (const auto& suffix : _sceneryPathSuffixes) { - // don't wait on OSM dirs, even if enabled - if (isOSMSuffix(suffix)) { + if (isOSM != isOSMSuffix(suffix)) { continue; } @@ -1382,6 +1386,11 @@ bool SGTerraSync::isTileDirPending(const std::string& sceneryDir) const return false; } +bool SGTerraSync::isTileDirPendingOSM(const std::string& sceneryDir) const +{ + return innerIsTileDirPending(sceneryDir, true); +} + void SGTerraSync::scheduleDataDir(const std::string& dataDir) { if (!_workerThread->isRunning()) { diff --git a/simgear/scene/tsync/terrasync.hxx b/simgear/scene/tsync/terrasync.hxx index a48091f1..c7ee24a9 100644 --- a/simgear/scene/tsync/terrasync.hxx +++ b/simgear/scene/tsync/terrasync.hxx @@ -81,6 +81,7 @@ public: */ bool isTileDirPending(const std::string& sceneryDir) const; + bool isTileDirPendingOSM(const std::string& sceneryDir) const; void scheduleDataDir(const std::string& dataDir); @@ -94,6 +95,8 @@ protected: private: void writeWarningFile(const SGPath& sceneryDir); + bool innerIsTileDirPending(const std::string& sceneryDir, bool isOSM) const; + private: WorkerThread* _workerThread; SGPropertyNode_ptr _terraRoot;