mirror of https://github.com/OpenTTD/OpenTTD
(svn r19464) -Codechange: move GetHangarTile to Airport
parent
414071d07f
commit
f2743cd5ed
|
@ -109,7 +109,7 @@
|
||||||
if (st->owner != _current_company) return INVALID_TILE;
|
if (st->owner != _current_company) return INVALID_TILE;
|
||||||
if ((st->facilities & FACIL_AIRPORT) == 0) return INVALID_TILE;
|
if ((st->facilities & FACIL_AIRPORT) == 0) return INVALID_TILE;
|
||||||
|
|
||||||
return st->GetHangarTile(0);
|
return st->airport.GetHangarTile(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* static */ AIAirport::AirportType AIAirport::GetAirportType(TileIndex tile)
|
/* static */ AIAirport::AirportType AIAirport::GetAirportType(TileIndex tile)
|
||||||
|
|
|
@ -31,7 +31,7 @@ AIDepotList::AIDepotList(AITile::TransportType transport_type)
|
||||||
if (st->owner == ::_current_company) {
|
if (st->owner == ::_current_company) {
|
||||||
const AirportSpec *as = st->airport.GetSpec();
|
const AirportSpec *as = st->airport.GetSpec();
|
||||||
for (uint i = 0; i < as->nof_depots; i++) {
|
for (uint i = 0; i < as->nof_depots; i++) {
|
||||||
this->AddItem(st->GetHangarTile(i));
|
this->AddItem(st->airport.GetHangarTile(i));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -182,7 +182,7 @@ static const Order *ResolveOrder(VehicleID vehicle_id, AIOrder::OrderPosition or
|
||||||
/* Aircraft's hangars are referenced by StationID, not DepotID */
|
/* Aircraft's hangars are referenced by StationID, not DepotID */
|
||||||
const Station *st = ::Station::Get(order->GetDestination());
|
const Station *st = ::Station::Get(order->GetDestination());
|
||||||
if (!st->airport.HasHangar()) return INVALID_TILE;
|
if (!st->airport.HasHangar()) return INVALID_TILE;
|
||||||
return st->GetHangarTile(0);
|
return st->airport.GetHangarTile(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
case OT_GOTO_STATION: {
|
case OT_GOTO_STATION: {
|
||||||
|
|
|
@ -397,7 +397,7 @@ byte GetVehiclePosOnBuild(TileIndex hangar_tile)
|
||||||
* layout for #th position of depot. Since layout must start with a listing
|
* layout for #th position of depot. Since layout must start with a listing
|
||||||
* of all depots, it is simple */
|
* of all depots, it is simple */
|
||||||
for (uint i = 0;; i++) {
|
for (uint i = 0;; i++) {
|
||||||
if (st->GetHangarTile(i) == hangar_tile) {
|
if (st->airport.GetHangarTile(i) == hangar_tile) {
|
||||||
assert(apc->layout[i].heading == HANGAR);
|
assert(apc->layout[i].heading == HANGAR);
|
||||||
return apc->layout[i].position;
|
return apc->layout[i].position;
|
||||||
}
|
}
|
||||||
|
|
|
@ -67,6 +67,13 @@ struct Airport : public TileArea {
|
||||||
{
|
{
|
||||||
return this->GetSpec()->nof_depots > 0;
|
return this->GetSpec()->nof_depots > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
FORCEINLINE TileIndex GetHangarTile(uint hangar_num) const
|
||||||
|
{
|
||||||
|
assert(this->tile != INVALID_TILE);
|
||||||
|
assert(hangar_num < this->GetSpec()->nof_depots);
|
||||||
|
return this->tile + ToTileIndexDiff(this->GetSpec()->depot_table[hangar_num]);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef SmallVector<Industry *, 2> IndustryVector;
|
typedef SmallVector<Industry *, 2> IndustryVector;
|
||||||
|
@ -135,13 +142,6 @@ public:
|
||||||
return IsAirportTile(tile) && GetStationIndex(tile) == this->index;
|
return IsAirportTile(tile) && GetStationIndex(tile) == this->index;
|
||||||
}
|
}
|
||||||
|
|
||||||
FORCEINLINE TileIndex GetHangarTile(uint hangar_num) const
|
|
||||||
{
|
|
||||||
assert(this->airport.tile != INVALID_TILE);
|
|
||||||
assert(hangar_num < this->airport.GetSpec()->nof_depots);
|
|
||||||
return this->airport.tile + ToTileIndexDiff(this->airport.GetSpec()->depot_table[hangar_num]);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* virtual */ uint32 GetNewGRFVariable(const ResolverObject *object, byte variable, byte parameter, bool *available) const;
|
/* virtual */ uint32 GetNewGRFVariable(const ResolverObject *object, byte variable, byte parameter, bool *available) const;
|
||||||
|
|
||||||
/* virtual */ void GetTileArea(TileArea *ta, StationType type) const;
|
/* virtual */ void GetTileArea(TileArea *ta, StationType type) const;
|
||||||
|
|
|
@ -69,7 +69,7 @@ bool IsHangar(TileIndex t)
|
||||||
const AirportSpec *as = st->airport.GetSpec();
|
const AirportSpec *as = st->airport.GetSpec();
|
||||||
|
|
||||||
for (uint i = 0; i < as->nof_depots; i++) {
|
for (uint i = 0; i < as->nof_depots; i++) {
|
||||||
if (st->GetHangarTile(i) == t) return true;
|
if (st->airport.GetHangarTile(i) == t) return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
@ -2296,7 +2296,7 @@ static CommandCost RemoveAirport(TileIndex tile, DoCommandFlag flags)
|
||||||
const AirportSpec *as = st->airport.GetSpec();
|
const AirportSpec *as = st->airport.GetSpec();
|
||||||
for (uint i = 0; i < as->nof_depots; ++i) {
|
for (uint i = 0; i < as->nof_depots; ++i) {
|
||||||
DeleteWindowById(
|
DeleteWindowById(
|
||||||
WC_VEHICLE_DEPOT, st->GetHangarTile(i)
|
WC_VEHICLE_DEPOT, st->airport.GetHangarTile(i)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue