changeset 14628:24e8054e9cda draft

(svn r19205) -Codechange: move AirportSpec to newgrf_airport.h/cpp
author yexo <yexo@openttd.org>
date Mon, 22 Feb 2010 16:09:26 +0000
parents d1565f990581
children b314a1ba4eab
files projects/openttd_vs80.vcproj projects/openttd_vs90.vcproj source.list src/airport.cpp src/airport.h src/airport_gui.cpp src/newgrf_airport.cpp src/newgrf_airport.h src/station_base.h src/table/airport_defaults.h
diffstat 10 files changed, 111 insertions(+), 57 deletions(-) [+]
line wrap: on
line diff
--- a/projects/openttd_vs80.vcproj
+++ b/projects/openttd_vs80.vcproj
@@ -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>
--- a/projects/openttd_vs90.vcproj
+++ b/projects/openttd_vs90.vcproj
@@ -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>
--- a/source.list
+++ b/source.list
@@ -196,6 +196,7 @@
 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 @@
 
 # NewGRF
 newgrf.cpp
+newgrf_airport.cpp
 newgrf_airporttiles.cpp
 newgrf_canal.cpp
 newgrf_cargo.cpp
--- a/src/airport.cpp
+++ b/src/airport.cpp
@@ -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 @@
 	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 */
--- a/src/airport.h
+++ b/src/airport.h
@@ -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 @@
 	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,
--- a/src/airport_gui.cpp
+++ b/src/airport_gui.cpp
@@ -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"
new file mode 100644
--- /dev/null
+++ b/src/newgrf_airport.cpp
@@ -0,0 +1,39 @@
+/* $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;
+}
new file mode 100644
--- /dev/null
+++ b/src/newgrf_airport.h
@@ -0,0 +1,49 @@
+/* $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 */
--- a/src/station_base.h
+++ b/src/station_base.h
@@ -14,6 +14,7 @@
 
 #include "base_station_base.h"
 #include "airport.h"
+#include "newgrf_airport.h"
 #include "cargopacket.h"
 #include "industry_type.h"
 
--- a/src/table/airport_defaults.h
+++ b/src/table/airport_defaults.h
@@ -388,7 +388,7 @@
 #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),