Changeset - r14298:8ec5e54c5049
[Not reviewed]
master
0 6 0
yexo - 15 years ago 2010-01-18 14:32:47
yexo@openttd.org
(svn r18860) -Codechange: introduce a wrapper to get an hangar tile from a station
6 files changed with 15 insertions and 11 deletions:
0 comments (0 inline, 0 general)
src/ai/api/ai_airport.cpp
Show inline comments
 
@@ -109,7 +109,7 @@
 
	if (st->owner != _current_company) return INVALID_TILE;
 
	if ((st->facilities & FACIL_AIRPORT) == 0) return INVALID_TILE;
 

	
 
	return ::ToTileIndexDiff(st->GetAirportSpec()->depot_table[0]) + st->airport_tile;
 
	return st->GetHangarTile(0);
 
}
 

	
 
/* static */ AIAirport::AirportType AIAirport::GetAirportType(TileIndex tile)
src/ai/api/ai_depotlist.cpp
Show inline comments
 
@@ -31,7 +31,7 @@ AIDepotList::AIDepotList(AITile::Transpo
 
				if (st->owner == ::_current_company) {
 
					const AirportSpec *as = st->GetAirportSpec();
 
					for (uint i = 0; i < as->nof_depots; i++) {
 
						this->AddItem(st->airport_tile + ToTileIndexDiff(as->depot_table[i]));
 
						this->AddItem(st->GetHangarTile(i));
 
					}
 
				}
 
			}
src/ai/api/ai_order.cpp
Show inline comments
 
@@ -181,9 +181,8 @@ static const Order *ResolveOrder(Vehicle
 
			if (v->type != VEH_AIRCRAFT) return ::Depot::Get(order->GetDestination())->xy;
 
			/* Aircraft's hangars are referenced by StationID, not DepotID */
 
			const Station *st = ::Station::Get(order->GetDestination());
 
			const AirportSpec *as = st->GetAirportSpec();
 
			if (as == NULL || as->nof_depots == 0) return INVALID_TILE;
 
			return st->airport_tile + ::ToTileIndexDiff(as->depot_table[0]);
 
			if (st->GetAirportSpec()->nof_depots == 0) return INVALID_TILE;
 
			return st->GetHangarTile(0);
 
		}
 

	
 
		case OT_GOTO_STATION: {
src/aircraft_cmd.cpp
Show inline comments
 
@@ -334,11 +334,9 @@ CommandCost CmdBuildAircraft(TileIndex t
 
		 * of all depots, it is simple */
 
		for (uint i = 0;; i++) {
 
			const Station *st = Station::GetByTile(tile);
 
			const AirportSpec *as = st->GetAirportSpec();
 
			const AirportFTAClass *apc = st->Airport();
 

	
 
			assert(i != as->nof_depots);
 
			if (st->airport_tile + ToTileIndexDiff(as->depot_table[i]) == tile) {
 
			if (st->GetHangarTile(i) == tile) {
 
				assert(apc->layout[i].heading == HANGAR);
 
				v->pos = apc->layout[i].position;
 
				break;
src/station_base.h
Show inline comments
 
@@ -121,11 +121,18 @@ public:
 
		return IsRailStationTile(tile) && GetStationIndex(tile) == this->index;
 
	}
 

	
 
	/* virtual */ FORCEINLINE bool TileBelongsToAirport(TileIndex tile) const
 
	FORCEINLINE bool TileBelongsToAirport(TileIndex tile) const
 
	{
 
		return IsAirportTile(tile) && GetStationIndex(tile) == this->index;
 
	}
 

	
 
	FORCEINLINE TileIndex GetHangarTile(uint hangar_num) const
 
	{
 
		assert(this->airport_tile != INVALID_TILE);
 
		assert(hangar_num < this->GetAirportSpec()->nof_depots);
 
		return this->airport_tile + ToTileIndexDiff(this->GetAirportSpec()->depot_table[hangar_num]);
 
	}
 

	
 
	/* virtual */ uint32 GetNewGRFVariable(const ResolverObject *object, byte variable, byte parameter, bool *available) const;
 

	
 
	/* virtual */ void GetTileArea(TileArea *ta, StationType type) const;
src/station_cmd.cpp
Show inline comments
 
@@ -66,7 +66,7 @@ bool IsHangar(TileIndex t)
 
	const AirportSpec *as = st->GetAirportSpec();
 

	
 
	for (uint i = 0; i < as->nof_depots; i++) {
 
		if (st->airport_tile + ToTileIndexDiff(as->depot_table[i]) == t) return true;
 
		if (st->GetHangarTile(i) == t) return true;
 
	}
 

	
 
	return false;
 
@@ -2090,7 +2090,7 @@ static CommandCost RemoveAirport(TileInd
 
	if (flags & DC_EXEC) {
 
		for (uint i = 0; i < as->nof_depots; ++i) {
 
			DeleteWindowById(
 
				WC_VEHICLE_DEPOT, tile + ToTileIndexDiff(as->depot_table[i])
 
				WC_VEHICLE_DEPOT, st->GetHangarTile(i)
 
			);
 
		}
 

	
0 comments (0 inline, 0 general)