Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
MapBuilder.h
Go to the documentation of this file.
1
/*
2
* This file is part of Project SkyFire https://www.projectskyfire.org.
3
* See LICENSE.md file for Copyright information
4
*/
5
6
#ifndef _MAP_BUILDER_H
7
#define _MAP_BUILDER_H
8
9
#include <set>
10
#include <map>
11
12
#include "
TerrainBuilder.h
"
13
#include "
IntermediateValues.h
"
14
15
#include "Recast.h"
16
#include "DetourNavMesh.h"
17
18
using namespace
VMAP
;
19
20
// Keep G3D typedefs isolated from shared engine typedefs.
21
22
namespace
MMAP
23
{
24
typedef
std::map<uint32, std::set<uint32>*>
TileList
;
25
struct
Tile
26
{
27
Tile
() :
chf
(NULL),
solid
(NULL),
cset
(NULL),
pmesh
(NULL),
dmesh
(NULL) {}
28
~Tile
()
29
{
30
rcFreeCompactHeightfield(
chf
);
31
rcFreeContourSet(
cset
);
32
rcFreeHeightField(
solid
);
33
rcFreePolyMesh(
pmesh
);
34
rcFreePolyMeshDetail(
dmesh
);
35
}
36
rcCompactHeightfield*
chf
;
37
rcHeightfield*
solid
;
38
rcContourSet*
cset
;
39
rcPolyMesh*
pmesh
;
40
rcPolyMeshDetail*
dmesh
;
41
};
42
43
class
MapBuilder
44
{
45
public
:
46
MapBuilder
(
float
maxWalkableAngle = 55.0f,
47
bool
skipLiquid =
false
,
48
bool
skipContinents =
false
,
49
bool
skipJunkMaps =
true
,
50
bool
skipBattlegrounds =
false
,
51
bool
debugOutput =
false
,
52
bool
bigBaseUnit =
false
,
53
const
char
* offMeshFilePath = NULL);
54
55
~MapBuilder
();
56
57
// builds all mmap tiles for the specified map id (ignores skip settings)
58
void
buildMap
(
uint32
mapID);
59
void
buildMeshFromFile
(
char
* name);
60
61
// builds an mmap tile for the specified map and its mesh
62
void
buildSingleTile
(
uint32
mapID,
uint32
tileX,
uint32
tileY);
63
64
// builds list of maps, then builds all of mmap tiles (based on the skip settings)
65
void
buildAllMaps
(
unsigned
int
threads);
66
67
private
:
68
// detect maps and tiles
69
void
discoverTiles
();
70
std::set<uint32>*
getTileList
(
uint32
mapID);
71
72
void
buildNavMesh
(
uint32
mapID, dtNavMesh* &navMesh);
73
74
void
buildTile
(
uint32
mapID,
uint32
tileX,
uint32
tileY, dtNavMesh* navMesh);
75
76
// move map building
77
void
buildMoveMapTile
(
uint32
mapID,
78
uint32
tileX,
79
uint32
tileY,
80
MeshData
&meshData,
81
float
bmin[3],
82
float
bmax[3],
83
dtNavMesh* navMesh);
84
85
void
getTileBounds
(
uint32
tileX,
uint32
tileY,
86
float
* verts,
int
vertCount,
87
float
* bmin,
float
* bmax);
88
void
getGridBounds
(
uint32
mapID,
uint32
&minX,
uint32
&minY,
uint32
&maxX,
uint32
&maxY);
89
90
bool
shouldSkipMap
(
uint32
mapID);
91
bool
isTransportMap
(
uint32
mapID);
92
bool
shouldSkipTile
(
uint32
mapID,
uint32
tileX,
uint32
tileY);
93
94
TerrainBuilder
*
m_terrainBuilder
;
95
TileList
m_tiles
;
96
97
bool
m_debugOutput
;
98
99
const
char
*
m_offMeshFilePath
;
100
bool
m_skipContinents
;
101
bool
m_skipJunkMaps
;
102
bool
m_skipBattlegrounds
;
103
104
float
m_maxWalkableAngle
;
105
bool
m_bigBaseUnit
;
106
107
// build performance - not really used for now
108
rcContext*
m_rcContext
;
109
};
110
111
}
112
113
#endif
uint32
std::uint32_t uint32
Definition
Define.h:77
IntermediateValues.h
TerrainBuilder.h
MMAP::MapBuilder::m_offMeshFilePath
const char * m_offMeshFilePath
Definition
MapBuilder.h:99
MMAP::MapBuilder::buildMeshFromFile
void buildMeshFromFile(char *name)
Definition
MapBuilder.cpp:235
MMAP::MapBuilder::getTileList
std::set< uint32 > * getTileList(uint32 mapID)
Definition
MapBuilder.cpp:147
MMAP::MapBuilder::isTransportMap
bool isTransportMap(uint32 mapID)
Definition
MapBuilder.cpp:918
MMAP::MapBuilder::m_skipContinents
bool m_skipContinents
Definition
MapBuilder.h:100
MMAP::MapBuilder::discoverTiles
void discoverTiles()
Definition
MapBuilder.cpp:82
MMAP::MapBuilder::buildNavMesh
void buildNavMesh(uint32 mapID, dtNavMesh *&navMesh)
Definition
MapBuilder.cpp:399
MMAP::MapBuilder::m_bigBaseUnit
bool m_bigBaseUnit
Definition
MapBuilder.h:105
MMAP::MapBuilder::m_rcContext
rcContext * m_rcContext
Definition
MapBuilder.h:108
MMAP::MapBuilder::MapBuilder
MapBuilder(float maxWalkableAngle=55.0f, bool skipLiquid=false, bool skipContinents=false, bool skipJunkMaps=true, bool skipBattlegrounds=false, bool debugOutput=false, bool bigBaseUnit=false, const char *offMeshFilePath=NULL)
Definition
MapBuilder.cpp:48
MMAP::MapBuilder::buildTile
void buildTile(uint32 mapID, uint32 tileX, uint32 tileY, dtNavMesh *navMesh)
Definition
MapBuilder.cpp:360
MMAP::MapBuilder::buildMoveMapTile
void buildMoveMapTile(uint32 mapID, uint32 tileX, uint32 tileY, MeshData &meshData, float bmin[3], float bmax[3], dtNavMesh *navMesh)
Definition
MapBuilder.cpp:474
MMAP::MapBuilder::m_skipBattlegrounds
bool m_skipBattlegrounds
Definition
MapBuilder.h:102
MMAP::MapBuilder::getGridBounds
void getGridBounds(uint32 mapID, uint32 &minX, uint32 &minY, uint32 &maxX, uint32 &maxY)
Definition
MapBuilder.cpp:196
MMAP::MapBuilder::shouldSkipTile
bool shouldSkipTile(uint32 mapID, uint32 tileX, uint32 tileY)
Definition
MapBuilder.cpp:981
MMAP::MapBuilder::shouldSkipMap
bool shouldSkipMap(uint32 mapID)
Definition
MapBuilder.cpp:846
MMAP::MapBuilder::m_maxWalkableAngle
float m_maxWalkableAngle
Definition
MapBuilder.h:104
MMAP::MapBuilder::buildMap
void buildMap(uint32 mapID)
Definition
MapBuilder.cpp:309
MMAP::MapBuilder::m_tiles
TileList m_tiles
Definition
MapBuilder.h:95
MMAP::MapBuilder::m_skipJunkMaps
bool m_skipJunkMaps
Definition
MapBuilder.h:101
MMAP::MapBuilder::getTileBounds
void getTileBounds(uint32 tileX, uint32 tileY, float *verts, int vertCount, float *bmin, float *bmax)
Definition
MapBuilder.cpp:827
MMAP::MapBuilder::buildAllMaps
void buildAllMaps(unsigned int threads)
Definition
MapBuilder.cpp:159
MMAP::MapBuilder::m_debugOutput
bool m_debugOutput
Definition
MapBuilder.h:97
MMAP::MapBuilder::~MapBuilder
~MapBuilder()
Definition
MapBuilder.cpp:69
MMAP::MapBuilder::buildSingleTile
void buildSingleTile(uint32 mapID, uint32 tileX, uint32 tileY)
Definition
MapBuilder.cpp:294
MMAP::MapBuilder::m_terrainBuilder
TerrainBuilder * m_terrainBuilder
Definition
MapBuilder.h:94
MMAP::TerrainBuilder
Definition
TerrainBuilder.h:66
MMAP
Definition
MMapFactory.cpp:12
MMAP::TileList
std::map< uint32, std::set< uint32 > * > TileList
Definition
MapBuilder.h:24
VMAP
Definition
IVMapManager.h:19
MMAP::MeshData
Definition
TerrainBuilder.h:49
MMAP::Tile::pmesh
rcPolyMesh * pmesh
Definition
MapBuilder.h:39
MMAP::Tile::dmesh
rcPolyMeshDetail * dmesh
Definition
MapBuilder.h:40
MMAP::Tile::solid
rcHeightfield * solid
Definition
MapBuilder.h:37
MMAP::Tile::cset
rcContourSet * cset
Definition
MapBuilder.h:38
MMAP::Tile::chf
rcCompactHeightfield * chf
Definition
MapBuilder.h:36
MMAP::Tile::~Tile
~Tile()
Definition
MapBuilder.h:28
MMAP::Tile::Tile
Tile()
Definition
MapBuilder.h:27
src
tools
mmaps_generator
MapBuilder.h
Generated on
for Project SkyFire Core by
1.17.0