mirror of https://github.com/OpenTTD/OpenTTD
(svn r7069) -Fix: AI tried to build road from the back or side of road stop/depot (peter1138)
parent
a763e7e52e
commit
fd361b104d
|
@ -2806,6 +2806,7 @@ static bool AiCheckRoadFinished(Player *p)
|
||||||
are.dest = p->ai.cur_tile_b;
|
are.dest = p->ai.cur_tile_b;
|
||||||
tile = TILE_MASK(p->ai.cur_tile_a + TileOffsByDiagDir(dir));
|
tile = TILE_MASK(p->ai.cur_tile_a + TileOffsByDiagDir(dir));
|
||||||
|
|
||||||
|
if (IsRoadStopTile(tile) || IsTileDepotType(tile, TRANSPORT_ROAD)) return false;
|
||||||
bits = GetTileTrackStatus(tile, TRANSPORT_ROAD) & _ai_road_table_and[dir];
|
bits = GetTileTrackStatus(tile, TRANSPORT_ROAD) & _ai_road_table_and[dir];
|
||||||
if (bits == 0) return false;
|
if (bits == 0) return false;
|
||||||
|
|
||||||
|
|
|
@ -294,9 +294,9 @@ static void TPFMode1(TrackPathFinder* tpf, TileIndex tile, DiagDirection directi
|
||||||
if (tpf->tracktype == TRANSPORT_ROAD) {
|
if (tpf->tracktype == TRANSPORT_ROAD) {
|
||||||
// road stops and depots now have a track (r4419)
|
// road stops and depots now have a track (r4419)
|
||||||
// don't enter road stop from the back
|
// don't enter road stop from the back
|
||||||
if (IsRoadStopTile(tile) && GetRoadStopDir(tile) == direction) return;
|
if (IsRoadStopTile(tile) && ReverseDiagDir(GetRoadStopDir(tile)) != direction) return;
|
||||||
// don't enter road depot from the back
|
// don't enter road depot from the back
|
||||||
if (IsTileDepotType(tile, TRANSPORT_ROAD) && GetRoadDepotDirection(tile) == direction) return;
|
if (IsTileDepotType(tile, TRANSPORT_ROAD) && ReverseDiagDir(GetRoadDepotDirection(tile)) != direction) return;
|
||||||
}
|
}
|
||||||
|
|
||||||
tpf->rd.cur_length++;
|
tpf->rd.cur_length++;
|
||||||
|
|
Loading…
Reference in New Issue