1
0
Fork 0

Codechange: use functions described in documentation, instead of related other functions

pull/13030/head
Rubidium 2024-10-22 16:39:16 +02:00 committed by rubidium42
parent 8ed983b3cd
commit 4a4c77ff04
1 changed files with 17 additions and 6 deletions

View File

@ -367,12 +367,19 @@ static int32_t LookupWithBuildOnSlopes(::Slope slope, const Array<> &existing, i
*/
static bool NormaliseTileOffset(int32_t *tile)
{
if (*tile == 1 || *tile == -1) return true;
if (*tile == ::TileDiffXY(0, -1)) {
if (*tile == ScriptMap::GetTileIndex(-1, 0)) {
*tile = -1;
return true;
}
if (*tile == ScriptMap::GetTileIndex(1, 0)) {
*tile = 1;
return true;
}
if (*tile == ScriptMap::GetTileIndex(0, -1)) {
*tile = -2;
return true;
}
if (*tile == ::TileDiffXY(0, 1)) {
if (*tile == ScriptMap::GetTileIndex(0, 1)) {
*tile = 2;
return true;
}
@ -405,8 +412,12 @@ static bool NormaliseTileOffset(int32_t *tile)
if (!::IsValidTile(tile) || !::IsValidTile(start) || !::IsValidTile(end)) return -1;
if (::DistanceManhattan(tile, start) != 1 || ::DistanceManhattan(tile, end) != 1) return -1;
/* ROAD_NW ROAD_SW ROAD_SE ROAD_NE */
const TileIndexDiff neighbours[] = {::TileDiffXY(0, -1), ::TileDiffXY(1, 0), ::TileDiffXY(0, 1), ::TileDiffXY(-1, 0)};
const TileIndex neighbours[] = {
ScriptMap::GetTileIndex(0, -1), // ROAD_NW
ScriptMap::GetTileIndex(1, 0), // ROAD_SW
ScriptMap::GetTileIndex(0, 1), // ROAD_SE
ScriptMap::GetTileIndex(-1, 0), // ROAD_NE
};
::RoadBits rb = ::ROAD_NONE;
if (::IsNormalRoadTile(tile)) {
@ -417,7 +428,7 @@ static bool NormaliseTileOffset(int32_t *tile)
Array<> existing;
for (uint i = 0; i < lengthof(neighbours); i++) {
if (HasBit(rb, i)) existing.emplace_back(neighbours[i]);
if (HasBit(rb, i)) existing.emplace_back(neighbours[i].base());
}
return ScriptRoad::CanBuildConnectedRoadParts(ScriptTile::GetSlope(tile), std::move(existing), start - tile, end - tile);