aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/common/CMakeLists.txt4
-rw-r--r--src/common/Define.h6
-rw-r--r--src/common/mmaps_common/CMakeLists.txt52
-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.txt2
-rw-r--r--src/tools/mmaps_generator/CMakeLists.txt4
-rw-r--r--src/tools/mmaps_generator/PathCommon.h5
-rw-r--r--src/tools/mmaps_generator/PathGenerator.cpp2
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);