diff options
author | yexo <yexo@openttd.org> | 2010-03-05 23:21:23 +0000 |
---|---|---|
committer | yexo <yexo@openttd.org> | 2010-03-05 23:21:23 +0000 |
commit | 664934e6f6c24aa63b0bd3b3e4a0333eab53d612 (patch) | |
tree | 3db50490dede46651b27580983401f48150ce5a8 /src/newgrf_airport.cpp | |
parent | 308781664b6b316f6f13822d292f3c5c787d62c9 (diff) | |
download | openttd-664934e6f6c24aa63b0bd3b3e4a0333eab53d612.tar.xz |
(svn r19323) -Codechange: copy the AirportSpec original array to an internal array in AirportSpec
Diffstat (limited to 'src/newgrf_airport.cpp')
-rw-r--r-- | src/newgrf_airport.cpp | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/src/newgrf_airport.cpp b/src/newgrf_airport.cpp index b2cf3e84e..c5bc5eb55 100644 --- a/src/newgrf_airport.cpp +++ b/src/newgrf_airport.cpp @@ -18,6 +18,8 @@ AirportSpec AirportSpec::dummy = {NULL, NULL, 0, 0, 0, 0, 0, MIN_YEAR, MIN_YEAR, ATP_TTDP_LARGE}; AirportSpec AirportSpec::oilrig = {NULL, NULL, 0, 1, 1, 0, 4, MIN_YEAR, MIN_YEAR, ATP_TTDP_OILRIG}; +AirportSpec AirportSpec::specs[NUM_AIRPORTS]; + /** * Retrieve airport spec for the given airport * @param type index of airport @@ -26,9 +28,8 @@ AirportSpec AirportSpec::oilrig = {NULL, NULL, 0, 1, 1, 0, 4, MIN_YEAR, MIN_YEAR /* 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]; + assert(type < lengthof(AirportSpec::specs)); + return &AirportSpec::specs[type]; } bool AirportSpec::IsAvailable() const @@ -37,3 +38,13 @@ bool AirportSpec::IsAvailable() const if (_settings_game.station.never_expire_airports) return true; return _cur_year <= this->max_year; } + +/** + * This function initialize the airportspec array. + */ +void AirportSpec::ResetAirports() +{ + extern const AirportSpec _origin_airport_specs[]; + memset(&AirportSpec::specs, 0, sizeof(AirportSpec::specs)); + memcpy(&AirportSpec::specs, &_origin_airport_specs, sizeof(AirportSpec) * NUM_AIRPORTS); +} |