diff --git a/server/gameserver/navmeshbuilder.cc b/server/gameserver/navmeshbuilder.cc index 059b736..7b8394e 100644 --- a/server/gameserver/navmeshbuilder.cc +++ b/server/gameserver/navmeshbuilder.cc @@ -314,24 +314,8 @@ dtNavMesh* NavMeshBuilder::Build(MapInstance* map_instance) BuilderParams builder_params; InitBasic(builder_params); InitRcConfig(builder_params); - InitTileCacheParams(builder_params); - - dtStatus status; - - builder_params.tile_cache = dtAllocTileCache(); - status = builder_params.tile_cache->init(&builder_params.tcparams, - builder_params.talloc, - builder_params.tcomp, - builder_params.tmproc); - - dtNavMeshParams params; - InitNavMeshParams(builder_params, params); - builder_params.navmesh = dtAllocNavMesh(); - - status = builder_params.navmesh->init(¶ms); - if (dtStatusFailed(status)) { - abort(); - } + CreateTileCache(builder_params); + CreateNavMesh(builder_params); BuildTiles(builder_params); return builder_params.navmesh; } @@ -727,3 +711,31 @@ int NavMeshBuilder::RasterizeTileLayers(const int tx, const int ty, return n; } + +bool NavMeshBuilder::CreateTileCache(BuilderParams& builder_params) +{ + InitTileCacheParams(builder_params); + builder_params.tile_cache = dtAllocTileCache(); + dtStatus status = builder_params.tile_cache->init + (&builder_params.tcparams, + builder_params.talloc, + builder_params.tcomp, + builder_params.tmproc); + if (dtStatusFailed(status)) { + abort(); + } + return true; +} + +bool NavMeshBuilder::CreateNavMesh(BuilderParams& builder_params) +{ + dtNavMeshParams params; + InitNavMeshParams(builder_params, params); + + builder_params.navmesh = dtAllocNavMesh(); + dtStatus status = builder_params.navmesh->init(¶ms); + if (dtStatusFailed(status)) { + abort(); + } + return true; +} diff --git a/server/gameserver/navmeshbuilder.h b/server/gameserver/navmeshbuilder.h index 6586da6..e83415c 100644 --- a/server/gameserver/navmeshbuilder.h +++ b/server/gameserver/navmeshbuilder.h @@ -30,4 +30,6 @@ public: const rcConfig& cfg, TileCacheData* tiles, const int maxTiles); + bool CreateTileCache(BuilderParams& builder_params); + bool CreateNavMesh(BuilderParams& builder_params); };