mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-02-06 08:59:11 +01:00
Tools/mmaps_generator: Add optional file name suffix to tile files
This commit is contained in:
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user