diff --git a/AI/VCAI/Pathfinding/AINodeStorage.cpp b/AI/VCAI/Pathfinding/AINodeStorage.cpp index 1a0e08316..0b1b3fc70 100644 --- a/AI/VCAI/Pathfinding/AINodeStorage.cpp +++ b/AI/VCAI/Pathfinding/AINodeStorage.cpp @@ -43,11 +43,11 @@ void AINodeStorage::initialize(const PathfinderOptions & options, const CGameSta { for(pos.y=0; pos.y < sizes.y; ++pos.y) { - const TerrainTile * tile = &gs->map->getTile(pos); - if(!tile->terType->isPassable()) + const TerrainTile & tile = gs->map->getTile(pos); + if(!tile.terType->isPassable()) continue; - if(tile->terType->isWater()) + if(tile.terType->isWater()) { resetTile(pos, ELayer::SAIL, PathfinderUtil::evaluateAccessibility(pos, tile, fow, player, gs)); if(useFlying) diff --git a/lib/CPathfinder.cpp b/lib/CPathfinder.cpp index 1de179386..e99cc13d4 100644 --- a/lib/CPathfinder.cpp +++ b/lib/CPathfinder.cpp @@ -45,8 +45,8 @@ void NodeStorage::initialize(const PathfinderOptions & options, const CGameState { for(pos.y=0; pos.y < sizes.y; ++pos.y) { - const TerrainTile * tile = &gs->map->getTile(pos); - if(tile->terType->isWater()) + const TerrainTile tile = gs->map->getTile(pos); + if(tile.terType->isWater()) { resetTile(pos, ELayer::SAIL, PathfinderUtil::evaluateAccessibility(pos, tile, fow, player, gs)); if(useFlying) @@ -54,7 +54,7 @@ void NodeStorage::initialize(const PathfinderOptions & options, const CGameState if(useWaterWalking) resetTile(pos, ELayer::WATER, PathfinderUtil::evaluateAccessibility(pos, tile, fow, player, gs)); } - if(tile->terType->isLand()) + if(tile.terType->isLand()) { resetTile(pos, ELayer::LAND, PathfinderUtil::evaluateAccessibility(pos, tile, fow, player, gs)); if(useFlying) diff --git a/lib/PathfinderUtil.h b/lib/PathfinderUtil.h index 063f97820..a2fb5898a 100644 --- a/lib/PathfinderUtil.h +++ b/lib/PathfinderUtil.h @@ -18,7 +18,7 @@ namespace PathfinderUtil using ELayer = EPathfindingLayer; template - CGPathNode::EAccessibility evaluateAccessibility(const int3 & pos, const TerrainTile * tinfo, FoW fow, const PlayerColor player, const CGameState * gs) + CGPathNode::EAccessibility evaluateAccessibility(const int3 & pos, const TerrainTile & tinfo, FoW fow, const PlayerColor player, const CGameState * gs) { if(!(*fow)[pos.z][pos.x][pos.y]) return CGPathNode::BLOCKED; @@ -27,15 +27,15 @@ namespace PathfinderUtil { case ELayer::LAND: case ELayer::SAIL: - if(tinfo->visitable) + if(tinfo.visitable) { - if(tinfo->visitableObjects.front()->ID == Obj::SANCTUARY && tinfo->visitableObjects.back()->ID == Obj::HERO && tinfo->visitableObjects.back()->tempOwner != player) //non-owned hero stands on Sanctuary + if(tinfo.visitableObjects.front()->ID == Obj::SANCTUARY && tinfo.visitableObjects.back()->ID == Obj::HERO && tinfo.visitableObjects.back()->tempOwner != player) //non-owned hero stands on Sanctuary { return CGPathNode::BLOCKED; } else { - for(const CGObjectInstance * obj : tinfo->visitableObjects) + for(const CGObjectInstance * obj : tinfo.visitableObjects) { if(obj->blockVisit) return CGPathNode::BLOCKVIS; @@ -46,7 +46,7 @@ namespace PathfinderUtil } } } - else if(tinfo->blocked) + else if(tinfo.blocked) { return CGPathNode::BLOCKED; } @@ -59,13 +59,13 @@ namespace PathfinderUtil break; case ELayer::WATER: - if(tinfo->blocked || tinfo->terType->isLand()) + if(tinfo.blocked || tinfo.terType->isLand()) return CGPathNode::BLOCKED; break; case ELayer::AIR: - if(tinfo->blocked || tinfo->terType->isLand()) + if(tinfo.blocked || tinfo.terType->isLand()) return CGPathNode::FLYABLE; break;