Changeset - r14618:a194334b4a3a
[Not reviewed]
master
0 8 2
yexo - 14 years ago 2010-02-22 16:09:26
yexo@openttd.org
(svn r19205) -Codechange: move AirportSpec to newgrf_airport.h/cpp
10 files changed with 111 insertions and 57 deletions:
0 comments (0 inline, 0 general)
projects/openttd_vs80.vcproj
Show inline comments
 
@@ -1148,6 +1148,10 @@
 
				>
 
			</File>
 
			<File
 
				RelativePath=".\..\src\newgrf_airport.h"
 
				>
 
			</File>
 
			<File
 
				RelativePath=".\..\src\newgrf_airporttiles.h"
 
				>
 
			</File>
 
@@ -3176,6 +3180,10 @@
 
				>
 
			</File>
 
			<File
 
				RelativePath=".\..\src\newgrf_airport.cpp"
 
				>
 
			</File>
 
			<File
 
				RelativePath=".\..\src\newgrf_airporttiles.cpp"
 
				>
 
			</File>
projects/openttd_vs90.vcproj
Show inline comments
 
@@ -1145,6 +1145,10 @@
 
				>
 
			</File>
 
			<File
 
				RelativePath=".\..\src\newgrf_airport.h"
 
				>
 
			</File>
 
			<File
 
				RelativePath=".\..\src\newgrf_airporttiles.h"
 
				>
 
			</File>
 
@@ -3173,6 +3177,10 @@
 
				>
 
			</File>
 
			<File
 
				RelativePath=".\..\src\newgrf_airport.cpp"
 
				>
 
			</File>
 
			<File
 
				RelativePath=".\..\src\newgrf_airporttiles.cpp"
 
				>
 
			</File>
source.list
Show inline comments
 
@@ -196,6 +196,7 @@ network/network_server.h
 
network/network_type.h
 
network/network_udp.h
 
newgrf.h
 
newgrf_airport.h
 
newgrf_airporttiles.h
 
newgrf_callbacks.h
 
newgrf_canal.h
 
@@ -742,6 +743,7 @@ spriteloader/spriteloader.hpp
 

	
 
# NewGRF
 
newgrf.cpp
 
newgrf_airport.cpp
 
newgrf_airporttiles.cpp
 
newgrf_canal.cpp
 
newgrf_cargo.cpp
src/airport.cpp
Show inline comments
 
@@ -12,30 +12,15 @@
 
#include "stdafx.h"
 
#include "debug.h"
 
#include "airport.h"
 
#include "map_type.h"
 
#include "table/airport_movement.h"
 
#include "core/alloc_func.hpp"
 
#include "date_func.h"
 
#include "settings_type.h"
 
#include "newgrf_airport.h"
 
#include "table/airporttile_ids.h"
 
#include "table/airport_defaults.h"
 

	
 
AirportSpec AirportSpec::dummy = {NULL, NULL, 0, 0, 0, 0, 0, MIN_YEAR, MIN_YEAR};
 
AirportSpec AirportSpec::oilrig = {NULL, NULL, 0, 1, 1, 0, 4, MIN_YEAR, MIN_YEAR};
 

	
 

	
 
/**
 
 * Retrieve airport spec for the given airport
 
 * @param type index of airport
 
 * @return A pointer to the corresponding AirportSpec
 
 */
 
/* static */ const AirportSpec *AirportSpec::Get(byte type)
 
{
 
	if (type == AT_OILRIG) return &oilrig;
 
	assert(type < NUM_AIRPORTS);
 
	extern const AirportSpec _origin_airport_specs[];
 
	return &_origin_airport_specs[type];
 
}
 

	
 
/* Uncomment this to print out a full report of the airport-structure
 
 * You should either use
 
 * - true: full-report, print out every state and choice with string-names
 
@@ -269,13 +254,6 @@ AirportFTAClass::~AirportFTAClass()
 
	free(layout);
 
}
 

	
 
bool AirportSpec::IsAvailable() const
 
{
 
	if (_cur_year < this->min_year) return false;
 
	if (_settings_game.station.never_expire_airports) return true;
 
	return _cur_year <= this->max_year;
 
}
 

	
 
/** Get the number of elements of a source Airport state automata
 
 * Since it is actually just a big array of AirportFTA types, we only
 
 * know one element from the other by differing 'position' identifiers */
src/airport.h
Show inline comments
 
@@ -13,8 +13,6 @@
 
#define AIRPORT_H
 

	
 
#include "direction_type.h"
 
#include "map_type.h"
 
#include "date_type.h"
 

	
 
/** Some airport-related constants */
 
enum {
 
@@ -42,36 +40,6 @@ enum {
 
	AT_DUMMY         = 255
 
};
 

	
 
/* Copy from station_map.h */
 
typedef byte StationGfx;
 

	
 
struct AirportTileTable {
 
	TileIndexDiffC ti;
 
	StationGfx gfx;
 
};
 

	
 
/**
 
 * Defines the data structure for an airport.
 
 */
 
struct AirportSpec {
 
	const AirportTileTable * const *table; ///< list of the tiles composing the airport
 
	const TileIndexDiffC *depot_table;     ///< gives the position of the depots on the airports
 
	byte nof_depots;                       ///< the number of depots in this airport
 
	byte size_x;                           ///< size of airport in x direction
 
