src/airport.h
author richk
Thu, 06 Sep 2007 19:42:48 +0000
branchNewGRF_ports
changeset 6869 76282d3b748d
parent 6856 0e8e4ebf23ff
child 10200 aba3af04cdbd
permissions -rw-r--r--
(svn r11051) [NewGRF_ports] -Feature: Added SHORT TAKEOFF capability.
If current state is TAKEOFF, and aircraft is SHORT_STRIP capable, then it performs the TAKEOFF action and switches to SMALLSTARTTAKEOFF heading.
Translation is made of the aircraft heading, such that if the large version is encountered when the aircraft is looking for the SMALL version, it acts on the large version. This does NOT happen the other way around. A large aircraft will not react to a small aircraft state.
San Francisco updated to use SMALL takeoffs.
2186
461a2aff3486 (svn r2701) Insert Id tags into all source files
tron
parents: 2159
diff changeset
     1
/* $Id$ */
461a2aff3486 (svn r2701) Insert Id tags into all source files
tron
parents: 2159
diff changeset
     2
6443
b8f06d8eb7be (svn r8853) -Cleanup: doxygen changes. Correct forgotten c files to cpp files with the @file tag as well as a few general comments style
belugas
parents: 6367
diff changeset
     3
/** @file airport.h Various declarations for airports */
b8f06d8eb7be (svn r8853) -Cleanup: doxygen changes. Correct forgotten c files to cpp files with the @file tag as well as a few general comments style
belugas
parents: 6367
diff changeset
     4
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
     5
#ifndef AIRPORT_H
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
     6
#define AIRPORT_H
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
     7
6853
b3b8bb6c0a48 (svn r10956) [NewGRF_ports] -Codechange: start refactoring the airport specific code to be more generic so it can be used for non-aircraft ports too.
rubidium
parents: 6845
diff changeset
     8
#include "fsmport.h"
6818
8c977ca780fe (svn r10898) [NewGRF_ports] -Codechange: replace GetAirport and GetValidAiports by GetAvailableAirports which gives a list of available airports that (primarily) AIs can iterate over.
rubidium
parents: 6805
diff changeset
     9
