aboutsummaryrefslogtreecommitdiff
path: root/src/tools
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2013-06-18 21:04:31 +0200
committerShauren <shauren.trinity@gmail.com>2013-06-18 21:04:31 +0200
commitf517467817207a75cbe395ec96de2dceb0cac5da (patch)
tree80457050fd0d460565895aba21ba285cbf323f86 /src/tools
parent3367dd5be93b8e63dce41fe6e303aa8ec41a43db (diff)
parent89ec90753914ae89b2dbbc7a343cd8a667410af3 (diff)
Merge branch 'master' of github.com:TrinityCore/TrinityCore into 4.3.4
Diffstat (limited to 'src/tools')
-rw-r--r--src/tools/mmaps_generator/Info/readme.txt4
-rw-r--r--src/tools/mmaps_generator/MapBuilder.cpp179
-rw-r--r--src/tools/mmaps_generator/MapBuilder.h2
-rw-r--r--src/tools/mmaps_generator/PathGenerator.cpp2
-rw-r--r--src/tools/mmaps_generator/TerrainBuilder.h2
5 files changed, 91 insertions, 98 deletions
diff --git a/src/tools/mmaps_generator/Info/readme.txt b/src/tools/mmaps_generator/Info/readme.txt
index ff3f2f43526..bde8e61b080 100644
--- a/src/tools/mmaps_generator/Info/readme.txt
+++ b/src/tools/mmaps_generator/Info/readme.txt
@@ -8,7 +8,7 @@ Generator command line args
"map_id tile_x,tile_y (start_x start_y start_z) (end_x end_y end_z) size //optional comments"
Single mesh connection per line.
---silent Make us script friendly. Do not wait for user input
+--silent [] Make us script friendly. Do not wait for user input
on error or completion.
--bigBaseUnit [true|false] Generate tile/map using bigger basic unit.
@@ -20,7 +20,7 @@ Generator command line args
float between 45 and 90 degrees (default 60)
---skipLiquid liquid data for maps
+--skipLiquid [true|false] extract liquid data for maps
false: include liquid data (default)
diff --git a/src/tools/mmaps_generator/MapBuilder.cpp b/src/tools/mmaps_generator/MapBuilder.cpp
index cd85d926125..d4192571454 100644
--- a/src/tools/mmaps_generator/MapBuilder.cpp
+++ b/src/tools/mmaps_generator/MapBuilder.cpp
@@ -36,7 +36,7 @@ namespace DisableMgr
}
#define MMAP_MAGIC 0x4d4d4150 // 'MMAP'
-#define MMAP_VERSION 3
+#define MMAP_VERSION 4
struct MmapTileHeader
{
@@ -332,12 +332,12 @@ namespace MMAP
buildNavMesh(mapID, navMesh);
if (!navMesh)
{
- printf("[Map %i] Failed creating navmesh!\n", mapID);
+ printf("[Map %03i] Failed creating navmesh!\n", mapID);
return;
}
// now start building mmtiles for each tile
- printf("[Map %i] We have %u tiles. \n", mapID, (unsigned int)tiles->size());
+ printf("[Map %03i] We have %u tiles. \n", mapID, (unsigned int)tiles->size());
for (std::set<uint32>::iterator it = tiles->begin(); it != tiles->end(); ++it)
{
uint32 tileX, tileY;
@@ -354,13 +354,13 @@ namespace MMAP
dtFreeNavMesh(navMesh);
}
- printf("[Map %i] Complete!\n", mapID);
+ printf("[Map %03i] Complete!\n", mapID);
}
/**************************************************************************/
void MapBuilder::buildTile(uint32 mapID, uint32 tileX, uint32 tileY, dtNavMesh* navMesh)
{
- printf("[Map %i] Building tile [%02u,%02u]\n", mapID, tileX, tileY);
+ printf("[Map %03i] Building tile [%02u,%02u]\n", mapID, tileX, tileY);
MeshData meshData;
@@ -446,10 +446,10 @@ namespace MMAP
navMeshParams.maxPolys = maxPolysPerTile;
navMesh = dtAllocNavMesh();
- printf("[Map %i] Creating navMesh...\n", mapID);
+ printf("[Map %03i] Creating navMesh...\n", mapID);
if (!navMesh->init(&navMeshParams))
{
- printf("[Map %i] Failed creating navmesh! \n", mapID);
+ printf("[Map %03i] Failed creating navmesh! \n", mapID);
return;
}
@@ -461,7 +461,7 @@ namespace MMAP
{
dtFreeNavMesh(navMesh);
char message[1024];
- sprintf(message, "[Map %i] Failed to open %s for writing!\n", mapID, fileName);
+ sprintf(message, "[Map %03i] Failed to open %s for writing!\n", mapID, fileName);
perror(message);
return;
}
@@ -496,8 +496,8 @@ namespace MMAP
// these are WORLD UNIT based metrics
// this are basic unit dimentions
- // value have to divide GRID_SIZE(533.33333f) ( aka: 0.5333, 0.2666, 0.3333, 0.1333, etc )
- const static float BASE_UNIT_DIM = m_bigBaseUnit ? 0.533333f : 0.266666f;
+ // value have to divide GRID_SIZE(533.3333f) ( aka: 0.5333, 0.2666, 0.3333, 0.1333, etc )
+ const static float BASE_UNIT_DIM = m_bigBaseUnit ? 0.5333333f : 0.2666666f;
// All are in UNIT metrics!
const static int VERTEX_PER_MAP = int(GRID_SIZE/BASE_UNIT_DIM + 0.5f);
@@ -517,12 +517,12 @@ namespace MMAP
config.tileSize = VERTEX_PER_TILE;
config.walkableRadius = m_bigBaseUnit ? 1 : 2;
config.borderSize = config.walkableRadius + 3;
- config.maxEdgeLen = VERTEX_PER_TILE + 1; //anything bigger than tileSize
- config.walkableHeight = m_bigBaseUnit ? 3 : 6;
- config.walkableClimb = m_bigBaseUnit ? 2 : 4; // keep less than walkableHeight
+ config.maxEdgeLen = VERTEX_PER_TILE + 1; // anything bigger than tileSize
+ config.walkableHeight = m_bigBaseUnit ? 2 : 4;
+ config.walkableClimb = m_bigBaseUnit ? 1 : 2; // keep less than walkableHeight
config.minRegionArea = rcSqr(60);
config.mergeRegionArea = rcSqr(50);
- config.maxSimplificationError = 2.0f; // eliminates most jagged edges (tinny polygons)
+ config.maxSimplificationError = 1.8f; // eliminates most jagged edges (tiny polygons)
config.detailSampleDist = config.cs * 64;
config.detailSampleMaxError = config.ch * 2;
@@ -677,14 +677,6 @@ namespace MMAP
delete[] tiles;
- // remove padding for extraction
- for (int i = 0; i < iv.polyMesh->nverts; ++i)
- {
- unsigned short* v = &iv.polyMesh->verts[i*3];
- v[0] -= (unsigned short)config.borderSize;
- v[2] -= (unsigned short)config.borderSize;
- }
-
// set polygons as walkable
// TODO: special flags for DYNAMIC polygons, ie surfaces that can be turned on and off
for (int i = 0; i < iv.polyMesh->npolys; ++i)
@@ -723,8 +715,9 @@ namespace MMAP
rcVcopy(params.bmax, bmax);
params.cs = config.cs;
params.ch = config.ch;
- params.tileSize = VERTEX_PER_MAP;
-
+ params.tileLayer = 0;
+ params.buildBvTree = true;
+
// will hold final navmesh
unsigned char* navData = NULL;
int navDataSize = 0;
@@ -792,7 +785,7 @@ namespace MMAP
if (!file)
{
char message[1024];
- sprintf(message, "[Map %i] Failed to open %s for writing!\n", mapID, fileName);
+ sprintf(message, "[Map %03i] Failed to open %s for writing!\n", mapID, fileName);
perror(message);
navMesh->removeTile(tileRef, NULL, NULL);
continue;
@@ -854,50 +847,50 @@ namespace MMAP
{
if (m_skipContinents)
switch (mapID)
- {
- case 0:
- case 1:
- case 530:
- case 571:
- return true;
- default:
- break;
- }
+ {
+ case 0:
+ case 1:
+ case 530:
+ case 571:
+ return true;
+ default:
+ break;
+ }
if (m_skipJunkMaps)
switch (mapID)
- {
- case 13: // test.wdt
- case 25: // ScottTest.wdt
- case 29: // Test.wdt
- case 42: // Colin.wdt
- case 169: // EmeraldDream.wdt (unused, and very large)
- case 451: // development.wdt
- case 573: // ExteriorTest.wdt
- case 597: // CraigTest.wdt
- case 605: // development_nonweighted.wdt
- case 606: // QA_DVD.wdt
- return true;
- default:
- if (isTransportMap(mapID))
+ {
+ case 13: // test.wdt
+ case 25: // ScottTest.wdt
+ case 29: // Test.wdt
+ case 42: // Colin.wdt
+ case 169: // EmeraldDream.wdt (unused, and very large)
+ case 451: // development.wdt
+ case 573: // ExteriorTest.wdt
+ case 597: // CraigTest.wdt
+ case 605: // development_nonweighted.wdt
+ case 606: // QA_DVD.wdt
return true;
- break;
- }
+ default:
+ if (isTransportMap(mapID))
+ return true;
+ break;
+ }
if (m_skipBattlegrounds)
switch (mapID)
- {
- case 30: // AV
- case 37: // ?
- case 489: // WSG
- case 529: // AB
- case 566: // EotS
- case 607: // SotA
- case 628: // IoC
- return true;
- default:
- break;
- }
+ {
+ case 30: // AV
+ case 37: // ?
+ case 489: // WSG
+ case 529: // AB
+ case 566: // EotS
+ case 607: // SotA
+ case 628: // IoC
+ return true;
+ default:
+ break;
+ }
return false;
}
@@ -908,37 +901,37 @@ namespace MMAP
switch (mapID)
{
// transport maps
- case 582:
- case 584:
- case 586:
- case 587:
- case 588:
- case 589:
- case 590:
- case 591:
- case 592:
- case 593:
- case 594:
- case 596:
- case 610:
- case 612:
- case 613:
- case 614:
- case 620:
- case 621:
- case 622:
- case 623:
- case 641:
- case 642:
- case 647:
- case 672:
- case 673:
- case 712:
- case 713:
- case 718:
- return true;
- default:
- return false;
+ case 582:
+ case 584:
+ case 586:
+ case 587:
+ case 588:
+ case 589:
+ case 590:
+ case 591:
+ case 592:
+ case 593:
+ case 594:
+ case 596:
+ case 610:
+ case 612:
+ case 613:
+ case 614:
+ case 620:
+ case 621:
+ case 622:
+ case 623:
+ case 641:
+ case 642:
+ case 647:
+ case 672:
+ case 673:
+ case 712:
+ case 713:
+ case 718:
+ return true;
+ default:
+ return false;
}
}
diff --git a/src/tools/mmaps_generator/MapBuilder.h b/src/tools/mmaps_generator/MapBuilder.h
index 3ffaea0ab66..6ab0b312af8 100644
--- a/src/tools/mmaps_generator/MapBuilder.h
+++ b/src/tools/mmaps_generator/MapBuilder.h
@@ -61,7 +61,7 @@ namespace MMAP
class MapBuilder
{
public:
- MapBuilder(float maxWalkableAngle = 60.f,
+ MapBuilder(float maxWalkableAngle = 55.f,
bool skipLiquid = false,
bool skipContinents = false,
bool skipJunkMaps = true,
diff --git a/src/tools/mmaps_generator/PathGenerator.cpp b/src/tools/mmaps_generator/PathGenerator.cpp
index 47d35b517d5..ed114491b27 100644
--- a/src/tools/mmaps_generator/PathGenerator.cpp
+++ b/src/tools/mmaps_generator/PathGenerator.cpp
@@ -242,7 +242,7 @@ int finish(const char* message, int returnValue)
int main(int argc, char** argv)
{
int threads = 3, mapnum = -1;
- float maxAngle = 60.0f;
+ float maxAngle = 55.0f;
int tileX = -1, tileY = -1;
bool skipLiquid = false,
skipContinents = false,
diff --git a/src/tools/mmaps_generator/TerrainBuilder.h b/src/tools/mmaps_generator/TerrainBuilder.h
index 069a5a94c84..e9ff2a3c175 100644
--- a/src/tools/mmaps_generator/TerrainBuilder.h
+++ b/src/tools/mmaps_generator/TerrainBuilder.h
@@ -47,7 +47,7 @@ namespace MMAP
static const int V9_SIZE_SQ = V9_SIZE*V9_SIZE;
static const int V8_SIZE = 128;
static const int V8_SIZE_SQ = V8_SIZE*V8_SIZE;
- static const float GRID_SIZE = 533.33333f;
+ static const float GRID_SIZE = 533.3333f;
static const float GRID_PART_SIZE = GRID_SIZE/V8_SIZE;
// see contrib/extractor/system.cpp, CONF_use_minHeight