	byte size_y;                           ///< size of airport in y direction
 
	byte noise_level;                      ///< noise that this airport generates
 
	byte catchment;                        ///< catchment area of this airport
 
	Year min_year;                         ///< first year the airport is available
 
	Year max_year;                         ///< last year the airport is available
 

	
 
	static const AirportSpec *Get(byte type);
 

	
 
	bool IsAvailable() const;
 

	
 
	static AirportSpec dummy;
 
	static AirportSpec oilrig;
 
};
 

	
 
enum {
 
	AMED_NOSPDCLAMP = 1 << 0,
 
	AMED_TAKEOFF    = 1 << 1,
src/airport_gui.cpp
Show inline comments
 
@@ -23,6 +23,7 @@
 
#include "tilehighlight_func.h"
 
#include "company_base.h"
 
#include "station_type.h"
 
#include "newgrf_airport.h"
 

	
 
#include "table/sprites.h"
 
#include "table/strings.h"
src/newgrf_airport.cpp
Show inline comments
 
new file 100644
 
/* $Id$ */
 

	
 
/*
 
 * This file is part of OpenTTD.
 
 * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
 
 * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
 * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
 
 */
 

	
 
/** @file newgrf_airport.h NewGRF handling of airports. */
 

	
 
#include "stdafx.h"
 
#include "airport.h"
 
#include "newgrf_airport.h"
 
#include "date_func.h"
 
#include "settings_type.h"
 

	
 
AirportSpec AirportSpec::dummy = {NULL, NULL, 0, 0, 0, 0, 0, MIN_YEAR, MIN_YEAR};
 
AirportSpec AirportSpec::oilrig = {NULL, NULL, 0, 1, 1, 0, 4, MIN_YEAR, MIN_YEAR};
 

	
 
/**
 
 * Retrieve airport spec for the given airport
 
 * @param type index of airport
 
 * @return A pointer to the corresponding AirportSpec
 
 */
 
/* static */ const AirportSpec *AirportSpec::Get(byte type)
 
{
 
	if (type == AT_OILRIG) return &oilrig;
 
	assert(type < NUM_AIRPORTS);
 
	extern const AirportSpec _origin_airport_specs[];
 
	return &_origin_airport_specs[type];
 
}
 

	
 
bool AirportSpec::IsAvailable() const
 
{
 
	if (_cur_year < this->min_year) return false;
 
	if (_settings_game.station.never_expire_airports) return true;
 
	return _cur_year <= this->max_year;
 
}
src/newgrf_airport.h
Show inline comments
 
new file 100644
 
/* $Id$ */
 

	
 
/*
 
 * This file is part of OpenTTD.
 
 * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
 
 * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
 * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
 
 */
 

	
 
/** @file newgrf_airport.h NewGRF handling of airports. */
 

	
 
#ifndef NEWGRF_AIRPORT_H
 
#define NEWGRF_AIRPORT_H
 

	
 
#include "date_type.h"
 
#include "map_type.h"
 

	
 
/* Copy from station_map.h */
 
typedef byte StationGfx;
 

	
 
struct AirportTileTable {
 
	TileIndexDiffC ti;
 
	StationGfx gfx;
 
};
 

	
 
/**
 
 * Defines the data structure for an airport.
 
 */
 
struct AirportSpec {
 
	const AirportTileTable * const *table; ///< list of the tiles composing the airport
 
	const TileIndexDiffC *depot_table;     ///< gives the position of the depots on the airports
 
	byte nof_depots;                       ///< the number of depots in this airport
 
	byte size_x;                           ///< size of airport in x direction
 
	byte size_y;                           ///< size of airport in y direction
 
	byte noise_level;                      ///< noise that this airport generates
 
	byte catchment;                        ///< catchment area of this airport
 
	Year min_year;                         ///< first year the airport is available
 
	Year max_year;                         ///< last year the airport is available
 

	
 
	static const AirportSpec *Get(byte type);
 

	
 
	bool IsAvailable() const;
 

	
 
	static AirportSpec dummy;
 
	static AirportSpec oilrig;
 
};
 

	
 

	
 
#endif /* NEWGRF_AIRPORT_H */
src/station_base.h
Show inline comments
 
@@ -14,6 +14,7 @@
 

	
 
#include "base_station_base.h"
 
#include "airport.h"
 
#include "newgrf_airport.h"
 
#include "cargopacket.h"
 
#include "industry_type.h"
 

	
src/table/airport_defaults.h
Show inline comments
 
@@ -388,7 +388,7 @@ static AirportTileTable *_tile_table_hel
 
#define AS(ap_name, size_x, size_y, min_year, max_year, catchment, noise) \
 
	AS_GENERIC(_tile_table_##ap_name, _airport_depots_##ap_name, lengthof(_airport_depots_##ap_name), size_x, size_y, noise, catchment, min_year, max_year)
 

	
 
static const AirportSpec _origin_airport_specs[] = {
 
extern const AirportSpec _origin_airport_specs[] = {
 
	AS(country, 4, 3, 0, 1959, 4, 3),
 
	AS(city, 6, 6, 1955, MAX_YEAR, 5, 5),
 
	AS_ND(heliport, 1, 1, 1963, MAX_YEAR, 4, 1),
0 comments (0 inline, 0 general)