From 7481cefd789c403856d46db1f2b8302cb0096d2c Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Wed, 20 Jul 2022 15:21:21 +0200 Subject: [PATCH] Ability to load navmeshes from game directory Load navmeshes from '..\\maps\\navmesh\\' first before attempting to load from root. --- r5dev/naveditor/Sample.cpp | 18 +++++++++++++----- r5dev/naveditor/include/Sample.h | 4 ++-- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/r5dev/naveditor/Sample.cpp b/r5dev/naveditor/Sample.cpp index 7580f82f..402869d5 100644 --- a/r5dev/naveditor/Sample.cpp +++ b/r5dev/naveditor/Sample.cpp @@ -332,13 +332,20 @@ void Sample::renderOverlayToolStates(double* proj, double* model, int* view) } } -dtNavMesh* Sample::loadAll(const char* path) +dtNavMesh* Sample::loadAll(std::string path) { + std::filesystem::path p = "..\\maps\\navmesh\\"; + if (std::filesystem::is_directory(p)) + { + path.insert(0, p.string()); + } + char buffer[256]; - sprintf(buffer, "%s_%s.nm", path, m_navmeshName); + sprintf(buffer, "%s_%s.nm", path.c_str(), m_navmeshName); FILE* fp = fopen(buffer, "rb"); - if (!fp) return 0; + if (!fp) + return 0; // Read header. NavMeshSetHeader header; @@ -405,15 +412,16 @@ dtNavMesh* Sample::loadAll(const char* path) fclose(fp); + fclose(fp); return mesh; } void Sample::saveAll(std::string path, dtNavMesh* mesh) { - if (!mesh) return; + if (!mesh) + return; std::filesystem::path p = "..\\maps\\navmesh\\"; - if (std::filesystem::is_directory(p)) { path.insert(0, p.string()); diff --git a/r5dev/naveditor/include/Sample.h b/r5dev/naveditor/include/Sample.h index f1923894..ca568864 100644 --- a/r5dev/naveditor/include/Sample.h +++ b/r5dev/naveditor/include/Sample.h @@ -144,8 +144,8 @@ protected: SampleDebugDraw m_dd; - dtNavMesh* loadAll(const char* path); - void saveAll(std::string path,dtNavMesh* mesh); + dtNavMesh* loadAll(std::string path); + void saveAll(std::string path, dtNavMesh* mesh); public: std::string m_modelName;