airport_movement.h
changeset 3701 fdbb6bcab8a2
parent 2186 db48cf29b983
child 4059 b1e1c1193f0a
equal deleted inserted replaced
3700:e3cbe8238b06 3701:fdbb6bcab8a2
     1 /* $Id$ */
     1 /* $Id$ */
     2 
     2 
     3 #ifndef AIRPORT_MOVEMENT_H
     3 #ifndef AIRPORT_MOVEMENT_H
     4 #define AIRPORT_MOVEMENT_H
     4 #define AIRPORT_MOVEMENT_H
     5 
     5 
     6 #include "stdafx.h"
       
     7 
       
     8 typedef struct AirportMovingData {
       
     9 	int x,y;
       
    10 	byte flag;
       
    11 	byte direction;
       
    12 } AirportMovingData;
       
    13 
     6 
    14 // state machine input struct (from external file, etc.)
     7 // state machine input struct (from external file, etc.)
    15 // Finite sTate mAchine --> FTA
     8 // Finite sTate mAchine --> FTA
    16 typedef struct AirportFTAbuildup {
     9 typedef struct AirportFTAbuildup {
    17 	byte position;							// the position that an airplane is at
    10 	byte position;							// the position that an airplane is at
    18 	byte heading;								// the current orders (eg. TAKEOFF, HANGAR, ENDLANDING, etc.)
    11 	byte heading;								// the current orders (eg. TAKEOFF, HANGAR, ENDLANDING, etc.)
    19 	uint32 block;								// the block this position is on on the airport (st->airport_flags)
    12 	uint32 block;								// the block this position is on on the airport (st->airport_flags)
    20 	byte next_in_chain;					// next position from this position
    13 	byte next_in_chain;					// next position from this position
    21 } AirportFTAbuildup;
    14 } AirportFTAbuildup;
    22 
    15 
    23 enum {
       
    24 	AMED_NOSPDCLAMP	= 1<<0,
       
    25 	AMED_TAKEOFF		= 1<<1,
       
    26 	AMED_SLOWTURN		= 1<<2,
       
    27 	AMED_LAND				= 1<<3,
       
    28 	AMED_EXACTPOS		= 1<<4,
       
    29 	AMED_BRAKE			= 1<<5,
       
    30 	AMED_HELI_RAISE	= 1<<6,
       
    31 	AMED_HELI_LOWER	= 1<<7,
       
    32 };
       
    33 
       
    34 enum {MAX_ELEMENTS = 255};
       
    35 enum {MAX_HEADINGS = 18};
       
    36 
       
    37 ///////////////////////////////////////////////////////////////////////
       
    38 ///////***********Movement States on Airports********************//////
       
    39 // headings target
       
    40 enum {
       
    41 	TO_ALL = 0,
       
    42 	HANGAR = 1,
       
    43 	TERM1 = 2,
       
    44 	TERM2 = 3,
       
    45 	TERM3 = 4,
       
    46 	TERM4 = 5,
       
    47 	TERM5 = 6,
       
    48 	TERM6 = 7,
       
    49 	HELIPAD1 = 8,
       
    50 	HELIPAD2 = 9,
       
    51 	TAKEOFF = 10,
       
    52 	STARTTAKEOFF = 11,
       
    53 	ENDTAKEOFF = 12,
       
    54 	HELITAKEOFF = 13,
       
    55 	FLYING = 14,
       
    56 	LANDING = 15,
       
    57 	ENDLANDING = 16,
       
    58 	HELILANDING = 17,
       
    59 	HELIENDLANDING = 18
       
    60 };
       
    61 
       
    62 ///////////////////////////////////////////////////////////////////////
       
    63 ///////**********Movement Blocks on Airports*********************//////
       
    64 // blocks (eg_airport_flags)
       
    65 enum {
       
    66 	TERM1_block								= 1 << 0,
       
    67 	TERM2_block								= 1 << 1,
       
    68 	TERM3_block								= 1 << 2,
       
    69 	TERM4_block								= 1 << 3,
       
    70 	TERM5_block								= 1 << 4,
       
    71 	TERM6_block								= 1 << 5,
       
    72 	HELIPAD1_block						= 1 << 6,
       
    73 	HELIPAD2_block						= 1 << 7,
       
    74 	RUNWAY_IN_OUT_block				= 1 << 8,
       
    75 	RUNWAY_IN_block						= 1 << 8,
       
    76 	AIRPORT_BUSY_block				= 1 << 8,
       
    77 	RUNWAY_OUT_block					= 1 << 9,
       
    78 	TAXIWAY_BUSY_block				= 1 << 10,
       
    79 	OUT_WAY_block							= 1 << 11,
       
    80 	IN_WAY_block							= 1 << 12,
       
    81 	AIRPORT_ENTRANCE_block		= 1 << 13,
       
    82 	TERM_GROUP1_block					= 1 << 14,
       
    83 	TERM_GROUP2_block					= 1 << 15,
       
    84 	HANGAR2_AREA_block				= 1 << 16,
       
    85 	TERM_GROUP2_ENTER1_block	= 1 << 17,
       
    86 	TERM_GROUP2_ENTER2_block	= 1 << 18,
       
    87 	TERM_GROUP2_EXIT1_block		= 1 << 19,
       
    88 	TERM_GROUP2_EXIT2_block		= 1 << 20,
       
    89 	PRE_HELIPAD_block					= 1 << 21,
       
    90 	NOTHING_block							= 1 << 30
       
    91 };
       
    92 
    16 
    93 ///////////////////////////////////////////////////////////////////////
    17 ///////////////////////////////////////////////////////////////////////
    94 /////*********Movement Positions on Airports********************///////
    18 /////*********Movement Positions on Airports********************///////
    95 // Country Airfield (small) 4x3
    19 // Country Airfield (small) 4x3
    96 static const AirportMovingData _airport_moving_data_country[22] = {
    20 static const AirportMovingData _airport_moving_data_country[22] = {