src/roadveh_cmd.cpp
changeset 8005 2318a0547719
parent 7968 45a32751abe5
child 8011 b9f348e95d25
equal deleted inserted replaced
8004:1c54bc6f4bdf 8005:2318a0547719
  1271 
  1271 
  1272 		best_track = INVALID_TRACKDIR;
  1272 		best_track = INVALID_TRACKDIR;
  1273 		uint best_dist = (uint)-1;
  1273 		uint best_dist = (uint)-1;
  1274 		uint best_maxlen = (uint)-1;
  1274 		uint best_maxlen = (uint)-1;
  1275 		uint bitmask = (uint)trackdirs;
  1275 		uint bitmask = (uint)trackdirs;
  1276 		for (int i = 0; bitmask != 0; bitmask >>= 1, i++) {
  1276 		uint i;
  1277 			if (HasBit(bitmask, 0)) {
  1277 		FOR_EACH_SET_BIT(i, bitmask) {
  1278 				if (best_track == INVALID_TRACKDIR) best_track = (Trackdir)i; // in case we don't find the path, just pick a track
  1278 			if (best_track == INVALID_TRACKDIR) best_track = (Trackdir)i; // in case we don't find the path, just pick a track
  1279 				frd.maxtracklen = (uint)-1;
  1279 			frd.maxtracklen = (uint)-1;
  1280 				frd.mindist = (uint)-1;
  1280 			frd.mindist = (uint)-1;
  1281 				FollowTrack(tile, 0x2000 | TRANSPORT_ROAD, v->u.road.compatible_roadtypes, _road_pf_directions[i], EnumRoadTrackFindDist, NULL, &frd);
  1281 			FollowTrack(tile, 0x2000 | TRANSPORT_ROAD, v->u.road.compatible_roadtypes, _road_pf_directions[i], EnumRoadTrackFindDist, NULL, &frd);
  1282 
  1282 
  1283 				if (frd.mindist < best_dist || (frd.mindist == best_dist && frd.maxtracklen < best_maxlen)) {
  1283 			if (frd.mindist < best_dist || (frd.mindist == best_dist && frd.maxtracklen < best_maxlen)) {
  1284 					best_dist = frd.mindist;
  1284 				best_dist = frd.mindist;
  1285 					best_maxlen = frd.maxtracklen;
  1285 				best_maxlen = frd.maxtracklen;
  1286 					best_track = (Trackdir)i;
  1286 				best_track = (Trackdir)i;
  1287 				}
       
  1288 			}
  1287 			}
  1289 		}
  1288 		}
  1290 	}
  1289 	}
  1291 
  1290 
  1292 found_best_track:;
  1291 found_best_track:;