(svn r21511) -Feature: vehicle lost message for ships

This commit is contained in:
rubidium
2010-12-13 21:56:40 +00:00
parent acf7613433
commit facaef9e33
7 changed files with 26 additions and 14 deletions

View File

@@ -183,7 +183,7 @@ bad:;
* reverse. The tile given is the tile we are about to enter, enterdir is the
* direction in which we are entering the tile
*/
Track OPFShipChooseTrack(const Ship *v, TileIndex tile, DiagDirection enterdir, TrackBits tracks)
Track OPFShipChooseTrack(const Ship *v, TileIndex tile, DiagDirection enterdir, TrackBits tracks, bool &path_found)
{
assert(IsValidDiagDirection(enterdir));
@@ -202,6 +202,9 @@ Track OPFShipChooseTrack(const Ship *v, TileIndex tile, DiagDirection enterdir,
/* And if we would not reverse? */
uint dist = FindShipTrack(v, tile, enterdir, tracks, 0, &track);
/* If the dist equals zero, or distr equals one (the extra reversing penalty),
* then we found our destination and we are not lost. */
path_found = (dist == 0 || distr == 1);
if (dist <= distr) return track;
return INVALID_TRACK; // We could better reverse
}

View File

@@ -23,8 +23,9 @@
* @param tile the tile to find the path from (should be next tile the ship is about to enter)
* @param enterdir diagonal direction which the ship will enter this new tile from
* @param tracks available tracks on the new tile (to choose from)
* @param path_found [out] Whether a path has been found (true) or has been guessed (false)
* @return the best trackdir for next turn or INVALID_TRACK if the path could not be found
*/
Track OPFShipChooseTrack(const Ship *v, TileIndex tile, DiagDirection enterdir, TrackBits tracks);
Track OPFShipChooseTrack(const Ship *v, TileIndex tile, DiagDirection enterdir, TrackBits tracks, bool &path_found);
#endif /* OPF_SHIP_H */