diff options
| author | Shauren <shauren.trinity@gmail.com> | 2025-11-05 18:55:45 +0100 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2025-11-05 18:55:45 +0100 |
| commit | a61195beef21a25ca892f4bf171f4a57dc55823b (patch) | |
| tree | 2a3faf7c301c5c87ced29c59c268f9f25240965f /src | |
| parent | d2fa7398a6014db640a31d26e13ac47edd6a3424 (diff) | |
Tools/mmaps_generator: Add optional file name suffix to tile files
Diffstat (limited to 'src')
| -rw-r--r-- | src/tools/mmaps_generator/IntermediateValues.cpp | 10 | ||||
| -rw-r--r-- | src/tools/mmaps_generator/IntermediateValues.h | 4 | ||||
| -rw-r--r-- | src/tools/mmaps_generator/TileBuilder.cpp | 16 | ||||
| -rw-r--r-- | src/tools/mmaps_generator/TileBuilder.h | 8 |
4 files changed, 22 insertions, 16 deletions
diff --git a/src/tools/mmaps_generator/IntermediateValues.cpp b/src/tools/mmaps_generator/IntermediateValues.cpp index 39af491f273..6a908a38440 100644 --- a/src/tools/mmaps_generator/IntermediateValues.cpp +++ b/src/tools/mmaps_generator/IntermediateValues.cpp @@ -31,13 +31,13 @@ namespace MMAP rcFreePolyMeshDetail(polyMeshDetail); } - void IntermediateValues::writeIV(boost::filesystem::path const& outputDirectory, uint32 mapID, uint32 tileX, uint32 tileY) + void IntermediateValues::writeIV(boost::filesystem::path const& outputDirectory, std::string_view fileNameSuffix, uint32 mapID, uint32 tileX, uint32 tileY) { TC_LOG_INFO("maps.mmapgen.debug", "[Map {:04}] [{:02},{:02}]: Writing debug output intermediate values...", mapID, tileX, tileY); auto debugWrite = [=, outputDirectory = outputDirectory.generic_string()](char const* extension, auto const* data) { - std::string fileName = Trinity::StringFormat("{}/meshes/{:04}{:02}{:02}.{}", outputDirectory, mapID, tileX, tileY, extension); + std::string fileName = Trinity::StringFormat("{}/meshes/{:04}{:02}{:02}{}.{}", outputDirectory, mapID, tileX, tileY, fileNameSuffix, extension); if (auto file = Trinity::make_unique_ptr_with_deleter<&::fclose>(fopen(fileName.c_str(), "wb"))) { IntermediateValues::debugWrite(file.get(), data); @@ -188,10 +188,10 @@ namespace MMAP fwrite(mesh->meshes, sizeof(int), mesh->nmeshes*4, file); } - void IntermediateValues::generateObjFile(boost::filesystem::path const& outputDirectory, uint32 mapID, uint32 tileX, uint32 tileY, MeshData const& meshData) + void IntermediateValues::generateObjFile(boost::filesystem::path const& outputDirectory, std::string_view fileNameSuffix, uint32 mapID, uint32 tileX, uint32 tileY, MeshData const& meshData) { std::string objFileName; - objFileName = Trinity::StringFormat("{}/meshes/map{:04}{:02}{:02}.obj", outputDirectory.generic_string(), mapID, tileX, tileY); + objFileName = Trinity::StringFormat("{}/meshes/map{:04}{:02}{:02}{}.obj", outputDirectory.generic_string(), mapID, tileX, tileY, fileNameSuffix); auto objFile = Trinity::make_unique_ptr_with_deleter<&::fclose>(fopen(objFileName.c_str(), "wb")); if (!objFile) @@ -233,7 +233,7 @@ namespace MMAP char b = '\0'; fwrite(&b, sizeof(char), 1, objFile.get()); - objFileName = Trinity::StringFormat("{}/meshes/map{:04}{:02}{:02}.mesh", outputDirectory.generic_string(), mapID, tileX, tileY); + objFileName = Trinity::StringFormat("{}/meshes/map{:04}{:02}{:02}{}.mesh", outputDirectory.generic_string(), mapID, tileX, tileY, fileNameSuffix); objFile.reset(fopen(objFileName.c_str(), "wb")); if (!objFile) { diff --git a/src/tools/mmaps_generator/IntermediateValues.h b/src/tools/mmaps_generator/IntermediateValues.h index 4ef8805f921..f8578683e61 100644 --- a/src/tools/mmaps_generator/IntermediateValues.h +++ b/src/tools/mmaps_generator/IntermediateValues.h @@ -64,7 +64,7 @@ namespace MMAP return *this; } - void writeIV(boost::filesystem::path const& outputDirectory, uint32 mapID, uint32 tileX, uint32 tileY); + void writeIV(boost::filesystem::path const& outputDirectory, std::string_view fileNameSuffix, uint32 mapID, uint32 tileX, uint32 tileY); static void debugWrite(FILE* file, rcHeightfield const* mesh); static void debugWrite(FILE* file, rcCompactHeightfield const* chf); @@ -72,7 +72,7 @@ namespace MMAP static void debugWrite(FILE* file, rcPolyMesh const* mesh); static void debugWrite(FILE* file, rcPolyMeshDetail const* mesh); - void generateObjFile(boost::filesystem::path const& outputDirectory, uint32 mapID, uint32 tileX, uint32 tileY, MeshData const& meshData); + void generateObjFile(boost::filesystem::path const& outputDirectory, std::string_view fileNameSuffix, uint32 mapID, uint32 tileX, uint32 tileY, MeshData const& meshData); }; } #endif diff --git a/src/tools/mmaps_generator/TileBuilder.cpp b/src/tools/mmaps_generator/TileBuilder.cpp index 2403d130584..55523311bf6 100644 --- a/src/tools/mmaps_generator/TileBuilder.cpp +++ b/src/tools/mmaps_generator/TileBuilder.cpp @@ -147,7 +147,7 @@ namespace MMAP /**************************************************************************/ TileBuilder::TileResult TileBuilder::buildMoveMapTile(uint32 mapID, uint32 tileX, uint32 tileY, MeshData& meshData, float (&bmin)[3], float (&bmax)[3], - dtNavMeshParams const* navMeshParams) + dtNavMeshParams const* navMeshParams, std::string_view fileNameSuffix) { // console output std::string tileString = Trinity::StringFormat("[Map {:04}] [{:02},{:02}]:", mapID, tileX, tileY); @@ -377,7 +377,10 @@ namespace MMAP // will hold final navmesh unsigned char* navData = nullptr; - auto debugOutputWriter = Trinity::make_unique_ptr_with_deleter(m_debugOutput ? &iv : nullptr, [borderSize = static_cast<unsigned short>(config.borderSize), outputDir = &m_outputDirectory, mapID, tileX, tileY, &meshData](IntermediateValues* intermediate) + auto debugOutputWriter = Trinity::make_unique_ptr_with_deleter(m_debugOutput ? &iv : nullptr, + [borderSize = static_cast<unsigned short>(config.borderSize), + outputDir = &m_outputDirectory, fileNameSuffix, + mapID, tileX, tileY, &meshData](IntermediateValues* intermediate) { // restore padding so that the debug visualization is correct for (std::ptrdiff_t i = 0; i < intermediate->polyMesh->nverts; ++i) @@ -387,8 +390,8 @@ namespace MMAP v[2] += borderSize; } - intermediate->generateObjFile(*outputDir, mapID, tileX, tileY, meshData); - intermediate->writeIV(*outputDir, mapID, tileX, tileY); + intermediate->generateObjFile(*outputDir, fileNameSuffix, mapID, tileX, tileY, meshData); + intermediate->writeIV(*outputDir, fileNameSuffix, mapID, tileX, tileY); }); // these values are checked within dtCreateNavMeshData - handle them here @@ -440,7 +443,8 @@ namespace MMAP return tileResult; } - void TileBuilder::saveMoveMapTileToFile(uint32 mapID, uint32 tileX, uint32 tileY, dtNavMesh* navMesh, TileResult const& tileResult) + void TileBuilder::saveMoveMapTileToFile(uint32 mapID, uint32 tileX, uint32 tileY, dtNavMesh* navMesh, + TileResult const& tileResult, std::string_view fileNameSuffix) { dtTileRef tileRef = 0; auto navMeshTile = Trinity::make_unique_ptr_with_deleter<dtTileRef*>(nullptr, [navMesh](dtTileRef const* ref) @@ -464,7 +468,7 @@ namespace MMAP } // file output - std::string fileName = Trinity::StringFormat("{}/mmaps/{:04}{:02}{:02}.mmtile", m_outputDirectory.generic_string(), mapID, tileX, tileY); + std::string fileName = Trinity::StringFormat("{}/mmaps/{:04}{:02}{:02}{}.mmtile", m_outputDirectory.generic_string(), mapID, tileX, tileY, fileNameSuffix); auto file = Trinity::make_unique_ptr_with_deleter<&::fclose>(fopen(fileName.c_str(), "wb")); if (!file) { diff --git a/src/tools/mmaps_generator/TileBuilder.h b/src/tools/mmaps_generator/TileBuilder.h index 9c6d015b6cc..203e089909d 100644 --- a/src/tools/mmaps_generator/TileBuilder.h +++ b/src/tools/mmaps_generator/TileBuilder.h @@ -18,7 +18,7 @@ #ifndef TRINITYCORE_TILE_BUILDER_H #define TRINITYCORE_TILE_BUILDER_H -#include "Define.h" +#include "Common.h" #include "Memory.h" #include "StringFormat.h" #include "TerrainBuilder.h" @@ -65,9 +65,11 @@ public: MeshData& meshData, float (&bmin)[3], float (&bmax)[3], - dtNavMeshParams const* navMeshParams); + dtNavMeshParams const* navMeshParams, + std::string_view fileNameSuffix = ""sv); - void saveMoveMapTileToFile(uint32 mapID, uint32 tileX, uint32 tileY, dtNavMesh* navMesh, TileResult const& tileResult); + void saveMoveMapTileToFile(uint32 mapID, uint32 tileX, uint32 tileY, dtNavMesh* navMesh, + TileResult const& tileResult, std::string_view fileNameSuffix = ""sv); virtual bool shouldSkipTile(uint32 mapID, uint32 tileX, uint32 tileY) const; |
