Codechange: refactor FindClosestDepot to not use pointers, but return a struct

This commit is contained in:
Rubidium
2023-01-03 22:33:09 +01:00
committed by rubidium42
parent b3907b1359
commit 375a5b8e3f
12 changed files with 69 additions and 82 deletions

View File

@@ -2106,23 +2106,12 @@ static FindDepotData FindClosestTrainDepot(Train *v, int max_distance)
}
}
/**
* Locate the closest depot for this consist, and return the information to the caller.
* @param[out] location If not \c nullptr and a depot is found, store its location in the given address.
* @param[out] destination If not \c nullptr and a depot is found, store its index in the given address.
* @param[out] reverse If not \c nullptr and a depot is found, store reversal information in the given address.
* @return A depot has been found.
*/
bool Train::FindClosestDepot(TileIndex *location, DestinationID *destination, bool *reverse)
ClosestDepot Train::FindClosestDepot()
{
FindDepotData tfdd = FindClosestTrainDepot(this, 0);
if (tfdd.best_length == UINT_MAX) return false;
if (tfdd.best_length == UINT_MAX) return ClosestDepot();
if (location != nullptr) *location = tfdd.tile;
if (destination != nullptr) *destination = GetDepotIndex(tfdd.tile);
if (reverse != nullptr) *reverse = tfdd.reverse;
return true;
return ClosestDepot(tfdd.tile, GetDepotIndex(tfdd.tile), tfdd.reverse);
}
/** Play a sound for a train leaving the station. */