(svn r16614) -Codechange: Make the airport min/max available year a property of the Airport class.

-Change: rename station.always_small_airport to station.never_expire_airports to make it more future-proof
This commit is contained in:
yexo
2009-06-21 13:26:30 +00:00
parent 548a605263
commit c7bd6c8d34
54 changed files with 58 additions and 104 deletions

View File

@@ -242,7 +242,8 @@ void InitializeAirports()
0,
0, 0, 0,
0,
0
0,
MAX_YEAR + 1, MAX_YEAR + 1
);
CountryAirport = new AirportFTAClass(
@@ -256,7 +257,8 @@ void InitializeAirports()
lengthof(_airport_depots_country),
4, 3, 3,
0,
4
4,
0, 1959
);
CityAirport = new AirportFTAClass(
@@ -270,7 +272,8 @@ void InitializeAirports()
lengthof(_airport_depots_city),
6, 6, 5,
0,
5
5,
1955, MAX_YEAR
);
MetropolitanAirport = new AirportFTAClass(
@@ -284,7 +287,8 @@ void InitializeAirports()
lengthof(_airport_depots_metropolitan),
6, 6, 8,
0,
6
6,
1980, MAX_YEAR
);
InternationalAirport = new AirportFTAClass(
@@ -298,7 +302,8 @@ void InitializeAirports()
lengthof(_airport_depots_international),
7, 7, 17,
0,
8
8,
1990, MAX_YEAR
);
IntercontinentalAirport = new AirportFTAClass(
@@ -312,7 +317,8 @@ void InitializeAirports()
lengthof(_airport_depots_intercontinental),
9, 11, 25,
0,
10
10,
2002, MAX_YEAR
);
Heliport = new AirportFTAClass(
@@ -326,7 +332,8 @@ void InitializeAirports()
0,
1, 1, 1,
60,
4
4,
1963, MAX_YEAR
);
Oilrig = new AirportFTAClass(
@@ -340,7 +347,8 @@ void InitializeAirports()
0,
1, 1, 0,
54,
3
3,
MAX_YEAR + 1, MAX_YEAR + 1
);
CommuterAirport = new AirportFTAClass(
@@ -354,7 +362,8 @@ void InitializeAirports()
lengthof(_airport_depots_commuter),
5, 4, 4,
0,
4
4,
1983, MAX_YEAR
);
HeliDepot = new AirportFTAClass(
@@ -368,7 +377,8 @@ void InitializeAirports()
lengthof(_airport_depots_helidepot),
2, 2, 2,
0,
4
4,
1976, MAX_YEAR
);
HeliStation = new AirportFTAClass(
@@ -382,7 +392,8 @@ void InitializeAirports()
lengthof(_airport_depots_helistation),
4, 2, 3,
0,
4
4,
1980, MAX_YEAR
);
}
@@ -424,7 +435,9 @@ AirportFTAClass::AirportFTAClass(
uint size_y_,
byte noise_level_,
byte delta_z_,
byte catchment_
byte catchment_,
Year first_available_,
Year last_available_
) :
moving_data(moving_data_),
terminals(terminals_),
@@ -438,7 +451,9 @@ AirportFTAClass::AirportFTAClass(
size_y(size_y_),
noise_level(noise_level_),
delta_z(delta_z_),
catchment(catchment_)
catchment(catchment_),
first_available(first_available_),
last_available(last_available_)
{
byte nofterminalgroups, nofhelipadgroups;
@@ -485,7 +500,6 @@ AirportFTAClass::AirportFTAClass(
#endif
}
AirportFTAClass::~AirportFTAClass()
{
for (uint i = 0; i < nofelements; i++) {
@@ -499,6 +513,13 @@ AirportFTAClass::~AirportFTAClass()
free(layout);
}
bool AirportFTAClass::IsAvailable() const
{
if (_cur_year < this->first_available) return false;
if (_settings_game.station.never_expire_airports) return true;
return _cur_year <= this->last_available;
}
/** 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 */
@@ -668,20 +689,3 @@ const AirportFTAClass *GetAirport(const byte airport_type)
case AT_DUMMY: return DummyAirport;
}
}
uint32 GetValidAirports()
{
uint32 mask = 0;
if (_cur_year < 1960 || _settings_game.station.always_small_airport) SetBit(mask, 0); // small airport
if (_cur_year >= 1955) SetBit(mask, 1); // city airport
if (_cur_year >= 1963) SetBit(mask, 2); // heliport
if (_cur_year >= 1980) SetBit(mask, 3); // metropolitan airport
if (_cur_year >= 1990) SetBit(mask, 4); // international airport
if (_cur_year >= 1983) SetBit(mask, 5); // commuter airport
if (_cur_year >= 1976) SetBit(mask, 6); // helidepot
if (_cur_year >= 2002) SetBit(mask, 7); // intercontinental airport
if (_cur_year >= 1980) SetBit(mask, 8); // helistation
return mask;
}