src/ai/default/default.cpp
changeset 8392 e80cb3cd512d
parent 8390 f88f515e6557
child 8398 1e181e2e4e15
equal deleted inserted replaced
8391:193b256c681c 8392:e80cb3cd512d
  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;