equal
deleted
inserted
replaced
1896 |
1896 |
1897 arpfd.tile = _players_ai[p->index].start_tile_a; |
1897 arpfd.tile = _players_ai[p->index].start_tile_a; |
1898 arpfd.tile2 = _players_ai[p->index].cur_tile_a; |
1898 arpfd.tile2 = _players_ai[p->index].cur_tile_a; |
1899 arpfd.flag = false; |
1899 arpfd.flag = false; |
1900 arpfd.count = 0; |
1900 arpfd.count = 0; |
1901 FollowTrack(_players_ai[p->index].cur_tile_a + TileOffsByDiagDir(_players_ai[p->index].cur_dir_a), 0x2000 | TRANSPORT_RAIL, 0, ReverseDiagDir(_players_ai[p->index].cur_dir_a), |
1901 FollowTrack(_players_ai[p->index].cur_tile_a + TileOffsByDiagDir(_players_ai[p->index].cur_dir_a), TRANSPORT_RAIL, 0, ReverseDiagDir(_players_ai[p->index].cur_dir_a), |
1902 (TPFEnumProc*)AiEnumFollowTrack, NULL, &arpfd); |
1902 (TPFEnumProc*)AiEnumFollowTrack, NULL, &arpfd); |
1903 return arpfd.count > 8; |
1903 return arpfd.count > 8; |
1904 } |
1904 } |
1905 |
1905 |
1906 struct AiRailFinder { |
1906 struct AiRailFinder { |
2864 |
2864 |
2865 are.best_dist = (uint)-1; |
2865 are.best_dist = (uint)-1; |
2866 |
2866 |
2867 uint i; |
2867 uint i; |
2868 FOR_EACH_SET_BIT(i, bits) { |
2868 FOR_EACH_SET_BIT(i, bits) { |
2869 FollowTrack(tile, 0x3000 | TRANSPORT_ROAD, ROADTYPES_ROAD, (DiagDirection)_dir_by_track[i], (TPFEnumProc*)AiEnumFollowRoad, NULL, &are); |
2869 FollowTrack(tile, 0x1000 | TRANSPORT_ROAD, ROADTYPES_ROAD, (DiagDirection)_dir_by_track[i], (TPFEnumProc*)AiEnumFollowRoad, NULL, &are); |
2870 } |
2870 } |
2871 |
2871 |
2872 if (DistanceManhattan(tile, are.dest) <= are.best_dist) return false; |
2872 if (DistanceManhattan(tile, are.dest) <= are.best_dist) return false; |
2873 |
2873 |
2874 if (are.best_dist == 0) return true; |
2874 if (are.best_dist == 0) return true; |