diff --git a/src/pathfinder/water_regions.cpp b/src/pathfinder/water_regions.cpp index 6ef8d2c998..9cfb9c7729 100644 --- a/src/pathfinder/water_regions.cpp +++ b/src/pathfinder/water_regions.cpp @@ -324,7 +324,8 @@ void InvalidateWaterRegion(TileIndex tile) * traversability. This means that if we invalidate any region edge tiles we might also change the traversability * of the adjacent region. This code ensures the adjacent regions also get invalidated in such a case. */ for (DiagDirection side = DIAGDIR_BEGIN; side < DIAGDIR_END; side++) { - const TileIndex adjacent_tile = TileAddByDiagDir(tile, side); + const TileIndex adjacent_tile = AddTileIndexDiffCWrap(tile, TileIndexDiffCByDiagDir(side)); + if (adjacent_tile == INVALID_TILE) continue; if (GetWaterRegionIndex(adjacent_tile) != GetWaterRegionIndex(tile)) invalidate_region(adjacent_tile); } }