|
|
#ifndef AIRPORT_MOVEMENT_H
|
|
|
#define AIRPORT_MOVEMENT_H
|
|
|
|
|
|
#include "stdafx.h"
|
|
|
#include "macros.h"
|
|
|
|
|
|
typedef struct AirportMovingData {
|
|
|
int x,y;
|
|
|
byte flag;
|
|
|
byte direction;
|
|
|
} AirportMovingData;
|
|
|
|
|
|
// state machine input struct (from external file, etc.)
|
|
|
// Finite sTate mAchine --> FTA
|
|
|
typedef struct AirportFTAbuildup {
|
|
|
byte position; // the position that an airplane is at
|
|
|
byte heading; // the current orders (eg. TAKEOFF, HANGAR, ENDLANDING, etc.)
|
|
|
uint32 block; // the block this position is on on the airport (st->airport_flags)
|
|
|
byte next_in_chain; // next position from this position
|
|
|
} AirportFTAbuildup;
|
|
|
|
|
|
enum {
|
|
|
AMED_NOSPDCLAMP = 1<<0,
|
|
|
AMED_TAKEOFF = 1<<1,
|
|
|
AMED_SLOWTURN = 1<<2,
|
|
|
AMED_LAND = 1<<3,
|
|
|
AMED_EXACTPOS = 1<<4,
|
|
|
AMED_BRAKE = 1<<5,
|
|
|
AMED_HELI_RAISE = 1<<6,
|
|
|
AMED_HELI_LOWER = 1<<7,
|
|
|
};
|
|
|
|
|
|
enum {MAX_ELEMENTS = 255};
|
|
|
enum {MAX_HEADINGS = 18};
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////
|
|
|
///////***********Movement States on Airports********************//////
|
|
|
// headings target
|
|
|
enum {
|
|
|
TO_ALL = 0,
|
|
|
HANGAR = 1,
|
|
|
TERM1 = 2,
|
|
|
TERM2 = 3,
|
|
|
TERM3 = 4,
|
|
|
TERM4 = 5,
|
|
|
TERM5 = 6,
|
|
|
TERM6 = 7,
|
|
|
HELIPAD1 = 8,
|
|
|
HELIPAD2 = 9,
|
|
|
TAKEOFF = 10,
|
|
|
STARTTAKEOFF = 11,
|
|
|
ENDTAKEOFF = 12,
|
|
|
HELITAKEOFF = 13,
|