diff --git a/src/ai/api/ai_order.cpp b/src/ai/api/ai_order.cpp --- a/src/ai/api/ai_order.cpp +++ b/src/ai/api/ai_order.cpp @@ -345,7 +345,7 @@ static const Order *ResolveOrder(Vehicle order.MakeGoToDepot(::GetStationIndex(destination), odtf, onsf, odaf); } else { if (::IsTileType(destination, MP_STATION)) return false; - order.MakeGoToDepot(::GetDepotByTile(destination)->index, odtf, onsf, odaf); + order.MakeGoToDepot(::Depot::GetByTile(destination)->index, odtf, onsf, odaf); } break; } diff --git a/src/depot.cpp b/src/depot.cpp --- a/src/depot.cpp +++ b/src/depot.cpp @@ -17,10 +17,10 @@ INSTANTIATE_POOL_METHODS(Depot) /** * Gets a depot from a tile - * + * @param tile tile with depot * @return Returns the depot if the tile had a depot, else it returns NULL */ -Depot *GetDepotByTile(TileIndex tile) +/* static */ Depot *Depot::GetByTile(TileIndex tile) { /* A ship depot is multiple tiles. The north most tile is * always the ->xy tile, so make sure we always look for diff --git a/src/depot_base.h b/src/depot_base.h --- a/src/depot_base.h +++ b/src/depot_base.h @@ -19,10 +19,10 @@ struct Depot : DepotPool::PoolItem<&_dep Depot(TileIndex xy = INVALID_TILE) : xy(xy) {} ~Depot(); + + static Depot *GetByTile(TileIndex tile); }; -Depot *GetDepotByTile(TileIndex tile); - #define FOR_ALL_DEPOTS_FROM(var, start) FOR_ALL_ITEMS_FROM(Depot, depot_index, var, start) #define FOR_ALL_DEPOTS(var) FOR_ALL_DEPOTS_FROM(var, 0) diff --git a/src/depot_gui.cpp b/src/depot_gui.cpp --- a/src/depot_gui.cpp +++ b/src/depot_gui.cpp @@ -341,7 +341,7 @@ struct DepotWindow : Window { if (this->type == VEH_AIRCRAFT) { SetDParam(0, GetStationIndex(tile)); // Airport name } else { - Depot *depot = GetDepotByTile(tile); + Depot *depot = Depot::GetByTile(tile); assert(depot != NULL); SetDParam(0, depot->town_index); @@ -815,7 +815,7 @@ struct DepotWindow : Window { TileIndex tile = this->window_number; byte vehtype = this->type; - SetDParam(0, (vehtype == VEH_AIRCRAFT) ? GetStationIndex(tile) : GetDepotByTile(tile)->town_index); + SetDParam(0, (vehtype == VEH_AIRCRAFT) ? GetStationIndex(tile) : Depot::GetByTile(tile)->town_index); ShowQuery( confirm_captions[vehtype], STR_DEPOT_SELL_CONFIRMATION_TEXT, diff --git a/src/order_gui.cpp b/src/order_gui.cpp --- a/src/order_gui.cpp +++ b/src/order_gui.cpp @@ -300,7 +300,7 @@ static Order GetOrderCmdFromTile(const V case MP_RAILWAY: if (v->type == VEH_TRAIN && IsTileOwner(tile, _local_company)) { if (IsRailDepot(tile)) { - order.MakeGoToDepot(GetDepotByTile(tile)->index, ODTFB_PART_OF_ORDERS, + order.MakeGoToDepot(Depot::GetByTile(tile)->index, ODTFB_PART_OF_ORDERS, _settings_client.gui.new_nonstop ? ONSF_NO_STOP_AT_INTERMEDIATE_STATIONS : ONSF_STOP_EVERYWHERE); if (_ctrl_pressed) order.SetDepotOrderType((OrderDepotTypeFlags)(order.GetDepotOrderType() ^ ODTFB_SERVICE)); return order; @@ -310,7 +310,7 @@ static Order GetOrderCmdFromTile(const V case MP_ROAD: if (IsRoadDepot(tile) && v->type == VEH_ROAD && IsTileOwner(tile, _local_company)) { - order.MakeGoToDepot(GetDepotByTile(tile)->index, ODTFB_PART_OF_ORDERS, + order.MakeGoToDepot(Depot::GetByTile(tile)->index, ODTFB_PART_OF_ORDERS, _settings_client.gui.new_nonstop ? ONSF_NO_STOP_AT_INTERMEDIATE_STATIONS : ONSF_STOP_EVERYWHERE); if (_ctrl_pressed) order.SetDepotOrderType((OrderDepotTypeFlags)(order.GetDepotOrderType() ^ ODTFB_SERVICE)); return order; @@ -331,7 +331,7 @@ static Order GetOrderCmdFromTile(const V if (IsShipDepot(tile) && IsTileOwner(tile, _local_company)) { TileIndex tile2 = GetOtherShipDepotTile(tile); - order.MakeGoToDepot(GetDepotByTile(tile < tile2 ? tile : tile2)->index, ODTFB_PART_OF_ORDERS, ONSF_STOP_EVERYWHERE); + order.MakeGoToDepot(Depot::GetByTile(tile < tile2 ? tile : tile2)->index, ODTFB_PART_OF_ORDERS, ONSF_STOP_EVERYWHERE); if (_ctrl_pressed) order.SetDepotOrderType((OrderDepotTypeFlags)(order.GetDepotOrderType() ^ ODTFB_SERVICE)); return order; } diff --git a/src/rail_cmd.cpp b/src/rail_cmd.cpp --- a/src/rail_cmd.cpp +++ b/src/rail_cmd.cpp @@ -1441,7 +1441,7 @@ static CommandCost RemoveTrainDepot(Tile } DoClearSquare(tile); - delete GetDepotByTile(tile); + delete Depot::GetByTile(tile); AddSideToSignalBuffer(tile, dir, owner); YapfNotifyTrackLayoutChange(tile, DiagDirToDiagTrack(dir)); if (v != NULL) TryPathReserve(v, true); diff --git a/src/road_cmd.cpp b/src/road_cmd.cpp --- a/src/road_cmd.cpp +++ b/src/road_cmd.cpp @@ -882,7 +882,7 @@ static CommandCost RemoveRoadDepot(TileI if (flags & DC_EXEC) { DoClearSquare(tile); - delete GetDepotByTile(tile); + delete Depot::GetByTile(tile); } return CommandCost(EXPENSES_CONSTRUCTION, _price.remove_road_depot); diff --git a/src/roadveh_cmd.cpp b/src/roadveh_cmd.cpp --- a/src/roadveh_cmd.cpp +++ b/src/roadveh_cmd.cpp @@ -374,7 +374,7 @@ static const Depot *FindClosestRoadDepot NPFFoundTargetData ftd = NPFRouteToDepotBreadthFirstTwoWay(v->tile, trackdir, false, v->tile, ReverseTrackdir(trackdir), false, TRANSPORT_ROAD, v->compatible_roadtypes, v->owner, INVALID_RAILTYPES, 0); - if (ftd.best_bird_dist == 0) return GetDepotByTile(ftd.node.tile); // Target found + if (ftd.best_bird_dist == 0) return Depot::GetByTile(ftd.node.tile); // Target found } break; default: @@ -389,7 +389,7 @@ static const Depot *FindClosestRoadDepot FollowTrack(v->tile, PATHFIND_FLAGS_NONE, TRANSPORT_ROAD, v->compatible_roadtypes, d, EnumRoadSignalFindDepot, NULL, &rfdd); } - if (rfdd.best_length != UINT_MAX) return GetDepotByTile(rfdd.tile); + if (rfdd.best_length != UINT_MAX) return Depot::GetByTile(rfdd.tile); } break; } diff --git a/src/ship_cmd.cpp b/src/ship_cmd.cpp --- a/src/ship_cmd.cpp +++ b/src/ship_cmd.cpp @@ -100,7 +100,7 @@ static const Depot *FindClosestShipDepot Trackdir trackdir = v->GetVehicleTrackdir(); NPFFoundTargetData ftd = NPFRouteToDepotTrialError(v->tile, trackdir, false, TRANSPORT_WATER, 0, v->owner, INVALID_RAILTYPES); - if (ftd.best_bird_dist == 0) return GetDepotByTile(ftd.node.tile); // Found target + if (ftd.best_bird_dist == 0) return Depot::GetByTile(ftd.node.tile); // Found target return NULL; // Did not find target } diff --git a/src/train_cmd.cpp b/src/train_cmd.cpp --- a/src/train_cmd.cpp +++ b/src/train_cmd.cpp @@ -2231,7 +2231,7 @@ bool Train::FindClosestDepot(TileIndex * if (tfdd.best_length == UINT_MAX) return false; if (location != NULL) *location = tfdd.tile; - if (destination != NULL) *destination = GetDepotByTile(tfdd.tile)->index; + if (destination != NULL) *destination = Depot::GetByTile(tfdd.tile)->index; if (reverse != NULL) *reverse = tfdd.reverse; return true; @@ -4487,7 +4487,7 @@ static void CheckIfTrainNeedsService(Tra return; } - const Depot *depot = GetDepotByTile(tfdd.tile); + const Depot *depot = Depot::GetByTile(tfdd.tile); if (v->current_order.IsType(OT_GOTO_DEPOT) && v->current_order.GetDestination() != depot->index && diff --git a/src/vehicle_gui.cpp b/src/vehicle_gui.cpp --- a/src/vehicle_gui.cpp +++ b/src/vehicle_gui.cpp @@ -1243,7 +1243,7 @@ void ShowVehicleListWindow(CompanyID com if (vehicle_type == VEH_AIRCRAFT) { depot_airport_index = GetStationIndex(depot_tile); } else { - Depot *depot = GetDepotByTile(depot_tile); + Depot *depot = Depot::GetByTile(depot_tile); if (depot == NULL) return; // no depot to show depot_airport_index = depot->index; } diff --git a/src/water_cmd.cpp b/src/water_cmd.cpp --- a/src/water_cmd.cpp +++ b/src/water_cmd.cpp @@ -177,7 +177,7 @@ static CommandCost RemoveShipDepot(TileI if (flags & DC_EXEC) { /* Kill the depot, which is registered at the northernmost tile. Use that one */ - delete GetDepotByTile(tile2 < tile ? tile2 : tile); + delete Depot::GetByTile(tile2 < tile ? tile2 : tile); MakeWaterKeepingClass(tile, GetTileOwner(tile)); MakeWaterKeepingClass(tile2, GetTileOwner(tile2)); diff --git a/src/yapf/yapf_road.cpp b/src/yapf/yapf_road.cpp --- a/src/yapf/yapf_road.cpp +++ b/src/yapf/yapf_road.cpp @@ -403,7 +403,7 @@ public: Node *n = Yapf().GetBestNode(); TileIndex depot_tile = n->m_segment_last_tile; assert(IsRoadDepotTile(depot_tile)); - Depot *ret = GetDepotByTile(depot_tile); + Depot *ret = Depot::GetByTile(depot_tile); return ret; } }; @@ -478,7 +478,7 @@ Depot *YapfFindNearestRoadDepot(const Ve /* handle the case when our vehicle is already in the depot tile */ if (IsRoadDepotTile(tile)) { /* only what we need to return is the Depot* */ - return GetDepotByTile(tile); + return Depot::GetByTile(tile); } /* default is YAPF type 2 */