Changeset - r3876:7e1a3ac6cbb4
[Not reviewed]
master
0 6 0
tron - 18 years ago 2006-05-20 15:13:27
tron@openttd.org
(svn r4918) Move the information about the size of airports from an global array into the struct which describes an airport
6 files changed with 38 insertions and 32 deletions:
0 comments (0 inline, 0 general)
ai/default/default.c
Show inline comments
 
@@ -3328,8 +3328,9 @@ static bool AiCheckAirportResources(Tile
 

	
 
	for (; p->mode == 0; p++) {
 
		TileIndex tile2 = TILE_ADD(tile, ToTileIndexDiff(p->tileoffs));
 
		uint w = _airport_size_x[p->attr];
 
		uint h = _airport_size_y[p->attr];
 
		const AirportFTAClass* airport = GetAirport(p->attr);
 
		uint w = airport->size_x;
 
		uint h = airport->size_y;
 

	
 
		if (cargo & 0x80) {
 
			GetProductionAroundTiles(values, tile2, w, h, rad);
airport.c
Show inline comments
 
@@ -20,7 +20,9 @@ static void AirportFTAClass_Constructor(
 
																				const byte *terminals, const byte *helipads,
 
																				const byte entry_point,  const byte acc_planes,
 
																				const AirportFTAbuildup *FA,
 
																				const TileIndexDiffC *depots, const byte nof_depots);
 
																				const TileIndexDiffC *depots, const byte nof_depots,
 
	uint size_x, uint size_y
 
);
 
static void AirportFTAClass_Destructor(AirportFTAClass *Airport);
 

	
 
static uint16 AirportGetNofElements(const AirportFTAbuildup *FA);
 
@@ -42,7 +44,8 @@ void InitializeAirports(void)
 
		ALL,
 
		_airport_fta_country,
 
		_airport_depots_country,
 
		lengthof(_airport_depots_country)
 
		lengthof(_airport_depots_country),
 
		4, 3
 
	);
 

	
 
	// city airport
 
@@ -56,7 +59,8 @@ void InitializeAirports(void)
 
		ALL,
 
		_airport_fta_city,
 
		_airport_depots_city,
 
		lengthof(_airport_depots_city)
 
		lengthof(_airport_depots_city),
 
		6, 6
 
	);
 

	
 
	// metropolitan airport
 
@@ -70,7 +74,8 @@ void InitializeAirports(void)
 
		ALL,
 
		_airport_fta_metropolitan,
 
		_airport_depots_metropolitan,
 
		lengthof(_airport_depots_metropolitan)
 
		lengthof(_airport_depots_metropolitan),
 
		6, 6
 
	);
 

	
 
	// international airport
 
@@ -84,7 +89,8 @@ void InitializeAirports(void)
 
		ALL,
 
		_airport_fta_international,
 
		_airport_depots_international,
 
		lengthof(_airport_depots_international)
 
		lengthof(_airport_depots_international),
 
		7, 7
 
	);
 

	
 
	// heliport, oilrig
 
@@ -98,7 +104,8 @@ void InitializeAirports(void)
 
		HELICOPTERS_ONLY,
 
		_airport_fta_heliport_oilrig,
 
		NULL,
 
		0
 
		0,
 
		1, 1
 
	);
 

	
 
	Oilrig = Heliport;  // exactly the same structure for heliport/oilrig, so share state machine
 
@@ -117,7 +124,9 @@ static void AirportFTAClass_Constructor(
 
																				const byte *terminals, const byte *helipads,
 
																				const byte entry_point, const byte acc_planes,
 
																				const AirportFTAbuildup *FA,
 
																				const TileIndexDiffC *depots, const byte nof_depots)
 
																				const TileIndexDiffC *depots, const byte nof_depots,
 
	uint size_x, uint size_y
 
)
 
