From 72b2c19a55b6fe5c754a5f5329b2269e843bd493 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Fri, 14 Aug 2020 14:32:24 +0800 Subject: [PATCH] 1 --- server/gameserver/navmeshbuilder.cc | 22 ++++++++++++---------- server/gameserver/navmeshhelper.h | 11 ++++++----- 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/server/gameserver/navmeshbuilder.cc b/server/gameserver/navmeshbuilder.cc index df92e39..e0a6a82 100644 --- a/server/gameserver/navmeshbuilder.cc +++ b/server/gameserver/navmeshbuilder.cc @@ -36,11 +36,13 @@ void NavMeshBuilder::InitBuilderParams(BuilderParams& builder_params) rcCalcGridSize(builder_params.gemo->GetMeshBoundsMin(), builder_params.gemo->GetMeshBoundsMax(), builder_params.kCellSize, - &builder_params.gw, - &builder_params.gh); - builder_params.ts = (int)builder_params.kTileSize; - builder_params.tw = (builder_params.gw + builder_params.ts-1) / builder_params.ts; - builder_params.th = (builder_params.gh + builder_params.ts-1) / builder_params.ts; + &builder_params.grid_width, + &builder_params.grid_height); + builder_params.tile_size = (int)builder_params.kTileSize; + builder_params.tile_width = (builder_params.grid_width + builder_params.tile_size-1) / + builder_params.tile_size; + builder_params.tile_height = (builder_params.grid_height + builder_params.tile_size-1) / + builder_params.tile_size; } void NavMeshBuilder::InitTileCacheParams(BuilderParams& builder_params, dtTileCacheParams& tcparams) @@ -56,7 +58,7 @@ void NavMeshBuilder::InitTileCacheParams(BuilderParams& builder_params, dtTileCa tcparams.walkableRadius = builder_params.kAgentRadius; tcparams.walkableClimb = builder_params.kAgentMaxClimb; tcparams.maxSimplificationError = builder_params.kEdgeMaxError; - tcparams.maxTiles = builder_params.tw * builder_params.th * EXPECTED_LAYERS_PER_TILE; + tcparams.maxTiles = builder_params.tile_width * builder_params.tile_height * EXPECTED_LAYERS_PER_TILE; tcparams.maxObstacles = 128; } @@ -95,8 +97,8 @@ void NavMeshBuilder::BuildTiles(BuilderParams& builder_params) rcVcopy(cfg.bmin, builder_params.gemo->GetMeshBoundsMin()); rcVcopy(cfg.bmax, builder_params.gemo->GetMeshBoundsMax()); } - for (int y = 0; y < builder_params.th; ++y) { - for (int x = 0; x < builder_params.tw; ++x) { + for (int y = 0; y < builder_params.tile_height; ++y) { + for (int x = 0; x < builder_params.tile_width; ++x) { TileCacheData tiles[MAX_LAYERS]; memset(tiles, 0, sizeof(tiles)); int ntiles = RasterizeTileLayers(x, y, cfg, tiles, MAX_LAYERS); @@ -117,8 +119,8 @@ void NavMeshBuilder::BuildTiles(BuilderParams& builder_params) } // Build initial meshes - for (int y = 0; y < builder_params.th; ++y) { - for (int x = 0; x < builder_params.tw; ++x) { + for (int y = 0; y < builder_params.tile_height; ++y) { + for (int x = 0; x < builder_params.tile_width; ++x) { builder_params.tile_cache->buildNavMeshTilesAt(x,y, builder_params.navmesh); } } diff --git a/server/gameserver/navmeshhelper.h b/server/gameserver/navmeshhelper.h index 6396856..29626d9 100644 --- a/server/gameserver/navmeshhelper.h +++ b/server/gameserver/navmeshhelper.h @@ -285,14 +285,15 @@ struct BuilderParams const int kMaxTiles = 0; const int kMaxPolysPerTile = 0; - int gw = 0; - int gh = 0; - int ts = 0; - int tw = 0; - int th = 0; + int grid_width = 0; + int grid_height = 0; + int tile_size = 0; + int tile_width = 0; + int tile_height = 0; MapInstance* map_instance = nullptr; InputGeom* gemo = nullptr; dtNavMesh* navmesh = nullptr; dtTileCache* tile_cache = nullptr; }; +