From ea9ac466221f8b4f8974d2db1c42dc4ad6126564 Mon Sep 17 00:00:00 2001 From: warboy1982 Date: Sat, 17 Mar 2018 20:18:30 +1100 Subject: [PATCH] optimize some stuff --- src/Battlescape/TileEngine.cpp | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/src/Battlescape/TileEngine.cpp b/src/Battlescape/TileEngine.cpp index 610ceb495f..b4b4d4fcfa 100644 --- a/src/Battlescape/TileEngine.cpp +++ b/src/Battlescape/TileEngine.cpp @@ -1599,34 +1599,37 @@ int TileEngine::verticalBlockage(Tile *startTile, Tile *endTile, ItemDamageType if (direction < 0) // down { - block += blockage(_save->getTile(Position(x, y, z)), O_FLOOR, type); + block += blockage(startTile, O_FLOOR, type); if (!skipObject) - block += blockage(_save->getTile(Position(x, y, z)), O_OBJECT, type, Pathfinding::DIR_DOWN); + block += blockage(startTile, O_OBJECT, type, Pathfinding::DIR_DOWN); if (x != endTile->getPosition().x || y != endTile->getPosition().y) { x = endTile->getPosition().x; y = endTile->getPosition().y; - int z = startTile->getPosition().z; - block += horizontalBlockage(startTile, _save->getTile(Position(x, y, z)), type, skipObject); - block += blockage(_save->getTile(Position(x, y, z)), O_FLOOR, type); + // z remains same as startTile + Tile *currTile = _save->getTile(Position(x, y, z)); + block += horizontalBlockage(startTile, currTile, type, skipObject); + block += blockage(currTile, O_FLOOR, type); if (!skipObject) - block += blockage(_save->getTile(Position(x, y, z)), O_OBJECT, type, Pathfinding::DIR_DOWN); + block += blockage(currTile, O_OBJECT, type, Pathfinding::DIR_DOWN); } } else if (direction > 0) // up { - block += blockage(_save->getTile(Position(x, y, z+1)), O_FLOOR, type); + z += 1; + Tile *currTile = _save->getTile(Position(x, y, z)); + block += blockage(currTile, O_FLOOR, type); if (!skipObject) - block += blockage(_save->getTile(Position(x, y, z+1)), O_OBJECT, type, Pathfinding::DIR_UP); + block += blockage(currTile, O_OBJECT, type, Pathfinding::DIR_UP); if (x != endTile->getPosition().x || y != endTile->getPosition().y) { x = endTile->getPosition().x; y = endTile->getPosition().y; - int z = startTile->getPosition().z+1; - block += horizontalBlockage(startTile, _save->getTile(Position(x, y, z)), type, skipObject); - block += blockage(_save->getTile(Position(x, y, z)), O_FLOOR, type); + currTile = _save->getTile(Position(x, y, z)); + block += horizontalBlockage(startTile, currTile, type, skipObject); + block += blockage(currTile, O_FLOOR, type); if (!skipObject) - block += blockage(_save->getTile(Position(x, y, z)), O_OBJECT, type, Pathfinding::DIR_UP); + block += blockage(currTile, O_OBJECT, type, Pathfinding::DIR_UP); } }