From 44ae1cb641ca00c77f8d233e3783e2a596c9a418 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Mon, 29 Apr 2019 19:59:19 +1000 Subject: [PATCH] gracefully crash the server if no navmeshes exist with a useful error --- src/world/Manager/TerritoryMgr.cpp | 3 ++- src/world/Territory/Zone.cpp | 6 ++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/world/Manager/TerritoryMgr.cpp b/src/world/Manager/TerritoryMgr.cpp index 87474f17..a43ce775 100644 --- a/src/world/Manager/TerritoryMgr.cpp +++ b/src/world/Manager/TerritoryMgr.cpp @@ -66,8 +66,9 @@ bool Sapphire::World::Manager::TerritoryMgr::init() createDefaultTerritories(); createHousingTerritories(); } - catch( std::runtime_error& ) + catch( const std::runtime_error& ex ) { + Logger::fatal( "Caught exception during territory init: {}", ex.what() ); return false; } diff --git a/src/world/Territory/Zone.cpp b/src/world/Territory/Zone.cpp index c9c2402b..e735c6d1 100644 --- a/src/world/Territory/Zone.cpp +++ b/src/world/Territory/Zone.cpp @@ -136,6 +136,12 @@ bool Sapphire::Zone::init() m_pNaviProvider = pNaviMgr->getNaviProvider( m_territoryTypeInfo->bg ); + if( !m_pNaviProvider ) + { + Logger::fatal( "No navmesh found for TerritoryType#{}", getTerritoryTypeId() ); + throw std::runtime_error( "Missing navmesh file(s)." ); + } + return true; }