mirror of https://github.com/OpenTTD/OpenTTD
Codechange: use functions described in documentation, instead of related other functions
parent
8ed983b3cd
commit
4a4c77ff04
|
@ -367,12 +367,19 @@ static int32_t LookupWithBuildOnSlopes(::Slope slope, const Array<> &existing, i
|
||||||
*/
|
*/
|
||||||
static bool NormaliseTileOffset(int32_t *tile)
|
static bool NormaliseTileOffset(int32_t *tile)
|
||||||
{
|
{
|
||||||
if (*tile == 1 || *tile == -1) return true;
|
if (*tile == ScriptMap::GetTileIndex(-1, 0)) {
|
||||||
if (*tile == ::TileDiffXY(0, -1)) {
|
*tile = -1;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (*tile == ScriptMap::GetTileIndex(1, 0)) {
|
||||||
|
*tile = 1;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (*tile == ScriptMap::GetTileIndex(0, -1)) {
|
||||||
*tile = -2;
|
*tile = -2;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if (*tile == ::TileDiffXY(0, 1)) {
|
if (*tile == ScriptMap::GetTileIndex(0, 1)) {
|
||||||
*tile = 2;
|
*tile = 2;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -405,8 +412,12 @@ static bool NormaliseTileOffset(int32_t *tile)
|
||||||
if (!::IsValidTile(tile) || !::IsValidTile(start) || !::IsValidTile(end)) return -1;
|
if (!::IsValidTile(tile) || !::IsValidTile(start) || !::IsValidTile(end)) return -1;
|
||||||
if (::DistanceManhattan(tile, start) != 1 || ::DistanceManhattan(tile, end) != 1) return -1;
|
if (::DistanceManhattan(tile, start) != 1 || ::DistanceManhattan(tile, end) != 1) return -1;
|
||||||
|
|
||||||
/* ROAD_NW ROAD_SW ROAD_SE ROAD_NE */
|
const TileIndex neighbours[] = {
|
||||||
const TileIndexDiff neighbours[] = {::TileDiffXY(0, -1), ::TileDiffXY(1, 0), ::TileDiffXY(0, 1), ::TileDiffXY(-1, 0)};
|
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;
|
::RoadBits rb = ::ROAD_NONE;
|
||||||
if (::IsNormalRoadTile(tile)) {
|
if (::IsNormalRoadTile(tile)) {
|
||||||
|
@ -417,7 +428,7 @@ static bool NormaliseTileOffset(int32_t *tile)
|
||||||
|
|
||||||
Array<> existing;
|
Array<> existing;
|
||||||
for (uint i = 0; i < lengthof(neighbours); i++) {
|
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);
|
return ScriptRoad::CanBuildConnectedRoadParts(ScriptTile::GetSlope(tile), std::move(existing), start - tile, end - tile);
|
||||||
|
|
Loading…
Reference in New Issue