From 25713edbc9222f2314949b724038a8562b7ca548 Mon Sep 17 00:00:00 2001 From: goaaats Date: Thu, 24 Jan 2019 22:24:45 +0100 Subject: [PATCH] Add navi mesh folder to world config --- src/world/Manager/NaviMgr.cpp | 2 +- src/world/Navi/NaviProvider.cpp | 16 +++++++++------- src/world/Navi/NaviProvider.h | 3 ++- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/world/Manager/NaviMgr.cpp b/src/world/Manager/NaviMgr.cpp index 4bb04179..c6cc789c 100644 --- a/src/world/Manager/NaviMgr.cpp +++ b/src/world/Manager/NaviMgr.cpp @@ -10,7 +10,7 @@ Sapphire::World::Manager::NaviMgr::NaviMgr( FrameworkPtr pFw ) : bool Sapphire::World::Manager::NaviMgr::setupTerritory( const std::string& internalName ) { - auto provider = Navi::make_NaviProvider( internalName ); + auto provider = Navi::make_NaviProvider( internalName, m_pFw ); if( provider->init() ) { diff --git a/src/world/Navi/NaviProvider.cpp b/src/world/Navi/NaviProvider.cpp index 608c3927..0a24a5bc 100644 --- a/src/world/Navi/NaviProvider.cpp +++ b/src/world/Navi/NaviProvider.cpp @@ -2,6 +2,8 @@ #include #include #include +#include + #include "NaviProvider.h" @@ -11,21 +13,21 @@ #include #include - -Sapphire::World::Navi::NaviProvider::NaviProvider( const std::string& internalName ) : +Sapphire::World::Navi::NaviProvider::NaviProvider( const std::string& internalName, FrameworkPtr pFw ) : m_naviMesh( nullptr ), m_naviMeshQuery( nullptr ), - m_internalName( internalName ) + m_internalName( internalName ), + m_pFw( pFw ) { // Set defaults - m_polyFindRange[0] = 10; - m_polyFindRange[1] = 20; - m_polyFindRange[2] = 10; + m_polyFindRange[ 0 ] = 10; + m_polyFindRange[ 1 ] = 20; + m_polyFindRange[ 2 ] = 10; } bool Sapphire::World::Navi::NaviProvider::init() { - auto meshesFolder = std::experimental::filesystem::path( "navi" ); + auto meshesFolder = std::experimental::filesystem::path( m_pFw->get< Sapphire::ConfigMgr >()->getValue< std::string >( "Navigation", "MeshPath", "navi" ) ); auto meshFolder = meshesFolder / std::experimental::filesystem::path( m_internalName ); if( std::experimental::filesystem::exists( meshFolder ) ) diff --git a/src/world/Navi/NaviProvider.h b/src/world/Navi/NaviProvider.h index fab677c3..6d7d0f0b 100644 --- a/src/world/Navi/NaviProvider.h +++ b/src/world/Navi/NaviProvider.h @@ -31,7 +31,7 @@ namespace Sapphire::World::Navi }; public: - explicit NaviProvider( const std::string& internalName ); + explicit NaviProvider( const std::string& internalName, FrameworkPtr pFw ); bool init(); void loadMesh( const std::string& path ); @@ -60,6 +60,7 @@ namespace Sapphire::World::Navi const dtPolyRef* path, const int32_t pathSize, float* steerPos, uint8_t& steerPosFlag, dtPolyRef& steerPosRef, float* outPoints = 0, int32_t* outPointCount = 0 ); + FrameworkPtr m_pFw; }; }