This commit is contained in:
aozhiwei 2020-08-13 20:35:06 +08:00
parent 13a3180041
commit 3c4be5d3b8
2 changed files with 32 additions and 18 deletions

View File

@ -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(&params);
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(&params);
if (dtStatusFailed(status)) {
abort();
}
return true;
}

View File

@ -30,4 +30,6 @@ public:
const rcConfig& cfg,
TileCacheData* tiles,
const int maxTiles);
bool CreateTileCache(BuilderParams& builder_params);
bool CreateNavMesh(BuilderParams& builder_params);
};