#include <list>
5838
9c3129cb019b (svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents: 5726
diff changeset
    10
6856
0e8e4ebf23ff (svn r10959) [NewGRF_ports] -Change: Rename FSMState to FSMCommand. nof_elements changed to num_positions. nof_depots changed to num_depots.
richk
parents: 6854
diff changeset
    11
typedef FSMCommand AirportFTA;
6853
b3b8bb6c0a48 (svn r10956) [NewGRF_ports] -Codechange: start refactoring the airport specific code to be more generic so it can be used for non-aircraft ports too.
rubidium
parents: 6845
diff changeset
    12
typedef FSMPortMovingData AirportMovingData;
b3b8bb6c0a48 (svn r10956) [NewGRF_ports] -Codechange: start refactoring the airport specific code to be more generic so it can be used for non-aircraft ports too.
rubidium
parents: 6845
diff changeset
    13
6739
3f2ca4d0abda (svn r10738) [NewGRF_ports] -Feature: FSMblockmap class added. Basic FSM import complete. Need to handle multiple blocks on import. Aircraft controller recoded to work with new 128 bit blocks. Still need to write saveload for new blocks.
richk
parents: 6738
diff changeset
    14
enum {MAX_TERMINALS =  36};
3f2ca4d0abda (svn r10738) [NewGRF_ports] -Feature: FSMblockmap class added. Basic FSM import complete. Need to handle multiple blocks on import. Aircraft controller recoded to work with new 128 bit blocks. Still need to write saveload for new blocks.
richk
parents: 6738
diff changeset
    15
enum {MAX_HELIPADS  =  24};
3701
13911c5df3e7 (svn r4642) - Codechange: reorganise airport.h and airport_movement.h to avoid having 8 copies of the airport FTAs, and make the enums used available elsewhere.
peter1138
parents: 3697
diff changeset
    16
enum {MAX_ELEMENTS  = 255};
6715
ce1614834bc3 (svn r9507) [NewGRF_ports] -Codechange: Moved airport state definitions into their own separate file to permit better logical grouping of state machine related data & code.
richk
parents: 6574
diff changeset
    17
enum {MAX_HEADINGS  =  30};
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    18
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    19
// Airport types
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    20
enum {
4344
5d0e40cd67b9 (svn r6045) -Cleanup: align all table-like structures using spaces, i.e. whitespace fixes only except for a few comments to make them uniform for the whole enum/struct.
rubidium
parents: 4171
diff changeset
    21
	AT_SMALL         =  0,
5d0e40cd67b9 (svn r6045) -Cleanup: align all table-like structures using spaces, i.e. whitespace fixes only except for a few comments to make them uniform for the whole enum/struct.
rubidium
parents: 4171
diff changeset
    22
	AT_LARGE         =  1,
5d0e40cd67b9 (svn r6045) -Cleanup: align all table-like structures using spaces, i.e. whitespace fixes only except for a few comments to make them uniform for the whole enum/struct.
rubidium
parents: 4171
diff changeset
    23
	AT_HELIPORT      =  2,
5d0e40cd67b9 (svn r6045) -Cleanup: align all table-like structures using spaces, i.e. whitespace fixes only except for a few comments to make them uniform for the whole enum/struct.
rubidium
parents: 4171
diff changeset
    24
	AT_METROPOLITAN  =  3,
5d0e40cd67b9 (svn r6045) -Cleanup: align all table-like structures using spaces, i.e. whitespace fixes only except for a few comments to make them uniform for the whole enum/struct.
rubidium
parents: 4171
diff changeset
    25
	AT_INTERNATIONAL =  4,
5d0e40cd67b9 (svn r6045) -Cleanup: align all table-like structures using spaces, i.e. whitespace fixes only except for a few comments to make them uniform for the whole enum/struct.
rubidium
parents: 4171
diff changeset
    26
	AT_COMMUTER      =  5,
5d0e40cd67b9 (svn r6045) -Cleanup: align all table-like structures using spaces, i.e. whitespace fixes only except for a few comments to make them uniform for the whole enum/struct.
rubidium
parents: 4171
diff changeset
    27
	AT_HELIDEPOT     =  6,
5d0e40cd67b9 (svn r6045) -Cleanup: align all table-like structures using spaces, i.e. whitespace fixes only except for a few comments to make them uniform for the whole enum/struct.
rubidium
parents: 4171
diff changeset
    28
	AT_INTERCON      =  7,
5d0e40cd67b9 (svn r6045) -Cleanup: align all table-like structures using spaces, i.e. whitespace fixes only except for a few comments to make them uniform for the whole enum/struct.
rubidium
parents: 4171
diff changeset
    29
	AT_HELISTATION   =  8,
6719
4cc327ad39d5 (svn r10027) [NewGRF_ports] -Sync: with trunk r9506-10026
richk
parents: 6715
diff changeset
    30
	AT_OILRIG        = 15,
4cc327ad39d5 (svn r10027) [NewGRF_ports] -Sync: with trunk r9506-10026
richk
parents: 6715
diff changeset
    31
	AT_DUMMY         = 255
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    32
};
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    33
6837
c39d50afbaf0 (svn r10920) [NewGRF_ports] -Cleanup: remove the tables/files that were used to define airports as they will all be defined in a NewGRF and we do not need them anymore.
rubidium
parents: 6818
diff changeset
    34
/* Airport movements & speeds */
c39d50afbaf0 (svn r10920) [NewGRF_ports] -Cleanup: remove the tables/files that were used to define airports as they will all be defined in a NewGRF and we do not need them anymore.
rubidium
parents: 6818
diff changeset
    35
enum {
c39d50afbaf0 (svn r10920) [NewGRF_ports] -Cleanup: remove the tables/files that were used to define airports as they will all be defined in a NewGRF and we do not need them anymore.
rubidium
parents: 6818
diff changeset
    36
	AMED_EXACTPOS   = 1 << 0,
c39d50afbaf0 (svn r10920) [NewGRF_ports] -Cleanup: remove the tables/files that were used to define airports as they will all be defined in a NewGRF and we do not need them anymore.
rubidium
parents: 6818
diff changeset
    37
	AMED_NOSPDCLAMP = 1 << 4,
c39d50afbaf0 (svn r10920) [NewGRF_ports] -Cleanup: remove the tables/files that were used to define airports as they will all be defined in a NewGRF and we do not need them anymore.
rubidium
parents: 6818
diff changeset
    38
	AMED_SLOWTURN   = 1 << 5,
c39d50afbaf0 (svn r10920) [NewGRF_ports] -Cleanup: remove the tables/files that were used to define airports as they will all be defined in a NewGRF and we do not need them anymore.
rubidium
parents: 6818
diff changeset
    39
	AMED_BRAKE      = 1 << 6,
c39d50afbaf0 (svn r10920) [NewGRF_ports] -Cleanup: remove the tables/files that were used to define airports as they will all be defined in a NewGRF and we do not need them anymore.
rubidium
parents: 6818
diff changeset
    40
	AMED_HOLD       = 1 << 7,
c39d50afbaf0 (svn r10920) [NewGRF_ports] -Cleanup: remove the tables/files that were used to define airports as they will all be defined in a NewGRF and we do not need them anymore.
rubidium
parents: 6818
diff changeset
    41
	AMED_LAND       = 1 << 8,
c39d50afbaf0 (svn r10920) [NewGRF_ports] -Cleanup: remove the tables/files that were used to define airports as they will all be defined in a NewGRF and we do not need them anymore.
rubidium
parents: 6818
diff changeset
    42
	AMED_HELI_RAISE = 1 << 8,
c39d50afbaf0 (svn r10920) [NewGRF_ports] -Cleanup: remove the tables/files that were used to define airports as they will all be defined in a NewGRF and we do not need them anymore.
rubidium
parents: 6818
diff changeset
    43
	AMED_TAKEOFF    = 1 << 8,
c39d50afbaf0 (svn r10920) [NewGRF_ports] -Cleanup: remove the tables/files that were used to define airports as they will all be defined in a NewGRF and we do not need them anymore.
rubidium
parents: 6818
diff changeset
    44
	AMED_HELI_LOWER = 1 << 8,
c39d50afbaf0 (svn r10920) [NewGRF_ports] -Cleanup: remove the tables/files that were used to define airports as they will all be defined in a NewGRF and we do not need them anymore.
rubidium
parents: 6818
diff changeset
    45
};
c39d50afbaf0 (svn r10920) [NewGRF_ports] -Cleanup: remove the tables/files that were used to define airports as they will all be defined in a NewGRF and we do not need them anymore.
rubidium
parents: 6818
diff changeset
    46
c39d50afbaf0 (svn r10920) [NewGRF_ports] -Cleanup: remove the tables/files that were used to define airports as they will all be defined in a NewGRF and we do not need them anymore.
rubidium
parents: 6818
diff changeset
    47
/* Movement States on Airports (headings target) */
c39d50afbaf0 (svn r10920) [NewGRF_ports] -Cleanup: remove the tables/files that were used to define airports as they will all be defined in a NewGRF and we do not need them anymore.
rubidium
parents: 6818
diff changeset
    48
enum {
c39d50afbaf0 (svn r10920) [NewGRF_ports] -Cleanup: remove the tables/files that were used to define airports as they will all be defined in a NewGRF and we do not need them anymore.
rubidium
parents: 6818
diff changeset
    49
	TO_ALL         = 0x00,
c39d50afbaf0 (svn r10920) [NewGRF_ports] -Cleanup: remove the tables/files that were used to define airports as they will all be defined in a NewGRF and we do not need them anymore.
rubidium
parents: 6818
diff changeset
    50
	FIRST_TERMINAL = 0x01,
c39d50afbaf0 (svn r10920) [NewGRF_ports] -Cleanup: remove the tables/files that were used to define airports as they will all be defined in a NewGRF and we do not need them anymore.
rubidium
parents: 6818
diff changeset
    51
	LAST_TERMINAL  = 0x24,
c39d50afbaf0 (svn r10920) [NewGRF_ports] -Cleanup: remove the tables/files that were used to define airports as they will all be defined in a NewGRF and we do not need them anymore.
rubidium
parents: 6818
diff changeset
    52
	FIRST_HELIPAD  = 0x25,
c39d50afbaf0 (svn r10920) [NewGRF_ports] -Cleanup: remove the tables/files that were used to define airports as they will all be defined in a NewGRF and we do not need them anymore.
rubidium
parents: 6818
diff changeset
    53
	LAST_HELIPAD   = 0x3C,
c39d50afbaf0 (svn r10920) [NewGRF_ports] -Cleanup: remove the tables/files that were used to define airports as they will all be defined in a NewGRF and we do not need them anymore.
rubidium
parents: 6818
diff changeset
    54
	HANGAR         = 0x40,
c39d50afbaf0 (svn r10920) [NewGRF_ports] -Cleanup: remove the tables/files that were used to define airports as they will all be defined in a NewGRF and we do not need them anymore.
rubidium
parents: 6818
diff changeset
    55
	TAKEOFF        = 0x41,
c39d50afbaf0 (svn r10920) [NewGRF_ports] -Cleanup: remove the tables/files that were used to define airports as they will all be defined in a NewGRF and we do not need them anymore.
rubidium
parents: 6818
diff changeset
    56
	STARTTAKEOFF   = 0x42,
c39d50afbaf0 (svn r10920) [NewGRF_ports] -Cleanup: remove the tables/files that were used to define airports as they will all be defined in a NewGRF and we do not need them anymore.
rubidium
parents: 6818
diff changeset
    57
	ENDTAKEOFF     = 0x43,
c39d50afbaf0 (svn r10920) [NewGRF_ports] -Cleanup: remove the tables/files that were used to define airports as they will all be defined in a NewGRF and we do not need them anymore.
rubidium
parents: 6818
diff changeset
    58
	LANDING        = 0x44,
c39d50afbaf0 (svn r10920) [NewGRF_ports] -Cleanup: remove the tables/files that were used to define airports as they will all be defined in a NewGRF and we do not need them anymore.
rubidium
parents: 6818
diff changeset
    59
	ENDLANDING     = 0x45,
6869
76282d3b748d (svn r11051) [NewGRF_ports] -Feature: Added SHORT TAKEOFF capability.
richk
parents: 6856
diff changeset
    60
	SMALLHANGAR    = 0x48,
76282d3b748d (svn r11051) [NewGRF_ports] -Feature: Added SHORT TAKEOFF capability.
richk
parents: 6856
diff changeset
    61
	SMALLTAKEOFF   = 0x49,  /* Only used in movement command choices. If used as the heading in the first command element, treated as TAKEOFF.
6837
c39d50afbaf0 (svn r10920) [NewGRF_ports] -Cleanup: remove the tables/files that were used to define airports as they will all be defined in a NewGRF and we do not need them anymore.
rubidium
parents: 6818
diff changeset
    62
						   * This is best placed on the TAKEOFF line at the start of the runway. The aircraft will make the acceleration noise,
c39d50afbaf0 (svn r10920) [NewGRF_ports] -Cleanup: remove the tables/files that were used to define airports as they will all be defined in a NewGRF and we do not need them anymore.
rubidium
parents: 6818
diff changeset
    63
						   * and then you give the instruction of where to go to for the SHORTTAKEOFF instruction sequence. eg.:
c39d50afbaf0 (svn r10920) [NewGRF_ports] -Cleanup: remove the tables/files that were used to define airports as they will all be defined in a NewGRF and we do not need them anymore.
rubidium
parents: 6818
diff changeset
    64
						   * { 40, TAKEOFF, RUNWAY_OUT_block, 0 }, { 40, SHORTTAKEOFF, RUNWAY_OUT_block2, 42 }, { 40, 0, RUNWAY_OUT_block2, 41 },
c39d50afbaf0 (svn r10920) [NewGRF_ports] -Cleanup: remove the tables/files that were used to define airports as they will all be defined in a NewGRF and we do not need them anymore.
rubidium
parents: 6818
diff changeset
    65
						   */
6869
76282d3b748d (svn r11051) [NewGRF_ports] -Feature: Added SHORT TAKEOFF capability.
richk
parents: 6856
diff changeset
    66
	SMALLSTARTTAKEOFF = 0x4A,
76282d3b748d (svn r11051) [NewGRF_ports] -Feature: Added SHORT TAKEOFF capability.
richk
parents: 6856
diff changeset
    67
	SMALLENDTAKEOFF = 0x4B,
76282d3b748d (svn r11051) [NewGRF_ports] -Feature: Added SHORT TAKEOFF capability.
richk
parents: 6856
diff changeset
    68
	SMALLLANDING   = 0x4C,
76282d3b748d (svn r11051) [NewGRF_ports] -Feature: Added SHORT TAKEOFF capability.
richk
parents: 6856
diff changeset
    69
	SMALLENDLANDING = 0x4D,
6837
c39d50afbaf0 (svn r10920) [NewGRF_ports] -Cleanup: remove the tables/files that were used to define airports as they will all be defined in a NewGRF and we do not need them anymore.
rubidium
parents: 6818
diff changeset
    70
	HELITAKEOFF    = 0x51,
c39d50afbaf0 (svn r10920) [NewGRF_ports] -Cleanup: remove the tables/files that were used to define airports as they will all be defined in a NewGRF and we do not need them anymore.
rubidium
parents: 6818
diff changeset
    71
	HELIENDTAKEOFF = 0x53,
c39d50afbaf0 (svn r10920) [NewGRF_ports] -Cleanup: remove the tables/files that were used to define airports as they will all be defined in a NewGRF and we do not need them anymore.
rubidium
parents: 6818
diff changeset
    72
	HELILANDING    = 0x54,
c39d50afbaf0 (svn r10920) [NewGRF_ports] -Cleanup: remove the tables/files that were used to define airports as they will all be defined in a NewGRF and we do not need them anymore.
rubidium
parents: 6818
diff changeset
    73
	HELIENDLANDING = 0x55,
6845
666878d09b80 (svn r10943) [NewGRF_ports] -Change: Hangar terminal selection now checks for presence of a Choose Term/Helipad command. Usefully this can be *after* the TO_ALL, so ordinary processing will not pick up a secondary terminal reassignment.
richk
parents: 6837
diff changeset
    74
	CHOOSEHELIPAD  = 0x7D,
666878d09b80 (svn r10943) [NewGRF_ports] -Change: Hangar terminal selection now checks for presence of a Choose Term/Helipad command. Usefully this can be *after* the TO_ALL, so ordinary processing will not pick up a secondary terminal reassignment.
richk
parents: 6837
diff changeset
    75
	CHOOSETERMINAL = 0x7E,
6837
c39d50afbaf0 (svn r10920) [NewGRF_ports] -Cleanup: remove the tables/files that were used to define airports as they will all be defined in a NewGRF and we do not need them anymore.
rubidium
parents: 6818
diff changeset
    76
	FLYING         = 0x7F,
c39d50afbaf0 (svn r10920) [NewGRF_ports] -Cleanup: remove the tables/files that were used to define airports as they will all be defined in a NewGRF and we do not need them anymore.
rubidium
parents: 6818
diff changeset
    77
};
5838
9c3129cb019b (svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents: 5726
diff changeset
    78
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
    79
// Finite sTate mAchine --> FTA
6853
b3b8bb6c0a48 (svn r10956) [NewGRF_ports] -Codechange: start refactoring the airport specific code to be more generic so it can be used for non-aircraft ports too.
rubidium
parents: 6845
diff changeset
    80
struct AirportFTAClass : FSMPortClass {
b3b8bb6c0a48 (svn r10956) [NewGRF_ports] -Codechange: start refactoring the airport specific code to be more generic so it can be used for non-aircraft ports too.
rubidium
parents: 6845
diff changeset
    81
public:
6854
92ca286e9466 (svn r10957) [NewGRF_ports] -Codechange: reduce the dependency on AT_XXX enums and airport_type.
rubidium
parents: 6853
diff changeset
    82
	static AirportFTAClass *oil_rig; ///< "Special" holding pattern used for oil rigs.
92ca286e9466 (svn r10957) [NewGRF_ports] -Codechange: reduce the dependency on AT_XXX enums and airport_type.
rubidium
parents: 6853
diff changeset
    83
	static AirportFTAClass *dummy;   ///< A dummy holding pattern to be used when an airport has been removed, but the order to go to the airport has not been removed.
92ca286e9466 (svn r10957) [NewGRF_ports] -Codechange: reduce the dependency on AT_XXX enums and airport_type.
rubidium
parents: 6853
diff changeset
    84
6853
b3b8bb6c0a48 (svn r10956) [NewGRF_ports] -Codechange: start refactoring the airport specific code to be more generic so it can be used for non-aircraft ports too.
rubidium
parents: 6845
diff changeset
    85
	enum Flags {
b3b8bb6c0a48 (svn r10956) [NewGRF_ports] -Codechange: start refactoring the airport specific code to be more generic so it can be used for non-aircraft ports too.
rubidium
parents: 6845
diff changeset
    86
		AIRPLANES   = 0x1,
b3b8bb6c0a48 (svn r10956) [NewGRF_ports] -Codechange: start refactoring the airport specific code to be more generic so it can be used for non-aircraft ports too.
rubidium
parents: 6845
diff changeset
    87
		HELICOPTERS = 0x2,
b3b8bb6c0a48 (svn r10956) [NewGRF_ports] -Codechange: start refactoring the airport specific code to be more generic so it can be used for non-aircraft ports too.
rubidium
parents: 6845
diff changeset
    88
		ALL         = AIRPLANES | HELICOPTERS,
b3b8bb6c0a48 (svn r10956) [NewGRF_ports] -Codechange: start refactoring the airport specific code to be more generic so it can be used for non-aircraft ports too.
rubidium
parents: 6845
diff changeset
    89
		SHORT_STRIP = 0x4,
b3b8bb6c0a48 (svn r10956) [NewGRF_ports] -Codechange: start refactoring the airport specific code to be more generic so it can be used for non-aircraft ports too.
rubidium
parents: 6845
diff changeset
    90
		SEAPLANES   = 0x8
b3b8bb6c0a48 (svn r10956) [NewGRF_ports] -Codechange: start refactoring the airport specific code to be more generic so it can be used for non-aircraft ports too.
rubidium
parents: 6845
diff changeset
    91
	};
6350
c644e180cdf8 (svn r8747) -Fix
tron
parents: 6346
diff changeset
    92
6854
92ca286e9466 (svn r10957) [NewGRF_ports] -Codechange: reduce the dependency on AT_XXX enums and airport_type.
rubidium
parents: 6853
diff changeset
    93
	AirportFTAClass(FSMportsSpec *spec) : FSMPortClass(spec), terminals(NULL), helipads(NULL), flags((Flags)0), entry_points(NULL) {}
6183
5d864a25ae2b (svn r8570) -Fix
tron
parents: 6175
diff changeset
    94
6853
b3b8bb6c0a48 (svn r10956) [NewGRF_ports] -Codechange: start refactoring the airport specific code to be more generic so it can be used for non-aircraft ports too.
rubidium
parents: 6845
diff changeset
    95
	~AirportFTAClass();
6183
5d864a25ae2b (svn r8570) -Fix
tron
parents: 6175
diff changeset
    96
6737
2b971fcc9a08 (svn r10682) [NewGRF_ports] -Feature: Added code to import FSM from within the newgrf, and allocate to compatible structures within Airport. Eventually, it will load to its own dedicated structures.
richk
parents: 6734
diff changeset
    97
	byte *terminals;
2b971fcc9a08 (svn r10682) [NewGRF_ports] -Feature: Added code to import FSM from within the newgrf, and allocate to compatible structures within Airport. Eventually, it will load to its own dedicated structures.
richk
parents: 6734
diff changeset
    98
	byte *helipads;
6350
c644e180cdf8 (svn r8747) -Fix
tron
parents: 6346
diff changeset
    99
	Flags flags;
6737
2b971fcc9a08 (svn r10682) [NewGRF_ports] -Feature: Added code to import FSM from within the newgrf, and allocate to compatible structures within Airport. Eventually, it will load to its own dedicated structures.
richk
parents: 6734
diff changeset
   100
	byte *entry_points;             ///< when an airplane arrives at this airport, enter it at position entry_point, index depends on direction
6574
e1d1a12faaf7 (svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents: 6573
diff changeset
   101
};
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
   102
6351
afb1e3960181 (svn r8748) -Fix
tron
parents: 6350
diff changeset
   103
DECLARE_ENUM_AS_BIT_SET(AirportFTAClass::Flags)
afb1e3960181 (svn r8748) -Fix
tron
parents: 6350
diff changeset
   104
6818
8c977ca780fe (svn r10898) [NewGRF_ports] -Codechange: replace GetAirport and GetValidAiports by GetAvailableAirports which gives a list of available airports that (primarily) AIs can iterate over.
rubidium
parents: 6805
diff changeset
   105
/**
8c977ca780fe (svn r10898) [NewGRF_ports] -Codechange: replace GetAirport and GetValidAiports by GetAvailableAirports which gives a list of available airports that (primarily) AIs can iterate over.
rubidium
parents: 6805
diff changeset
   106
 * Get a list of currently available airports.
8c977ca780fe (svn r10898) [NewGRF_ports] -Codechange: replace GetAirport and GetValidAiports by GetAvailableAirports which gives a list of available airports that (primarily) AIs can iterate over.
rubidium
parents: 6805
diff changeset
   107
 * @return the list with available airports.
8c977ca780fe (svn r10898) [NewGRF_ports] -Codechange: replace GetAirport and GetValidAiports by GetAvailableAirports which gives a list of available airports that (primarily) AIs can iterate over.
rubidium
parents: 6805
diff changeset
   108
 * @note return is "class index" << 8 | "index within class"
1784
6eb3ab1bc33c (svn r2288) - CodeChange: protected the next batch of commands (41 so far, out of 115).
Darkvater
parents: 1093
diff changeset
   109
 */
6818
8c977ca780fe (svn r10898) [NewGRF_ports] -Codechange: replace GetAirport and GetValidAiports by GetAvailableAirports which gives a list of available airports that (primarily) AIs can iterate over.
rubidium
parents: 6805
diff changeset
   110
std::list<uint16> GetAvailableAirports();
1784
6eb3ab1bc33c (svn r2288) - CodeChange: protected the next batch of commands (41 so far, out of 115).
Darkvater
parents: 1093
diff changeset
   111
0
29654efe3188 (svn r1) Import of revision 975 of old (crashed) SVN
truelight
parents:
diff changeset
   112
#endif /* AIRPORT_H */