{
 
	byte nofterminals, nofhelipads;
 
	byte nofterminalgroups = 0;
 
@@ -126,6 +135,9 @@ static void AirportFTAClass_Constructor(
 
	int i;
 
	nofterminals = nofhelipads = 0;
 

	
 
	Airport->size_x = size_x;
 
	Airport->size_y = size_y;
 

	
 
	//now we read the number of terminals we have
 
	if (terminals != NULL) {
 
		i = terminals[0];
airport.h
Show inline comments
 
@@ -105,6 +105,8 @@ typedef struct AirportFTAClass {
 
	const TileIndexDiffC *airport_depots; // gives the position of the depots on the airports
 
	byte nof_depots;                      // number of depots this airport has
 
	struct AirportFTA *layout;            // state machine for airport
 
	byte size_x;
 
	byte size_y;
 
} AirportFTAClass;
 

	
 
// internal structure used in openttd - Finite sTate mAchine --> FTA
airport_gui.c
Show inline comments
 
@@ -147,6 +147,7 @@ static void BuildAirportPickerWndProc(Wi
 
		int sel;
 
		int rad = 4; // default catchment radious
 
		uint32 avail_airports;
 
		const AirportFTAClass* airport;
 

	
 
		if (WP(w,def_d).close) return;
 

	
 
@@ -164,7 +165,8 @@ static void BuildAirportPickerWndProc(Wi
 
		_selected_airport_type = sel;
 
		// select default the coverage area to 'Off' (8)
 
		w->click_state = ((1<<3) << sel) | ((1<<8) << _station_show_coverage);
 
		SetTileSelectSize(_airport_size_x[sel],_airport_size_y[sel]);
 
		airport = GetAirport(sel);
 
		SetTileSelectSize(airport->size_x, airport->size_y);
 

	
 
		if (_patches.modified_catchment) {
 
			switch (sel) {
station_cmd.c
Show inline comments
 
@@ -78,11 +78,6 @@ MemoryPool _station_pool = { "Stations",
 
MemoryPool _roadstop_pool = { "RoadStop", ROADSTOP_POOL_MAX_BLOCKS, ROADSTOP_POOL_BLOCK_SIZE_BITS, sizeof(RoadStop), &RoadStopPoolNewBlock, NULL, 0, 0, NULL };
 

	
 

	
 
// FIXME -- need to be embedded into Airport variable. Is dynamically
 
// deducteable from graphics-tile array, so will not be needed
 
const byte _airport_size_x[] = {4, 6, 1, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1};
 
const byte _airport_size_y[] = {3, 6, 1, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1};
 

	
 
void ShowAircraftDepotWindow(TileIndex tile);
 
extern void UpdateAirplanesOnNewStation(Station *st);
 

	
 
@@ -689,12 +684,11 @@ static void UpdateStationAcceptance(Stat
 
	}
 

	
 
	if (st->airport_tile != 0) {
 
		const AirportFTAClass* afc = GetAirport(st->airport_type);
 

	
 
		MergePoint(&rect, st->airport_tile);
 
		MergePoint(&rect,
 
			st->airport_tile + TileDiffXY(
 
				_airport_size_x[st->airport_type] - 1,
 
				_airport_size_y[st->airport_type] - 1
 
			)
 
			st->airport_tile + TileDiffXY(afc->size_x - 1, afc->size_y - 1)
 
		);
 
	}
 

	
 
@@ -1599,6 +1593,7 @@ int32 CmdBuildAirport(TileIndex tile, ui
 
	int32 ret;
 
	int w, h;
 
	bool airport_upgrade = true;
 
	const AirportFTAClass* afc;
 

	
 
	SET_EXPENSES_TYPE(EXPENSES_CONSTRUCTION);
 

	
 
@@ -1623,8 +1618,9 @@ int32 CmdBuildAirport(TileIndex tile, ui
 
		}
 
	}
 

	
 
	w = _airport_size_x[p1];
 
	h = _airport_size_y[p1];
 
	afc = GetAirport(p1);
 
	w = afc->size_x;
 
	h = afc->size_y;
 

	
 
	ret = CheckFlatLandBelow(tile, w, h, flags, 0, NULL);
 
	if (CmdFailed(ret)) return ret;
 
@@ -1672,8 +1668,6 @@ int32 CmdBuildAirport(TileIndex tile, ui
 
	cost += _price.build_airport * w * h;
 

	
 
	if (flags & DC_EXEC) {
 
		const AirportFTAClass *afc = GetAirport(p1);
 

	
 
		st->owner = _current_player;
 
		if (IsLocalPlayer() && afc->nof_depots != 0)
 
			_last_built_aircraft_depot_tile = tile + ToTileIndexDiff(afc->airport_depots[0]);
 
@@ -1717,14 +1711,16 @@ static int32 RemoveAirport(Station *st, 
 
	TileIndex tile;
 
	int w,h;
 
	int32 cost;
 
	const AirportFTAClass* afc;
 

	
 
	if (_current_player != OWNER_WATER && !CheckOwnership(st->owner))
 
		return CMD_ERROR;
 

	
 
	tile = st->airport_tile;
 

	
 
	w = _airport_size_x[st->airport_type];
 
	h = _airport_size_y[st->airport_type];
 
	afc = GetAirport(st->airport_type);
 
	w = afc->size_x;
 
	h = afc->size_y;
 

	
 
	cost = w * h * _price.remove_airport;
 

	
 
@@ -1738,7 +1734,6 @@ static int32 RemoveAirport(Station *st, 
 
	} END_TILE_LOOP(tile_cur, w,h,tile)
 

	
 
	if (flags & DC_EXEC) {
 
		const AirportFTAClass *afc = GetAirport(st->airport_type);
 
		uint i;
 

	
 
		for (i = 0; i < afc->nof_depots; ++i) {
variables.h
Show inline comments
 
@@ -403,12 +403,6 @@ extern const byte _inclined_tileh[8];
 

	
 
extern const TileTypeProcs * const _tile_type_procs[16];
 

	
 
/* station_cmd.c */
 
// there are 5 types of airport (Country (3x4) , City(6x6), Metropolitan(6x6), International(7x7), Heliport(1x1)
 
// will become obsolete once airports are loaded from seperate file
 
extern const byte _airport_size_x[];
 
extern const byte _airport_size_y[];
 

	
 
/* misc */
 
VARDEF char _screenshot_name[128];
 
VARDEF byte _vehicle_design_names;
0 comments (0 inline, 0 general)