diff options
| author | Shauren <shauren.trinity@gmail.com> | 2025-11-06 18:34:58 +0100 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2025-11-06 18:34:58 +0100 |
| commit | f439120b1f8c4f5a5c3fc0deb6aa01bf971e4fdf (patch) | |
| tree | 4eb1ec603a6ef879188dff1fc42566465d4c2f3e /src | |
| parent | 73c1a76ab5c031e74e543d7eb7bb59a9f20430d2 (diff) | |
Tools/mmaps_generator: Move TerrainBuilder to a shared project
Diffstat (limited to 'src')
| -rw-r--r-- | src/common/CMakeLists.txt | 4 | ||||
| -rw-r--r-- | src/common/Define.h | 6 | ||||
| -rw-r--r-- | src/common/mmaps_common/CMakeLists.txt | 52 | ||||
| -rw-r--r-- | src/common/mmaps_common/Generator/IntermediateValues.cpp (renamed from src/tools/mmaps_generator/IntermediateValues.cpp) | 0 | ||||
| -rw-r--r-- | src/common/mmaps_common/Generator/IntermediateValues.h (renamed from src/tools/mmaps_generator/IntermediateValues.h) | 0 | ||||
| -rw-r--r-- | src/common/mmaps_common/Generator/TerrainBuilder.cpp (renamed from src/tools/mmaps_generator/TerrainBuilder.cpp) | 2 | ||||
| -rw-r--r-- | src/common/mmaps_common/Generator/TerrainBuilder.h (renamed from src/tools/mmaps_generator/TerrainBuilder.h) | 4 | ||||
| -rw-r--r-- | src/common/mmaps_common/Generator/TileBuilder.cpp (renamed from src/tools/mmaps_generator/TileBuilder.cpp) | 3 | ||||
| -rw-r--r-- | src/common/mmaps_common/Generator/TileBuilder.h (renamed from src/tools/mmaps_generator/TileBuilder.h) | 2 | ||||
| -rw-r--r-- | src/common/mmaps_common/MMapDefines.h (renamed from src/common/Collision/Maps/MMapDefines.h) | 0 | ||||
| -rw-r--r-- | src/common/mmaps_common/Management/MMapManager.cpp (renamed from src/common/Collision/Management/MMapManager.cpp) | 0 | ||||
| -rw-r--r-- | src/common/mmaps_common/Management/MMapManager.h (renamed from src/common/Collision/Management/MMapManager.h) | 2 | ||||
| -rw-r--r-- | src/server/game/CMakeLists.txt | 2 | ||||
| -rw-r--r-- | src/tools/mmaps_generator/CMakeLists.txt | 4 | ||||
| -rw-r--r-- | src/tools/mmaps_generator/PathCommon.h | 5 | ||||
| -rw-r--r-- | src/tools/mmaps_generator/PathGenerator.cpp | 2 |
16 files changed, 73 insertions, 15 deletions
diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt index 8b8ecc0f471..4aef665cc6f 100644 --- a/src/common/CMakeLists.txt +++ b/src/common/CMakeLists.txt @@ -15,6 +15,7 @@ CollectSourceFiles( ${CMAKE_CURRENT_SOURCE_DIR}/Debugging/Windows ${CMAKE_CURRENT_SOURCE_DIR}/Platform ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders + ${CMAKE_CURRENT_SOURCE_DIR}/mmaps_common ${CMAKE_CURRENT_SOURCE_DIR}/network) if(WIN32) @@ -47,6 +48,7 @@ CollectIncludeDirectories( PUBLIC_INCLUDES # Exclude ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders + ${CMAKE_CURRENT_SOURCE_DIR}/mmaps_common ${CMAKE_CURRENT_SOURCE_DIR}/network) target_include_directories(common @@ -65,7 +67,6 @@ target_link_libraries(common boost fmt g3dlib - Detour sfmt utf8cpp openssl @@ -104,4 +105,5 @@ unset(PRIVATE_SOURCES) unset(PRIVATE_PCH_HEADER) unset(PUBLIC_INCLUDES) +add_subdirectory(mmaps_common) add_subdirectory(network) diff --git a/src/common/Define.h b/src/common/Define.h index f918db84314..32862f71530 100644 --- a/src/common/Define.h +++ b/src/common/Define.h @@ -129,6 +129,12 @@ # define TC_GAME_API TC_API_IMPORT #endif +#ifdef TRINITY_API_EXPORT_MMAPS_COMMON +# define TC_MMAPS_COMMON_API TC_API_EXPORT +#else +# define TC_MMAPS_COMMON_API TC_API_IMPORT +#endif + #define UI64FMTD "%" PRIu64 #define UI64LIT(N) UINT64_C(N) diff --git a/src/common/mmaps_common/CMakeLists.txt b/src/common/mmaps_common/CMakeLists.txt new file mode 100644 index 00000000000..2a65e8d5963 --- /dev/null +++ b/src/common/mmaps_common/CMakeLists.txt @@ -0,0 +1,52 @@ +# This file is part of the TrinityCore Project. See AUTHORS file for Copyright information +# +# This file is free software; as a special exception the author gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +CollectSourceFiles( + ${CMAKE_CURRENT_SOURCE_DIR} + PRIVATE_SOURCES) + +GroupSources(${CMAKE_CURRENT_SOURCE_DIR}) + +CollectIncludeDirectories( + ${CMAKE_CURRENT_SOURCE_DIR} + PUBLIC_INCLUDES +) + +add_library(mmaps_common ${PRIVATE_SOURCES}) + +target_link_libraries(mmaps_common + PRIVATE + trinity-core-interface + PUBLIC + common + Recast + Detour) + +target_include_directories(mmaps_common + PUBLIC + ${PUBLIC_INCLUDES}) + +set_target_properties(mmaps_common + PROPERTIES + COMPILE_WARNING_AS_ERROR ${WITH_WARNINGS_AS_ERRORS} + DEFINE_SYMBOL TRINITY_API_EXPORT_MMAPS_COMMON + FOLDER "tools") + +if(BUILD_SHARED_LIBS) + if(UNIX) + install(TARGETS mmaps_common + LIBRARY + DESTINATION lib) + elseif(WIN32) + install(TARGETS mmaps_common + RUNTIME + DESTINATION "${CMAKE_INSTALL_PREFIX}") + endif() +endif() diff --git a/src/tools/mmaps_generator/IntermediateValues.cpp b/src/common/mmaps_common/Generator/IntermediateValues.cpp index 858ac25d418..858ac25d418 100644 --- a/src/tools/mmaps_generator/IntermediateValues.cpp +++ b/src/common/mmaps_common/Generator/IntermediateValues.cpp diff --git a/src/tools/mmaps_generator/IntermediateValues.h b/src/common/mmaps_common/Generator/IntermediateValues.h index f8578683e61..f8578683e61 100644 --- a/src/tools/mmaps_generator/IntermediateValues.h +++ b/src/common/mmaps_common/Generator/IntermediateValues.h diff --git a/src/tools/mmaps_generator/TerrainBuilder.cpp b/src/common/mmaps_common/Generator/TerrainBuilder.cpp index e93f2b5a57d..449a5cb7557 100644 --- a/src/tools/mmaps_generator/TerrainBuilder.cpp +++ b/src/common/mmaps_common/Generator/TerrainBuilder.cpp @@ -29,6 +29,8 @@ namespace MMAP { + std::unique_ptr<VMAP::VMapManager> (*CreateVMapManager)(uint32 mapId); + TerrainBuilder::TerrainBuilder(boost::filesystem::path const& inputDirectory, bool skipLiquid) : m_inputDirectory(inputDirectory), m_skipLiquid (skipLiquid) diff --git a/src/tools/mmaps_generator/TerrainBuilder.h b/src/common/mmaps_common/Generator/TerrainBuilder.h index 65ebe4508a9..a16d1669425 100644 --- a/src/tools/mmaps_generator/TerrainBuilder.h +++ b/src/common/mmaps_common/Generator/TerrainBuilder.h @@ -79,7 +79,7 @@ namespace MMAP std::vector<unsigned short> offMeshConnectionsFlags; }; - class TerrainBuilder + class TC_MMAPS_COMMON_API TerrainBuilder { public: explicit TerrainBuilder(boost::filesystem::path const& inputDirectory, bool skipLiquid); @@ -125,6 +125,8 @@ namespace MMAP /// Get the liquid type for a specific position static map_liquidHeaderTypeFlags getLiquidType(int square, map_liquidHeaderTypeFlags const (&liquid_type)[16][16]); }; + + TC_MMAPS_COMMON_API extern std::unique_ptr<VMAP::VMapManager> (*CreateVMapManager)(uint32 mapId); } #endif diff --git a/src/tools/mmaps_generator/TileBuilder.cpp b/src/common/mmaps_common/Generator/TileBuilder.cpp index 5654a14183c..31ec90a83da 100644 --- a/src/tools/mmaps_generator/TileBuilder.cpp +++ b/src/common/mmaps_common/Generator/TileBuilder.cpp @@ -20,7 +20,6 @@ #include "Log.h" #include "MMapDefines.h" #include "Memory.h" -#include "PathCommon.h" #include "StringFormat.h" #include "VMapManager.h" #include <DetourNavMeshBuilder.h> @@ -98,7 +97,7 @@ namespace MMAP MeshData meshData; - std::unique_ptr<VMAP::VMapManager> vmapManager = VMapFactory::CreateVMapManager(mapID); + std::unique_ptr<VMAP::VMapManager> vmapManager = CreateVMapManager(mapID); // get heightmap data m_terrainBuilder.loadMap(mapID, tileX, tileY, meshData, vmapManager.get()); diff --git a/src/tools/mmaps_generator/TileBuilder.h b/src/common/mmaps_common/Generator/TileBuilder.h index f7c4806c515..f3492e51a2e 100644 --- a/src/tools/mmaps_generator/TileBuilder.h +++ b/src/common/mmaps_common/Generator/TileBuilder.h @@ -31,7 +31,7 @@ struct TileConfig; using detour_unique_ptr = std::unique_ptr<unsigned char, decltype(Trinity::unique_ptr_deleter<unsigned char*, &::dtFree>())>; -class TileBuilder +class TC_MMAPS_COMMON_API TileBuilder { public: TileBuilder(boost::filesystem::path const& inputDirectory, diff --git a/src/common/Collision/Maps/MMapDefines.h b/src/common/mmaps_common/MMapDefines.h index 522112ebe62..522112ebe62 100644 --- a/src/common/Collision/Maps/MMapDefines.h +++ b/src/common/mmaps_common/MMapDefines.h diff --git a/src/common/Collision/Management/MMapManager.cpp b/src/common/mmaps_common/Management/MMapManager.cpp index d0862a49156..d0862a49156 100644 --- a/src/common/Collision/Management/MMapManager.cpp +++ b/src/common/mmaps_common/Management/MMapManager.cpp diff --git a/src/common/Collision/Management/MMapManager.h b/src/common/mmaps_common/Management/MMapManager.h index b48b773555b..87c09d65e6b 100644 --- a/src/common/Collision/Management/MMapManager.h +++ b/src/common/mmaps_common/Management/MMapManager.h @@ -45,7 +45,7 @@ namespace MMAP // singleton class // holds all all access to mmap loading unloading and meshes - class TC_COMMON_API MMapManager + class TC_MMAPS_COMMON_API MMapManager { public: MMapManager(); diff --git a/src/server/game/CMakeLists.txt b/src/server/game/CMakeLists.txt index ccd18ef8e62..8ebf8075eeb 100644 --- a/src/server/game/CMakeLists.txt +++ b/src/server/game/CMakeLists.txt @@ -37,7 +37,7 @@ target_include_directories(game-interface target_link_libraries(game-interface INTERFACE shared - Detour) + mmaps_common) add_library(game ${PRIVATE_SOURCES}) diff --git a/src/tools/mmaps_generator/CMakeLists.txt b/src/tools/mmaps_generator/CMakeLists.txt index 5b3bf0e20d8..10c26c81f69 100644 --- a/src/tools/mmaps_generator/CMakeLists.txt +++ b/src/tools/mmaps_generator/CMakeLists.txt @@ -17,10 +17,8 @@ add_executable(mmaps_generator ${PRIVATE_SOURCES}) target_link_libraries(mmaps_generator PRIVATE trinity-core-interface - PUBLIC extractor_common - Recast - zlib) + mmaps_common) CollectIncludeDirectories( ${CMAKE_CURRENT_SOURCE_DIR} diff --git a/src/tools/mmaps_generator/PathCommon.h b/src/tools/mmaps_generator/PathCommon.h index 3ab2c43afda..f348b53aa1f 100644 --- a/src/tools/mmaps_generator/PathCommon.h +++ b/src/tools/mmaps_generator/PathCommon.h @@ -98,11 +98,6 @@ namespace MMAP }; extern std::unordered_map<uint32, MapEntry> sMapStore; - - namespace VMapFactory - { - std::unique_ptr<VMAP::VMapManager> CreateVMapManager(uint32 mapId); -} } #endif diff --git a/src/tools/mmaps_generator/PathGenerator.cpp b/src/tools/mmaps_generator/PathGenerator.cpp index 452c63855fc..7204da980a3 100644 --- a/src/tools/mmaps_generator/PathGenerator.cpp +++ b/src/tools/mmaps_generator/PathGenerator.cpp @@ -488,6 +488,8 @@ int main(int argc, char** argv) LoadMap(inputDirectory, dbcLocales[0], silent, -4); + MMAP::CreateVMapManager = &MMAP::VMapFactory::CreateVMapManager; + MMAP::MapBuilder builder(inputDirectory, outputDirectory, maxAngle, maxAngleNotSteep, skipLiquid, skipContinents, skipJunkMaps, skipBattlegrounds, debugOutput, bigBaseUnit, mapnum, offMeshInputPath, threads); |
