Changeset - r4344:bff007ae1fd1
[Not reviewed]
master
! ! !
rubidium - 18 years ago 2006-08-22 14:38:37
rubidium@openttd.org
(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.
28 files changed:
0 comments (0 inline, 0 general)
ai/default/default.c
Show inline comments
 
@@ -31,36 +31,36 @@
 
// remove some day perhaps?
 
static uint _ai_service_interval;
 

	
 
typedef void AiStateAction(Player *p);
 

	
 
enum {
 
	AIS_0 = 0,
 
	AIS_1 = 1,
 
	AIS_VEH_LOOP = 2,
 
	AIS_VEH_CHECK_REPLACE_VEHICLE = 3,
 
	AIS_VEH_DO_REPLACE_VEHICLE = 4,
 
	AIS_WANT_NEW_ROUTE = 5,
 
	AIS_BUILD_DEFAULT_RAIL_BLOCKS = 6,
 
	AIS_BUILD_RAIL = 7,
 
	AIS_BUILD_RAIL_VEH = 8,
 
	AIS_DELETE_RAIL_BLOCKS = 9,
 
	AIS_BUILD_DEFAULT_ROAD_BLOCKS = 10,
 
	AIS_BUILD_ROAD = 11,
 
	AIS_BUILD_ROAD_VEHICLES = 12,
 
	AIS_DELETE_ROAD_BLOCKS = 13,
 
	AIS_AIRPORT_STUFF = 14,
 
	AIS_0                            =  0,
 
	AIS_1                            =  1,
 
	AIS_VEH_LOOP                     =  2,
 
	AIS_VEH_CHECK_REPLACE_VEHICLE    =  3,
 
	AIS_VEH_DO_REPLACE_VEHICLE       =  4,
 
	AIS_WANT_NEW_ROUTE               =  5,
 
	AIS_BUILD_DEFAULT_RAIL_BLOCKS    =  6,
 
	AIS_BUILD_RAIL                   =  7,
 
	AIS_BUILD_RAIL_VEH               =  8,
 
	AIS_DELETE_RAIL_BLOCKS           =  9,
 
	AIS_BUILD_DEFAULT_ROAD_BLOCKS    = 10,
 
	AIS_BUILD_ROAD                   = 11,
 
	AIS_BUILD_ROAD_VEHICLES          = 12,
 
	AIS_DELETE_ROAD_BLOCKS           = 13,
 
	AIS_AIRPORT_STUFF                = 14,
 
	AIS_BUILD_DEFAULT_AIRPORT_BLOCKS = 15,
 
	AIS_BUILD_AIRCRAFT_VEHICLES = 16,
 
	AIS_CHECK_SHIP_STUFF = 17,
 
	AIS_BUILD_DEFAULT_SHIP_BLOCKS = 18,
 
	AIS_DO_SHIP_STUFF = 19,
 
	AIS_SELL_VEHICLE = 20,
 
	AIS_REMOVE_STATION = 21,
 
	AIS_REMOVE_TRACK = 22,
 
	AIS_REMOVE_SINGLE_RAIL_TILE = 23
 
	AIS_BUILD_AIRCRAFT_VEHICLES      = 16,
 
	AIS_CHECK_SHIP_STUFF             = 17,
 
	AIS_BUILD_DEFAULT_SHIP_BLOCKS    = 18,
 
	AIS_DO_SHIP_STUFF                = 19,
 
	AIS_SELL_VEHICLE                 = 20,
 
	AIS_REMOVE_STATION               = 21,
 
	AIS_REMOVE_TRACK                 = 22,
 
	AIS_REMOVE_SINGLE_RAIL_TILE      = 23
 
};
 

	
 

	
 
#include "../../table/ai_rail.h"
 

	
 
static byte GetRailTrackStatus(TileIndex tile)
 
@@ -1665,30 +1665,30 @@ static int AiBuildDefaultRailTrack(TileI
 

	
 
	return -1;
 
}
 

	
 
static const byte _terraform_up_flags[] = {
 
	14, 13, 12, 11,
 
	10, 9, 8, 7,
 
	6, 5, 4, 3,
 
	2, 1, 0, 1,
 
	2, 1, 4, 1,
 
	2, 1, 8, 1,
 
	2, 1, 4, 2,
 
	2, 1
 
	10,  9,  8,  7,
 
	 6,  5,  4,  3,
 
	 2,  1,  0,  1,
 
	 2,  1,  4,  1,
 
	 2,  1,  8,  1,
 
	 2,  1,  4,  2,
 
	 2,  1
 
};
 

	
 
static const byte _terraform_down_flags[] = {
 
	1, 2, 3, 4,
 
	5, 6, 1, 8,
 
	1,  2, 3,  4,
 
	5,  6, 1,  8,
 
	9, 10, 8, 12,
 
	4, 2, 0, 0,
 
	1, 2, 3, 4,
 
	5, 6, 2, 8,
 
	4,  2, 0,  0,
 
	1,  2, 3,  4,
 
	5,  6, 2,  8,
 
	9, 10, 1, 12,
 
	8, 4
 
	8,  4
 
};
 

	
 
static void AiDoTerraformLand(TileIndex tile, int dir, int unk, int mode)
 
{
 
	PlayerID old_player;
 
	uint32 r;
 
@@ -1862,20 +1862,20 @@ typedef struct AiRailFinder {
 
	TileIndex cur_best_tile, best_tile;
 
	TileIndex bridge_end_tile;
 
	Player *player;
 
} AiRailFinder;
 

	
 
static const byte _ai_table_15[4][8] = {
 
	{0, 0, 4, 3, 3, 1, 128+0, 64},
 
	{1, 1, 2, 0, 4, 2, 128+1, 65},
 
	{0, 2, 2, 3, 5, 1, 128+2, 66},
 
	{1, 3, 5, 0, 3, 2, 128+3, 67}
 
	{0, 0, 4, 3, 3, 1, 128 + 0, 64},
 
	{1, 1, 2, 0, 4, 2, 128 + 1, 65},
 
	{0, 2, 2, 3, 5, 1, 128 + 2, 66},
 
	{1, 3, 5, 0, 3, 2, 128 + 3, 67}
 
};
 

	
 
static const byte _dir_table_1[] = {3, 9, 12, 6};
 
static const byte _dir_table_2[] = {12, 6, 3, 9};
 
static const byte _dir_table_1[] = { 3, 9, 12, 6};
 
static const byte _dir_table_2[] = {12, 6,  3, 9};
 

	
 

	
 
static bool AiIsTileBanned(const Player* p, TileIndex tile, byte val)
 
{
 
	int i;
 

	
 
@@ -2726,14 +2726,15 @@ typedef struct AiRoadEnum {
 
	TileIndex best_tile;
 
	int best_track;
 
	uint best_dist;
 
} AiRoadEnum;
 

	
 
static const byte _dir_by_track[] = {
 
	0,1,0,1,2,1, 0,0,
 
	2,3,3,2,3,0,
 
	0, 1, 0, 1, 2, 1,
 
	0, 0,
 
	2, 3, 3, 2, 3, 0,
 
};
 

	
 
static void AiBuildRoadRecursive(AiRoadFinder *arf, TileIndex tile, int dir);
 

	
 
static bool AiCheckRoadPathBetter(AiRoadFinder *arf, const byte *p)
 
{
aircraft_cmd.c
Show inline comments
 
@@ -1700,42 +1700,42 @@ static void AircraftEventHandler_HeliEnd
 
	}
 
	v->u.air.state = (Airport->nof_depots != 0) ? HANGAR : HELITAKEOFF;
 
}
 

	
 
typedef void AircraftStateHandler(Vehicle *v, const AirportFTAClass *Airport);
 
static AircraftStateHandler * const _aircraft_state_handlers[] = {
 
	AircraftEventHandler_General,				// TO_ALL         =  0
 
	AircraftEventHandler_InHangar,			// HANGAR         =  1
 
	AircraftEventHandler_AtTerminal,		// TERM1          =  2
 
	AircraftEventHandler_AtTerminal,		// TERM2          =  3
 
	AircraftEventHandler_AtTerminal,		// TERM3          =  4
 
	AircraftEventHandler_AtTerminal,		// TERM4          =  5
 
	AircraftEventHandler_AtTerminal,		// TERM5          =  6
 
	AircraftEventHandler_AtTerminal,		// TERM6          =  7
 
	AircraftEventHandler_AtTerminal,		// HELIPAD1       =  8
 
	AircraftEventHandler_AtTerminal,		// HELIPAD2       =  9
 
	AircraftEventHandler_TakeOff,				// TAKEOFF        = 10
 
	AircraftEventHandler_StartTakeOff,	// STARTTAKEOFF   = 11
 
	AircraftEventHandler_EndTakeOff,		// ENDTAKEOFF     = 12
 
	AircraftEventHandler_HeliTakeOff,		// HELITAKEOFF    = 13
 
	AircraftEventHandler_Flying,				// FLYING         = 14
 
	AircraftEventHandler_Landing,				// LANDING        = 15
 
	AircraftEventHandler_EndLanding,		// ENDLANDING     = 16
 
	AircraftEventHandler_HeliLanding,		// HELILANDING    = 17
 
	AircraftEventHandler_HeliEndLanding,// HELIENDLANDING = 18
 
	AircraftEventHandler_AtTerminal,		// TERM7          =  19
 
	AircraftEventHandler_AtTerminal,		// TERM8          =  20
 
	AircraftEventHandler_AtTerminal,		// HELIPAD3       =  21
 
	AircraftEventHandler_AtTerminal,		// HELIPAD4       =  22
 
	AircraftEventHandler_General,        // TO_ALL         =  0
 
	AircraftEventHandler_InHangar,       // HANGAR         =  1
 
	AircraftEventHandler_AtTerminal,     // TERM1          =  2
 
	AircraftEventHandler_AtTerminal,     // TERM2          =  3
 
	AircraftEventHandler_AtTerminal,     // TERM3          =  4
 
	AircraftEventHandler_AtTerminal,     // TERM4          =  5
 
	AircraftEventHandler_AtTerminal,     // TERM5          =  6
 
	AircraftEventHandler_AtTerminal,     // TERM6          =  7
 
	AircraftEventHandler_AtTerminal,     // HELIPAD1       =  8
 
	AircraftEventHandler_AtTerminal,     // HELIPAD2       =  9
 
	AircraftEventHandler_TakeOff,        // TAKEOFF        = 10
 
	AircraftEventHandler_StartTakeOff,   // STARTTAKEOFF   = 11
 
	AircraftEventHandler_EndTakeOff,     // ENDTAKEOFF     = 12
 
	AircraftEventHandler_HeliTakeOff,    // HELITAKEOFF    = 13
 
	AircraftEventHandler_Flying,         // FLYING         = 14
 
	AircraftEventHandler_Landing,        // LANDING        = 15
 
	AircraftEventHandler_EndLanding,     // ENDLANDING     = 16
 
	AircraftEventHandler_HeliLanding,    // HELILANDING    = 17
 
	AircraftEventHandler_HeliEndLanding, // HELIENDLANDING = 18
 
	AircraftEventHandler_AtTerminal,     // TERM7          = 19
 
	AircraftEventHandler_AtTerminal,     // TERM8          = 20
 
	AircraftEventHandler_AtTerminal,     // HELIPAD3       = 21
 
	AircraftEventHandler_AtTerminal,     // HELIPAD4       = 22
 
};
 

	
 
static void AirportClearBlock(const Vehicle* v, const AirportFTAClass* Airport)
 
static void AirportClearBlock(const Vehicle *v, const AirportFTAClass *Airport)
 
{
 
	// we have left the previous block, and entered the new one. Free the previous block
 
	if (Airport->layout[v->u.air.previous_pos].block != Airport->layout[v->u.air.pos].block) {
 
		Station* st = GetStation(v->u.air.targetairport);
 
		Station *st = GetStation(v->u.air.targetairport);
 

	
 
		CLRBITS(st->airport_flags, Airport->layout[v->u.air.previous_pos].block);
 
	}
 
}
 

	
 
static void AirportGoToNextPosition(Vehicle *v, const AirportFTAClass *Airport)
aircraft_gui.c
Show inline comments
 
@@ -221,20 +221,20 @@ static void NewAircraftWndProc(Window *w
 
		w->widget[2].unkA = (w->vscroll.cap << 8) + 1;
 
		break;
 
	}
 
}
 

	
 
static const Widget _new_aircraft_widgets[] = {
 
{   WWT_CLOSEBOX,   RESIZE_NONE,    14,     0,    10,     0,    13, STR_00C5,								STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION,   RESIZE_NONE,    14,    11,   239,     0,    13, STR_A005_NEW_AIRCRAFT,		STR_018C_WINDOW_TITLE_DRAG_THIS},
 
{     WWT_MATRIX, RESIZE_BOTTOM,    14,     0,   227,    14,   109, 0x401,										STR_A025_AIRCRAFT_SELECTION_LIST},
 
{  WWT_SCROLLBAR, RESIZE_BOTTOM,    14,   228,   239,    14,   109, 0x0,											STR_0190_SCROLL_BAR_SCROLLS_LIST},
 
{     WWT_IMGBTN,     RESIZE_TB,    14,     0,   239,   110,   181, 0x0,											STR_NULL},
 
{ WWT_PUSHTXTBTN,     RESIZE_TB,    14,     0,   114,   182,   193, STR_A006_BUILD_AIRCRAFT,	STR_A026_BUILD_THE_HIGHLIGHTED_AIRCRAFT},
 
{ WWT_PUSHTXTBTN,     RESIZE_TB,    14,   115,   227,   182,   193, STR_A037_RENAME,					STR_A038_RENAME_AIRCRAFT_TYPE},
 
{  WWT_RESIZEBOX,     RESIZE_TB,    14,   228,   239,   182,   193, 0x0,											STR_RESIZE_BUTTON},
 
{   WWT_CLOSEBOX,   RESIZE_NONE,    14,     0,    10,     0,    13, STR_00C5,                STR_018B_CLOSE_WINDOW },
 
{    WWT_CAPTION,   RESIZE_NONE,    14,    11,   239,     0,    13, STR_A005_NEW_AIRCRAFT,   STR_018C_WINDOW_TITLE_DRAG_THIS },
 
{     WWT_MATRIX, RESIZE_BOTTOM,    14,     0,   227,    14,   109, 0x401,                   STR_A025_AIRCRAFT_SELECTION_LIST },
 
{  WWT_SCROLLBAR, RESIZE_BOTTOM,    14,   228,   239,    14,   109, 0x0,                     STR_0190_SCROLL_BAR_SCROLLS_LIST },
 
{     WWT_IMGBTN,     RESIZE_TB,    14,     0,   239,   110,   181, 0x0,                     STR_NULL },
 
{ WWT_PUSHTXTBTN,     RESIZE_TB,    14,     0,   114,   182,   193, STR_A006_BUILD_AIRCRAFT, STR_A026_BUILD_THE_HIGHLIGHTED_AIRCRAFT },
 
{ WWT_PUSHTXTBTN,     RESIZE_TB,    14,   115,   227,   182,   193, STR_A037_RENAME,         STR_A038_RENAME_AIRCRAFT_TYPE },
 
{  WWT_RESIZEBOX,     RESIZE_TB,    14,   228,   239,   182,   193, 0x0,                     STR_RESIZE_BUTTON },
 
{   WIDGETS_END},
 
};
 

	
 
static const WindowDesc _new_aircraft_desc = {
 
	-1, -1, 240, 194,
 
	WC_BUILD_VEHICLE,0,
 
@@ -308,17 +308,17 @@ static void AircraftRefitWndProc(Window 
 
		}
 
		break;
 
	}
 
}
 

	
 
static const Widget _aircraft_refit_widgets[] = {
 
{   WWT_CLOSEBOX,   RESIZE_NONE,    14,     0,    10,     0,    13, STR_00C5,				STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION,   RESIZE_NONE,    14,    11,   239,     0,    13, STR_A03C_REFIT,	STR_018C_WINDOW_TITLE_DRAG_THIS},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     0,   239,    14,   145, 0x0,							STR_A03E_SELECT_TYPE_OF_CARGO_FOR},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     0,   239,   146,   167, 0x0,							STR_NULL},
 
{ WWT_PUSHTXTBTN,   RESIZE_NONE,    14,     0,   239,   168,   179, STR_A03D_REFIT_AIRCRAFT, STR_A03F_REFIT_AIRCRAFT_TO_CARRY},
 
{   WWT_CLOSEBOX,   RESIZE_NONE,    14,     0,    10,     0,    13, STR_00C5,                STR_018B_CLOSE_WINDOW },
 
{    WWT_CAPTION,   RESIZE_NONE,    14,    11,   239,     0,    13, STR_A03C_REFIT,          STR_018C_WINDOW_TITLE_DRAG_THIS },
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     0,   239,    14,   145, 0x0,                     STR_A03E_SELECT_TYPE_OF_CARGO_FOR },
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     0,   239,   146,   167, 0x0,                     STR_NULL },
 
{ WWT_PUSHTXTBTN,   RESIZE_NONE,    14,     0,   239,   168,   179, STR_A03D_REFIT_AIRCRAFT, STR_A03F_REFIT_AIRCRAFT_TO_CARRY },
 
{   WIDGETS_END},
 
};
 

	
 
static const WindowDesc _aircraft_refit_desc = {
 
	-1,-1, 240, 180,
 
	WC_VEHICLE_REFIT,WC_VEHICLE_VIEW,
 
@@ -464,26 +464,26 @@ do_change_service_int:
 
		break;
 
	}
 
}
 

	
 

	
 
static const Widget _aircraft_details_widgets[] = {
 
{   WWT_CLOSEBOX,   RESIZE_NONE,    14,     0,    10,     0,    13, STR_00C5,					STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION,   RESIZE_NONE,    14,    11,   349,     0,    13, STR_A00C_DETAILS,	STR_018C_WINDOW_TITLE_DRAG_THIS},
 
{ WWT_PUSHTXTBTN,   RESIZE_NONE,    14,   350,   389,     0,    13, STR_01AA_NAME,			STR_A032_NAME_AIRCRAFT},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     0,   389,    14,    55, 0x0,								STR_NULL},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     0,   389,    56,   101, 0x0,								STR_NULL},
 
{ WWT_PUSHTXTBTN,   RESIZE_NONE,    14,     0,    10,   102,   107, STR_0188,					STR_884D_INCREASE_SERVICING_INTERVAL},
 
{ WWT_PUSHTXTBTN,   RESIZE_NONE,    14,     0,    10,   108,   113, STR_0189,					STR_884E_DECREASE_SERVICING_INTERVAL},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,    11,   389,   102,   113, 0x0,								STR_NULL},
 
{   WWT_CLOSEBOX,   RESIZE_NONE,    14,     0,    10,     0,    13, STR_00C5,         STR_018B_CLOSE_WINDOW },
 
{    WWT_CAPTION,   RESIZE_NONE,    14,    11,   349,     0,    13, STR_A00C_DETAILS, STR_018C_WINDOW_TITLE_DRAG_THIS },
 
{ WWT_PUSHTXTBTN,   RESIZE_NONE,    14,   350,   389,     0,    13, STR_01AA_NAME,    STR_A032_NAME_AIRCRAFT },
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     0,   389,    14,    55, 0x0,              STR_NULL },
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     0,   389,    56,   101, 0x0,              STR_NULL },
 
{ WWT_PUSHTXTBTN,   RESIZE_NONE,    14,     0,    10,   102,   107, STR_0188,         STR_884D_INCREASE_SERVICING_INTERVAL },
 
{ WWT_PUSHTXTBTN,   RESIZE_NONE,    14,     0,    10,   108,   113, STR_0189,         STR_884E_DECREASE_SERVICING_INTERVAL },
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,    11,   389,   102,   113, 0x0,              STR_NULL },
 
{   WIDGETS_END},
 
};
 

	
 
static const WindowDesc _aircraft_details_desc = {
 
	-1,-1, 390, 114,
 
	WC_VEHICLE_DETAILS,WC_VEHICLE_VIEW,
 
	-1, -1, 390, 114,
 
	WC_VEHICLE_DETAILS, WC_VEHICLE_VIEW,
 
	WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS,
 
	_aircraft_details_widgets,
 
	AircraftDetailsWndProc
 
};
 

	
 

	
 
@@ -502,27 +502,27 @@ static void ShowAircraftDetailsWindow(co
 
//	w->vscroll.cap = 6;
 
//	w->traindetails_d.tab = 0;
 
}
 

	
 

	
 
static const Widget _aircraft_view_widgets[] = {
 
{ WWT_CLOSEBOX,   RESIZE_NONE,  14,   0,  10,   0,  13, STR_00C5, STR_018B_CLOSE_WINDOW },
 
{ WWT_CAPTION,    RESIZE_RIGHT, 14,  11, 237,   0,  13, STR_A00A, STR_018C_WINDOW_TITLE_DRAG_THIS },
 
{ WWT_STICKYBOX,  RESIZE_LR,    14, 238, 249,   0,  13, 0x0,      STR_STICKY_BUTTON },
 
{ WWT_IMGBTN,     RESIZE_RB,    14,   0, 231,  14, 103, 0x0,      STR_NULL },
 
{ WWT_6,          RESIZE_RB,    14,   2, 229,  16, 101, 0x0,      STR_NULL },
 
{ WWT_PUSHIMGBTN, RESIZE_RTB,   14,   0, 237, 104, 115, 0x0,      STR_A027_CURRENT_AIRCRAFT_ACTION },
 
{ WWT_PUSHIMGBTN, RESIZE_LR,    14, 232, 249,  14,  31, 0x2AB,    STR_A029_CENTER_MAIN_VIEW_ON_AIRCRAFT },
 
{ WWT_PUSHIMGBTN, RESIZE_LR,    14, 232, 249,  32,  49, 0x2AF,    STR_A02A_SEND_AIRCRAFT_TO_HANGAR },
 
{ WWT_PUSHIMGBTN, RESIZE_LR,    14, 232, 249,  50,  67, 0x2B4,    STR_A03B_REFIT_AIRCRAFT_TO_CARRY },
 
{ WWT_PUSHIMGBTN, RESIZE_LR,    14, 232, 249,  68,  85, 0x2B2,    STR_A028_SHOW_AIRCRAFT_S_ORDERS },
 
{ WWT_PUSHIMGBTN, RESIZE_LR,    14, 232, 249,  86, 103, 0x2B3,    STR_A02B_SHOW_AIRCRAFT_DETAILS },
 
{ WWT_PUSHIMGBTN, RESIZE_LR,    14, 232, 249,  32,  49, SPR_CLONE_AIRCRAFT,      STR_CLONE_AIRCRAFT_INFO },
 
{ WWT_PANEL,      RESIZE_LRB,   14, 232, 249, 104, 103, 0x0,      STR_NULL },
 
{ WWT_RESIZEBOX,  RESIZE_LRTB,  14, 238, 249, 104, 115, 0x0,      STR_NULL },
 
{ WIDGETS_END }
 
{   WWT_CLOSEBOX,  RESIZE_NONE,  14,   0,  10,   0,  13, STR_00C5,           STR_018B_CLOSE_WINDOW },
 
{    WWT_CAPTION, RESIZE_RIGHT,  14,  11, 237,   0,  13, STR_A00A,           STR_018C_WINDOW_TITLE_DRAG_THIS },
 
{  WWT_STICKYBOX,    RESIZE_LR,  14, 238, 249,   0,  13, 0x0,                STR_STICKY_BUTTON },
 
{     WWT_IMGBTN,    RESIZE_RB,  14,   0, 231,  14, 103, 0x0,                STR_NULL },
 
{          WWT_6,    RESIZE_RB,  14,   2, 229,  16, 101, 0x0,                STR_NULL },
 
{ WWT_PUSHIMGBTN,   RESIZE_RTB,  14,   0, 237, 104, 115, 0x0,                STR_A027_CURRENT_AIRCRAFT_ACTION },
 
{ WWT_PUSHIMGBTN,    RESIZE_LR,  14, 232, 249,  14,  31, 0x2AB,              STR_A029_CENTER_MAIN_VIEW_ON_AIRCRAFT },
 
{ WWT_PUSHIMGBTN,    RESIZE_LR,  14, 232, 249,  32,  49, 0x2AF,              STR_A02A_SEND_AIRCRAFT_TO_HANGAR },
 
{ WWT_PUSHIMGBTN,    RESIZE_LR,  14, 232, 249,  50,  67, 0x2B4,              STR_A03B_REFIT_AIRCRAFT_TO_CARRY },
 
{ WWT_PUSHIMGBTN,    RESIZE_LR,  14, 232, 249,  68,  85, 0x2B2,              STR_A028_SHOW_AIRCRAFT_S_ORDERS },
 
{ WWT_PUSHIMGBTN,    RESIZE_LR,  14, 232, 249,  86, 103, 0x2B3,              STR_A02B_SHOW_AIRCRAFT_DETAILS },
 
{ WWT_PUSHIMGBTN,    RESIZE_LR,  14, 232, 249,  32,  49, SPR_CLONE_AIRCRAFT, STR_CLONE_AIRCRAFT_INFO },
 
{      WWT_PANEL,   RESIZE_LRB,  14, 232, 249, 104, 103, 0x0,                STR_NULL },
 
{  WWT_RESIZEBOX,  RESIZE_LRTB,  14, 238, 249, 104, 115, 0x0,                STR_NULL },
 
{   WIDGETS_END},
 
};
 

	
 

	
 
static void AircraftViewWndProc(Window *w, WindowEvent *e)
 
{
 
	switch (e->event) {
 
@@ -904,25 +904,25 @@ static void AircraftDepotWndProc(Window 
 
		w->widget[5].unkA = (w->vscroll.cap << 8) + w->hscroll.cap;
 
		break;
 
	}
 
}
 

	
 
static const Widget _aircraft_depot_widgets[] = {
 
{   WWT_CLOSEBOX,   RESIZE_NONE,    14,     0,    10,     0,    13, STR_00C5,									STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION,  RESIZE_RIGHT,    14,    11,   318,     0,    13, STR_A002_AIRCRAFT_HANGAR,	STR_018C_WINDOW_TITLE_DRAG_THIS},
 
{  WWT_STICKYBOX,     RESIZE_LR,    14,   319,   330,     0,    13, 0x0,											STR_STICKY_BUTTON},
 
{      WWT_PANEL,    RESIZE_LRB,    14,   296,   318,    14,    13, 0x0,													STR_NULL},
 
{     WWT_IMGBTN,   RESIZE_LRTB,    14,   296,   318,    14,    61, 0x2A9,										STR_A023_DRAG_AIRCRAFT_TO_HERE_TO},
 
{   WWT_CLOSEBOX,   RESIZE_NONE,    14,     0,    10,     0,    13, STR_00C5,                 STR_018B_CLOSE_WINDOW },
 
{    WWT_CAPTION,  RESIZE_RIGHT,    14,    11,   318,     0,    13, STR_A002_AIRCRAFT_HANGAR, STR_018C_WINDOW_TITLE_DRAG_THIS },
 
{  WWT_STICKYBOX,     RESIZE_LR,    14,   319,   330,     0,    13, 0x0,                      STR_STICKY_BUTTON },
 
{      WWT_PANEL,    RESIZE_LRB,    14,   296,   318,    14,    13, 0x0,                      STR_NULL },
 
{     WWT_IMGBTN,   RESIZE_LRTB,    14,   296,   318,    14,    61, 0x2A9,                    STR_A023_DRAG_AIRCRAFT_TO_HERE_TO },
 

	
 
{     WWT_MATRIX,     RESIZE_RB,    14,     0,   295,    14,    61, 0x204,										STR_A021_AIRCRAFT_CLICK_ON_AIRCRAFT},
 
{  WWT_SCROLLBAR,    RESIZE_LRB,    14,   319,   330,    14,    61, 0x0,											STR_0190_SCROLL_BAR_SCROLLS_LIST},
 
{ WWT_PUSHTXTBTN,     RESIZE_TB,    14,     0,   105,    62,    73, STR_A003_NEW_AIRCRAFT,		STR_A022_BUILD_NEW_AIRCRAFT},
 
{WWT_NODISTXTBTN,     RESIZE_TB,    14,   106,   212,    62,    73, STR_CLONE_AIRCRAFT,		STR_CLONE_AIRCRAFT_INFO_HANGAR_WINDOW},
 
{ WWT_PUSHTXTBTN,     RESIZE_TB,    14,   213,   318,    62,    73, STR_00E4_LOCATION,				STR_A024_CENTER_MAIN_VIEW_ON_HANGAR},
 
{      WWT_PANEL,    RESIZE_RTB,    14,   319,   318,    62,    73, 0x0,													STR_NULL},
 
{  WWT_RESIZEBOX,   RESIZE_LRTB,    14,   319,   330,    62,    73, 0x0,											STR_RESIZE_BUTTON},
 
{     WWT_MATRIX,     RESIZE_RB,    14,     0,   295,    14,    61, 0x204,                    STR_A021_AIRCRAFT_CLICK_ON_AIRCRAFT },
 
{  WWT_SCROLLBAR,    RESIZE_LRB,    14,   319,   330,    14,    61, 0x0,                      STR_0190_SCROLL_BAR_SCROLLS_LIST },
 
{ WWT_PUSHTXTBTN,     RESIZE_TB,    14,     0,   105,    62,    73, STR_A003_NEW_AIRCRAFT,    STR_A022_BUILD_NEW_AIRCRAFT },
 
{WWT_NODISTXTBTN,     RESIZE_TB,    14,   106,   212,    62,    73, STR_CLONE_AIRCRAFT,       STR_CLONE_AIRCRAFT_INFO_HANGAR_WINDOW },
 
{ WWT_PUSHTXTBTN,     RESIZE_TB,    14,   213,   318,    62,    73, STR_00E4_LOCATION,        STR_A024_CENTER_MAIN_VIEW_ON_HANGAR },
 
{      WWT_PANEL,    RESIZE_RTB,    14,   319,   318,    62,    73, 0x0,                      STR_NULL },
 
{  WWT_RESIZEBOX,   RESIZE_LRTB,    14,   319,   330,    62,    73, 0x0,                      STR_RESIZE_BUTTON },
 
{   WIDGETS_END},
 
};
 

	
 
static const WindowDesc _aircraft_depot_desc = {
 
	-1, -1, 331, 74,
 
	WC_VEHICLE_DEPOT,0,
 
@@ -968,40 +968,40 @@ static void DrawSmallOrderList(const Veh
 
		}
 
	}
 
}
 

	
 

	
 
static const Widget _player_aircraft_widgets[] = {
 
{   WWT_CLOSEBOX,   RESIZE_NONE,    14,     0,    10,     0,    13, STR_00C5,							STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION,  RESIZE_RIGHT,    14,    11,   247,     0,    13, STR_A009_AIRCRAFT,			STR_018C_WINDOW_TITLE_DRAG_THIS},
 
{  WWT_STICKYBOX,     RESIZE_LR,    14,   248,   259,     0,    13, 0x0,                   STR_STICKY_BUTTON},
 
{ WWT_PUSHTXTBTN,   RESIZE_NONE,    14,     0,    80,    14,    25, STR_SORT_BY,						STR_SORT_ORDER_TIP},
 
{      WWT_PANEL,   RESIZE_NONE,    14,    81,   235,    14,    25, 0x0,										STR_SORT_CRITERIA_TIP},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,   236,   247,    14,    25, STR_0225,							STR_SORT_CRITERIA_TIP},
 
{      WWT_PANEL,  RESIZE_RIGHT,    14,   248,   259,    14,    25, 0x0,										STR_NULL},
 
{     WWT_MATRIX,     RESIZE_RB,    14,     0,   247,    26,   169, 0x401,									STR_A01F_AIRCRAFT_CLICK_ON_AIRCRAFT},
 
{  WWT_SCROLLBAR,    RESIZE_LRB,    14,   248,   259,    26,   169, 0x0,										STR_0190_SCROLL_BAR_SCROLLS_LIST},
 
{ WWT_PUSHTXTBTN,     RESIZE_TB,    14,     0,   124,   170,   181, STR_A003_NEW_AIRCRAFT,	STR_A020_BUILD_NEW_AIRCRAFT_REQUIRES},
 
{ WWT_PUSHTXTBTN,     RESIZE_TB,    14,   125,   247,   170,   181, STR_REPLACE_VEHICLES,						STR_REPLACE_HELP},
 
{      WWT_PANEL,    RESIZE_RTB,    14,   248,   247,   170,   181, 0x0,											STR_NULL},
 
{  WWT_RESIZEBOX,   RESIZE_LRTB,    14,   248,   259,   170,   181, 0x0,											STR_RESIZE_BUTTON},
 
{   WWT_CLOSEBOX,   RESIZE_NONE,    14,     0,    10,     0,    13, STR_00C5,              STR_018B_CLOSE_WINDOW },
 
{    WWT_CAPTION,  RESIZE_RIGHT,    14,    11,   247,     0,    13, STR_A009_AIRCRAFT,     STR_018C_WINDOW_TITLE_DRAG_THIS },
 
{  WWT_STICKYBOX,     RESIZE_LR,    14,   248,   259,     0,    13, 0x0,                   STR_STICKY_BUTTON },
 
{ WWT_PUSHTXTBTN,   RESIZE_NONE,    14,     0,    80,    14,    25, STR_SORT_BY,           STR_SORT_ORDER_TIP },
 
{      WWT_PANEL,   RESIZE_NONE,    14,    81,   235,    14,    25, 0x0,                   STR_SORT_CRITERIA_TIP },
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,   236,   247,    14,    25, STR_0225,              STR_SORT_CRITERIA_TIP },
 
{      WWT_PANEL,  RESIZE_RIGHT,    14,   248,   259,    14,    25, 0x0,                   STR_NULL },
 
{     WWT_MATRIX,     RESIZE_RB,    14,     0,   247,    26,   169, 0x401,                 STR_A01F_AIRCRAFT_CLICK_ON_AIRCRAFT },
 
{  WWT_SCROLLBAR,    RESIZE_LRB,    14,   248,   259,    26,   169, 0x0,                   STR_0190_SCROLL_BAR_SCROLLS_LIST },
 
{ WWT_PUSHTXTBTN,     RESIZE_TB,    14,     0,   124,   170,   181, STR_A003_NEW_AIRCRAFT, STR_A020_BUILD_NEW_AIRCRAFT_REQUIRES },
 
{ WWT_PUSHTXTBTN,     RESIZE_TB,    14,   125,   247,   170,   181, STR_REPLACE_VEHICLES,  STR_REPLACE_HELP },
 
{      WWT_PANEL,    RESIZE_RTB,    14,   248,   247,   170,   181, 0x0,                   STR_NULL },
 
{  WWT_RESIZEBOX,   RESIZE_LRTB,    14,   248,   259,   170,   181, 0x0,                   STR_RESIZE_BUTTON },
 
{   WIDGETS_END},
 
};
 

	
 
static const Widget _other_player_aircraft_widgets[] = {
 
{   WWT_CLOSEBOX,   RESIZE_NONE,    14,     0,    10,     0,    13, STR_00C5,							STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION,  RESIZE_RIGHT,    14,    11,   247,     0,    13, STR_A009_AIRCRAFT,			STR_018C_WINDOW_TITLE_DRAG_THIS},
 
{  WWT_STICKYBOX,     RESIZE_LR,    14,   248,   259,     0,    13, 0x0,                   STR_STICKY_BUTTON},
 
{ WWT_PUSHTXTBTN,   RESIZE_NONE,    14,     0,    80,    14,    25, STR_SORT_BY,						STR_SORT_ORDER_TIP},
 
{      WWT_PANEL,   RESIZE_NONE,    14,    81,   235,    14,    25, 0x0,										STR_SORT_CRITERIA_TIP},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,   236,   247,    14,    25, STR_0225,							STR_SORT_CRITERIA_TIP},
 
{      WWT_PANEL,  RESIZE_RIGHT,    14,   248,   259,    14,    25, 0x0,										STR_NULL},
 
{     WWT_MATRIX,     RESIZE_RB,    14,     0,   247,    26,   169, 0x401,									STR_A01F_AIRCRAFT_CLICK_ON_AIRCRAFT},
 
{  WWT_SCROLLBAR,    RESIZE_LRB,    14,   248,   259,    26,   169, 0x0,										STR_0190_SCROLL_BAR_SCROLLS_LIST},
 
{      WWT_PANEL,    RESIZE_RTB,    14,     0,   247,   170,   181, 0x0,											STR_NULL},
 
{  WWT_RESIZEBOX,   RESIZE_LRTB,    14,   248,   259,   170,   181, 0x0,											STR_RESIZE_BUTTON},
 
{   WWT_CLOSEBOX,   RESIZE_NONE,    14,     0,    10,     0,    13, STR_00C5,              STR_018B_CLOSE_WINDOW },
 
{    WWT_CAPTION,  RESIZE_RIGHT,    14,    11,   247,     0,    13, STR_A009_AIRCRAFT,     STR_018C_WINDOW_TITLE_DRAG_THIS },
 
{  WWT_STICKYBOX,     RESIZE_LR,    14,   248,   259,     0,    13, 0x0,                   STR_STICKY_BUTTON },
 
{ WWT_PUSHTXTBTN,   RESIZE_NONE,    14,     0,    80,    14,    25, STR_SORT_BY,           STR_SORT_ORDER_TIP },
 
{      WWT_PANEL,   RESIZE_NONE,    14,    81,   235,    14,    25, 0x0,                   STR_SORT_CRITERIA_TIP },
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,   236,   247,    14,    25, STR_0225,              STR_SORT_CRITERIA_TIP },
 
{      WWT_PANEL,  RESIZE_RIGHT,    14,   248,   259,    14,    25, 0x0,                   STR_NULL },
 
{     WWT_MATRIX,     RESIZE_RB,    14,     0,   247,    26,   169, 0x401,                 STR_A01F_AIRCRAFT_CLICK_ON_AIRCRAFT },
 
{  WWT_SCROLLBAR,    RESIZE_LRB,    14,   248,   259,    26,   169, 0x0,                   STR_0190_SCROLL_BAR_SCROLLS_LIST },
 
{      WWT_PANEL,    RESIZE_RTB,    14,     0,   247,   170,   181, 0x0,                   STR_NULL },
 
{  WWT_RESIZEBOX,   RESIZE_LRTB,    14,   248,   259,   170,   181, 0x0,                   STR_RESIZE_BUTTON },
 
{   WIDGETS_END},
 
};
 

	
 
static void PlayerAircraftWndProc(Window *w, WindowEvent *e)
 
{
 
	StationID station = GB(w->window_number, 16, 16);
airport.h
Show inline comments
 
/* $Id$ */
 

	
 
#ifndef AIRPORT_H
 
#define AIRPORT_H
 

	
 
enum {MAX_TERMINALS = 10};
 
enum {MAX_HELIPADS  = 4};
 
enum {MAX_TERMINALS =  10};
 
enum {MAX_HELIPADS  =   4};
 
enum {MAX_ELEMENTS  = 255};
 
enum {MAX_HEADINGS  = 22};
 
enum {MAX_HEADINGS  =  22};
 

	
 
// Airport types
 
enum {
 
	AT_SMALL         = 0,
 
	AT_LARGE         = 1,
 
	AT_HELIPORT      = 2,
 
	AT_METROPOLITAN  = 3,
 
	AT_INTERNATIONAL = 4,
 
	AT_COMMUTER      = 5,
 
	AT_HELIDEPOT     = 6,
 
	AT_INTERCON      = 7,
 
	AT_HELISTATION   = 8,
 
	AT_SMALL         =  0,
 
	AT_LARGE         =  1,
 
	AT_HELIPORT      =  2,
 
	AT_METROPOLITAN  =  3,
 
	AT_INTERNATIONAL =  4,
 
	AT_COMMUTER      =  5,
 
	AT_HELIDEPOT     =  6,
 
	AT_INTERCON      =  7,
 
	AT_HELISTATION   =  8,
 
	AT_OILRIG        = 15
 
};
 

	
 
// do not change unless you change v->subtype too. This aligns perfectly with its current setting
 
enum {
 
	AIRCRAFT_ONLY    = 0,
 
	ALL              = 1,
 
	HELICOPTERS_ONLY = 2,
 
};
 

	
 
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,
 
	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,
 
};
 

	
 
/* 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,
 
	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,
 
	FLYING         = 14,
 
	LANDING        = 15,
 
@@ -72,24 +72,24 @@ enum {
 
static const byte _airport_terminal_state[] = {2, 3, 4, 5, 6, 7, 19, 20, 0, 0, 8, 9, 21, 22};
 
static const byte _airport_terminal_flag[] =  {0, 1, 2, 3, 4, 5, 22, 23, 0, 0, 6, 7, 24, 25};
 

	
 
/* Movement Blocks on Airports */
 
// blocks (eg_airport_flags)
 
enum {
 
	TERM1_block              = 1 << 0,
 
	TERM2_block              = 1 << 1,
 
	TERM3_block              = 1 << 2,
 
	TERM4_block              = 1 << 3,
 
	TERM5_block              = 1 << 4,
 
	TERM6_block              = 1 << 5,
 
	HELIPAD1_block           = 1 << 6,
 
	HELIPAD2_block           = 1 << 7,
 
	RUNWAY_IN_OUT_block      = 1 << 8,
 
	RUNWAY_IN_block          = 1 << 8,
 
	AIRPORT_BUSY_block       = 1 << 8,
 
	RUNWAY_OUT_block         = 1 << 9,
 
	TERM1_block              = 1 <<  0,
 
	TERM2_block              = 1 <<  1,
 
	TERM3_block              = 1 <<  2,
 
	TERM4_block              = 1 <<  3,
 
	TERM5_block              = 1 <<  4,
 
	TERM6_block              = 1 <<  5,
 
	HELIPAD1_block           = 1 <<  6,
 
	HELIPAD2_block           = 1 <<  7,
 
	RUNWAY_IN_OUT_block      = 1 <<  8,
 
	RUNWAY_IN_block          = 1 <<  8,
 
	AIRPORT_BUSY_block       = 1 <<  8,
 
	RUNWAY_OUT_block         = 1 <<  9,
 
	TAXIWAY_BUSY_block       = 1 << 10,
 
	OUT_WAY_block            = 1 << 11,
 
	IN_WAY_block             = 1 << 12,
 
	AIRPORT_ENTRANCE_block   = 1 << 13,
 
	TERM_GROUP1_block        = 1 << 14,
 
	TERM_GROUP2_block        = 1 << 15,
airport_gui.c
Show inline comments
 
@@ -110,18 +110,18 @@ static void BuildAirToolbWndProc(Window 
 
		if (_patches.link_terraform_toolbar) DeleteWindowById(WC_SCEN_LAND_GEN, 0);
 
		break;
 
	}
 
}
 

	
 
static const Widget _air_toolbar_widgets[] = {
 
{   WWT_CLOSEBOX,   RESIZE_NONE,     7,     0,    10,     0,    13, STR_00C5,							STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION,   RESIZE_NONE,     7,    11,    73,     0,    13, STR_A000_AIRPORTS,			STR_018C_WINDOW_TITLE_DRAG_THIS},
 
{  WWT_STICKYBOX,   RESIZE_NONE,     7,    74,    85,     0,    13, 0x0,                   STR_STICKY_BUTTON},
 
{      WWT_PANEL,   RESIZE_NONE,     7,     0,    41,    14,    35, 0x2E8,									STR_A01E_BUILD_AIRPORT},
 
{      WWT_PANEL,   RESIZE_NONE,     7,    42,    63,    14,    35, 0x2BF,									STR_018D_DEMOLISH_BUILDINGS_ETC},
 
{      WWT_PANEL,   RESIZE_NONE,     7,    64,    85,    14,    35, SPR_IMG_LANDSCAPING,	STR_LANDSCAPING_TOOLBAR_TIP},
 
{   WWT_CLOSEBOX,   RESIZE_NONE,     7,     0,    10,     0,    13, STR_00C5,            STR_018B_CLOSE_WINDOW },
 
{    WWT_CAPTION,   RESIZE_NONE,     7,    11,    73,     0,    13, STR_A000_AIRPORTS,   STR_018C_WINDOW_TITLE_DRAG_THIS },
 
{  WWT_STICKYBOX,   RESIZE_NONE,     7,    74,    85,     0,    13, 0x0,                 STR_STICKY_BUTTON },
 
{      WWT_PANEL,   RESIZE_NONE,     7,     0,    41,    14,    35, 0x2E8,               STR_A01E_BUILD_AIRPORT },
 
{      WWT_PANEL,   RESIZE_NONE,     7,    42,    63,    14,    35, 0x2BF,               STR_018D_DEMOLISH_BUILDINGS_ETC },
 
{      WWT_PANEL,   RESIZE_NONE,     7,    64,    85,    14,    35, SPR_IMG_LANDSCAPING, STR_LANDSCAPING_TOOLBAR_TIP },
 
{   WIDGETS_END},
 
};
 

	
 

	
 
static const WindowDesc _air_toolbar_desc = {
 
	640-86, 22, 86, 36,
airport_movement.h
Show inline comments
 
@@ -4,775 +4,775 @@
 
#define AIRPORT_MOVEMENT_H
 

	
 

	
 
// 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
 
	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;
 

	
 
///////////////////////////////////////////////////////////////////////
 
/////*********Movement Positions on Airports********************///////
 
// Country Airfield (small) 4x3
 
static const AirportMovingData _airport_moving_data_country[22] = {
 
	{ 53, 3,AMED_EXACTPOS,3},											// 00 In Hangar
 
	{ 53, 27,0,0},																// 01 Taxi to right outside depot
 
	{ 32, 23,AMED_EXACTPOS,7},										// 02 Terminal 1
 
	{ 10, 23,AMED_EXACTPOS,7},										// 03 Terminal 2
 
	{ 43, 37,0,0},																// 04 Going towards terminal 2
 
	{ 24, 37,0,0},																// 05 Going towards terminal 2
 
	{ 53, 37,0,0},																// 06 Going for takeoff
 
	{ 61, 40,AMED_EXACTPOS,1},										// 07 Taxi to start of runway (takeoff)
 
	{  3, 40,AMED_NOSPDCLAMP,0},									// 08 Accelerate to end of runway
 
	{-79, 40,AMED_NOSPDCLAMP | AMED_TAKEOFF,0},		// 09 Take off
 
	{177, 40,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 10 Fly to landing position in air
 
	{ 56, 40,AMED_NOSPDCLAMP | AMED_LAND,0},			// 11 Going down for land
 
	{  3, 40,AMED_NOSPDCLAMP | AMED_BRAKE,0},			// 12 Just landed, brake until end of runway
 
	{  7, 40,0,0},																// 13 Just landed, turn around and taxi 1 square
 
	{ 53, 40,0,0},																// 14 Taxi from runway to crossing
 
	{-31,193,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 15 Fly around waiting for a landing spot (north-east)
 
	{  1,  1,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 16 Fly around waiting for a landing spot (north-west)
 
	{257,  1,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 17 Fly around waiting for a landing spot (south-west)
 
	{273, 49,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 18 Fly around waiting for a landing spot (south)
 
	{ 44, 37,AMED_HELI_RAISE,0},									// 19 Helicopter takeoff
 
	{ 44, 40,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 20 In position above landing spot helicopter
 
	{ 44, 40,AMED_HELI_LOWER,0}										// 21 Helicopter landing
 
	{   53,    3, AMED_EXACTPOS,                   3 }, // 00 In Hangar
 
	{   53,   27, 0,                               0 }, // 01 Taxi to right outside depot
 
	{   32,   23, AMED_EXACTPOS,                   7 }, // 02 Terminal 1
 
	{   10,   23, AMED_EXACTPOS,                   7 }, // 03 Terminal 2
 
	{   43,   37, 0,                               0 }, // 04 Going towards terminal 2
 
	{   24,   37, 0,                               0 }, // 05 Going towards terminal 2
 
	{   53,   37, 0,                               0 }, // 06 Going for takeoff
 
	{   61,   40, AMED_EXACTPOS,                   1 }, // 07 Taxi to start of runway (takeoff)
 
	{    3,   40, AMED_NOSPDCLAMP,                 0 }, // 08 Accelerate to end of runway
 
	{  -79,   40, AMED_NOSPDCLAMP | AMED_TAKEOFF,  0 }, // 09 Take off
 
	{  177,   40, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 10 Fly to landing position in air
 
	{   56,   40, AMED_NOSPDCLAMP | AMED_LAND,     0 }, // 11 Going down for land
 
	{    3,   40, AMED_NOSPDCLAMP | AMED_BRAKE,    0 }, // 12 Just landed, brake until end of runway
 
	{    7,   40, 0,                               0 }, // 13 Just landed, turn around and taxi 1 square
 
	{   53,   40, 0,                               0 }, // 14 Taxi from runway to crossing
 
	{  -31,  193, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 15 Fly around waiting for a landing spot (north-east)
 
	{    1,    1, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 16 Fly around waiting for a landing spot (north-west)
 
	{  257,    1, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 17 Fly around waiting for a landing spot (south-west)
 
	{  273,   49, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 18 Fly around waiting for a landing spot (south)
 
	{   44,   37, AMED_HELI_RAISE,                 0 }, // 19 Helicopter takeoff
 
	{   44,   40, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 20 In position above landing spot helicopter
 
	{   44,   40, AMED_HELI_LOWER,                 0 }, // 21 Helicopter landing
 
};
 

	
 
// Commuter Airfield (small) 5x4
 
static const AirportMovingData _airport_moving_data_commuter[37] = {
 
	{ 69,  3, AMED_EXACTPOS,3},										// 00 In Hangar
 
	{ 72, 22,0,0},																// 01 Taxi to right outside depot
 
	{ 8,  22, AMED_EXACTPOS,5},																// 01 Taxi to right outside depot
 
	{ 24, 36,AMED_EXACTPOS,3},			// 03 Terminal 1
 
	{ 40, 36,AMED_EXACTPOS,3},			// 04 Terminal 2
 
	{ 56, 36,AMED_EXACTPOS,3},			// 05 Terminal 3
 
	{ 40, 8,AMED_EXACTPOS,1},			// 06 Helipad 1
 
	{ 56, 8,AMED_EXACTPOS,1},			// 07 Helipad 2
 
	{ 24, 22,0,5},					// 08 Taxiing
 
	{ 40, 22,0,5},					// 09 Taxiing
 
	{ 56, 22,0,5},					// 10 Taxiing
 
	{ 72, 40,0,3},					// 11 Airport OUTWAY
 
	{ 72, 54,AMED_EXACTPOS,1},			// 12 Accelerate to end of runway
 
	{  7, 54,AMED_NOSPDCLAMP,0},			// 13 Release control of runway, for smoother movement
 
	{  5, 54,AMED_NOSPDCLAMP,0},			// 14 End of runway
 
	{-79, 54,AMED_NOSPDCLAMP | AMED_TAKEOFF,0},	// 15 Take off
 
	{145, 54,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 16 Fly to landing position in air
 
	{ 73, 54,AMED_NOSPDCLAMP | AMED_LAND,0},	// 17 Going down for land
 
	{  3, 54,AMED_NOSPDCLAMP | AMED_BRAKE,0},	// 18 Just landed, brake until end of runway
 
	{ 12, 54,0,7},					// 19 Just landed, turn around and taxi
 
	{  8, 32,0,7},					// 20 Taxi from runway to crossing
 
	{-31,149,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 21 Fly around waiting for a landing spot (north-east)
 
	{  1,  6,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 22 Fly around waiting for a landing spot (north-west)
 
	{193,  6,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 23 Fly around waiting for a landing spot (south-west)
 
	{225, 81,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 24 Fly around waiting for a landing spot (south)
 
	{   69,    3, AMED_EXACTPOS,                   3 }, // 00 In Hangar
 
	{   72,   22, 0,                               0 }, // 01 Taxi to right outside depot
 
	{    8,   22, AMED_EXACTPOS,                   5 }, // 01 Taxi to right outside depot
 
	{   24,   36, AMED_EXACTPOS,                   3 }, // 03 Terminal 1
 
	{   40,   36, AMED_EXACTPOS,                   3 }, // 04 Terminal 2
 
	{   56,   36, AMED_EXACTPOS,                   3 }, // 05 Terminal 3
 
	{   40,    8, AMED_EXACTPOS,                   1 }, // 06 Helipad 1
 
	{   56,    8, AMED_EXACTPOS,                   1 }, // 07 Helipad 2
 
	{   24,   22, 0,                               5 }, // 08 Taxiing
 
	{   40,   22, 0,                               5 }, // 09 Taxiing
 
	{   56,   22, 0,                               5 }, // 10 Taxiing
 
	{   72,   40, 0,                               3 }, // 11 Airport OUTWAY
 
	{   72,   54, AMED_EXACTPOS,                   1 }, // 12 Accelerate to end of runway
 
	{    7,   54, AMED_NOSPDCLAMP,                 0 }, // 13 Release control of runway, for smoother movement
 
	{    5,   54, AMED_NOSPDCLAMP,                 0 }, // 14 End of runway
 
	{  -79,   54, AMED_NOSPDCLAMP | AMED_TAKEOFF,  0 }, // 15 Take off
 
	{  145,   54, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 16 Fly to landing position in air
 
	{   73,   54, AMED_NOSPDCLAMP | AMED_LAND,     0 }, // 17 Going down for land
 
	{    3,   54, AMED_NOSPDCLAMP | AMED_BRAKE,    0 }, // 18 Just landed, brake until end of runway
 
	{   12,   54, 0,                               7 }, // 19 Just landed, turn around and taxi
 
	{    8,   32, 0,                               7 }, // 20 Taxi from runway to crossing
 
	{  -31,  149, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 21 Fly around waiting for a landing spot (north-east)
 
	{    1,    6, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 22 Fly around waiting for a landing spot (north-west)
 
	{  193,    6, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 23 Fly around waiting for a landing spot (south-west)
 
	{  225,   81, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 24 Fly around waiting for a landing spot (south)
 
	// Helicopter
 
	{ 80, 0,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 25 Bufferspace before helipad
 
	{ 80, 0,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 26 Bufferspace before helipad
 
	{ 32, 8,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 27 Get in position for Helipad1
 
	{ 48, 8,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 28 Get in position for Helipad2
 
	{ 32, 8,AMED_HELI_LOWER,0},			// 29 Land at Helipad1
 
	{ 48, 8,AMED_HELI_LOWER,0},			// 30 Land at Helipad2
 
	{ 32, 8,AMED_HELI_RAISE,0},			// 31 Takeoff Helipad1
 
	{ 48, 8,AMED_HELI_RAISE,0},			// 32 Takeoff Helipad2
 
	{ 64, 22,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 33 Go to position for Hangarentrance in air
 
	{ 64, 22,AMED_HELI_LOWER,0},			// 34 Land in front of hangar
 
	{ 40, 8,AMED_EXACTPOS,0},			// pre-helitakeoff helipad 1
 
	{ 56, 8,AMED_EXACTPOS,0}			// pre-helitakeoff helipad 2
 
	{   80,    0, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 25 Bufferspace before helipad
 
	{   80,    0, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 26 Bufferspace before helipad
 
	{   32,    8, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 27 Get in position for Helipad1
 
	{   48,    8, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 28 Get in position for Helipad2
 
	{   32,    8, AMED_HELI_LOWER,                 0 }, // 29 Land at Helipad1
 
	{   48,    8, AMED_HELI_LOWER,                 0 }, // 30 Land at Helipad2
 
	{   32,    8, AMED_HELI_RAISE,                 0 }, // 31 Takeoff Helipad1
 
	{   48,    8, AMED_HELI_RAISE,                 0 }, // 32 Takeoff Helipad2
 
	{   64,   22, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 33 Go to position for Hangarentrance in air
 
	{   64,   22, AMED_HELI_LOWER,                 0 }, // 34 Land in front of hangar
 
	{   40,    8, AMED_EXACTPOS,                   0 }, // pre-helitakeoff helipad 1
 
	{   56,    8, AMED_EXACTPOS,                   0 }, // pre-helitakeoff helipad 2
 
};
 

	
 
// City Airport (large) 6x6
 
static const AirportMovingData _airport_moving_data_town[25] = {
 
	{ 85,  3,AMED_EXACTPOS,3},										// 00 In Hangar
 
	{ 85, 27,0,0},																// 01 Taxi to right outside depot
 
	{ 26, 41,AMED_EXACTPOS,5},										// 02 Terminal 1
 
	{ 56, 20,AMED_EXACTPOS,3},										// 03 Terminal 2
 
	{ 38,  8,AMED_EXACTPOS,5},										// 04 Terminal 3
 
	{ 65,  6,0,0},																// 05 Taxi to right in infront of terminal 2/3
 
	{ 80, 27,0,0},																// 06 Taxiway terminals 2-3
 
	{ 44, 63,0,0},																// 07 Taxi to Airport center
 
	{ 58, 71,0,0},																// 08 Towards takeoff
 
	{ 72, 85,0,0},																// 09 Taxi to runway (takeoff)
 
	{ 89, 85,AMED_EXACTPOS,1},										// 10 Taxi to start of runway (takeoff)
 
	{  3, 85,AMED_NOSPDCLAMP,0},									// 11 Accelerate to end of runway
 
	{-79, 85,AMED_NOSPDCLAMP | AMED_TAKEOFF,0},		// 12 Take off
 
	{177, 85,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 13 Fly to landing position in air
 
	{ 89, 85,AMED_NOSPDCLAMP | AMED_LAND,0},			// 14 Going down for land
 
	{  3, 85,AMED_NOSPDCLAMP | AMED_BRAKE,0},			// 15 Just landed, brake until end of runway
 
	{ 20, 87,0,0},																// 16 Just landed, turn around and taxi 1 square
 
	{ 36, 71,0,0},																// 17 Taxi from runway to crossing
 
	{-31,193,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 18 Fly around waiting for a landing spot (north-east)
 
	{  1,  1,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 19 Fly around waiting for a landing spot (north-west)
 
	{257,  1,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 20 Fly around waiting for a landing spot (south-west)
 
	{273, 49,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 21 Fly around waiting for a landing spot (south)
 
	{ 44, 63,AMED_HELI_RAISE,0},									// 22 Helicopter takeoff
 
	{ 28, 74,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 23 In position above landing spot helicopter
 
	{ 28, 74,AMED_HELI_LOWER,0}										// 24 Helicopter landing
 
	{   85,    3, AMED_EXACTPOS,                   3 }, // 00 In Hangar
 
	{   85,   27, 0,                               0 }, // 01 Taxi to right outside depot
 
	{   26,   41, AMED_EXACTPOS,                   5 }, // 02 Terminal 1
 
	{   56,   20, AMED_EXACTPOS,                   3 }, // 03 Terminal 2
 
	{   38,    8, AMED_EXACTPOS,                   5 }, // 04 Terminal 3
 
	{   65,    6, 0,                               0 }, // 05 Taxi to right in infront of terminal 2/3
 
	{   80,   27, 0,                               0 }, // 06 Taxiway terminals 2-3
 
	{   44,   63, 0,                               0 }, // 07 Taxi to Airport center
 
	{   58,   71, 0,                               0 }, // 08 Towards takeoff
 
	{   72,   85, 0,                               0 }, // 09 Taxi to runway (takeoff)
 
	{   89,   85, AMED_EXACTPOS,                   1 }, // 10 Taxi to start of runway (takeoff)
 
	{    3,   85, AMED_NOSPDCLAMP,                 0 }, // 11 Accelerate to end of runway
 
	{  -79,   85, AMED_NOSPDCLAMP | AMED_TAKEOFF,  0 }, // 12 Take off
 
	{  177,   85, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 13 Fly to landing position in air
 
	{   89,   85, AMED_NOSPDCLAMP | AMED_LAND,     0 }, // 14 Going down for land
 
	{    3,   85, AMED_NOSPDCLAMP | AMED_BRAKE,    0 }, // 15 Just landed, brake until end of runway
 
	{   20,   87, 0,                               0 }, // 16 Just landed, turn around and taxi 1 square
 
	{   36,   71, 0,                               0 }, // 17 Taxi from runway to crossing
 
	{  -31,  193, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 18 Fly around waiting for a landing spot (north-east)
 
	{    1,    1, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 19 Fly around waiting for a landing spot (north-west)
 
	{  257,    1, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 20 Fly around waiting for a landing spot (south-west)
 
	{  273,   49, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 21 Fly around waiting for a landing spot (south)
 
	{   44,   63, AMED_HELI_RAISE,                 0 }, // 22 Helicopter takeoff
 
	{   28,   74, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 23 In position above landing spot helicopter
 
	{   28,   74, AMED_HELI_LOWER,                 0 }, // 24 Helicopter landing
 
};
 

	
 
// Metropolitan Airport (metropolitan) - 2 runways
 
static const AirportMovingData _airport_moving_data_metropolitan[27] = {
 
	{ 85,  3,AMED_EXACTPOS,3},										// 00 In Hangar
 
	{ 85, 27,0,0},																// 01 Taxi to right outside depot
 
	{ 26, 41,AMED_EXACTPOS,5},										// 02 Terminal 1
 
	{ 56, 20,AMED_EXACTPOS,3},										// 03 Terminal 2
 
	{ 38,  8,AMED_EXACTPOS,5},										// 04 Terminal 3
 
	{ 65,  6,0,0},																// 05 Taxi to right in infront of terminal 2/3
 
	{ 70, 33,0,0},																// 06 Taxiway terminals 2-3
 
	{ 44, 58,0,0},																// 07 Taxi to Airport center
 
	{ 72, 58,0,0},																// 08 Towards takeoff
 
	{ 72, 69,0,0},																// 09 Taxi to runway (takeoff)
 
	{ 89, 69,AMED_EXACTPOS,1},										// 10 Taxi to start of runway (takeoff)
 
	{  3, 69,AMED_NOSPDCLAMP,0},									// 11 Accelerate to end of runway
 
	{-79, 69,AMED_NOSPDCLAMP | AMED_TAKEOFF,0},		// 12 Take off
 
	{177, 85,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 13 Fly to landing position in air
 
	{ 89, 85,AMED_NOSPDCLAMP | AMED_LAND,0},			// 14 Going down for land
 
	{  3, 85,AMED_NOSPDCLAMP | AMED_BRAKE,0},			// 15 Just landed, brake until end of runway
 
	{ 21, 85,0,0},																// 16 Just landed, turn around and taxi 1 square
 
	{ 21, 69,0,0},																// 17 On Runway-out taxiing to In-Way
 
	{ 21, 54,AMED_EXACTPOS,5},										// 18 Taxi from runway to crossing
 
	{-31,193,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 19 Fly around waiting for a landing spot (north-east)
 
	{  1,  1,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 20 Fly around waiting for a landing spot (north-west)
 
	{257,  1,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 21 Fly around waiting for a landing spot (south-west)
 
	{273, 49,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 22 Fly around waiting for a landing spot (south)
 
	{ 44, 58,0,0},																// 23 Helicopter takeoff spot on ground (to clear airport sooner)
 
	{ 44, 63,AMED_HELI_RAISE,0},									// 24 Helicopter takeoff
 
	{ 15, 54,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 25 Get in position above landing spot helicopter
 
	{ 15, 54,AMED_HELI_LOWER,0}										// 26 Helicopter landing
 
	{   85,    3, AMED_EXACTPOS,                   3 }, // 00 In Hangar
 
	{   85,   27, 0,                               0 }, // 01 Taxi to right outside depot
 
	{   26,   41, AMED_EXACTPOS,                   5 }, // 02 Terminal 1
 
	{   56,   20, AMED_EXACTPOS,                   3 }, // 03 Terminal 2
 
	{   38,    8, AMED_EXACTPOS,                   5 }, // 04 Terminal 3
 
	{   65,    6, 0,                               0 }, // 05 Taxi to right in infront of terminal 2/3
 
	{   70,   33, 0,                               0 }, // 06 Taxiway terminals 2-3
 
	{   44,   58, 0,                               0 }, // 07 Taxi to Airport center
 
	{   72,   58, 0,                               0 }, // 08 Towards takeoff
 
	{   72,   69, 0,                               0 }, // 09 Taxi to runway (takeoff)
 
	{   89,   69, AMED_EXACTPOS,                   1 }, // 10 Taxi to start of runway (takeoff)
 
	{    3,   69, AMED_NOSPDCLAMP,                 0 }, // 11 Accelerate to end of runway
 
	{  -79,   69, AMED_NOSPDCLAMP | AMED_TAKEOFF,  0 }, // 12 Take off
 
	{  177,   85, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 13 Fly to landing position in air
 
	{   89,   85, AMED_NOSPDCLAMP | AMED_LAND,     0 }, // 14 Going down for land
 
	{    3,   85, AMED_NOSPDCLAMP | AMED_BRAKE,    0 }, // 15 Just landed, brake until end of runway
 
	{   21,   85, 0,                               0 }, // 16 Just landed, turn around and taxi 1 square
 
	{   21,   69, 0,                               0 }, // 17 On Runway-out taxiing to In-Way
 
	{   21,   54, AMED_EXACTPOS,                   5 }, // 18 Taxi from runway to crossing
 
	{  -31,  193, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 19 Fly around waiting for a landing spot (north-east)
 
	{    1,    1, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 20 Fly around waiting for a landing spot (north-west)
 
	{  257,    1, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 21 Fly around waiting for a landing spot (south-west)
 
	{  273,   49, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 22 Fly around waiting for a landing spot (south)
 
	{   44,   58, 0,                               0 }, // 23 Helicopter takeoff spot on ground (to clear airport sooner)
 
	{   44,   63, AMED_HELI_RAISE,                 0 }, // 24 Helicopter takeoff
 
	{   15,   54, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 25 Get in position above landing spot helicopter
 
	{   15,   54, AMED_HELI_LOWER,                 0 }, // 26 Helicopter landing
 
};
 

	
 
// International Airport (international) - 2 runways, 6 terminals, dedicated helipod
 
static const AirportMovingData _airport_moving_data_international[51] = {
 
	{  7, 55,AMED_EXACTPOS,3},										// 00 In Hangar 1
 
	{100, 21,AMED_EXACTPOS,3},										// 01 In Hangar 2
 
	{  7, 70,0,0},																// 02 Taxi to right outside depot
 
	{100, 36,0,0},																// 03 Taxi to right outside depot
 
	{ 38, 70,AMED_EXACTPOS,5},										// 04 Terminal 1
 
	{ 38, 54,AMED_EXACTPOS,5},										// 05 Terminal 2
 
	{ 38, 38,AMED_EXACTPOS,5},										// 06 Terminal 3
 
	{ 70, 70,AMED_EXACTPOS,1},										// 07 Terminal 4
 
	{ 70, 54,AMED_EXACTPOS,1},										// 08 Terminal 5
 
	{ 70, 38,AMED_EXACTPOS,1},										// 09 Terminal 6
 
	{104, 71,AMED_EXACTPOS,1},										// 10 Helipad 1
 
	{104, 55,AMED_EXACTPOS,1},										// 11 Helipad 2
 
	{ 22, 87,0,0},																// 12 Towards Terminals 4/5/6, Helipad 1/2
 
	{ 60, 87,0,0},																// 13 Towards Terminals 4/5/6, Helipad 1/2
 
	{ 66, 87,0,0},																// 14 Towards Terminals 4/5/6, Helipad 1/2
 
	{ 86, 87,AMED_EXACTPOS,7},										// 15 Towards Terminals 4/5/6, Helipad 1/2
 
	{ 86, 70,0,0},																// 16 In Front of Terminal 4 / Helipad 1
 
	{ 86, 54,0,0},																// 17 In Front of Terminal 5 / Helipad 2
 
	{ 86, 38,0,0},																// 18 In Front of Terminal 6
 
	{ 86, 22,0,0},																// 19 Towards Terminals Takeoff (Taxiway)
 
	{ 66, 22,0,0},																// 20 Towards Terminals Takeoff (Taxiway)
 
	{ 60, 22,0,0},																// 21 Towards Terminals Takeoff (Taxiway)
 
	{ 38, 22,0,0},																// 22 Towards Terminals Takeoff (Taxiway)
 
	{ 22, 70,0,0},																// 23 In Front of Terminal 1
 
	{ 22, 58,0,0},																// 24 In Front of Terminal 2
 
	{ 22, 38,0,0},																// 25 In Front of Terminal 3
 
	{ 22, 22,AMED_EXACTPOS,7},										// 26 Going for Takeoff
 
	{ 22,  6,0,0},																// 27 On Runway-out, prepare for takeoff
 
	{  3,  6,AMED_EXACTPOS,5},										// 28 Accelerate to end of runway
 
	{ 60,  6,AMED_NOSPDCLAMP,0},									// 29 Release control of runway, for smoother movement
 
	{105,  6,AMED_NOSPDCLAMP,0},									// 30 End of runway
 
	{190,  6,AMED_NOSPDCLAMP | AMED_TAKEOFF,0},		// 31 Take off
 
	{193,104,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 32 Fly to landing position in air
 
	{105,104,AMED_NOSPDCLAMP | AMED_LAND,0},			// 33 Going down for land
 
	{  3,104,AMED_NOSPDCLAMP | AMED_BRAKE,0},			// 34 Just landed, brake until end of runway
 
	{ 12,104,0,0},																// 35 Just landed, turn around and taxi 1 square
 
	{  7, 84,0,0},																// 36 Taxi from runway to crossing
 
	{-31,209,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 37 Fly around waiting for a landing spot (north-east)
 
	{  1,  6,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 38 Fly around waiting for a landing spot (north-west)
 
	{273,  6,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 39 Fly around waiting for a landing spot (south-west)
 
	{305, 81,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 40 Fly around waiting for a landing spot (south)
 
	{    7,   55, AMED_EXACTPOS,                   3 }, // 00 In Hangar 1
 
	{  100,   21, AMED_EXACTPOS,                   3 }, // 01 In Hangar 2
 
	{    7,   70, 0,                               0 }, // 02 Taxi to right outside depot
 
	{  100,   36, 0,                               0 }, // 03 Taxi to right outside depot
 
	{   38,   70, AMED_EXACTPOS,                   5 }, // 04 Terminal 1
 
	{   38,   54, AMED_EXACTPOS,                   5 }, // 05 Terminal 2
 
	{   38,   38, AMED_EXACTPOS,                   5 }, // 06 Terminal 3
 
	{   70,   70, AMED_EXACTPOS,                   1 }, // 07 Terminal 4
 
	{   70,   54, AMED_EXACTPOS,                   1 }, // 08 Terminal 5
 
	{   70,   38, AMED_EXACTPOS,                   1 }, // 09 Terminal 6
 
	{  104,   71, AMED_EXACTPOS,                   1 }, // 10 Helipad 1
 
	{  104,   55, AMED_EXACTPOS,                   1 }, // 11 Helipad 2
 
	{   22,   87, 0,                               0 }, // 12 Towards Terminals 4/5/6, Helipad 1/2
 
	{   60,   87, 0,                               0 }, // 13 Towards Terminals 4/5/6, Helipad 1/2
 
	{   66,   87, 0,                               0 }, // 14 Towards Terminals 4/5/6, Helipad 1/2
 
	{   86,   87, AMED_EXACTPOS,                   7 }, // 15 Towards Terminals 4/5/6, Helipad 1/2
 
	{   86,   70, 0,                               0 }, // 16 In Front of Terminal 4 / Helipad 1
 
	{   86,   54, 0,                               0 }, // 17 In Front of Terminal 5 / Helipad 2
 
	{   86,   38, 0,                               0 }, // 18 In Front of Terminal 6
 
	{   86,   22, 0,                               0 }, // 19 Towards Terminals Takeoff (Taxiway)
 
	{   66,   22, 0,                               0 }, // 20 Towards Terminals Takeoff (Taxiway)
 
	{   60,   22, 0,                               0 }, // 21 Towards Terminals Takeoff (Taxiway)
 
	{   38,   22, 0,                               0 }, // 22 Towards Terminals Takeoff (Taxiway)
 
	{   22,   70, 0,                               0 }, // 23 In Front of Terminal 1
 
	{   22,   58, 0,                               0 }, // 24 In Front of Terminal 2
 
	{   22,   38, 0,                               0 }, // 25 In Front of Terminal 3
 
	{   22,   22, AMED_EXACTPOS,                   7 }, // 26 Going for Takeoff
 
	{   22,    6, 0,                               0 }, // 27 On Runway-out, prepare for takeoff
 
	{    3,    6, AMED_EXACTPOS,                   5 }, // 28 Accelerate to end of runway
 
	{   60,    6, AMED_NOSPDCLAMP,                 0 }, // 29 Release control of runway, for smoother movement
 
	{  105,    6, AMED_NOSPDCLAMP,                 0 }, // 30 End of runway
 
	{  190,    6, AMED_NOSPDCLAMP | AMED_TAKEOFF,  0 }, // 31 Take off
 
	{  193,  104, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 32 Fly to landing position in air
 
	{  105,  104, AMED_NOSPDCLAMP | AMED_LAND,     0 }, // 33 Going down for land
 
	{    3,  104, AMED_NOSPDCLAMP | AMED_BRAKE,    0 }, // 34 Just landed, brake until end of runway
 
	{   12,  104, 0,                               0 }, // 35 Just landed, turn around and taxi 1 square
 
	{    7,   84, 0,                               0 }, // 36 Taxi from runway to crossing
 
	{  -31,  209, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 37 Fly around waiting for a landing spot (north-east)
 
	{    1,    6, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 38 Fly around waiting for a landing spot (north-west)
 
	{  273,    6, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 39 Fly around waiting for a landing spot (south-west)
 
	{  305,   81, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 40 Fly around waiting for a landing spot (south)
 
	// Helicopter
 
	{128, 80,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 41 Bufferspace before helipad
 
	{128, 80,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 42 Bufferspace before helipad
 
	{ 96, 71,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 43 Get in position for Helipad1
 
	{ 96, 55,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 44 Get in position for Helipad2
 
	{ 96, 71,AMED_HELI_LOWER,0},									// 45 Land at Helipad1
 
	{ 96, 55,AMED_HELI_LOWER,0},									// 46 Land at Helipad2
 
	{104, 71,AMED_HELI_RAISE,0},									// 47 Takeoff Helipad1
 
	{104, 55,AMED_HELI_RAISE,0},									// 48 Takeoff Helipad2
 
	{104, 32,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 49 Go to position for Hangarentrance in air
 
	{104, 32,AMED_HELI_LOWER,0}										// 50 Land in HANGAR2_AREA to go to hangar
 
	{  128,   80, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 41 Bufferspace before helipad
 
	{  128,   80, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 42 Bufferspace before helipad
 
	{   96,   71, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 43 Get in position for Helipad1
 
	{   96,   55, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 44 Get in position for Helipad2
 
	{   96,   71, AMED_HELI_LOWER,                 0 }, // 45 Land at Helipad1
 
	{   96,   55, AMED_HELI_LOWER,                 0 }, // 46 Land at Helipad2
 
	{  104,   71, AMED_HELI_RAISE,                 0 }, // 47 Takeoff Helipad1
 
	{  104,   55, AMED_HELI_RAISE,                 0 }, // 48 Takeoff Helipad2
 
	{  104,   32, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 49 Go to position for Hangarentrance in air
 
	{  104,   32, AMED_HELI_LOWER,                 0} // 50 Land in HANGAR2_AREA to go to hangar
 
};
 

	
 
// Intercontinental Airport - 4 runways, 8 terminals, 2 dedicated helipads
 
static const AirportMovingData _airport_moving_data_intercontinental[77] = {
 
	{  7, 87, AMED_EXACTPOS,3},			// 00 In Hangar 1
 
	{135, 72, AMED_EXACTPOS,3},			// 01 In Hangar 2
 
	{  7,104,0,0},					// 02 Taxi to right outside depot 1
 
	{135, 88,0,0},					// 03 Taxi to right outside depot 2
 
	{ 56,120,AMED_EXACTPOS,6},			// 04 Terminal 1
 
	{ 56,104,AMED_EXACTPOS,5},			// 05 Terminal 2
 
	{ 56, 88,AMED_EXACTPOS,5},			// 06 Terminal 3
 
	{ 56, 72,AMED_EXACTPOS,5},			// 07 Terminal 4
 
	{ 88,120,AMED_EXACTPOS,0},			// 08 Terminal 5
 
	{ 88,104,AMED_EXACTPOS,1},			// 09 Terminal 6
 
	{ 88, 88,AMED_EXACTPOS,1},			// 10 Terminal 7
 
	{ 88, 72,AMED_EXACTPOS,1},			// 11 Terminal 8
 
	{ 88, 56,AMED_EXACTPOS,3},			// 12 Helipad 1
 
	{ 72, 56,AMED_EXACTPOS,1},			// 13 Helipad 2
 
	{ 40,136,0,0},					// 14 Term group 2 enter 1 a
 
	{ 56,136,0,0},					// 15 Term group 2 enter 1 b
 
	{ 88,136,0,0},					// 16 Term group 2 enter 2 a
 
	{104,136,0,0},					// 17 Term group 2 enter 2 b
 
	{104,120,0,0},					// 18 Term group 2 - opp term 5
 
	{104,104,0,0},					// 19 Term group 2 - opp term 6 & exit2
 
	{104, 88,0,0},					// 20 Term group 2 - opp term 7 & hangar area 2
 
	{104, 72,0,0},					// 21 Term group 2 - opp term 8
 
	{104, 56,0,0},					// 22 Taxi Term group 2 exit a
 
	{104, 40,0,0},					// 23 Taxi Term group 2 exit b
 
	{ 56, 40,0,0},					// 24 Term group 2 exit 2a
 
	{ 40, 40,0,0},					// 25 Term group 2 exit 2b
 
	{ 40,120,0,0},					// 26 Term group 1 - opp term 1
 
	{ 40,104,0,0},					// 27 Term group 1 - opp term 2 & hangar area 1
 
	{ 40, 88,0,0},					// 28 Term group 1 - opp term 3
 
	{ 40, 72,0,0},					// 29 Term group 1 - opp term 4
 
	{ 18, 72,0,7},					// 30 Outway 1
 
	{  8, 40,0,7},					// 31 Airport OUTWAY
 
	{  8, 24,AMED_EXACTPOS,5},			// 32 Accelerate to end of runway
 
	{119, 24,AMED_NOSPDCLAMP,0},			// 33 Release control of runway, for smoother movement
 
	{117, 24,AMED_NOSPDCLAMP,0},			// 34 End of runway
 
	{197, 24,AMED_NOSPDCLAMP | AMED_TAKEOFF,0},	// 35 Take off
 
	{254, 84,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 36 Flying to landing position in air
 
	{117,168,AMED_NOSPDCLAMP | AMED_LAND,0},	// 37 Going down for land
 
	{  3,168,AMED_NOSPDCLAMP | AMED_BRAKE,0},	// 38 Just landed, brake until end of runway
 
	{  8,168,0,0},					// 39 Just landed, turn around and taxi
 
	{  8,144,0,7},					// 40 Taxi from runway
 
	{  8,128,0,7},					// 41 Taxi from runway
 
	{  8,120,AMED_EXACTPOS,5},			// 42 Airport entrance
 
	{ 56,344,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 43 Fly around waiting for a landing spot (north-east)
 
	{-200,88,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 44 Fly around waiting for a landing spot (north-west)
 
	{ 56,-168,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 45 Fly around waiting for a landing spot (south-west)
 
	{312, 88,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 46 Fly around waiting for a landing spot (south)
 
	{    7,   87, AMED_EXACTPOS,                   3 }, // 00 In Hangar 1
 
	{  135,   72, AMED_EXACTPOS,                   3 }, // 01 In Hangar 2
 
	{    7,  104, 0,                               0 }, // 02 Taxi to right outside depot 1
 
	{  135,   88, 0, 0 }, // 03 Taxi to right outside depot 2
 
	{   56,  120, AMED_EXACTPOS,                   6 }, // 04 Terminal 1
 
	{   56,  104, AMED_EXACTPOS,                   5 }, // 05 Terminal 2
 
	{   56,   88, AMED_EXACTPOS,                   5 }, // 06 Terminal 3
 
	{   56,   72, AMED_EXACTPOS,                   5 }, // 07 Terminal 4
 
	{   88,  120, AMED_EXACTPOS,                   0 }, // 08 Terminal 5
 
	{   88,  104, AMED_EXACTPOS,                   1 }, // 09 Terminal 6
 
	{   88,   88, AMED_EXACTPOS,                   1 }, // 10 Terminal 7
 
	{   88,   72, AMED_EXACTPOS,                   1 }, // 11 Terminal 8
 
	{   88,   56, AMED_EXACTPOS,                   3 }, // 12 Helipad 1
 
	{   72,   56, AMED_EXACTPOS,                   1 }, // 13 Helipad 2
 
	{   40,  136, 0,                               0 }, // 14 Term group 2 enter 1 a
 
	{   56,  136, 0,                               0 }, // 15 Term group 2 enter 1 b
 
	{   88,  136, 0,                               0 }, // 16 Term group 2 enter 2 a
 
	{  104,  136, 0,                               0 }, // 17 Term group 2 enter 2 b
 
	{  104,  120, 0,                               0 }, // 18 Term group 2 - opp term 5
 
	{  104,  104, 0,                               0 }, // 19 Term group 2 - opp term 6 & exit2
 
	{  104,   88, 0,                               0 }, // 20 Term group 2 - opp term 7 & hangar area 2
 
	{  104,   72, 0,                               0 }, // 21 Term group 2 - opp term 8
 
	{  104,   56, 0,                               0 }, // 22 Taxi Term group 2 exit a
 
	{  104,   40, 0,                               0 }, // 23 Taxi Term group 2 exit b
 
	{   56,   40, 0,                               0 }, // 24 Term group 2 exit 2a
 
	{   40,   40, 0,                               0 }, // 25 Term group 2 exit 2b
 
	{   40,  120, 0,                               0 }, // 26 Term group 1 - opp term 1
 
	{   40,  104, 0,                               0 }, // 27 Term group 1 - opp term 2 & hangar area 1
 
	{   40,   88, 0,                               0 }, // 28 Term group 1 - opp term 3
 
	{   40,   72, 0,                               0 }, // 29 Term group 1 - opp term 4
 
	{   18,   72, 0,                               7 }, // 30 Outway 1
 
	{    8,   40, 0,                               7 }, // 31 Airport OUTWAY
 
	{    8,   24, AMED_EXACTPOS,                   5 }, // 32 Accelerate to end of runway
 
	{  119,   24, AMED_NOSPDCLAMP,                 0 }, // 33 Release control of runway, for smoother movement
 
	{  117,   24, AMED_NOSPDCLAMP,                 0 }, // 34 End of runway
 
	{  197,   24, AMED_NOSPDCLAMP | AMED_TAKEOFF,  0 }, // 35 Take off
 
	{  254,   84, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 36 Flying to landing position in air
 
	{  117,  168, AMED_NOSPDCLAMP | AMED_LAND,     0 }, // 37 Going down for land
 
	{    3,  168, AMED_NOSPDCLAMP | AMED_BRAKE,    0 }, // 38 Just landed, brake until end of runway
 
	{    8,  168, 0,                               0 }, // 39 Just landed, turn around and taxi
 
	{    8,  144, 0,                               7 }, // 40 Taxi from runway
 
	{    8,  128, 0,                               7 }, // 41 Taxi from runway
 
	{    8,  120, AMED_EXACTPOS,                   5 }, // 42 Airport entrance
 
	{   56,  344, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 43 Fly around waiting for a landing spot (north-east)
 
	{ -200,   88, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 44 Fly around waiting for a landing spot (north-west)
 
	{   56, -168, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 45 Fly around waiting for a landing spot (south-west)
 
	{  312,   88, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 46 Fly around waiting for a landing spot (south)
 
	// Helicopter
 
	{ 96,40,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 47 Bufferspace before helipad
 
	{ 96,40,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 48 Bufferspace before helipad
 
	{ 82,54,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 49 Get in position for Helipad1
 
	{ 64,56,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 50 Get in position for Helipad2
 
	{ 81,55,AMED_HELI_LOWER,0},			// 51 Land at Helipad1
 
	{ 64,56,AMED_HELI_LOWER,0},			// 52 Land at Helipad2
 
	{ 80,56,AMED_HELI_RAISE,0},			// 53 Takeoff Helipad1
 
	{ 64,56,AMED_HELI_RAISE,0},			// 54 Takeoff Helipad2
 
	{136,96,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 55 Go to position for Hangarentrance in air
 
	{136,96,AMED_HELI_LOWER,0},			// 56 Land in front of hangar2
 
	{126,104,0,3},					// 57 Outway 2
 
	{136,136,0,1},					// 58 Airport OUTWAY 2
 
	{136,152,AMED_EXACTPOS,5},			// 59 Accelerate to end of runway2
 
	{ 16,152,AMED_NOSPDCLAMP,0},			// 60 Release control of runway2, for smoother movement
 
	{ 20,152,AMED_NOSPDCLAMP,0},			// 61 End of runway2
 
	{-56,152,AMED_NOSPDCLAMP | AMED_TAKEOFF,0},	// 62 Take off2
 
	{ 24,  8,AMED_NOSPDCLAMP | AMED_LAND,0},	// 63 Going down for land2
 
	{136,  8,AMED_NOSPDCLAMP | AMED_BRAKE,0},	// 64 Just landed, brake until end of runway2in
 
	{136,  8,0,0},					// 65 Just landed, turn around and taxi
 
	{136, 24,0,3},					// 66 Taxi from runway 2in
 
	{136, 40,0,3},					// 67 Taxi from runway 2in
 
	{136, 56,AMED_EXACTPOS,1},			// 68 Airport entrance2
 
	{-56,  8,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 69 Fly to landing position in air2
 
	{ 88, 40,0,0},					// 70 Taxi Term group 2 exit - opp heli1
 
	{ 72, 40,0,0},					// 71 Taxi Term group 2 exit - opp heli2
 
	{ 88, 57,AMED_EXACTPOS,3},			// 72 pre-helitakeoff helipad 1
 
	{ 71, 56,AMED_EXACTPOS,1},			// 73 pre-helitakeoff helipad 2
 
	{  8,120,AMED_HELI_RAISE,0},			// 74 Helitakeoff outside depot 1
 
	{136,104,AMED_HELI_RAISE,0},			// 75 Helitakeoff outside depot 2
 
	{197,168,AMED_NOSPDCLAMP | AMED_SLOWTURN,0}	// 76 Fly to landing position in air1
 
	{   96,   40, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 47 Bufferspace before helipad
 
	{   96,   40, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 48 Bufferspace before helipad
 
	{   82,   54, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 49 Get in position for Helipad1
 
	{   64,   56, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 50 Get in position for Helipad2
 
	{   81,   55, AMED_HELI_LOWER,                 0 }, // 51 Land at Helipad1
 
	{   64,   56, AMED_HELI_LOWER,                 0 }, // 52 Land at Helipad2
 
	{   80,   56, AMED_HELI_RAISE,                 0 }, // 53 Takeoff Helipad1
 
	{   64,   56, AMED_HELI_RAISE,                 0 }, // 54 Takeoff Helipad2
 
	{  136,   96, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 55 Go to position for Hangarentrance in air
 
	{  136,   96, AMED_HELI_LOWER,                 0 }, // 56 Land in front of hangar2
 
	{  126,  104, 0,                               3 }, // 57 Outway 2
 
	{  136,  136, 0,                               1 }, // 58 Airport OUTWAY 2
 
	{  136,  152, AMED_EXACTPOS,                   5 }, // 59 Accelerate to end of runway2
 
	{   16,  152, AMED_NOSPDCLAMP,                 0 }, // 60 Release control of runway2, for smoother movement
 
	{   20,  152, AMED_NOSPDCLAMP,                 0 }, // 61 End of runway2
 
	{  -56,  152, AMED_NOSPDCLAMP | AMED_TAKEOFF,  0 }, // 62 Take off2
 
	{   24,    8, AMED_NOSPDCLAMP | AMED_LAND,     0 }, // 63 Going down for land2
 
	{  136,    8, AMED_NOSPDCLAMP | AMED_BRAKE,    0 }, // 64 Just landed, brake until end of runway2in
 
	{  136,    8, 0,                               0 }, // 65 Just landed, turn around and taxi
 
	{  136,   24, 0,                               3 }, // 66 Taxi from runway 2in
 
	{  136,   40, 0,                               3 }, // 67 Taxi from runway 2in
 
	{  136,   56, AMED_EXACTPOS,                   1 }, // 68 Airport entrance2
 
	{  -56,    8, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 69 Fly to landing position in air2
 
	{   88,   40, 0,                               0 }, // 70 Taxi Term group 2 exit - opp heli1
 
	{   72,   40, 0,                               0 }, // 71 Taxi Term group 2 exit - opp heli2
 
	{   88,   57, AMED_EXACTPOS,                   3 }, // 72 pre-helitakeoff helipad 1
 
	{   71,   56, AMED_EXACTPOS,                   1 }, // 73 pre-helitakeoff helipad 2
 
	{    8,  120, AMED_HELI_RAISE,                 0 }, // 74 Helitakeoff outside depot 1
 
	{  136,  104, AMED_HELI_RAISE,                 0 }, // 75 Helitakeoff outside depot 2
 
	{  197,  168, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0} // 76 Fly to landing position in air1
 
};
 

	
 

	
 
// Heliport (heliport)
 
static const AirportMovingData _airport_moving_data_heliport[9] = {
 
	{  5,  9,AMED_EXACTPOS,1},										// 0 - At heliport terminal
 
	{  2,  9,AMED_HELI_RAISE,0},									// 1 - Take off (play sound)
 
	{ -3,  9,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 2 - In position above landing spot helicopter
 
	{ -3,  9,AMED_HELI_LOWER,0},									// 3 - Land
 
	{  2,  9,0,0},																// 4 - Goto terminal on ground
 
	{-31, 59,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 5 - Circle #1 (north-east)
 
	{-31,-49,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 6 - Circle #2 (north-west)
 
	{ 49,-49,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 7 - Circle #3 (south-west)
 
	{ 70,  9,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 8 - Circle #4 (south)
 
	{    5,    9, AMED_EXACTPOS,                   1 }, // 0 - At heliport terminal
 
	{    2,    9, AMED_HELI_RAISE,                 0 }, // 1 - Take off (play sound)
 
	{   -3,    9, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 2 - In position above landing spot helicopter
 
	{   -3,    9, AMED_HELI_LOWER,                 0 }, // 3 - Land
 
	{    2,    9, 0,                               0 }, // 4 - Goto terminal on ground
 
	{  -31,   59, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 5 - Circle #1 (north-east)
 
	{  -31,  -49, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 6 - Circle #2 (north-west)
 
	{   49,  -49, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 7 - Circle #3 (south-west)
 
	{   70,    9, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 8 - Circle #4 (south)
 
};
 

	
 
// HeliDepot 2x2 (heliport)
 
static const AirportMovingData _airport_moving_data_helidepot[18] = {
 
	{ 24, 4,AMED_EXACTPOS,1},			// 0 - At depot
 
	{ 24, 28,0,0},					// 1 Taxi to right outside depot
 
	{  5, 38,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 2 Flying
 
	{-15,-15,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 3 - Circle #1 (north-east)
 
	{-15,-49,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 4 - Circle #2 (north-west)
 
	{ 49,-49,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 5 - Circle #3 (south-west)
 
	{ 49,-15,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 6 - Circle #4 (south-east)
 
	{  8, 32,AMED_NOSPDCLAMP | AMED_SLOWTURN,7},	// 7 - PreHelipad
 
	{  8, 32,AMED_NOSPDCLAMP | AMED_SLOWTURN,7},	// 8 - Helipad
 
	{  8, 16,AMED_NOSPDCLAMP | AMED_SLOWTURN,7},	// 9 - Land
 
	{  8, 16,AMED_HELI_LOWER,7},			// 10 - Land
 
	{  8, 24,AMED_HELI_RAISE,0},			// 11 - Take off (play sound)
 
	{ 32, 24,AMED_NOSPDCLAMP | AMED_SLOWTURN,7},	// 12 Air to above hangar area
 
	{ 32, 24,AMED_HELI_LOWER,7},			// 13 Taxi to right outside depot
 
	{  8, 24,AMED_EXACTPOS,7},			// 14 - on helipad1
 
	{ 24, 28,AMED_HELI_RAISE,0},			// 15 Takeoff right outside depot
 
	{  8, 24,AMED_HELI_RAISE,5},			// 16 - Take off (play sound)
 
	{  8, 24,AMED_SLOWTURN | AMED_EXACTPOS,2},	// 17 - turn on helipad1 for takeoff
 
	{   24,    4, AMED_EXACTPOS,                   1 }, // 0 - At depot
 
	{   24,   28, 0,                               0 }, // 1 Taxi to right outside depot
 
	{    5,   38, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 2 Flying
 
	{  -15,  -15, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 3 - Circle #1 (north-east)
 
	{  -15,  -49, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 4 - Circle #2 (north-west)
 
	{   49,  -49, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 5 - Circle #3 (south-west)
 
	{   49,  -15, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 6 - Circle #4 (south-east)
 
	{    8,   32, AMED_NOSPDCLAMP | AMED_SLOWTURN, 7 }, // 7 - PreHelipad
 
	{    8,   32, AMED_NOSPDCLAMP | AMED_SLOWTURN, 7 }, // 8 - Helipad
 
	{    8,   16, AMED_NOSPDCLAMP | AMED_SLOWTURN, 7 }, // 9 - Land
 
	{    8,   16, AMED_HELI_LOWER,                 7 }, // 10 - Land
 
	{    8,   24, AMED_HELI_RAISE,                 0 }, // 11 - Take off (play sound)
 
	{   32,   24, AMED_NOSPDCLAMP | AMED_SLOWTURN, 7 }, // 12 Air to above hangar area
 
	{   32,   24, AMED_HELI_LOWER,                 7 }, // 13 Taxi to right outside depot
 
	{    8,   24, AMED_EXACTPOS,                   7 }, // 14 - on helipad1
 
	{   24,   28, AMED_HELI_RAISE,                 0 }, // 15 Takeoff right outside depot
 
	{    8,   24, AMED_HELI_RAISE,                 5 }, // 16 - Take off (play sound)
 
	{    8,   24, AMED_SLOWTURN | AMED_EXACTPOS,   2 }, // 17 - turn on helipad1 for takeoff
 
};
 

	
 
// HeliDepot 2x2 (heliport)
 
static const AirportMovingData _airport_moving_data_helistation[33] = {
 
	{8, 3,AMED_EXACTPOS,3},				// 00 In Hangar2
 
	{8, 22,0,0},					// 01 outside hangar 2
 
	{116,24,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 02 Fly to landing position in air
 
	{14, 22,AMED_HELI_RAISE,0},			// 03 Helitakeoff outside hangar1(play sound)
 
	{24, 22,0,0},					// 04 taxiing
 
	{40, 22,0,0},					// 05 taxiing
 
	{40, 8,AMED_EXACTPOS,1},			// 06 Helipad 1
 
	{56, 8,AMED_EXACTPOS,1},			// 07 Helipad 2
 
	{56, 24,AMED_EXACTPOS,1},			// 08 Helipad 3
 
	{40, 8,AMED_EXACTPOS,0},			// 09 pre-helitakeoff helipad 1
 
	{56, 8,AMED_EXACTPOS,0},			// 10 pre-helitakeoff helipad 2
 
	{56, 24,AMED_EXACTPOS,0},			// 11 pre-helitakeoff helipad 3
 
	{32, 8,AMED_HELI_RAISE,0},			// 12 Takeoff Helipad1
 
	{48, 8,AMED_HELI_RAISE,0},			// 13 Takeoff Helipad2
 
	{48, 24,AMED_HELI_RAISE,0},			// 14 Takeoff Helipad3
 
	{84, 24,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 15 Bufferspace before helipad
 
	{68, 24,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 16 Bufferspace before helipad
 
	{32, 8,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 17 Get in position for Helipad1
 
	{48, 8,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 18 Get in position for Helipad2
 
	{48, 24,AMED_NOSPDCLAMP | AMED_SLOWTURN,1},	// 19 Get in position for Helipad3
 
	{40, 8,AMED_HELI_LOWER,0},			// 20 Land at Helipad1
 
	{48, 8,AMED_HELI_LOWER,0},			// 21 Land at Helipad2
 
	{48, 24,AMED_HELI_LOWER,0},			// 22 Land at Helipad3
 
	{0, 22,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 23 Go to position for Hangarentrance in air
 
	{0, 22,AMED_HELI_LOWER,0},			// 24 Land in front of hangar
 
	{148,-8,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 25 Fly around waiting for a landing spot (south-east)
 
	{148,8,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 26 Fly around waiting for a landing spot (south-west)
 
	{132,24,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 27 Fly around waiting for a landing spot (south-west)
 
	{100,24,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 28 Fly around waiting for a landing spot (north-east)
 
	{84, 8,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 29 Fly around waiting for a landing spot (south-east)
 
	{84,-8,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 30 Fly around waiting for a landing spot (south-west)
 
	{100,-24,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 31 Fly around waiting for a landing spot (north-west)
 
	{132,-24,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 32 Fly around waiting for a landing spot (north-east)
 
	{    8,    3, AMED_EXACTPOS,                   3 }, // 00 In Hangar2
 
	{    8,   22, 0,                               0 }, // 01 outside hangar 2
 
	{  116,   24, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 02 Fly to landing position in air
 
	{   14,   22, AMED_HELI_RAISE,                 0 }, // 03 Helitakeoff outside hangar1(play sound)
 
	{   24,   22, 0,                               0 }, // 04 taxiing
 
	{   40,   22, 0,                               0 }, // 05 taxiing
 
	{   40,    8, AMED_EXACTPOS,                   1 }, // 06 Helipad 1
 
	{   56,    8, AMED_EXACTPOS,                   1 }, // 07 Helipad 2
 
	{   56,   24, AMED_EXACTPOS,                   1 }, // 08 Helipad 3
 
	{   40,    8, AMED_EXACTPOS,                   0 }, // 09 pre-helitakeoff helipad 1
 
	{   56,    8, AMED_EXACTPOS,                   0 }, // 10 pre-helitakeoff helipad 2
 
	{   56,   24, AMED_EXACTPOS,                   0 }, // 11 pre-helitakeoff helipad 3
 
	{   32,    8, AMED_HELI_RAISE,                 0 }, // 12 Takeoff Helipad1
 
	{   48,    8, AMED_HELI_RAISE,                 0 }, // 13 Takeoff Helipad2
 
	{   48,   24, AMED_HELI_RAISE,                 0 }, // 14 Takeoff Helipad3
 
	{   84,   24, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 15 Bufferspace before helipad
 
	{   68,   24, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 16 Bufferspace before helipad
 
	{   32,    8, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 17 Get in position for Helipad1
 
	{   48,    8, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 18 Get in position for Helipad2
 
	{   48,   24, AMED_NOSPDCLAMP | AMED_SLOWTURN, 1 }, // 19 Get in position for Helipad3
 
	{   40,    8, AMED_HELI_LOWER,                 0 }, // 20 Land at Helipad1
 
	{   48,    8, AMED_HELI_LOWER,                 0 }, // 21 Land at Helipad2
 
	{   48,   24, AMED_HELI_LOWER,                 0 }, // 22 Land at Helipad3
 
	{    0,   22, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 23 Go to position for Hangarentrance in air
 
	{    0,   22, AMED_HELI_LOWER,                 0 }, // 24 Land in front of hangar
 
	{  148,   -8, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 25 Fly around waiting for a landing spot (south-east)
 
	{  148,    8, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 26 Fly around waiting for a landing spot (south-west)
 
	{  132,   24, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 27 Fly around waiting for a landing spot (south-west)
 
	{  100,   24, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 28 Fly around waiting for a landing spot (north-east)
 
	{   84,    8, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 29 Fly around waiting for a landing spot (south-east)
 
	{   84,   -8, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 30 Fly around waiting for a landing spot (south-west)
 
	{  100,  -24, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 31 Fly around waiting for a landing spot (north-west)
 
	{  132,  -24, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 32 Fly around waiting for a landing spot (north-east)
 
};
 

	
 
// Oilrig
 
static const AirportMovingData _airport_moving_data_oilrig[9] = {
 
	{ 31,  9,AMED_EXACTPOS,1},										// 0 - At oilrig terminal
 
	{ 28,  9,AMED_HELI_RAISE,0},									// 1 - Take off (play sound)
 
	{ 23,  9,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 2 - In position above landing spot helicopter
 
	{ 23,  9,AMED_HELI_LOWER,0},									// 3 - Land
 
	{ 28,  9,0,0},																// 4 - Goto terminal on ground
 
	{-31, 69,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 5 - circle #1 (north-east)
 
	{-31,-49,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 6 - circle #2 (north-west)
 
	{ 69,-49,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 7 - circle #3 (south-west)
 
	{ 70,  9,AMED_NOSPDCLAMP | AMED_SLOWTURN,0},	// 8 - circle #4 (south)
 
	{   31,    9, AMED_EXACTPOS,                   1 }, // 0 - At oilrig terminal
 
	{   28,    9, AMED_HELI_RAISE,                 0 }, // 1 - Take off (play sound)
 
	{   23,    9, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 2 - In position above landing spot helicopter
 
	{   23,    9, AMED_HELI_LOWER,                 0 }, // 3 - Land
 
	{   28,    9, 0,                               0 }, // 4 - Goto terminal on ground
 
	{  -31,   69, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 5 - circle #1 (north-east)
 
	{  -31,  -49, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 6 - circle #2 (north-west)
 
	{   69,  -49, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 7 - circle #3 (south-west)
 
	{   70,    9, AMED_NOSPDCLAMP | AMED_SLOWTURN, 0 }, // 8 - circle #4 (south)
 
};
 

	
 
///////////////////////////////////////////////////////////////////////
 
/////**********Movement Machine on Airports*********************///////
 
// first element of depots array tells us how many depots there are (to know size of array)
 
// this may be changed later when airports are moved to external file
 

	
 
static const TileIndexDiffC _airport_depots_country[] = {{3, 0}};
 
static const byte _airport_terminal_country[] = {1, 2};
 
static const AirportFTAbuildup _airport_fta_country[] = {
 
	{ 0,HANGAR,NOTHING_block,1},
 
	{ 1,255,AIRPORT_BUSY_block,0}, {1,HANGAR,0,0}, {1,TERM1,TERM1_block,2}, {1,TERM2,0,4}, {1,HELITAKEOFF,0,19}, {1,0,0,6},
 
	{ 2,TERM1,TERM1_block,1},
 
	{ 3,TERM2,TERM2_block,5},
 
	{ 4,255,AIRPORT_BUSY_block,0}, {4,TERM2,0,5}, {4,HANGAR,0,1}, {4,TAKEOFF,0,6}, {4,HELITAKEOFF,0,1},
 
	{ 5,255,AIRPORT_BUSY_block,0}, {5,TERM2,TERM2_block,3}, {5,0,0,4},
 
	{ 6,0,AIRPORT_BUSY_block,7},
 
	{  0, HANGAR, NOTHING_block, 1 },
 
	{  1, 255, AIRPORT_BUSY_block, 0 }, { 1, HANGAR, 0, 0 }, { 1, TERM1, TERM1_block, 2 }, { 1, TERM2, 0, 4 }, { 1, HELITAKEOFF, 0, 19 }, { 1, 0, 0, 6 },
 
	{  2, TERM1, TERM1_block, 1 },
 
	{  3, TERM2, TERM2_block, 5 },
 
	{  4, 255, AIRPORT_BUSY_block, 0 }, { 4, TERM2, 0, 5 }, { 4, HANGAR, 0, 1 }, { 4, TAKEOFF, 0, 6 }, { 4, HELITAKEOFF, 0, 1 },
 
	{  5, 255, AIRPORT_BUSY_block, 0 }, { 5, TERM2, TERM2_block, 3 }, { 5, 0, 0, 4 },
 
	{  6, 0, AIRPORT_BUSY_block, 7 },
 
	// takeoff
 
	{ 7,TAKEOFF,AIRPORT_BUSY_block,8},
 
	{ 8,STARTTAKEOFF,NOTHING_block,9},
 
	{ 9,ENDTAKEOFF,NOTHING_block,0},
 
	{  7, TAKEOFF, AIRPORT_BUSY_block, 8 },
 
	{  8, STARTTAKEOFF, NOTHING_block, 9 },
 
	{  9, ENDTAKEOFF, NOTHING_block, 0 },
 
	// landing
 
	{10,FLYING,NOTHING_block,15}, {10,LANDING,0,11}, {10,HELILANDING,0,20},
 
	{11,LANDING,AIRPORT_BUSY_block,12},
 
	{12,0,AIRPORT_BUSY_block,13},
 
	{13,ENDLANDING,AIRPORT_BUSY_block,14}, {13,TERM2,0,5}, {13,0,0,14},
 
	{14,0,AIRPORT_BUSY_block,1},
 
	{ 10, FLYING, NOTHING_block, 15 }, { 10, LANDING, 0, 11 }, { 10, HELILANDING, 0, 20 },
 
	{ 11, LANDING, AIRPORT_BUSY_block, 12 },
 
	{ 12, 0, AIRPORT_BUSY_block, 13 },
 
	{ 13, ENDLANDING, AIRPORT_BUSY_block, 14 }, { 13, TERM2, 0, 5 }, { 13, 0, 0, 14 },
 
	{ 14, 0, AIRPORT_BUSY_block, 1 },
 
	// In air
 
	{15,0,NOTHING_block,16},
 
	{16,0,NOTHING_block,17},
 
	{17,0,NOTHING_block,18},
 
	{18,0,NOTHING_block,10},
 
	{19,HELITAKEOFF,NOTHING_block,0},
 
	{20,HELILANDING,AIRPORT_BUSY_block,21},
 
	{21,HELIENDLANDING,AIRPORT_BUSY_block,1},
 
	{MAX_ELEMENTS,0,0,0} // end marker. DO NOT REMOVE
 
	{ 15, 0, NOTHING_block, 16 },
 
	{ 16, 0, NOTHING_block, 17 },
 
	{ 17, 0, NOTHING_block, 18 },
 
	{ 18, 0, NOTHING_block, 10 },
 
	{ 19, HELITAKEOFF, NOTHING_block, 0 },
 
	{ 20, HELILANDING, AIRPORT_BUSY_block, 21 },
 
	{ 21, HELIENDLANDING, AIRPORT_BUSY_block, 1 },
 
	{ MAX_ELEMENTS, 0, 0, 0 } // end marker. DO NOT REMOVE
 
};
 

	
 
static const TileIndexDiffC _airport_depots_commuter[] = {{4, 0}};
 
static const byte _airport_terminal_commuter[] = {1, 3};
 
static const byte _airport_helipad_commuter[] = {1, 2};
 
static const TileIndexDiffC _airport_depots_commuter[] = { { 4, 0 } };
 
static const byte _airport_terminal_commuter[] = { 1, 3 };
 
static const byte _airport_helipad_commuter[] = { 1, 2 };
 
static const AirportFTAbuildup _airport_fta_commuter[] = {
 
	{ 0,HANGAR,NOTHING_block,1}, {0,HELITAKEOFF,HELIPAD2_block,1}, {0,0,0,1},
 
	{ 1,255,TAXIWAY_BUSY_block,0}, {1,HANGAR,0,0}, {1,TAKEOFF,0,11}, {1,TERM1,TAXIWAY_BUSY_block,10}, {1,TERM2,TAXIWAY_BUSY_block,10}, {1,TERM3,TAXIWAY_BUSY_block,10}, {1,HELIPAD1,TAXIWAY_BUSY_block,10}, {1,HELIPAD2,TAXIWAY_BUSY_block,10}, {1,HELITAKEOFF,TAXIWAY_BUSY_block,10}, {1,0,0,0},
 
	{ 2,255,AIRPORT_ENTRANCE_block,2}, {2,HANGAR,0,8}, {2,TERM1,0,8}, {2,TERM2,0,8}, {2,TERM3,0,8}, {2,HELIPAD1,0,8}, {2,HELIPAD2,0,8}, {2,HELITAKEOFF,0,8}, {2,0,0,2},
 
	{ 3,TERM1,TERM1_block,8}, {3,HANGAR,0,8}, {3,TAKEOFF,0,8}, {3,0,0,3},
 
	{ 4,TERM2,TERM2_block,9}, {4,HANGAR,0,9}, {4,TAKEOFF,0,9}, {4,0,0,4},
 
	{ 5,TERM3,TERM3_block,10}, {5,HANGAR,0,10}, {5,TAKEOFF,0,10}, {5,0,0,5},
 
	{ 6,HELIPAD1,HELIPAD1_block,6}, {6,HANGAR,TAXIWAY_BUSY_block,9}, {6,HELITAKEOFF,0,35},
 
	{ 7,HELIPAD2,HELIPAD2_block,7}, {7,HANGAR,TAXIWAY_BUSY_block,10}, {7,HELITAKEOFF,0,36},
 
	{ 8,255,TAXIWAY_BUSY_block,8}, {8,TAKEOFF,TAXIWAY_BUSY_block,9}, {8,HANGAR,TAXIWAY_BUSY_block,9}, {8,TERM1,TERM1_block,3}, {8,0,TAXIWAY_BUSY_block,9},
 
	{ 9,255,TAXIWAY_BUSY_block,9}, {9,TAKEOFF,TAXIWAY_BUSY_block,10}, {9,HANGAR,TAXIWAY_BUSY_block,10}, {9,TERM2,TERM2_block,4}, {9,HELIPAD1,HELIPAD1_block,6}, {9,HELITAKEOFF,HELIPAD1_block,6}, {9,TERM1,TAXIWAY_BUSY_block,8}, {9,0,TAXIWAY_BUSY_block,10},
 
	{10,255,TAXIWAY_BUSY_block,10}, {10,TERM3,TERM3_block,5}, {10,HELIPAD1,0,9}, {10,HELIPAD2,HELIPAD2_block,7}, {10,HELITAKEOFF,HELIPAD2_block,7}, {10,TAKEOFF,TAXIWAY_BUSY_block,1}, {10,HANGAR,TAXIWAY_BUSY_block,1}, {10,0,TAXIWAY_BUSY_block,9},
 
	{11,0,OUT_WAY_block,12},
 
	{  0, HANGAR, NOTHING_block, 1 }, { 0, HELITAKEOFF, HELIPAD2_block, 1 }, { 0, 0, 0, 1 },
 
	{  1, 255, TAXIWAY_BUSY_block, 0 }, { 1, HANGAR, 0, 0 }, { 1, TAKEOFF, 0, 11 }, { 1, TERM1, TAXIWAY_BUSY_block, 10 }, { 1, TERM2, TAXIWAY_BUSY_block, 10 }, { 1, TERM3, TAXIWAY_BUSY_block, 10 }, { 1, HELIPAD1, TAXIWAY_BUSY_block, 10 }, { 1, HELIPAD2, TAXIWAY_BUSY_block, 10 }, { 1, HELITAKEOFF, TAXIWAY_BUSY_block, 10 }, { 1, 0, 0, 0 },
 
	{  2, 255, AIRPORT_ENTRANCE_block, 2 }, { 2, HANGAR, 0, 8 }, { 2, TERM1, 0, 8 }, { 2, TERM2, 0, 8 }, { 2, TERM3, 0, 8 }, { 2, HELIPAD1, 0, 8 }, { 2, HELIPAD2, 0, 8 }, { 2, HELITAKEOFF, 0, 8 }, { 2, 0, 0, 2 },
 
	{  3, TERM1, TERM1_block, 8 }, { 3, HANGAR, 0, 8 }, { 3, TAKEOFF, 0, 8 }, { 3, 0, 0, 3 },
 
	{  4, TERM2, TERM2_block, 9 }, { 4, HANGAR, 0, 9 }, { 4, TAKEOFF, 0, 9 }, { 4, 0, 0, 4 },
 
	{  5, TERM3, TERM3_block, 10 }, { 5, HANGAR, 0, 10 }, { 5, TAKEOFF, 0, 10 }, { 5, 0, 0, 5 },
 
	{  6, HELIPAD1, HELIPAD1_block, 6 }, { 6, HANGAR, TAXIWAY_BUSY_block, 9 }, { 6, HELITAKEOFF, 0, 35 },
 
	{  7, HELIPAD2, HELIPAD2_block, 7 }, { 7, HANGAR, TAXIWAY_BUSY_block, 10 }, { 7, HELITAKEOFF, 0, 36 },
 
	{  8, 255, TAXIWAY_BUSY_block, 8 }, { 8, TAKEOFF, TAXIWAY_BUSY_block, 9 }, { 8, HANGAR, TAXIWAY_BUSY_block, 9 }, { 8, TERM1, TERM1_block, 3 }, { 8, 0, TAXIWAY_BUSY_block, 9 },
 
	{  9, 255, TAXIWAY_BUSY_block, 9 }, { 9, TAKEOFF, TAXIWAY_BUSY_block, 10 }, { 9, HANGAR, TAXIWAY_BUSY_block, 10 }, { 9, TERM2, TERM2_block, 4 }, { 9, HELIPAD1, HELIPAD1_block, 6 }, { 9, HELITAKEOFF, HELIPAD1_block, 6 }, { 9, TERM1, TAXIWAY_BUSY_block, 8 }, { 9, 0, TAXIWAY_BUSY_block, 10 },
 
	{ 10, 255, TAXIWAY_BUSY_block, 10 }, { 10, TERM3, TERM3_block, 5 }, { 10, HELIPAD1, 0, 9 }, { 10, HELIPAD2, HELIPAD2_block, 7 }, { 10, HELITAKEOFF, HELIPAD2_block, 7 }, { 10, TAKEOFF, TAXIWAY_BUSY_block, 1 }, { 10, HANGAR, TAXIWAY_BUSY_block, 1 }, { 10, 0, TAXIWAY_BUSY_block, 9 },
 
	{ 11, 0, OUT_WAY_block, 12 },
 
	// takeoff
 
	{12,TAKEOFF,RUNWAY_IN_OUT_block,13},
 
	{13,0,RUNWAY_IN_OUT_block,14},
 
	{14,STARTTAKEOFF,RUNWAY_IN_OUT_block,15},
 
	{15,ENDTAKEOFF,NOTHING_block,0},
 
	{ 12, TAKEOFF, RUNWAY_IN_OUT_block, 13 },
 
	{ 13, 0, RUNWAY_IN_OUT_block, 14 },
 
	{ 14, STARTTAKEOFF, RUNWAY_IN_OUT_block, 15 },
 
	{ 15, ENDTAKEOFF, NOTHING_block, 0 },
 
	// landing
 
	{16,FLYING,NOTHING_block,21}, {16,LANDING,IN_WAY_block,17}, {16,HELILANDING,0,25},
 
	{17,LANDING,RUNWAY_IN_OUT_block,18},
 
	{18,0,RUNWAY_IN_OUT_block,19},
 
	{19,0,RUNWAY_IN_OUT_block,20},
 
	{20,ENDLANDING,IN_WAY_block,20}, {20,255,IN_WAY_block,2}, {20,TERM1,0,2}, {20,TERM2,0,2}, {20,TERM3,0,2}, {20,HANGAR,0,2}, {20,0,0,2},
 
	{ 16, FLYING, NOTHING_block, 21 }, { 16, LANDING, IN_WAY_block, 17 }, { 16, HELILANDING, 0, 25 },
 
	{ 17, LANDING, RUNWAY_IN_OUT_block, 18 },
 
	{ 18, 0, RUNWAY_IN_OUT_block, 19 },
 
	{ 19, 0, RUNWAY_IN_OUT_block, 20 },
 
	{ 20, ENDLANDING, IN_WAY_block, 20 }, { 20, 255, IN_WAY_block, 2 }, { 20, TERM1, 0, 2 }, { 20, TERM2, 0, 2 }, { 20, TERM3, 0, 2 }, { 20, HANGAR, 0, 2 }, { 20, 0, 0, 2 },
 
	// In Air
 
	{21,0,NOTHING_block,22},
 
	{22,0,NOTHING_block,23},
 
	{23,0,NOTHING_block,24},
 
	{24,0,NOTHING_block,16},
 
	{ 21, 0, NOTHING_block, 22 },
 
	{ 22, 0, NOTHING_block, 23 },
 
	{ 23, 0, NOTHING_block, 24 },
 
	{ 24, 0, NOTHING_block, 16 },
 
	// Helicopter -- stay in air in special place as a buffer to choose from helipads
 
	{25,HELILANDING,PRE_HELIPAD_block,26},
 
	{26,HELIENDLANDING,PRE_HELIPAD_block,26}, {26,HELIPAD1,0,27}, {26,HELIPAD2,0,28}, {26,HANGAR,0,33},
 
	{27,0,NOTHING_block,29}, //helipad1 approach
 
	{28,0,NOTHING_block,30},
 
	{ 25, HELILANDING, PRE_HELIPAD_block, 26 },
 
	{ 26, HELIENDLANDING, PRE_HELIPAD_block, 26 }, { 26, HELIPAD1, 0, 27 }, { 26, HELIPAD2, 0, 28 }, { 26, HANGAR, 0, 33 },
 
	{ 27, 0, NOTHING_block, 29 }, //helipad1 approach
 
	{ 28, 0, NOTHING_block, 30 },
 
	// landing
 
	{29,255,NOTHING_block,0}, {29,HELIPAD1,HELIPAD1_block,6},
 
	{30,255,NOTHING_block,0}, {30,HELIPAD2,HELIPAD2_block,7},
 
	{ 29, 255, NOTHING_block, 0 }, { 29, HELIPAD1, HELIPAD1_block, 6 },
 
	{ 30, 255, NOTHING_block, 0 }, { 30, HELIPAD2, HELIPAD2_block, 7 },
 
	// Helicopter -- takeoff
 
	{31,HELITAKEOFF,NOTHING_block,0},
 
	{32,HELITAKEOFF,NOTHING_block,0},
 
	{33,0,TAXIWAY_BUSY_block,34}, // need to go to hangar when waiting in air
 
	{34,0,TAXIWAY_BUSY_block,1},
 
	{35,0,HELIPAD1_block,31},
 
	{36,0,HELIPAD2_block,32},
 
	{MAX_ELEMENTS,0,0,0} // end marker. DO NOT REMOVE
 
	{ 31, HELITAKEOFF, NOTHING_block, 0 },
 
	{ 32, HELITAKEOFF, NOTHING_block, 0 },
 
	{ 33, 0, TAXIWAY_BUSY_block, 34 }, // need to go to hangar when waiting in air
 
	{ 34, 0, TAXIWAY_BUSY_block, 1 },
 
	{ 35, 0, HELIPAD1_block, 31 },
 
	{ 36, 0, HELIPAD2_block, 32 },
 
	{ MAX_ELEMENTS, 0, 0, 0 } // end marker. DO NOT REMOVE
 
};
 

	
 
static const TileIndexDiffC _airport_depots_city[] = {{5, 0}};
 
static const byte _airport_terminal_city[] = {1, 3};
 
static const TileIndexDiffC _airport_depots_city[] = { { 5, 0 } };
 
static const byte _airport_terminal_city[] = { 1, 3 };
 
static const AirportFTAbuildup _airport_fta_city[] = {
 
	{ 0,HANGAR,NOTHING_block,1}, {0,TAKEOFF,OUT_WAY_block,1}, {0,0,0,1},
 
	{ 1,255,TAXIWAY_BUSY_block,0}, {1,HANGAR,0,0}, {1,TERM2,0,6}, {1,TERM3,0,6}, {1,0,0,7}, // for all else, go to 7
 
	{ 2,TERM1,TERM1_block,7}, {2,TAKEOFF,OUT_WAY_block,7}, {2,0,0,7},
 
	{ 3,TERM2,TERM2_block,5}, {3,TAKEOFF,OUT_WAY_block,5}, {3,0,0,5},
 
	{ 4,TERM3,TERM3_block,5}, {4,TAKEOFF,OUT_WAY_block,5}, {4,0,0,5},
 
	{ 5,255,TAXIWAY_BUSY_block,0}, {5,TERM2,TERM2_block,3}, {5,TERM3,TERM3_block,4}, {5,0,0,6},
 
	{ 6,255,TAXIWAY_BUSY_block,0}, {6,TERM2,0,5}, {6,TERM3,0,5}, {6,HANGAR,0,1}, {6,0,0,7},
 
	{ 7,255,TAXIWAY_BUSY_block,0}, {7,TERM1,TERM1_block,2}, {7,TAKEOFF,OUT_WAY_block,8}, {7,HELITAKEOFF,0,22}, {7,HANGAR,0,1}, {7,0,0,6},
 
	{ 8,0,OUT_WAY_block,9},
 
	{ 9,0,RUNWAY_IN_OUT_block,10},
 
	{  0, HANGAR, NOTHING_block, 1 }, { 0, TAKEOFF, OUT_WAY_block, 1 }, { 0, 0, 0, 1 },
 
	{  1, 255, TAXIWAY_BUSY_block, 0 }, { 1, HANGAR, 0, 0 }, { 1, TERM2, 0, 6 }, { 1, TERM3, 0, 6 }, { 1, 0, 0, 7 }, // for all else, go to 7
 
	{  2, TERM1, TERM1_block, 7 }, { 2, TAKEOFF, OUT_WAY_block, 7 }, { 2, 0, 0, 7 },
 
	{  3, TERM2, TERM2_block, 5 }, { 3, TAKEOFF, OUT_WAY_block, 5 }, { 3, 0, 0, 5 },
 
	{  4, TERM3, TERM3_block, 5 }, { 4, TAKEOFF, OUT_WAY_block, 5 }, { 4, 0, 0, 5 },
 
	{  5, 255, TAXIWAY_BUSY_block, 0 }, { 5, TERM2, TERM2_block, 3 }, { 5, TERM3, TERM3_block, 4 }, { 5, 0, 0, 6 },
 
	{  6, 255, TAXIWAY_BUSY_block, 0 }, { 6, TERM2, 0, 5 }, { 6, TERM3, 0, 5 }, { 6, HANGAR, 0, 1 }, { 6, 0, 0, 7 },
 
	{  7, 255, TAXIWAY_BUSY_block, 0 }, { 7, TERM1, TERM1_block, 2 }, { 7, TAKEOFF, OUT_WAY_block, 8 }, { 7, HELITAKEOFF, 0, 22 }, { 7, HANGAR, 0, 1 }, { 7, 0, 0, 6 },
 
	{  8, 0, OUT_WAY_block, 9 },
 
	{  9, 0, RUNWAY_IN_OUT_block, 10 },
 
	// takeoff
 
	{10,TAKEOFF,RUNWAY_IN_OUT_block,11},
 
	{11,STARTTAKEOFF,NOTHING_block,12},
 
	{12,ENDTAKEOFF,NOTHING_block,0},
 
	{ 10, TAKEOFF, RUNWAY_IN_OUT_block, 11 },
 
	{ 11, STARTTAKEOFF, NOTHING_block, 12 },
 
	{ 12, ENDTAKEOFF, NOTHING_block, 0 },
 
	// landing
 
	{13,FLYING,NOTHING_block,18}, {13,LANDING,0,14}, {13,HELILANDING,0,23},
 
	{14,LANDING,RUNWAY_IN_OUT_block,15},
 
	{15,0,RUNWAY_IN_OUT_block,16},
 
	{16,0,RUNWAY_IN_OUT_block,17},
 
	{17,ENDLANDING,IN_WAY_block,7},
 
	{ 13, FLYING, NOTHING_block, 18 }, { 13, LANDING, 0, 14 }, { 13, HELILANDING, 0, 23 },
 
	{ 14, LANDING, RUNWAY_IN_OUT_block, 15 },
 
	{ 15, 0, RUNWAY_IN_OUT_block, 16 },
 
	{ 16, 0, RUNWAY_IN_OUT_block, 17 },
 
	{ 17, ENDLANDING, IN_WAY_block, 7 },
 
	// In Air
 
	{18,0,NOTHING_block,19},
 
	{19,0,NOTHING_block,20},
 
	{20,0,NOTHING_block,21},
 
	{21,0,NOTHING_block,13},
 
	{ 18, 0, NOTHING_block, 19 },
 
	{ 19, 0, NOTHING_block, 20 },
 
	{ 20, 0, NOTHING_block, 21 },
 
	{ 21, 0, NOTHING_block, 13 },
 
	// helicopter
 
	{22,HELITAKEOFF,NOTHING_block,0},
 
	{23,HELILANDING,IN_WAY_block,24},
 
	{24,HELIENDLANDING,IN_WAY_block,17},
 
	{MAX_ELEMENTS,0,0,0} // end marker. DO NOT REMOVE
 
	{ 22, HELITAKEOFF, NOTHING_block, 0 },
 
	{ 23, HELILANDING, IN_WAY_block, 24 },
 
	{ 24, HELIENDLANDING, IN_WAY_block, 17 },
 
	{ MAX_ELEMENTS, 0, 0, 0 } // end marker. DO NOT REMOVE
 
};
 

	
 
static const TileIndexDiffC _airport_depots_metropolitan[] = {{5, 0}};
 
static const byte _airport_terminal_metropolitan[] = {1, 3};
 
static const TileIndexDiffC _airport_depots_metropolitan[] = { { 5, 0 } };
 
static const byte _airport_terminal_metropolitan[] = { 1, 3 };
 
static const AirportFTAbuildup _airport_fta_metropolitan[] = {
 
	{ 0,HANGAR,NOTHING_block,1},
 
	{ 1,255,TAXIWAY_BUSY_block,0}, {1,HANGAR,0,0}, {1,TERM2,0,6}, {1,TERM3,0,6}, {1,0,0,7}, // for all else, go to 7
 
	{ 2,TERM1,TERM1_block,7},
 
	{ 3,TERM2,TERM2_block,5},
 
	{ 4,TERM3,TERM3_block,5},
 
	{ 5,255,TAXIWAY_BUSY_block,0}, {5,TERM2,TERM2_block,3}, {5,TERM3,TERM3_block,4}, {5,0,0,6},
 
	{ 6,255,TAXIWAY_BUSY_block,0}, {6,TERM2,0,5}, {6,TERM3,0,5}, {6,HANGAR,0,1}, {6,0,0,7},
 
	{ 7,255,TAXIWAY_BUSY_block,0}, {7,TERM1,TERM1_block,2}, {7,TAKEOFF,0,8}, {7,HELITAKEOFF,0,23}, {7,HANGAR,0,1}, {7,0,0,6},
 
	{ 8,0,OUT_WAY_block,9},
 
	{ 9,0,RUNWAY_OUT_block,10},
 
	{  0, HANGAR, NOTHING_block, 1 },
 
	{  1, 255, TAXIWAY_BUSY_block, 0 }, { 1, HANGAR, 0, 0 }, { 1, TERM2, 0, 6 }, { 1, TERM3, 0, 6 }, { 1, 0, 0, 7 }, // for all else, go to 7
 
	{  2, TERM1, TERM1_block, 7 },
 
	{  3, TERM2, TERM2_block, 5 },
 
	{  4, TERM3, TERM3_block, 5 },
 
	{  5, 255, TAXIWAY_BUSY_block, 0 }, { 5, TERM2, TERM2_block, 3 }, { 5, TERM3, TERM3_block, 4 }, { 5, 0, 0, 6 },
 
	{  6, 255, TAXIWAY_BUSY_block, 0 }, { 6, TERM2, 0, 5 }, { 6, TERM3, 0, 5 }, { 6, HANGAR, 0, 1 }, { 6, 0, 0, 7 },
 
	{  7, 255, TAXIWAY_BUSY_block, 0 }, { 7, TERM1, TERM1_block, 2 }, { 7, TAKEOFF, 0, 8 }, { 7, HELITAKEOFF, 0, 23 }, { 7, HANGAR, 0, 1 }, { 7, 0, 0, 6 },
 
	{  8, 0, OUT_WAY_block, 9 },
 
	{  9, 0, RUNWAY_OUT_block, 10 },
 
	// takeoff
 
	{10,TAKEOFF,RUNWAY_OUT_block,11},
 
	{11,STARTTAKEOFF,NOTHING_block,12},
 
	{12,ENDTAKEOFF,NOTHING_block,0},
 
	{ 10, TAKEOFF, RUNWAY_OUT_block, 11 },
 
	{ 11, STARTTAKEOFF, NOTHING_block, 12 },
 
	{ 12, ENDTAKEOFF, NOTHING_block, 0 },
 
	// landing
 
	{13,FLYING,NOTHING_block,19}, {13,LANDING,0,14}, {13,HELILANDING,0,25},
 
	{14,LANDING,RUNWAY_IN_block,15},
 
	{15,0,RUNWAY_IN_block,16},
 
	{16,255,RUNWAY_IN_block,0}, {16,ENDLANDING,IN_WAY_block,17},
 
	{17,255,RUNWAY_OUT_block,0}, {17,ENDLANDING,IN_WAY_block,18},
 
	{18,ENDLANDING,IN_WAY_block,7},
 
	{ 13, FLYING, NOTHING_block, 19 }, { 13, LANDING, 0, 14 }, { 13, HELILANDING, 0, 25 },
 
	{ 14, LANDING, RUNWAY_IN_block, 15 },
 
	{ 15, 0, RUNWAY_IN_block, 16 },
 
	{ 16, 255, RUNWAY_IN_block, 0 }, { 16, ENDLANDING, IN_WAY_block, 17 },
 
	{ 17, 255, RUNWAY_OUT_block, 0 }, { 17, ENDLANDING, IN_WAY_block, 18 },
 
	{ 18, ENDLANDING, IN_WAY_block, 7 },
 
	// In Air
 
	{19,0,NOTHING_block,20},
 
	{20,0,NOTHING_block,21},
 
	{21,0,NOTHING_block,22},
 
	{22,0,NOTHING_block,13},
 
	{ 19, 0, NOTHING_block, 20 },
 
	{ 20, 0, NOTHING_block, 21 },
 
	{ 21, 0, NOTHING_block, 22 },
 
	{ 22, 0, NOTHING_block, 13 },
 
	// helicopter
 
	{23,0,NOTHING_block,24},
 
	{24,HELITAKEOFF,NOTHING_block,0},
 
	{25,HELILANDING,IN_WAY_block,26},
 
	{26,HELIENDLANDING,IN_WAY_block,18},
 
	{MAX_ELEMENTS,0,0,0} // end marker. DO NOT REMOVE
 
	{ 23, 0, NOTHING_block, 24 },
 
	{ 24, HELITAKEOFF, NOTHING_block, 0 },
 
	{ 25, HELILANDING, IN_WAY_block, 26 },
 
	{ 26, HELIENDLANDING, IN_WAY_block, 18 },
 
	{ MAX_ELEMENTS, 0, 0, 0 } // end marker. DO NOT REMOVE
 
};
 

	
 
static const TileIndexDiffC _airport_depots_international[] = {{0, 3}, {6, 1}};
 
static const byte _airport_terminal_international[] = {2, 3, 3};
 
static const byte _airport_helipad_international[] = {1, 2};
 
static const TileIndexDiffC _airport_depots_international[] = { { 0, 3 }, { 6, 1 } };
 
static const byte _airport_terminal_international[] = { 2, 3, 3 };
 
static const byte _airport_helipad_international[] = { 1, 2 };
 
static const AirportFTAbuildup _airport_fta_international[] = {
 
	{ 0,HANGAR,NOTHING_block,2}, {0,255,TERM_GROUP1_block,0}, {0,255,TERM_GROUP2_ENTER1_block,1}, {0,HELITAKEOFF,HELIPAD1_block,2}, {0,0,0,2},
 
	{ 1,HANGAR,NOTHING_block,3}, {1,255,HANGAR2_AREA_block,1}, {1,HELITAKEOFF,HELIPAD2_block,3}, {1,0,0,3},
 
	{ 2,255,AIRPORT_ENTRANCE_block,0}, {2,HANGAR,0,0}, {2,TERM4,0,12}, {2,TERM5,0,12}, {2,TERM6,0,12}, {2,HELIPAD1,0,12}, {2,HELIPAD2,0,12}, {2,HELITAKEOFF,0,12}, {2,0,0,23},
 
	{ 3,255,HANGAR2_AREA_block,0}, {3,HANGAR,0,1}, {3,0,0,18},
 
	{ 4,TERM1,TERM1_block,23}, {4,HANGAR,AIRPORT_ENTRANCE_block,23}, {4,0,0,23},
 
	{ 5,TERM2,TERM2_block,24}, {5,HANGAR,AIRPORT_ENTRANCE_block,24}, {5,0,0,24},
 
	{ 6,TERM3,TERM3_block,25}, {6,HANGAR,AIRPORT_ENTRANCE_block,25}, {6,0,0,25},
 
	{ 7,TERM4,TERM4_block,16}, {7,HANGAR,HANGAR2_AREA_block,16}, {7,0,0,16},
 
	{ 8,TERM5,TERM5_block,17}, {8,HANGAR,HANGAR2_AREA_block,17}, {8,0,0,17},
 
	{ 9,TERM6,TERM6_block,18}, {9,HANGAR,HANGAR2_AREA_block,18}, {9,0,0,18},
 
	{10,HELIPAD1,HELIPAD1_block,10}, {10,HANGAR,HANGAR2_AREA_block,16}, {10,HELITAKEOFF,0,47},
 
	{11,HELIPAD2,HELIPAD2_block,11}, {11,HANGAR,HANGAR2_AREA_block,17}, {11,HELITAKEOFF,0,48},
 
	{12,0,TERM_GROUP2_ENTER1_block,13},
 
	{13,0,TERM_GROUP2_ENTER1_block,14},
 
	{14,0,TERM_GROUP2_ENTER2_block,15},
 
	{15,0,TERM_GROUP2_ENTER2_block,16},
 
	{16,255,TERM_GROUP2_block,0}, {16,TERM4,TERM4_block,7}, {16,HELIPAD1,HELIPAD1_block,10}, {16,HELITAKEOFF,HELIPAD1_block,10}, {16,0,0,17},
 
	{17,255,TERM_GROUP2_block,0}, {17,TERM5,TERM5_block,8}, {17,TERM4,0,16}, {17,HELIPAD1,0,16}, {17,HELIPAD2,HELIPAD2_block,11}, {17,HELITAKEOFF,HELIPAD2_block,11}, {17,0,0,18},
 
	{18,255,TERM_GROUP2_block,0}, {18,TERM6,TERM6_block,9}, {18,TAKEOFF,0,19}, {18,HANGAR,HANGAR2_AREA_block,3}, {18,0,0,17},
 
	{19,0,TERM_GROUP2_EXIT1_block,20},
 
	{20,0,TERM_GROUP2_EXIT1_block,21},
 
	{21,0,TERM_GROUP2_EXIT2_block,22},
 
	{22,0,TERM_GROUP2_EXIT2_block,26},
 
	{23,255,TERM_GROUP1_block,0}, {23,TERM1,TERM1_block,4}, {23,HANGAR,AIRPORT_ENTRANCE_block,2}, {23,0,0,24},
 
	{24,255,TERM_GROUP1_block,0}, {24,TERM2,TERM2_block,5}, {24,TERM1,0,23}, {24,HANGAR,0,23}, {24,0,0,25},
 
	{25,255,TERM_GROUP1_block,0}, {25,TERM3,TERM3_block,6}, {25,TAKEOFF,0,26}, {25,0,0,24},
 
	{26,255,TAXIWAY_BUSY_block,0}, {26,TAKEOFF,0,27}, {26,0,0,25},
 
	{27,0,OUT_WAY_block,28},
 
	{  0, HANGAR, NOTHING_block, 2 }, { 0, 255, TERM_GROUP1_block, 0 }, { 0, 255, TERM_GROUP2_ENTER1_block, 1 }, { 0, HELITAKEOFF, HELIPAD1_block, 2 }, { 0, 0, 0, 2 },
 
	{  1, HANGAR, NOTHING_block, 3 }, { 1, 255, HANGAR2_AREA_block, 1 }, { 1, HELITAKEOFF, HELIPAD2_block, 3 }, { 1, 0, 0, 3 },
 
	{  2, 255, AIRPORT_ENTRANCE_block, 0 }, { 2, HANGAR, 0, 0 }, { 2, TERM4, 0, 12 }, { 2, TERM5, 0, 12 }, { 2, TERM6, 0, 12 }, { 2, HELIPAD1, 0, 12 }, { 2, HELIPAD2, 0, 12 }, { 2, HELITAKEOFF, 0, 12 }, { 2, 0, 0, 23 },
 
	{  3, 255, HANGAR2_AREA_block, 0 }, { 3, HANGAR, 0, 1 }, { 3, 0, 0, 18 },
 
	{  4, TERM1, TERM1_block, 23 }, { 4, HANGAR, AIRPORT_ENTRANCE_block, 23 }, { 4, 0, 0, 23 },
 
	{  5, TERM2, TERM2_block, 24 }, { 5, HANGAR, AIRPORT_ENTRANCE_block, 24 }, { 5, 0, 0, 24 },
 
	{  6, TERM3, TERM3_block, 25 }, { 6, HANGAR, AIRPORT_ENTRANCE_block, 25 }, { 6, 0, 0, 25 },
 
	{  7, TERM4, TERM4_block, 16 }, { 7, HANGAR, HANGAR2_AREA_block, 16 }, { 7, 0, 0, 16 },
 
	{  8, TERM5, TERM5_block, 17 }, { 8, HANGAR, HANGAR2_AREA_block, 17 }, { 8, 0, 0, 17 },
 
	{  9, TERM6, TERM6_block, 18 }, { 9, HANGAR, HANGAR2_AREA_block, 18 }, { 9, 0, 0, 18 },
 
	{ 10, HELIPAD1, HELIPAD1_block, 10 }, { 10, HANGAR, HANGAR2_AREA_block, 16 }, { 10, HELITAKEOFF, 0, 47 },
 
	{ 11, HELIPAD2, HELIPAD2_block, 11 }, { 11, HANGAR, HANGAR2_AREA_block, 17 }, { 11, HELITAKEOFF, 0, 48 },
 
	{ 12, 0, TERM_GROUP2_ENTER1_block, 13 },
 
	{ 13, 0, TERM_GROUP2_ENTER1_block, 14 },
 
	{ 14, 0, TERM_GROUP2_ENTER2_block, 15 },
 
	{ 15, 0, TERM_GROUP2_ENTER2_block, 16 },
 
	{ 16, 255, TERM_GROUP2_block, 0 }, { 16, TERM4, TERM4_block, 7 }, { 16, HELIPAD1, HELIPAD1_block, 10 }, { 16, HELITAKEOFF, HELIPAD1_block, 10 }, { 16, 0, 0, 17 },
 
	{ 17, 255, TERM_GROUP2_block, 0 }, { 17, TERM5, TERM5_block, 8 }, { 17, TERM4, 0, 16 }, { 17, HELIPAD1, 0, 16 }, { 17, HELIPAD2, HELIPAD2_block, 11 }, { 17, HELITAKEOFF, HELIPAD2_block, 11 }, { 17, 0, 0, 18 },
 
	{ 18, 255, TERM_GROUP2_block, 0 }, { 18, TERM6, TERM6_block, 9 }, { 18, TAKEOFF, 0, 19 }, { 18, HANGAR, HANGAR2_AREA_block, 3 }, { 18, 0, 0, 17 },
 
	{ 19, 0, TERM_GROUP2_EXIT1_block, 20 },
 
	{ 20, 0, TERM_GROUP2_EXIT1_block, 21 },
 
	{ 21, 0, TERM_GROUP2_EXIT2_block, 22 },
 
	{ 22, 0, TERM_GROUP2_EXIT2_block, 26 },
 
	{ 23, 255, TERM_GROUP1_block, 0 }, { 23, TERM1, TERM1_block, 4 }, { 23, HANGAR, AIRPORT_ENTRANCE_block, 2 }, { 23, 0, 0, 24 },
 
	{ 24, 255, TERM_GROUP1_block, 0 }, { 24, TERM2, TERM2_block, 5 }, { 24, TERM1, 0, 23 }, { 24, HANGAR, 0, 23 }, { 24, 0, 0, 25 },
 
	{ 25, 255, TERM_GROUP1_block, 0 }, { 25, TERM3, TERM3_block, 6 }, { 25, TAKEOFF, 0, 26 }, { 25, 0, 0, 24 },
 
	{ 26, 255, TAXIWAY_BUSY_block, 0 }, { 26, TAKEOFF, 0, 27 }, { 26, 0, 0, 25 },
 
	{ 27, 0, OUT_WAY_block, 28 },
 
	// takeoff
 
	{28,TAKEOFF,OUT_WAY_block,29},
 
	{29,0,RUNWAY_OUT_block,30},
 
	{30,STARTTAKEOFF,NOTHING_block,31},
 
	{31,ENDTAKEOFF,NOTHING_block,0},
 
	{ 28, TAKEOFF, OUT_WAY_block, 29 },
 
	{ 29, 0, RUNWAY_OUT_block, 30 },
 
	{ 30, STARTTAKEOFF, NOTHING_block, 31 },
 
	{ 31, ENDTAKEOFF, NOTHING_block, 0 },
 
	// landing
 
	{32,FLYING,NOTHING_block,37}, {32,LANDING,0,33}, {32,HELILANDING,0,41},
 
	{33,LANDING,RUNWAY_IN_block,34},
 
	{34,0,RUNWAY_IN_block,35},
 
	{35,0,RUNWAY_IN_block,36},
 
	{36,ENDLANDING,IN_WAY_block,36}, {36,255,TERM_GROUP1_block,0}, {36,255,TERM_GROUP2_ENTER1_block,1}, {36,TERM4,0,12}, {36,TERM5,0,12}, {36,TERM6,0,12}, {36,0,0,2},
 
	{ 32, FLYING, NOTHING_block, 37 }, { 32, LANDING, 0, 33 }, { 32, HELILANDING, 0, 41 },
 
	{ 33, LANDING, RUNWAY_IN_block, 34 },
 
	{ 34, 0, RUNWAY_IN_block, 35 },
 
	{ 35, 0, RUNWAY_IN_block, 36 },
 
	{ 36, ENDLANDING, IN_WAY_block, 36 }, { 36, 255, TERM_GROUP1_block, 0 }, { 36, 255, TERM_GROUP2_ENTER1_block, 1 }, { 36, TERM4, 0, 12 }, { 36, TERM5, 0, 12 }, { 36, TERM6, 0, 12 }, { 36, 0, 0, 2 },
 
	// In Air
 
	{37,0,NOTHING_block,38},
 
	{38,0,NOTHING_block,39},
 
	{39,0,NOTHING_block,40},
 
	{40,0,NOTHING_block,32},
 
	{ 37, 0, NOTHING_block, 38 },
 
	{ 38, 0, NOTHING_block, 39 },
 
	{ 39, 0, NOTHING_block, 40 },
 
	{ 40, 0, NOTHING_block, 32 },
 
	// Helicopter -- stay in air in special place as a buffer to choose from helipads
 
	{41,HELILANDING,PRE_HELIPAD_block,42},
 
	{42,HELIENDLANDING,PRE_HELIPAD_block,42}, {42,HELIPAD1,0,43}, {42,HELIPAD2,0,44}, {42,HANGAR,0,49},
 
	{43,0,NOTHING_block,45},
 
	{44,0,NOTHING_block,46},
 
	{ 41, HELILANDING, PRE_HELIPAD_block, 42 },
 
	{ 42, HELIENDLANDING, PRE_HELIPAD_block, 42 }, { 42, HELIPAD1, 0, 43 }, { 42, HELIPAD2, 0, 44 }, { 42, HANGAR, 0, 49 },
 
	{ 43, 0, NOTHING_block, 45 },
 
	{ 44, 0, NOTHING_block, 46 },
 
	// landing
 
	{45,255,NOTHING_block,0}, {45,HELIPAD1,HELIPAD1_block,10},
 
	{46,255,NOTHING_block,0}, {46,HELIPAD2,HELIPAD2_block,11},
 
	{ 45, 255, NOTHING_block, 0 }, { 45, HELIPAD1, HELIPAD1_block, 10 },
 
	{ 46, 255, NOTHING_block, 0 }, { 46, HELIPAD2, HELIPAD2_block, 11 },
 
	// Helicopter -- takeoff
 
	{47,HELITAKEOFF,NOTHING_block,0},
 
	{48,HELITAKEOFF,NOTHING_block,0},
 
	{49,0,HANGAR2_AREA_block,50}, // need to go to hangar when waiting in air
 
	{50,0,HANGAR2_AREA_block,3},
 
	{MAX_ELEMENTS,0,0,0} // end marker. DO NOT REMOVE
 
	{ 47, HELITAKEOFF, NOTHING_block, 0 },
 
	{ 48, HELITAKEOFF, NOTHING_block, 0 },
 
	{ 49, 0, HANGAR2_AREA_block, 50 }, // need to go to hangar when waiting in air
 
	{ 50, 0, HANGAR2_AREA_block, 3 },
 
	{ MAX_ELEMENTS, 0, 0, 0 } // end marker. DO NOT REMOVE
 
};
 

	
 
// intercontinental
 
static const TileIndexDiffC _airport_depots_intercontinental[] = {{0, 5}, {8, 4}};
 
static const byte _airport_terminal_intercontinental[] = {2, 4, 4};
 
static const byte _airport_helipad_intercontinental[] = {1, 2};
 
static const TileIndexDiffC _airport_depots_intercontinental[] = { { 0, 5 }, { 8, 4 } };
 
static const byte _airport_terminal_intercontinental[] = { 2, 4, 4 };
 
static const byte _airport_helipad_intercontinental[] = { 1, 2 };
 
static const AirportFTAbuildup _airport_fta_intercontinental[] = {
 
	{ 0,HANGAR,NOTHING_block,2}, {0,255,HANGAR1_AREA_block | TERM_GROUP1_block,0}, {0,255,HANGAR1_AREA_block | TERM_GROUP1_block,1}, {0,TAKEOFF,HANGAR1_AREA_block | TERM_GROUP1_block,2}, {0,0,0,2},
 
	{ 1,HANGAR,NOTHING_block,3}, {1,255,HANGAR2_AREA_block,1}, {1,255,HANGAR2_AREA_block,0}, {1,0,0,3},
 
	{ 2,255,HANGAR1_AREA_block,0}, {2,255,TERM_GROUP1_block,0}, {2,255,TERM_GROUP1_block,1}, {2,HANGAR,0,0}, {2,TAKEOFF,TERM_GROUP1_block,27}, {2,TERM5,0,26}, {2,TERM6,0,26}, {2,TERM7,0,26}, {2,TERM8,0,26}, {2,HELIPAD1,0,26}, {2,HELIPAD2,0,26}, {2,HELITAKEOFF,0,74}, {2,0,0,27},
 
	{ 3,255,HANGAR2_AREA_block,0}, {3,HANGAR,0,1}, {3,HELITAKEOFF,0,75}, {3,0,0,20},
 
	{ 4,TERM1,TERM1_block,26}, {4,HANGAR,HANGAR1_AREA_block | TERM_GROUP1_block,26}, {4,0,0,26},
 
	{ 5,TERM2,TERM2_block,27}, {5,HANGAR,HANGAR1_AREA_block | TERM_GROUP1_block,27}, {5,0,0,27},
 
	{ 6,TERM3,TERM3_block,28}, {6,HANGAR,HANGAR1_AREA_block | TERM_GROUP1_block,28}, {6,0,0,28},
 
	{ 7,TERM4,TERM4_block,29}, {7,HANGAR,HANGAR1_AREA_block | TERM_GROUP1_block,29}, {7,0,0,29},
 
	{ 8,TERM5,TERM5_block,18}, {8,HANGAR,HANGAR2_AREA_block,18}, {8,0,0,18},
 
	{ 9,TERM6,TERM6_block,19}, {9,HANGAR,HANGAR2_AREA_block,19}, {9,0,0,19},
 
	{10,TERM7,TERM7_block,20}, {10,HANGAR,HANGAR2_AREA_block,20}, {10,0,0,20},
 
	{11,TERM8,TERM8_block,21}, {11,HANGAR,HANGAR2_AREA_block,21}, {11,0,0,21},
 
	{12,HELIPAD1,HELIPAD1_block,12}, {12,HANGAR,0,70}, {12,HELITAKEOFF,0,72},
 
	{13,HELIPAD2,HELIPAD2_block,13}, {13,HANGAR,0,71}, {13,HELITAKEOFF,0,73},
 
	{14,0,TERM_GROUP2_ENTER1_block,15},
 
	{15,0,TERM_GROUP2_ENTER1_block,16},
 
	{16,0,TERM_GROUP2_ENTER2_block,17},
 
	{17,0,TERM_GROUP2_ENTER2_block,18},
 
	{18,255,TERM_GROUP2_block,0}, {18,TERM5,TERM5_block,8}, {18,TAKEOFF,0,19}, {18,HELITAKEOFF,HELIPAD1_block,19}, {18,0,TERM_GROUP2_EXIT1_block,19},
 
	{19,255,TERM_GROUP2_block,0}, {19,TERM6,TERM6_block,9}, {19,TERM5,0,18}, {19,TAKEOFF,0,57}, {19,HELITAKEOFF,HELIPAD1_block,20}, {19,0,TERM_GROUP2_EXIT1_block,20}, // add exit to runway out 2
 
	{20,255,TERM_GROUP2_block,0}, {20,TERM7,TERM7_block,10}, {20,TERM5,0,19}, {20,TERM6,0,19}, {20,HANGAR,HANGAR2_AREA_block,3}, {20,TAKEOFF,0,19}, {20,0,TERM_GROUP2_EXIT1_block,21},
 
	{21,255,TERM_GROUP2_block,0}, {21,TERM8,TERM8_block,11}, {21,HANGAR,HANGAR2_AREA_block,20}, {21,TERM5,0,20}, {21,TERM6,0,20}, {21,TERM7,0,20}, {21,TAKEOFF,0,20}, {21,0,TERM_GROUP2_EXIT1_block,22},
 
	{22,255,TERM_GROUP2_block,0}, {22,HANGAR,0,21}, {22,TERM5,0,21}, {22,TERM6,0,21}, {22,TERM7,0,21}, {22,TERM8,0,21}, {22,TAKEOFF,0,21}, {22,0,0,23},
 
	{23,255,TERM_GROUP2_EXIT1_block,0}, {23,0,0,70},
 
	{24,0,TERM_GROUP2_EXIT2_block,25},
 
	{25,255,TERM_GROUP2_EXIT2_block,0}, {25,HANGAR,HANGAR1_AREA_block | TERM_GROUP1_block,29}, {25,0,0,29},
 
	{26,255,TERM_GROUP1_block,0}, {26,TERM1,TERM1_block,4}, {26,HANGAR,HANGAR1_AREA_block,27}, {26,TERM5,TERM_GROUP2_ENTER1_block,14}, {26,TERM6,TERM_GROUP2_ENTER1_block,14}, {26,TERM7,TERM_GROUP2_ENTER1_block,14}, {26,TERM8,TERM_GROUP2_ENTER1_block,14}, {26,HELIPAD1,TERM_GROUP2_ENTER1_block,14}, {26,HELIPAD2,TERM_GROUP2_ENTER1_block,14}, {26,HELITAKEOFF,TERM_GROUP2_ENTER1_block,14}, {26,0,0,27},
 
	{27,255,TERM_GROUP1_block,0}, {27,TERM2,TERM2_block,5}, {27,HANGAR,HANGAR1_AREA_block,2}, {27,TERM1,0,26}, {27,TERM5,0,26}, {27,TERM6,0,26}, {27,TERM7,0,26}, {27,TERM8,0,26}, {27,HELIPAD1,0,14}, {27,HELIPAD2,0,14}, {27,0,0,28},
 
	{28,255,TERM_GROUP1_block,0}, {28,TERM3,TERM3_block,6}, {28,HANGAR,HANGAR1_AREA_block,27}, {28,TERM1,0,27}, {28,TERM2,0,27}, {28,TERM4,0,29}, {28,TERM5,0,14}, {28,TERM6,0,14}, {28,TERM7,0,14}, {28,TERM8,0,14}, {28,HELIPAD1,0,14}, {28,HELIPAD2,0,14}, {28,0,0,29},
 
	{29,255,TERM_GROUP1_block,0}, {29,TERM4,TERM4_block,7}, {29,HANGAR,HANGAR1_AREA_block,27}, {29,TAKEOFF,0,30}, {29,0,0,28},
 
	{30,255,OUT_WAY_block2,0}, {30,0,0,31},
 
	{31,255,OUT_WAY_block,32},
 
	{  0, HANGAR, NOTHING_block, 2 }, { 0, 255, HANGAR1_AREA_block | TERM_GROUP1_block, 0 }, { 0, 255, HANGAR1_AREA_block | TERM_GROUP1_block, 1 }, { 0, TAKEOFF, HANGAR1_AREA_block | TERM_GROUP1_block, 2 }, { 0, 0, 0, 2 },
 
	{  1, HANGAR, NOTHING_block, 3 }, { 1, 255, HANGAR2_AREA_block, 1 }, { 1, 255, HANGAR2_AREA_block, 0 }, { 1, 0, 0, 3 },
 
	{  2, 255, HANGAR1_AREA_block, 0 }, { 2, 255, TERM_GROUP1_block, 0 }, { 2, 255, TERM_GROUP1_block, 1 }, { 2, HANGAR, 0, 0 }, { 2, TAKEOFF, TERM_GROUP1_block, 27 }, { 2, TERM5, 0, 26 }, { 2, TERM6, 0, 26 }, { 2, TERM7, 0, 26 }, { 2, TERM8, 0, 26 }, { 2, HELIPAD1, 0, 26 }, { 2, HELIPAD2, 0, 26 }, { 2, HELITAKEOFF, 0, 74 }, { 2, 0, 0, 27 },
 
	{  3, 255, HANGAR2_AREA_block, 0 }, { 3, HANGAR, 0, 1 }, { 3, HELITAKEOFF, 0, 75 }, { 3, 0, 0, 20 },
 
	{  4, TERM1, TERM1_block, 26 }, { 4, HANGAR, HANGAR1_AREA_block | TERM_GROUP1_block, 26 }, { 4, 0, 0, 26 },
 
	{  5, TERM2, TERM2_block, 27 }, { 5, HANGAR, HANGAR1_AREA_block | TERM_GROUP1_block, 27 }, { 5, 0, 0, 27 },
 
	{  6, TERM3, TERM3_block, 28 }, { 6, HANGAR, HANGAR1_AREA_block | TERM_GROUP1_block, 28 }, { 6, 0, 0, 28 },
 
	{  7, TERM4, TERM4_block, 29 }, { 7, HANGAR, HANGAR1_AREA_block | TERM_GROUP1_block, 29 }, { 7, 0, 0, 29 },
 
	{  8, TERM5, TERM5_block, 18 }, { 8, HANGAR, HANGAR2_AREA_block, 18 }, { 8, 0, 0, 18 },
 
	{  9, TERM6, TERM6_block, 19 }, { 9, HANGAR, HANGAR2_AREA_block, 19 }, { 9, 0, 0, 19 },
 
	{ 10, TERM7, TERM7_block, 20 }, { 10, HANGAR, HANGAR2_AREA_block, 20 }, { 10, 0, 0, 20 },
 
	{ 11, TERM8, TERM8_block, 21 }, { 11, HANGAR, HANGAR2_AREA_block, 21 }, { 11, 0, 0, 21 },
 
	{ 12, HELIPAD1, HELIPAD1_block, 12 }, { 12, HANGAR, 0, 70 }, { 12, HELITAKEOFF, 0, 72 },
 
	{ 13, HELIPAD2, HELIPAD2_block, 13 }, { 13, HANGAR, 0, 71 }, { 13, HELITAKEOFF, 0, 73 },
 
	{ 14, 0, TERM_GROUP2_ENTER1_block, 15 },
 
	{ 15, 0, TERM_GROUP2_ENTER1_block, 16 },
 
	{ 16, 0, TERM_GROUP2_ENTER2_block, 17 },
 
	{ 17, 0, TERM_GROUP2_ENTER2_block, 18 },
 
	{ 18, 255, TERM_GROUP2_block, 0 }, { 18, TERM5, TERM5_block, 8 }, { 18, TAKEOFF, 0, 19 }, { 18, HELITAKEOFF, HELIPAD1_block, 19 }, { 18, 0, TERM_GROUP2_EXIT1_block, 19 },
 
	{ 19, 255, TERM_GROUP2_block, 0 }, { 19, TERM6, TERM6_block, 9 }, { 19, TERM5, 0, 18 }, { 19, TAKEOFF, 0, 57 }, { 19, HELITAKEOFF, HELIPAD1_block, 20 }, { 19, 0, TERM_GROUP2_EXIT1_block, 20 }, // add exit to runway out 2
 
	{ 20, 255, TERM_GROUP2_block, 0 }, { 20, TERM7, TERM7_block, 10 }, { 20, TERM5, 0, 19 }, { 20, TERM6, 0, 19 }, { 20, HANGAR, HANGAR2_AREA_block, 3 }, { 20, TAKEOFF, 0, 19 }, { 20, 0, TERM_GROUP2_EXIT1_block, 21 },
 
	{ 21, 255, TERM_GROUP2_block, 0 }, { 21, TERM8, TERM8_block, 11 }, { 21, HANGAR, HANGAR2_AREA_block, 20 }, { 21, TERM5, 0, 20 }, { 21, TERM6, 0, 20 }, { 21, TERM7, 0, 20 }, { 21, TAKEOFF, 0, 20 }, { 21, 0, TERM_GROUP2_EXIT1_block, 22 },
 
	{ 22, 255, TERM_GROUP2_block, 0 }, { 22, HANGAR, 0, 21 }, { 22, TERM5, 0, 21 }, { 22, TERM6, 0, 21 }, { 22, TERM7, 0, 21 }, { 22, TERM8, 0, 21 }, { 22, TAKEOFF, 0, 21 }, { 22, 0, 0, 23 },
 
	{ 23, 255, TERM_GROUP2_EXIT1_block, 0 }, { 23, 0, 0, 70 },
 
	{ 24, 0, TERM_GROUP2_EXIT2_block, 25 },
 
	{ 25, 255, TERM_GROUP2_EXIT2_block, 0 }, { 25, HANGAR, HANGAR1_AREA_block | TERM_GROUP1_block, 29 }, { 25, 0, 0, 29 },
 
	{ 26, 255, TERM_GROUP1_block, 0 }, { 26, TERM1, TERM1_block, 4 }, { 26, HANGAR, HANGAR1_AREA_block, 27 }, { 26, TERM5, TERM_GROUP2_ENTER1_block, 14 }, { 26, TERM6, TERM_GROUP2_ENTER1_block, 14 }, { 26, TERM7, TERM_GROUP2_ENTER1_block, 14 }, { 26, TERM8, TERM_GROUP2_ENTER1_block, 14 }, { 26, HELIPAD1, TERM_GROUP2_ENTER1_block, 14 }, { 26, HELIPAD2, TERM_GROUP2_ENTER1_block, 14 }, { 26, HELITAKEOFF, TERM_GROUP2_ENTER1_block, 14 }, { 26, 0, 0, 27 },
 
	{ 27, 255, TERM_GROUP1_block, 0 }, { 27, TERM2, TERM2_block, 5 }, { 27, HANGAR, HANGAR1_AREA_block, 2 }, { 27, TERM1, 0, 26 }, { 27, TERM5, 0, 26 }, { 27, TERM6, 0, 26 }, { 27, TERM7, 0, 26 }, { 27, TERM8, 0, 26 }, { 27, HELIPAD1, 0, 14 }, { 27, HELIPAD2, 0, 14 }, { 27, 0, 0, 28 },
 
	{ 28, 255, TERM_GROUP1_block, 0 }, { 28, TERM3, TERM3_block, 6 }, { 28, HANGAR, HANGAR1_AREA_block, 27 }, { 28, TERM1, 0, 27 }, { 28, TERM2, 0, 27 }, { 28, TERM4, 0, 29 }, { 28, TERM5, 0, 14 }, { 28, TERM6, 0, 14 }, { 28, TERM7, 0, 14 }, { 28, TERM8, 0, 14 }, { 28, HELIPAD1, 0, 14 }, { 28, HELIPAD2, 0, 14 }, { 28, 0, 0, 29 },
 
	{ 29, 255, TERM_GROUP1_block, 0 }, { 29, TERM4, TERM4_block, 7 }, { 29, HANGAR, HANGAR1_AREA_block, 27 }, { 29, TAKEOFF, 0, 30 }, { 29, 0, 0, 28 },
 
	{ 30, 255, OUT_WAY_block2, 0 }, { 30, 0, 0, 31 },
 
	{ 31, 255, OUT_WAY_block, 32 },
 
	// takeoff
 
	{32,TAKEOFF,RUNWAY_OUT_block,33},
 
	{33,0,RUNWAY_OUT_block,34},
 
	{34,STARTTAKEOFF,NOTHING_block,35},
 
	{35,ENDTAKEOFF,NOTHING_block,0},
 
	{ 32, TAKEOFF, RUNWAY_OUT_block, 33 },
 
	{ 33, 0, RUNWAY_OUT_block, 34 },
 
	{ 34, STARTTAKEOFF, NOTHING_block, 35 },
 
	{ 35, ENDTAKEOFF, NOTHING_block, 0 },
 
	// landing
 
	{36,0,0,0},
 
	{37,LANDING,RUNWAY_IN_block,38},
 
	{38,0,RUNWAY_IN_block,39},
 
	{39,0,RUNWAY_IN_block,40},
 
	{40,ENDLANDING,RUNWAY_IN_block,41},
 
	{41,0,IN_WAY_block,42},
 
	{42,255,IN_WAY_block,0}, {42,255,TERM_GROUP1_block,0}, {42,255,TERM_GROUP1_block,1}, {42,HANGAR,0,2}, {42,0,0,26},
 
	{ 36, 0, 0, 0 },
 
	{ 37, LANDING, RUNWAY_IN_block, 38 },
 
	{ 38, 0, RUNWAY_IN_block, 39 },
 
	{ 39, 0, RUNWAY_IN_block, 40 },
 
	{ 40, ENDLANDING, RUNWAY_IN_block, 41 },
 
	{ 41, 0, IN_WAY_block, 42 },
 
	{ 42, 255, IN_WAY_block, 0 }, { 42, 255, TERM_GROUP1_block, 0 }, { 42, 255, TERM_GROUP1_block, 1 }, { 42, HANGAR, 0, 2 }, { 42, 0, 0, 26 },
 
	// In Air
 
	{43,0,0,44},
 
	{44,FLYING,0,45}, {44,HELILANDING,0,47}, {44,LANDING,0,69}, {44,0,0,45},
 
	{45,0,0,46},
 
	{46,FLYING,0,43}, {46,LANDING,0,76}, {46,0,0,43},
 
	{ 43, 0, 0, 44 },
 
	{ 44, FLYING, 0, 45 }, { 44, HELILANDING, 0, 47 }, { 44, LANDING, 0, 69 }, { 44, 0, 0, 45 },
 
	{ 45, 0, 0, 46 },
 
	{ 46, FLYING, 0, 43 }, { 46, LANDING, 0, 76 }, { 46, 0, 0, 43 },
 
	// Helicopter -- stay in air in special place as a buffer to choose from helipads
 
	{47,HELILANDING,PRE_HELIPAD_block,48},
 
	{48,HELIENDLANDING,PRE_HELIPAD_block,48}, {48,HELIPAD1,0,49}, {48,HELIPAD2,0,50}, {48,HANGAR,0,55},
 
	{49,0,NOTHING_block,51},
 
	{50,0,NOTHING_block,52},
 
	{ 47, HELILANDING, PRE_HELIPAD_block, 48 },
 
	{ 48, HELIENDLANDING, PRE_HELIPAD_block, 48 }, { 48, HELIPAD1, 0, 49 }, { 48, HELIPAD2, 0, 50 }, { 48, HANGAR, 0, 55 },
 
	{ 49, 0, NOTHING_block, 51 },
 
	{ 50, 0, NOTHING_block, 52 },
 
	// landing
 
	{51,255,NOTHING_block,0}, {51,HELIPAD1,HELIPAD1_block,12}, {51,HANGAR,0,55}, {51,0,0,12},
 
	{52,255,NOTHING_block,0}, {52,HELIPAD2,HELIPAD2_block,13}, {52,HANGAR,0,55}, {52,0,0,13},
 
	{ 51, 255, NOTHING_block, 0 }, { 51, HELIPAD1, HELIPAD1_block, 12 }, { 51, HANGAR, 0, 55 }, { 51, 0, 0, 12 },
 
	{ 52, 255, NOTHING_block, 0 }, { 52, HELIPAD2, HELIPAD2_block, 13 }, { 52, HANGAR, 0, 55 }, { 52, 0, 0, 13 },
 
	// Helicopter -- takeoff
 
	{53,HELITAKEOFF,NOTHING_block,0},
 
	{54,HELITAKEOFF,NOTHING_block,0},
 
	{55,0,HANGAR2_AREA_block,56}, // need to go to hangar when waiting in air
 
	{56,0,HANGAR2_AREA_block,3},
 
	{ 53, HELITAKEOFF, NOTHING_block, 0 },
 
	{ 54, HELITAKEOFF, NOTHING_block, 0 },
 
	{ 55, 0, HANGAR2_AREA_block, 56 }, // need to go to hangar when waiting in air
 
	{ 56, 0, HANGAR2_AREA_block, 3 },
 
	// runway 2 out support
 
	{57,255,OUT_WAY2_block,0}, {57,TAKEOFF,0,58}, {57,0,0,58},
 
	{58,0,OUT_WAY2_block,59},
 
	{59,TAKEOFF,RUNWAY_OUT2_block,60}, // takeoff
 
	{60,0,RUNWAY_OUT2_block,61},
 
	{61,STARTTAKEOFF,NOTHING_block,62},
 
	{62,ENDTAKEOFF,NOTHING_block,0},
 
	{ 57, 255, OUT_WAY2_block, 0 }, { 57, TAKEOFF, 0, 58 }, { 57, 0, 0, 58 },
 
	{ 58, 0, OUT_WAY2_block, 59 },
 
	{ 59, TAKEOFF, RUNWAY_OUT2_block, 60 }, // takeoff
 
	{ 60, 0, RUNWAY_OUT2_block, 61 },
 
	{ 61, STARTTAKEOFF, NOTHING_block, 62 },
 
	{ 62, ENDTAKEOFF, NOTHING_block, 0 },
 
	// runway 2 in support
 
	{63,LANDING,RUNWAY_IN2_block,64},
 
	{64,0,RUNWAY_IN2_block,65},
 
	{65,0,RUNWAY_IN2_block,66},
 
	{66,ENDLANDING,RUNWAY_IN2_block,0}, {66,255,0,1}, {66,255,0,0}, {66,0,0,67},
 
	{67,0,IN_WAY2_block,68},
 
	{68,255,IN_WAY2_block,0}, {68,255,TERM_GROUP2_block,1}, {68,255,TERM_GROUP1_block,0}, {68,HANGAR,HANGAR2_AREA_block,22}, {68,0,0,22},
 
	{69,255,RUNWAY_IN2_block,0}, {69,0,RUNWAY_IN2_block,63},
 
	{70,255,TERM_GROUP2_EXIT1_block,0}, {70,HELIPAD1,HELIPAD1_block,12}, {70,HELITAKEOFF,HELIPAD1_block,12}, {70,0,0,71},
 
	{71,255,TERM_GROUP2_EXIT1_block,0}, {71,HELIPAD2,HELIPAD2_block,13}, {71,HELITAKEOFF,HELIPAD1_block,12}, {71,0,0,24},
 
	{72,0,HELIPAD1_block,53},
 
	{73,0,HELIPAD2_block,54},
 
	{74,HELITAKEOFF,NOTHING_block,0},
 
	{75,HELITAKEOFF,NOTHING_block,0},
 
	{76,255,RUNWAY_IN_block,0}, {76,0,RUNWAY_IN_block,37},
 
	{MAX_ELEMENTS,0,0,0} // end marker. DO NOT REMOVE
 
	{ 63, LANDING, RUNWAY_IN2_block, 64 },
 
	{ 64, 0, RUNWAY_IN2_block, 65 },
 
	{ 65, 0, RUNWAY_IN2_block, 66 },
 
	{ 66, ENDLANDING, RUNWAY_IN2_block, 0 }, { 66, 255, 0, 1 }, { 66, 255, 0, 0 }, { 66, 0, 0, 67 },
 
	{ 67, 0, IN_WAY2_block, 68 },
 
	{ 68, 255, IN_WAY2_block, 0 }, { 68, 255, TERM_GROUP2_block, 1 }, { 68, 255, TERM_GROUP1_block, 0 }, { 68, HANGAR, HANGAR2_AREA_block, 22 }, { 68, 0, 0, 22 },
 
	{ 69, 255, RUNWAY_IN2_block, 0 }, { 69, 0, RUNWAY_IN2_block, 63 },
 
	{ 70, 255, TERM_GROUP2_EXIT1_block, 0 }, { 70, HELIPAD1, HELIPAD1_block, 12 }, { 70, HELITAKEOFF, HELIPAD1_block, 12 }, { 70, 0, 0, 71 },
 
	{ 71, 255, TERM_GROUP2_EXIT1_block, 0 }, { 71, HELIPAD2, HELIPAD2_block, 13 }, { 71, HELITAKEOFF, HELIPAD1_block, 12 }, { 71, 0, 0, 24 },
 
	{ 72, 0, HELIPAD1_block, 53 },
 
	{ 73, 0, HELIPAD2_block, 54 },
 
	{ 74, HELITAKEOFF, NOTHING_block, 0 },
 
	{ 75, HELITAKEOFF, NOTHING_block, 0 },
 
	{ 76, 255, RUNWAY_IN_block, 0 }, { 76, 0, RUNWAY_IN_block, 37 },
 
	{ MAX_ELEMENTS, 0, 0, 0 } // end marker. DO NOT REMOVE
 
};
 

	
 

	
 
// heliports, oilrigs don't have depots
 
static const byte _airport_helipad_heliport_oilrig[] = {1, 1};
 
static const byte _airport_helipad_heliport_oilrig[] = { 1, 1 };
 
static const AirportFTAbuildup _airport_fta_heliport_oilrig[] = {
 
	{0,HELIPAD1,HELIPAD1_block,1},
 
	{1,HELITAKEOFF,NOTHING_block,0}, // takeoff
 
	{2,255,AIRPORT_BUSY_block,0}, {2,HELILANDING,0,3}, {2,HELITAKEOFF,0,1},
 
	{3,HELILANDING,AIRPORT_BUSY_block,4},
 
	{4,HELIENDLANDING,AIRPORT_BUSY_block,4}, {4,HELIPAD1,HELIPAD1_block,0}, {4,HELITAKEOFF,0,2},
 
	{ 0, HELIPAD1, HELIPAD1_block, 1 },
 
	{ 1, HELITAKEOFF, NOTHING_block, 0 }, // takeoff
 
	{ 2, 255, AIRPORT_BUSY_block, 0 }, { 2, HELILANDING, 0, 3 }, { 2, HELITAKEOFF, 0, 1 },
 
	{ 3, HELILANDING, AIRPORT_BUSY_block, 4 },
 
	{ 4, HELIENDLANDING, AIRPORT_BUSY_block, 4 }, { 4, HELIPAD1, HELIPAD1_block, 0 }, { 4, HELITAKEOFF, 0, 2 },
 
	// In Air
 
	{5,0,NOTHING_block,6},
 
	{6,0,NOTHING_block,7},
 
	{7,0,NOTHING_block,8},
 
	{8,FLYING,NOTHING_block,5}, {8,HELILANDING,HELIPAD1_block,2}, // landing
 
	{MAX_ELEMENTS,0,0,0} // end marker. DO NOT REMOVE
 
	{ 5, 0, NOTHING_block, 6 },
 
	{ 6, 0, NOTHING_block, 7 },
 
	{ 7, 0, NOTHING_block, 8 },
 
	{ 8, FLYING, NOTHING_block, 5 }, { 8, HELILANDING, HELIPAD1_block, 2 }, // landing
 
	{ MAX_ELEMENTS, 0, 0, 0 } // end marker. DO NOT REMOVE
 
};
 

	
 
// helidepots
 
static const TileIndexDiffC _airport_depots_helidepot[] = {{1, 0}};
 
static const byte _airport_helipad_helidepot[] = {1, 1};
 
static const TileIndexDiffC _airport_depots_helidepot[] = { { 1, 0 } };
 
static const byte _airport_helipad_helidepot[] = { 1, 1 };
 
static const AirportFTAbuildup _airport_fta_helidepot[] = {
 
	{ 0,HANGAR,NOTHING_block,1},
 
	{ 1,255,HANGAR2_AREA_block,0}, {1,HANGAR,0,0}, {1,HELIPAD1,HELIPAD1_block,14}, {1,HELITAKEOFF,0,15}, {1,0,0,0},
 
	{ 2,FLYING,NOTHING_block,3}, {2,HELILANDING,PRE_HELIPAD_block,7}, {2,HANGAR,0,12}, {2,HELITAKEOFF,NOTHING_block,16},
 
	{  0, HANGAR, NOTHING_block, 1 },
 
	{  1, 255, HANGAR2_AREA_block, 0 }, { 1, HANGAR, 0, 0 }, { 1, HELIPAD1, HELIPAD1_block, 14 }, { 1, HELITAKEOFF, 0, 15 }, { 1, 0, 0, 0 },
 
	{  2, FLYING, NOTHING_block, 3 }, { 2, HELILANDING, PRE_HELIPAD_block, 7 }, { 2, HANGAR, 0, 12 }, { 2, HELITAKEOFF, NOTHING_block, 16 },
 
	// In Air
 
	{ 3,0,NOTHING_block,4},
 
	{ 4,0,NOTHING_block,5},
 
	{ 5,0,NOTHING_block,6},
 
	{ 6,0,NOTHING_block,2},
 
	{  3, 0, NOTHING_block, 4 },
 
	{  4, 0, NOTHING_block, 5 },
 
	{  5, 0, NOTHING_block, 6 },
 
	{  6, 0, NOTHING_block, 2 },
 
	// Helicopter -- stay in air in special place as a buffer to choose from helipads
 
	{ 7,HELILANDING,PRE_HELIPAD_block,8},
 
	{ 8,HELIENDLANDING,PRE_HELIPAD_block,8}, {8,HELIPAD1,0,9}, {8,HANGAR,0,12}, {8,0,0,2},
 
	{ 9,0,NOTHING_block,10},
 
	{  7, HELILANDING, PRE_HELIPAD_block, 8 },
 
	{  8, HELIENDLANDING, PRE_HELIPAD_block, 8 }, { 8, HELIPAD1, 0, 9 }, { 8, HANGAR, 0, 12 }, { 8, 0, 0, 2 },
 
	{  9, 0, NOTHING_block, 10 },
 
	// landing
 
	{10,255,NOTHING_block,10}, {10,HELIPAD1,HELIPAD1_block,14}, {10,HANGAR,0,1}, {10,0,0,14},
 
	{ 10, 255, NOTHING_block, 10 }, { 10, HELIPAD1, HELIPAD1_block, 14 }, { 10, HANGAR, 0, 1 }, { 10, 0, 0, 14 },
 
	// Helicopter -- takeoff
 
	{11,HELITAKEOFF,NOTHING_block,0},
 
	{12,0,HANGAR2_AREA_block,13}, // need to go to hangar when waiting in air
 
	{13,0,HANGAR2_AREA_block,1},
 
	{14,HELIPAD1,HELIPAD1_block,14}, {14,HANGAR,0,1}, {14,HELITAKEOFF,0,17},
 
	{15,HELITAKEOFF,NOTHING_block,0}, // takeoff outside depot
 
	{16,HELITAKEOFF,0,14},
 
	{17,0,NOTHING_block,11},
 
	{MAX_ELEMENTS,0,0,0} // end marker. DO NOT REMOVE
 
	{ 11, HELITAKEOFF, NOTHING_block, 0 },
 
	{ 12, 0, HANGAR2_AREA_block, 13 }, // need to go to hangar when waiting in air
 
	{ 13, 0, HANGAR2_AREA_block, 1 },
 
	{ 14, HELIPAD1, HELIPAD1_block, 14 }, { 14, HANGAR, 0, 1 }, { 14, HELITAKEOFF, 0, 17 },
 
	{ 15, HELITAKEOFF, NOTHING_block, 0 }, // takeoff outside depot
 
	{ 16, HELITAKEOFF, 0, 14 },
 
	{ 17, 0, NOTHING_block, 11 },
 
	{ MAX_ELEMENTS, 0, 0, 0 } // end marker. DO NOT REMOVE
 
};
 

	
 
// helistation
 
static const TileIndexDiffC _airport_depots_helistation[] = {{0, 0}};
 
static const byte _airport_helipad_helistation[] = {1, 3};
 
static const TileIndexDiffC _airport_depots_helistation[] = { { 0, 0 } };
 
static const byte _airport_helipad_helistation[] = { 1, 3 };
 
static const AirportFTAbuildup _airport_fta_helistation[] = {
 
	{ 0,HANGAR,NOTHING_block,8}, {0,HELIPAD1,0,1}, {0,HELIPAD2,0,1}, {0,HELIPAD3,0,1}, {0,HELITAKEOFF,0,1}, {0,0,0,0},
 
	{ 1,255,HANGAR2_AREA_block,0}, {1,HANGAR,0,0}, {1,HELITAKEOFF,0,3}, {1,0,0,4},
 
	{  0, HANGAR, NOTHING_block, 8 },    { 0, HELIPAD1, 0, 1 }, { 0, HELIPAD2, 0, 1 }, { 0, HELIPAD3, 0, 1 }, { 0, HELITAKEOFF, 0, 1 }, { 0, 0, 0, 0 },
 
	{  1, 255, HANGAR2_AREA_block, 0 },  { 1, HANGAR, 0, 0 }, { 1, HELITAKEOFF, 0, 3 }, { 1, 0, 0, 4 },
 
	// landing
 
	{ 2,FLYING,NOTHING_block,28}, {2,HELILANDING,0,15}, {2,0,0,28},
 
	{  2, FLYING, NOTHING_block, 28 },   { 2, HELILANDING, 0, 15 }, { 2, 0, 0, 28 },
 
	// helicopter side
 
	{3,HELITAKEOFF,NOTHING_block,0}, // helitakeoff outside hangar2
 
	{4,255,TAXIWAY_BUSY_block,0}, {4,HANGAR,HANGAR2_AREA_block,1}, {4,HELITAKEOFF,0,1}, {4,0,0,5},
 
	{5,255,TAXIWAY_BUSY_block,0}, {5,HELIPAD1,HELIPAD1_block,6}, {5,HELIPAD2,HELIPAD2_block,7}, {5,HELIPAD3,HELIPAD3_block,8}, {5,0,0,4},
 
	{6,HELIPAD1,HELIPAD1_block,5}, {6,HANGAR, HANGAR2_AREA_block,5}, {6,HELITAKEOFF,0,9}, {6,0,0,6},
 
	{7,HELIPAD2,HELIPAD2_block,5}, {7,HANGAR, HANGAR2_AREA_block,5}, {7,HELITAKEOFF,0,10}, {7,0,0,7},
 
	{8,HELIPAD3,HELIPAD3_block,5}, {8,HANGAR, HANGAR2_AREA_block,5}, {8,HELITAKEOFF,0,11}, {8,0,0,8},
 
	{9,0,HELIPAD1_block,12},
 
	{10,0,HELIPAD2_block,13},
 
	{11,0,HELIPAD3_block,14},
 
	{12,HELITAKEOFF,NOTHING_block,0},
 
	{13,HELITAKEOFF,NOTHING_block,0},
 
	{14,HELITAKEOFF,NOTHING_block,0},
 
	{  3, HELITAKEOFF, NOTHING_block, 0 }, // helitakeoff outside hangar2
 
	{  4, 255, TAXIWAY_BUSY_block, 0 },  { 4, HANGAR, HANGAR2_AREA_block, 1 }, { 4, HELITAKEOFF, 0, 1 }, { 4, 0, 0, 5 },
 
	{  5, 255, TAXIWAY_BUSY_block, 0 },  { 5, HELIPAD1, HELIPAD1_block, 6 }, { 5, HELIPAD2, HELIPAD2_block, 7 }, { 5, HELIPAD3, HELIPAD3_block, 8 }, { 5, 0, 0, 4 },
 
	{  6, HELIPAD1, HELIPAD1_block, 5 }, { 6, HANGAR, HANGAR2_AREA_block, 5 }, { 6, HELITAKEOFF, 0, 9 }, { 6, 0, 0, 6 },
 
	{  7, HELIPAD2, HELIPAD2_block, 5 }, { 7, HANGAR, HANGAR2_AREA_block, 5 }, { 7, HELITAKEOFF, 0, 10 }, { 7, 0, 0, 7 },
 
	{  8, HELIPAD3, HELIPAD3_block, 5 }, { 8, HANGAR, HANGAR2_AREA_block, 5 }, { 8, HELITAKEOFF, 0, 11 }, { 8, 0, 0, 8 },
 
	{  9, 0, HELIPAD1_block, 12 },
 
	{ 10, 0, HELIPAD2_block, 13 },
 
	{ 11, 0, HELIPAD3_block, 14 },
 
	{ 12, HELITAKEOFF, NOTHING_block, 0 },
 
	{ 13, HELITAKEOFF, NOTHING_block, 0 },
 
	{ 14, HELITAKEOFF, NOTHING_block, 0 },
 
	// heli - in flight moves
 
	{15,HELILANDING,PRE_HELIPAD_block,16},
 
	{16,HELIENDLANDING,PRE_HELIPAD_block,16}, {16,HELIPAD1,0,17}, {16,HELIPAD2,0,18}, {16,HELIPAD3,0,19}, {16,HANGAR,0,23},
 
	{17,0,NOTHING_block,20},
 
	{18,0,NOTHING_block,21},
 
	{19,0,NOTHING_block,22},
 
	{ 15, HELILANDING, PRE_HELIPAD_block, 16 },
 
	{ 16, HELIENDLANDING, PRE_HELIPAD_block, 16 }, { 16, HELIPAD1, 0, 17 }, { 16, HELIPAD2, 0, 18 }, { 16, HELIPAD3, 0, 19 }, { 16, HANGAR, 0, 23 },
 
	{ 17, 0, NOTHING_block, 20 },
 
	{ 18, 0, NOTHING_block, 21 },
 
	{ 19, 0, NOTHING_block, 22 },
 
	// heli landing
 
	{20,255,NOTHING_block,0}, {20,HELIPAD1,HELIPAD1_block,6}, {20,HANGAR,0,23}, {20,0,0,6},
 
	{21,255,NOTHING_block,0}, {21,HELIPAD2,HELIPAD2_block,7}, {21,HANGAR,0,23}, {21,0,0,7},
 
	{22,255,NOTHING_block,0}, {22,HELIPAD3,HELIPAD3_block,8}, {22,HANGAR,0,23}, {22,0,0,8},
 
	{23,0,HANGAR2_AREA_block,24}, // need to go to helihangar when waiting in air
 
	{24,0,HANGAR2_AREA_block,1},
 
	{25,0,NOTHING_block,26},
 
	{26,0,NOTHING_block,27},
 
	{27,0,NOTHING_block,2},
 
	{28,0,NOTHING_block,29},
 
	{29,0,NOTHING_block,30},
 
	{30,0,NOTHING_block,31},
 
	{31,0,NOTHING_block,32},
 
	{32,0,NOTHING_block,25},
 
	{MAX_ELEMENTS,0,0,0} // end marker. DO NOT REMOVE
 
	{ 20, 255, NOTHING_block, 0 }, { 20, HELIPAD1, HELIPAD1_block, 6 }, { 20, HANGAR, 0, 23 }, { 20, 0, 0, 6 },
 
	{ 21, 255, NOTHING_block, 0 }, { 21, HELIPAD2, HELIPAD2_block, 7 }, { 21, HANGAR, 0, 23 }, { 21, 0, 0, 7 },
 
	{ 22, 255, NOTHING_block, 0 }, { 22, HELIPAD3, HELIPAD3_block, 8 }, { 22, HANGAR, 0, 23 }, { 22, 0, 0, 8 },
 
	{ 23, 0, HANGAR2_AREA_block, 24 }, // need to go to helihangar when waiting in air
 
	{ 24, 0, HANGAR2_AREA_block, 1 },
 
	{ 25, 0, NOTHING_block, 26 },
 
	{ 26, 0, NOTHING_block, 27 },
 
	{ 27, 0, NOTHING_block, 2 },
 
	{ 28, 0, NOTHING_block, 29 },
 
	{ 29, 0, NOTHING_block, 30 },
 
	{ 30, 0, NOTHING_block, 31 },
 
	{ 31, 0, NOTHING_block, 32 },
 
	{ 32, 0, NOTHING_block, 25 },
 
	{ MAX_ELEMENTS, 0, 0, 0 } // end marker. DO NOT REMOVE
 
};
 

	
 

	
 
static const AirportMovingData * const _airport_moving_datas[] = {
 
	_airport_moving_data_country,           // Country Airfield (small) 4x3
 
	_airport_moving_data_town,              // City Airport (large) 6x6
bridge_gui.c
Show inline comments
 
@@ -76,16 +76,16 @@ static void BuildBridgeWndProc(Window *w
 
		}
 
		break;
 
	}
 
}
 

	
 
static const Widget _build_bridge_widgets[] = {
 
{   WWT_CLOSEBOX,   RESIZE_NONE,     7,     0,    10,     0,    13, STR_00C5,										STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION,   RESIZE_NONE,     7,    11,   199,     0,    13, STR_100D_SELECT_RAIL_BRIDGE,	STR_018C_WINDOW_TITLE_DRAG_THIS},
 
{     WWT_MATRIX,   RESIZE_NONE,     7,     0,   187,    14,   101, 0x401,												STR_101F_BRIDGE_SELECTION_CLICK},
 
{  WWT_SCROLLBAR,   RESIZE_NONE,     7,   188,   199,    14,   101, 0x0,													STR_0190_SCROLL_BAR_SCROLLS_LIST},
 
{   WWT_CLOSEBOX,   RESIZE_NONE,     7,     0,    10,     0,    13, STR_00C5,                    STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION,   RESIZE_NONE,     7,    11,   199,     0,    13, STR_100D_SELECT_RAIL_BRIDGE, STR_018C_WINDOW_TITLE_DRAG_THIS},
 
{     WWT_MATRIX,   RESIZE_NONE,     7,     0,   187,    14,   101, 0x401,                       STR_101F_BRIDGE_SELECTION_CLICK},
 
{  WWT_SCROLLBAR,   RESIZE_NONE,     7,   188,   199,    14,   101, 0x0,                         STR_0190_SCROLL_BAR_SCROLLS_LIST},
 
{   WIDGETS_END},
 
};
 

	
 
static const WindowDesc _build_bridge_desc = {
 
	-1, -1, 200, 102,
 
	WC_BUILD_BRIDGE,WC_BUILD_TOOLBAR,
 
@@ -93,16 +93,16 @@ static const WindowDesc _build_bridge_de
 
	_build_bridge_widgets,
 
	BuildBridgeWndProc
 
};
 

	
 

	
 
static const Widget _build_road_bridge_widgets[] = {
 
{   WWT_CLOSEBOX,   RESIZE_NONE,     7,     0,    10,     0,    13, STR_00C5,										STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION,   RESIZE_NONE,     7,    11,   199,     0,    13, STR_1803_SELECT_ROAD_BRIDGE,	STR_018C_WINDOW_TITLE_DRAG_THIS},
 
{     WWT_MATRIX,   RESIZE_NONE,     7,     0,   187,    14,   101, 0x401,												STR_101F_BRIDGE_SELECTION_CLICK},
 
{  WWT_SCROLLBAR,   RESIZE_NONE,     7,   188,   199,    14,   101, 0x0,													STR_0190_SCROLL_BAR_SCROLLS_LIST},
 
{   WWT_CLOSEBOX,   RESIZE_NONE,     7,     0,    10,     0,    13, STR_00C5,                    STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION,   RESIZE_NONE,     7,    11,   199,     0,    13, STR_1803_SELECT_ROAD_BRIDGE, STR_018C_WINDOW_TITLE_DRAG_THIS},
 
{     WWT_MATRIX,   RESIZE_NONE,     7,     0,   187,    14,   101, 0x401,                       STR_101F_BRIDGE_SELECTION_CLICK},
 
{  WWT_SCROLLBAR,   RESIZE_NONE,     7,   188,   199,    14,   101, 0x0,                         STR_0190_SCROLL_BAR_SCROLLS_LIST},
 
{   WIDGETS_END},
 
};
 

	
 
static const WindowDesc _build_road_bridge_desc = {
 
	-1, -1, 200, 102,
 
	WC_BUILD_BRIDGE,WC_BUILD_TOOLBAR,
clear_cmd.c
Show inline comments
 
@@ -775,20 +775,20 @@ static void ChangeTileOwner_Clear(TileIn
 
void InitializeClearLand(void)
 
{
 
	_opt.snow_line = _patches.snow_line_height * TILE_HEIGHT;
 
}
 

	
 
const TileTypeProcs _tile_type_clear_procs = {
 
	DrawTile_Clear,						/* draw_tile_proc */
 
	GetSlopeZ_Clear,					/* get_slope_z_proc */
 
	ClearTile_Clear,					/* clear_tile_proc */
 
	GetAcceptedCargo_Clear,		/* get_accepted_cargo_proc */
 
	GetTileDesc_Clear,				/* get_tile_desc_proc */
 
	GetTileTrackStatus_Clear,	/* get_tile_track_status_proc */
 
	ClickTile_Clear,					/* click_tile_proc */
 
	AnimateTile_Clear,				/* animate_tile_proc */
 
	TileLoop_Clear,						/* tile_loop_clear */
 
	ChangeTileOwner_Clear,		/* change_tile_owner_clear */
 
	NULL,											/* get_produced_cargo_proc */
 
	NULL,											/* vehicle_enter_tile_proc */
 
	GetSlopeTileh_Clear,			/* get_slope_tileh_proc */
 
	DrawTile_Clear,           /* draw_tile_proc */
 
	GetSlopeZ_Clear,          /* get_slope_z_proc */
 
	ClearTile_Clear,          /* clear_tile_proc */
 
	GetAcceptedCargo_Clear,   /* get_accepted_cargo_proc */
 
	GetTileDesc_Clear,        /* get_tile_desc_proc */
 
	GetTileTrackStatus_Clear, /* get_tile_track_status_proc */
 
	ClickTile_Clear,          /* click_tile_proc */
 
	AnimateTile_Clear,        /* animate_tile_proc */
 
	TileLoop_Clear,           /* tile_loop_clear */
 
	ChangeTileOwner_Clear,    /* change_tile_owner_clear */
 
	NULL,                     /* get_produced_cargo_proc */
 
	NULL,                     /* vehicle_enter_tile_proc */
 
	GetSlopeTileh_Clear,      /* get_slope_tileh_proc */
 
};
command.h
Show inline comments
 
/* $Id$ */
 

	
 
#ifndef COMMAND_H
 
#define COMMAND_H
 

	
 
enum {
 
	CMD_BUILD_RAILROAD_TRACK = 0,
 
	CMD_REMOVE_RAILROAD_TRACK = 1,
 
	CMD_BUILD_SINGLE_RAIL = 2,
 
	CMD_REMOVE_SINGLE_RAIL = 3,
 
	CMD_LANDSCAPE_CLEAR = 4,
 
	CMD_BUILD_BRIDGE = 5,
 
	CMD_BUILD_RAILROAD_STATION = 6,
 
	CMD_BUILD_TRAIN_DEPOT = 7,
 
	CMD_BUILD_SIGNALS = 8,
 
	CMD_REMOVE_SIGNALS = 9,
 
	CMD_TERRAFORM_LAND = 10,
 
	CMD_PURCHASE_LAND_AREA = 11,
 
	CMD_SELL_LAND_AREA = 12,
 
	CMD_BUILD_TUNNEL = 13,
 
	CMD_BUILD_RAILROAD_TRACK         =   0,
 
	CMD_REMOVE_RAILROAD_TRACK        =   1,
 
	CMD_BUILD_SINGLE_RAIL            =   2,
 
	CMD_REMOVE_SINGLE_RAIL           =   3,
 
	CMD_LANDSCAPE_CLEAR              =   4,
 
	CMD_BUILD_BRIDGE                 =   5,
 
	CMD_BUILD_RAILROAD_STATION       =   6,
 
	CMD_BUILD_TRAIN_DEPOT            =   7,
 
	CMD_BUILD_SIGNALS                =   8,
 
	CMD_REMOVE_SIGNALS               =   9,
 
	CMD_TERRAFORM_LAND               =  10,
 
	CMD_PURCHASE_LAND_AREA           =  11,
 
	CMD_SELL_LAND_AREA               =  12,
 
	CMD_BUILD_TUNNEL                 =  13,
 

	
 
	CMD_REMOVE_FROM_RAILROAD_STATION = 14,
 
	CMD_CONVERT_RAIL = 15,
 
	CMD_REMOVE_FROM_RAILROAD_STATION =  14,
 
	CMD_CONVERT_RAIL                 =  15,
 

	
 
	CMD_BUILD_TRAIN_WAYPOINT = 16,
 
	CMD_RENAME_WAYPOINT = 17,
 
	CMD_REMOVE_TRAIN_WAYPOINT = 18,
 
	CMD_BUILD_TRAIN_WAYPOINT         =  16,
 
	CMD_RENAME_WAYPOINT              =  17,
 
	CMD_REMOVE_TRAIN_WAYPOINT        =  18,
 

	
 
	CMD_BUILD_ROAD_STOP = 21,
 
	CMD_BUILD_LONG_ROAD = 23,
 
	CMD_REMOVE_LONG_ROAD = 24,
 
	CMD_BUILD_ROAD = 25,
 
	CMD_REMOVE_ROAD = 26,
 
	CMD_BUILD_ROAD_DEPOT = 27,
 
	CMD_BUILD_ROAD_STOP              =  21,
 
	CMD_BUILD_LONG_ROAD              =  23,
 
	CMD_REMOVE_LONG_ROAD             =  24,
 
	CMD_BUILD_ROAD                   =  25,
 
	CMD_REMOVE_ROAD                  =  26,
 
	CMD_BUILD_ROAD_DEPOT             =  27,
 

	
 
	CMD_BUILD_AIRPORT = 29,
 
	CMD_BUILD_AIRPORT                =  29,
 

	
 
	CMD_BUILD_DOCK = 30,
 
	CMD_BUILD_DOCK                   =  30,
 

	
 
	CMD_BUILD_SHIP_DEPOT = 31,
 
	CMD_BUILD_BUOY = 32,
 
	CMD_BUILD_SHIP_DEPOT             =  31,
 
	CMD_BUILD_BUOY                   =  32,
 

	
 
	CMD_PLANT_TREE = 33,
 
	CMD_PLANT_TREE                   =  33,
 

	
 
	CMD_BUILD_RAIL_VEHICLE = 34,
 
	CMD_MOVE_RAIL_VEHICLE = 35,
 
	CMD_BUILD_RAIL_VEHICLE           =  34,
 
	CMD_MOVE_RAIL_VEHICLE            =  35,
 

	
 
	CMD_START_STOP_TRAIN = 36,
 
	CMD_START_STOP_TRAIN             =  36,
 

	
 
	CMD_SELL_RAIL_WAGON = 38,
 
	CMD_SELL_RAIL_WAGON              =  38,
 

	
 
	CMD_TRAIN_GOTO_DEPOT = 39,
 
	CMD_FORCE_TRAIN_PROCEED = 40,
 
	CMD_REVERSE_TRAIN_DIRECTION = 41,
 
	CMD_TRAIN_GOTO_DEPOT             =  39,
 
	CMD_FORCE_TRAIN_PROCEED          =  40,
 
	CMD_REVERSE_TRAIN_DIRECTION      =  41,
 

	
 
	CMD_MODIFY_ORDER = 42,
 
	CMD_SKIP_ORDER = 43,
 
	CMD_DELETE_ORDER = 44,
 
	CMD_INSERT_ORDER = 45,
 
	CMD_MODIFY_ORDER                 =  42,
 
	CMD_SKIP_ORDER                   =  43,
 
	CMD_DELETE_ORDER                 =  44,
 
	CMD_INSERT_ORDER                 =  45,
 

	
 
	CMD_CHANGE_SERVICE_INT = 46,
 
	CMD_CHANGE_SERVICE_INT           =  46,
 

	
 
	CMD_BUILD_INDUSTRY = 47,
 
	CMD_BUILD_INDUSTRY               =  47,
 

	
 
	CMD_BUILD_COMPANY_HQ = 48,
 
	CMD_SET_PLAYER_FACE = 49,
 
	CMD_SET_PLAYER_COLOR = 50,
 
	CMD_BUILD_COMPANY_HQ             =  48,
 
	CMD_SET_PLAYER_FACE              =  49,
 
	CMD_SET_PLAYER_COLOR             =  50,
 

	
 
	CMD_INCREASE_LOAN = 51,
 
	CMD_DECREASE_LOAN = 52,
 
	CMD_INCREASE_LOAN                =  51,
 
	CMD_DECREASE_LOAN                =  52,
 

	
 
	CMD_WANT_ENGINE_PREVIEW = 53,
 
	CMD_WANT_ENGINE_PREVIEW          =  53,
 

	
 
	CMD_NAME_VEHICLE = 54,
 
	CMD_RENAME_ENGINE = 55,
 
	CMD_CHANGE_COMPANY_NAME = 56,
 
	CMD_CHANGE_PRESIDENT_NAME = 57,
 
	CMD_RENAME_STATION = 58,
 
	CMD_NAME_VEHICLE                 =  54,
 
	CMD_RENAME_ENGINE                =  55,
 
	CMD_CHANGE_COMPANY_NAME          =  56,
 
	CMD_CHANGE_PRESIDENT_NAME        =  57,
 
	CMD_RENAME_STATION               =  58,
 

	
 
	CMD_SELL_AIRCRAFT = 59,
 
	CMD_START_STOP_AIRCRAFT = 60,
 
	CMD_BUILD_AIRCRAFT = 61,
 
	CMD_SEND_AIRCRAFT_TO_HANGAR = 62,
 
	CMD_REFIT_AIRCRAFT = 64,
 
	CMD_SELL_AIRCRAFT                =  59,
 
	CMD_START_STOP_AIRCRAFT          =  60,
 
	CMD_BUILD_AIRCRAFT               =  61,
 
	CMD_SEND_AIRCRAFT_TO_HANGAR      =  62,
 
	CMD_REFIT_AIRCRAFT               =  64,
 

	
 
	CMD_PLACE_SIGN = 65,
 
	CMD_RENAME_SIGN = 66,
 
	CMD_PLACE_SIGN                   =  65,
 
	CMD_RENAME_SIGN                  =  66,
 

	
 
	CMD_BUILD_ROAD_VEH = 67,
 
	CMD_START_STOP_ROADVEH = 68,
 
	CMD_SELL_ROAD_VEH = 69,
 
	CMD_SEND_ROADVEH_TO_DEPOT = 70,
 
	CMD_TURN_ROADVEH = 71,
 
	CMD_REFIT_ROAD_VEH = 72,
 
	CMD_BUILD_ROAD_VEH               =  67,
 
	CMD_START_STOP_ROADVEH           =  68,
 
	CMD_SELL_ROAD_VEH                =  69,
 
	CMD_SEND_ROADVEH_TO_DEPOT        =  70,
 
	CMD_TURN_ROADVEH                 =  71,
 
	CMD_REFIT_ROAD_VEH               =  72,
 

	
 
	CMD_PAUSE = 73,
 
	CMD_PAUSE                        =  73,
 

	
 
	CMD_BUY_SHARE_IN_COMPANY = 74,
 
	CMD_SELL_SHARE_IN_COMPANY = 75,
 
	CMD_BUY_COMPANY = 76,
 
	CMD_BUY_SHARE_IN_COMPANY         =  74,
 
	CMD_SELL_SHARE_IN_COMPANY        =  75,
 
	CMD_BUY_COMPANY                  =  76,
 

	
 
	CMD_BUILD_TOWN = 77,
 
	CMD_BUILD_TOWN                   =  77,
 

	
 
	CMD_RENAME_TOWN = 80,
 
	CMD_DO_TOWN_ACTION = 81,
 
	CMD_RENAME_TOWN                  =  80,
 
	CMD_DO_TOWN_ACTION               =  81,
 

	
 
	CMD_SET_ROAD_DRIVE_SIDE = 82,
 
	CMD_SET_ROAD_DRIVE_SIDE          =  82,
 

	
 
	CMD_CHANGE_DIFFICULTY_LEVEL = 85,
 
	CMD_CHANGE_DIFFICULTY_LEVEL      =  85,
 

	
 
	CMD_START_STOP_SHIP = 86,
 
	CMD_SELL_SHIP = 87,
 
	CMD_BUILD_SHIP = 88,
 
	CMD_SEND_SHIP_TO_DEPOT = 89,
 
	CMD_REFIT_SHIP = 91,
 
	CMD_START_STOP_SHIP              =  86,
 
	CMD_SELL_SHIP                    =  87,
 
	CMD_BUILD_SHIP                   =  88,
 
	CMD_SEND_SHIP_TO_DEPOT           =  89,
 
	CMD_REFIT_SHIP                   =  91,
 

	
 
	CMD_CLONE_ORDER = 99,
 
	CMD_CLEAR_AREA = 100,
 
	CMD_CLONE_ORDER                  =  99,
 
	CMD_CLEAR_AREA                   = 100,
 

	
 
	CMD_MONEY_CHEAT = 102,
 
	CMD_BUILD_CANAL = 103,
 
	CMD_MONEY_CHEAT                  = 102,
 
	CMD_BUILD_CANAL                  = 103,
 

	
 
	CMD_PLAYER_CTRL = 104, // used in multiplayer to create a new player etc.
 
	CMD_LEVEL_LAND = 105,	// level land
 
	CMD_PLAYER_CTRL                  = 104, // used in multiplayer to create a new player etc.
 
	CMD_LEVEL_LAND                   = 105, // level land
 

	
 
	CMD_REFIT_RAIL_VEHICLE = 106,
 
	CMD_RESTORE_ORDER_INDEX = 107,
 
	CMD_BUILD_LOCK = 108,
 
	CMD_REFIT_RAIL_VEHICLE           = 106,
 
	CMD_RESTORE_ORDER_INDEX          = 107,
 
	CMD_BUILD_LOCK                   = 108,
 

	
 
	CMD_BUILD_SIGNAL_TRACK  = 110,
 
	CMD_REMOVE_SIGNAL_TRACK = 111,
 
	CMD_BUILD_SIGNAL_TRACK           = 110,
 
	CMD_REMOVE_SIGNAL_TRACK          = 111,
 

	
 
	CMD_GIVE_MONEY = 113,
 
	CMD_CHANGE_PATCH_SETTING = 114,
 
	CMD_GIVE_MONEY                   = 113,
 
	CMD_CHANGE_PATCH_SETTING         = 114,
 

	
 
	CMD_REPLACE_VEHICLE = 115,
 
	CMD_REPLACE_VEHICLE              = 115,
 

	
 
	CMD_CLONE_VEHICLE = 116,
 
	CMD_CLONE_VEHICLE                = 116,
 

	
 
};
 

	
 
enum {
 
	DC_EXEC = 1,
 
	DC_AUTO = 2,								// don't allow building on structures
 
	DC_QUERY_COST = 4,					// query cost only, don't build.
 
	DC_NO_WATER = 8,						// don't allow building on water
 
	DC_NO_RAIL_OVERLAP = 0x10,	// don't allow overlap of rails (used in buildrail)
 
	DC_AI_BUILDING = 0x20,			// special building rules for AI
 
	DC_NO_TOWN_RATING = 0x40,		// town rating does not disallow you from building
 
	DC_FORCETEST = 0x80,				// force test too.
 
	DC_EXEC            = 0x01,
 
	DC_AUTO            = 0x02, // don't allow building on structures
 
	DC_QUERY_COST      = 0x04, // query cost only,  don't build.
 
	DC_NO_WATER        = 0x08, // don't allow building on water
 
	DC_NO_RAIL_OVERLAP = 0x10, // don't allow overlap of rails (used in buildrail)
 
	DC_AI_BUILDING     = 0x20, // special building rules for AI
 
	DC_NO_TOWN_RATING  = 0x40, // town rating does not disallow you from building
 
	DC_FORCETEST       = 0x80, // force test too.
 

	
 
	CMD_ERROR = ((int32)0x80000000),
 
};
 

	
 
#define CMD_MSG(x) ((x)<<16)
 

	
 
enum {
 
	CMD_AUTO = 0x200,
 
	CMD_NO_WATER = 0x400,
 
	CMD_NETWORK_COMMAND = 0x800,		// execute the command without sending it on the network
 
	CMD_AUTO                  = 0x0200,
 
	CMD_NO_WATER              = 0x0400,
 
	CMD_NETWORK_COMMAND       = 0x0800, // execute the command without sending it on the network
 
	CMD_NO_TEST_IF_IN_NETWORK = 0x1000, // When enabled, the command will bypass the no-DC_EXEC round if in network
 
	CMD_SHOW_NO_ERROR = 0x2000,
 
	CMD_SHOW_NO_ERROR         = 0x2000,
 
};
 

	
 
/** Command flags for the command table
 
 * @see _command_proc_table
 
 */
 
enum {
date.c
Show inline comments
 
@@ -31,24 +31,24 @@ void SetDate(Date date)
 
	_network_need_advertise = true;
 
#endif /* ENABLE_NETWORK */
 
}
 

	
 
#define M(a, b) ((a << 5) | b)
 
static const uint16 _month_date_from_year_day[] = {
 
M(0,1),M(0,2),M(0,3),M(0,4),M(0,5),M(0,6),M(0,7),M(0,8),M(0,9),M(0,10),M(0,11),M(0,12),M(0,13),M(0,14),M(0,15),M(0,16),M(0,17),M(0,18),M(0,19),M(0,20),M(0,21),M(0,22),M(0,23),M(0,24),M(0,25),M(0,26),M(0,27),M(0,28),M(0,29),M(0,30),M(0,31),
 
M(1,1),M(1,2),M(1,3),M(1,4),M(1,5),M(1,6),M(1,7),M(1,8),M(1,9),M(1,10),M(1,11),M(1,12),M(1,13),M(1,14),M(1,15),M(1,16),M(1,17),M(1,18),M(1,19),M(1,20),M(1,21),M(1,22),M(1,23),M(1,24),M(1,25),M(1,26),M(1,27),M(1,28),M(1,29),
 
M(2,1),M(2,2),M(2,3),M(2,4),M(2,5),M(2,6),M(2,7),M(2,8),M(2,9),M(2,10),M(2,11),M(2,12),M(2,13),M(2,14),M(2,15),M(2,16),M(2,17),M(2,18),M(2,19),M(2,20),M(2,21),M(2,22),M(2,23),M(2,24),M(2,25),M(2,26),M(2,27),M(2,28),M(2,29),M(2,30),M(2,31),
 
M(3,1),M(3,2),M(3,3),M(3,4),M(3,5),M(3,6),M(3,7),M(3,8),M(3,9),M(3,10),M(3,11),M(3,12),M(3,13),M(3,14),M(3,15),M(3,16),M(3,17),M(3,18),M(3,19),M(3,20),M(3,21),M(3,22),M(3,23),M(3,24),M(3,25),M(3,26),M(3,27),M(3,28),M(3,29),M(3,30),
 
M(4,1),M(4,2),M(4,3),M(4,4),M(4,5),M(4,6),M(4,7),M(4,8),M(4,9),M(4,10),M(4,11),M(4,12),M(4,13),M(4,14),M(4,15),M(4,16),M(4,17),M(4,18),M(4,19),M(4,20),M(4,21),M(4,22),M(4,23),M(4,24),M(4,25),M(4,26),M(4,27),M(4,28),M(4,29),M(4,30),M(4,31),
 
M(5,1),M(5,2),M(5,3),M(5,4),M(5,5),M(5,6),M(5,7),M(5,8),M(5,9),M(5,10),M(5,11),M(5,12),M(5,13),M(5,14),M(5,15),M(5,16),M(5,17),M(5,18),M(5,19),M(5,20),M(5,21),M(5,22),M(5,23),M(5,24),M(5,25),M(5,26),M(5,27),M(5,28),M(5,29),M(5,30),
 
M(6,1),M(6,2),M(6,3),M(6,4),M(6,5),M(6,6),M(6,7),M(6,8),M(6,9),M(6,10),M(6,11),M(6,12),M(6,13),M(6,14),M(6,15),M(6,16),M(6,17),M(6,18),M(6,19),M(6,20),M(6,21),M(6,22),M(6,23),M(6,24),M(6,25),M(6,26),M(6,27),M(6,28),M(6,29),M(6,30),M(6,31),
 
M(7,1),M(7,2),M(7,3),M(7,4),M(7,5),M(7,6),M(7,7),M(7,8),M(7,9),M(7,10),M(7,11),M(7,12),M(7,13),M(7,14),M(7,15),M(7,16),M(7,17),M(7,18),M(7,19),M(7,20),M(7,21),M(7,22),M(7,23),M(7,24),M(7,25),M(7,26),M(7,27),M(7,28),M(7,29),M(7,30),M(7,31),
 
M(8,1),M(8,2),M(8,3),M(8,4),M(8,5),M(8,6),M(8,7),M(8,8),M(8,9),M(8,10),M(8,11),M(8,12),M(8,13),M(8,14),M(8,15),M(8,16),M(8,17),M(8,18),M(8,19),M(8,20),M(8,21),M(8,22),M(8,23),M(8,24),M(8,25),M(8,26),M(8,27),M(8,28),M(8,29),M(8,30),
 
M(9,1),M(9,2),M(9,3),M(9,4),M(9,5),M(9,6),M(9,7),M(9,8),M(9,9),M(9,10),M(9,11),M(9,12),M(9,13),M(9,14),M(9,15),M(9,16),M(9,17),M(9,18),M(9,19),M(9,20),M(9,21),M(9,22),M(9,23),M(9,24),M(9,25),M(9,26),M(9,27),M(9,28),M(9,29),M(9,30),M(9,31),
 
M(10,1),M(10,2),M(10,3),M(10,4),M(10,5),M(10,6),M(10,7),M(10,8),M(10,9),M(10,10),M(10,11),M(10,12),M(10,13),M(10,14),M(10,15),M(10,16),M(10,17),M(10,18),M(10,19),M(10,20),M(10,21),M(10,22),M(10,23),M(10,24),M(10,25),M(10,26),M(10,27),M(10,28),M(10,29),M(10,30),
 
M(11,1),M(11,2),M(11,3),M(11,4),M(11,5),M(11,6),M(11,7),M(11,8),M(11,9),M(11,10),M(11,11),M(11,12),M(11,13),M(11,14),M(11,15),M(11,16),M(11,17),M(11,18),M(11,19),M(11,20),M(11,21),M(11,22),M(11,23),M(11,24),M(11,25),M(11,26),M(11,27),M(11,28),M(11,29),M(11,30),M(11,31),
 
	M( 0, 1), M( 0, 2), M( 0, 3), M( 0, 4), M( 0, 5), M( 0, 6), M( 0, 7), M( 0, 8), M( 0, 9), M( 0, 10), M( 0, 11), M( 0, 12), M( 0, 13), M( 0, 14), M( 0, 15), M( 0, 16), M( 0, 17), M( 0, 18), M( 0, 19), M( 0, 20), M( 0, 21), M( 0, 22), M( 0, 23), M( 0, 24), M( 0, 25), M( 0, 26), M( 0, 27), M( 0, 28), M( 0, 29), M( 0, 30), M( 0, 31),
 
	M( 1, 1), M( 1, 2), M( 1, 3), M( 1, 4), M( 1, 5), M( 1, 6), M( 1, 7), M( 1, 8), M( 1, 9), M( 1, 10), M( 1, 11), M( 1, 12), M( 1, 13), M( 1, 14), M( 1, 15), M( 1, 16), M( 1, 17), M( 1, 18), M( 1, 19), M( 1, 20), M( 1, 21), M( 1, 22), M( 1, 23), M( 1, 24), M( 1, 25), M( 1, 26), M( 1, 27), M( 1, 28), M( 1, 29),
 
	M( 2, 1), M( 2, 2), M( 2, 3), M( 2, 4), M( 2, 5), M( 2, 6), M( 2, 7), M( 2, 8), M( 2, 9), M( 2, 10), M( 2, 11), M( 2, 12), M( 2, 13), M( 2, 14), M( 2, 15), M( 2, 16), M( 2, 17), M( 2, 18), M( 2, 19), M( 2, 20), M( 2, 21), M( 2, 22), M( 2, 23), M( 2, 24), M( 2, 25), M( 2, 26), M( 2, 27), M( 2, 28), M( 2, 29), M( 2, 30), M( 2, 31),
 
	M( 3, 1), M( 3, 2), M( 3, 3), M( 3, 4), M( 3, 5), M( 3, 6), M( 3, 7), M( 3, 8), M( 3, 9), M( 3, 10), M( 3, 11), M( 3, 12), M( 3, 13), M( 3, 14), M( 3, 15), M( 3, 16), M( 3, 17), M( 3, 18), M( 3, 19), M( 3, 20), M( 3, 21), M( 3, 22), M( 3, 23), M( 3, 24), M( 3, 25), M( 3, 26), M( 3, 27), M( 3, 28), M( 3, 29), M( 3, 30),
 
	M( 4, 1), M( 4, 2), M( 4, 3), M( 4, 4), M( 4, 5), M( 4, 6), M( 4, 7), M( 4, 8), M( 4, 9), M( 4, 10), M( 4, 11), M( 4, 12), M( 4, 13), M( 4, 14), M( 4, 15), M( 4, 16), M( 4, 17), M( 4, 18), M( 4, 19), M( 4, 20), M( 4, 21), M( 4, 22), M( 4, 23), M( 4, 24), M( 4, 25), M( 4, 26), M( 4, 27), M( 4, 28), M( 4, 29), M( 4, 30), M( 4, 31),
 
	M( 5, 1), M( 5, 2), M( 5, 3), M( 5, 4), M( 5, 5), M( 5, 6), M( 5, 7), M( 5, 8), M( 5, 9), M( 5, 10), M( 5, 11), M( 5, 12), M( 5, 13), M( 5, 14), M( 5, 15), M( 5, 16), M( 5, 17), M( 5, 18), M( 5, 19), M( 5, 20), M( 5, 21), M( 5, 22), M( 5, 23), M( 5, 24), M( 5, 25), M( 5, 26), M( 5, 27), M( 5, 28), M( 5, 29), M( 5, 30),
 
	M( 6, 1), M( 6, 2), M( 6, 3), M( 6, 4), M( 6, 5), M( 6, 6), M( 6, 7), M( 6, 8), M( 6, 9), M( 6, 10), M( 6, 11), M( 6, 12), M( 6, 13), M( 6, 14), M( 6, 15), M( 6, 16), M( 6, 17), M( 6, 18), M( 6, 19), M( 6, 20), M( 6, 21), M( 6, 22), M( 6, 23), M( 6, 24), M( 6, 25), M( 6, 26), M( 6, 27), M( 6, 28), M( 6, 29), M( 6, 30), M( 6, 31),
 
	M( 7, 1), M( 7, 2), M( 7, 3), M( 7, 4), M( 7, 5), M( 7, 6), M( 7, 7), M( 7, 8), M( 7, 9), M( 7, 10), M( 7, 11), M( 7, 12), M( 7, 13), M( 7, 14), M( 7, 15), M( 7, 16), M( 7, 17), M( 7, 18), M( 7, 19), M( 7, 20), M( 7, 21), M( 7, 22), M( 7, 23), M( 7, 24), M( 7, 25), M( 7, 26), M( 7, 27), M( 7, 28), M( 7, 29), M( 7, 30), M( 7, 31),
 
	M( 8, 1), M( 8, 2), M( 8, 3), M( 8, 4), M( 8, 5), M( 8, 6), M( 8, 7), M( 8, 8), M( 8, 9), M( 8, 10), M( 8, 11), M( 8, 12), M( 8, 13), M( 8, 14), M( 8, 15), M( 8, 16), M( 8, 17), M( 8, 18), M( 8, 19), M( 8, 20), M( 8, 21), M( 8, 22), M( 8, 23), M( 8, 24), M( 8, 25), M( 8, 26), M( 8, 27), M( 8, 28), M( 8, 29), M( 8, 30),
 
	M( 9, 1), M( 9, 2), M( 9, 3), M( 9, 4), M( 9, 5), M( 9, 6), M( 9, 7), M( 9, 8), M( 9, 9), M( 9, 10), M( 9, 11), M( 9, 12), M( 9, 13), M( 9, 14), M( 9, 15), M( 9, 16), M( 9, 17), M( 9, 18), M( 9, 19), M( 9, 20), M( 9, 21), M( 9, 22), M( 9, 23), M( 9, 24), M( 9, 25), M( 9, 26), M( 9, 27), M( 9, 28), M( 9, 29), M( 9, 30), M( 9, 31),
 
	M(10, 1), M(10, 2), M(10, 3), M(10, 4), M(10, 5), M(10, 6), M(10, 7), M(10, 8), M(10, 9), M(10, 10), M(10, 11), M(10, 12), M(10, 13), M(10, 14), M(10, 15), M(10, 16), M(10, 17), M(10, 18), M(10, 19), M(10, 20), M(10, 21), M(10, 22), M(10, 23), M(10, 24), M(10, 25), M(10, 26), M(10, 27), M(10, 28), M(10, 29), M(10, 30),
 
	M(11, 1), M(11, 2), M(11, 3), M(11, 4), M(11, 5), M(11, 6), M(11, 7), M(11, 8), M(11, 9), M(11, 10), M(11, 11), M(11, 12), M(11, 13), M(11, 14), M(11, 15), M(11, 16), M(11, 17), M(11, 18), M(11, 19), M(11, 20), M(11, 21), M(11, 22), M(11, 23), M(11, 24), M(11, 25), M(11, 26), M(11, 27), M(11, 28), M(11, 29), M(11, 30), M(11, 31),
 
};
 
#undef M
 

	
 
enum {
 
	ACCUM_JAN = 0,
 
	ACCUM_FEB = ACCUM_JAN + 31,
depot.c
Show inline comments
 
@@ -102,15 +102,15 @@ void InitializeDepot(void)
 
	CleanPool(&_depot_pool);
 
	AddBlockToPool(&_depot_pool);
 
}
 

	
 

	
 
static const SaveLoad _depot_desc[] = {
 
	SLE_CONDVAR(Depot, xy,			SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
 
	SLE_CONDVAR(Depot, xy,			SLE_UINT32, 6, SL_MAX_VERSION),
 
	SLE_VAR(Depot,town_index,		SLE_UINT16),
 
	SLE_CONDVAR(Depot, xy,         SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
 
	SLE_CONDVAR(Depot, xy,         SLE_UINT32,                 6, SL_MAX_VERSION),
 
	    SLE_VAR(Depot, town_index, SLE_UINT16),
 
	SLE_END()
 
};
 

	
 
static void Save_DEPT(void)
 
{
 
	Depot *depot;
disaster_cmd.c
Show inline comments
 
@@ -51,30 +51,30 @@ static void DisasterClearSquare(TileInde
 

	
 
		default:
 
			break;
 
	}
 
}
 

	
 
static const SpriteID _disaster_images_1[] = {0xF41,0xF41,0xF41,0xF41,0xF41,0xF41,0xF41,0xF41};
 
static const SpriteID _disaster_images_2[] = {0xF44,0xF44,0xF44,0xF44,0xF44,0xF44,0xF44,0xF44};
 
static const SpriteID _disaster_images_3[] = {0xF4E,0xF4E,0xF4E,0xF4E,0xF4E,0xF4E,0xF4E,0xF4E};
 
static const SpriteID _disaster_images_4[] = {0xF46,0xF46,0xF47,0xF47,0xF48,0xF48,0xF49,0xF49};
 
static const SpriteID _disaster_images_5[] = {0xF4A,0xF4A,0xF4B,0xF4B,0xF4C,0xF4C,0xF4D,0xF4D};
 
static const SpriteID _disaster_images_6[] = {0xF50,0xF50,0xF50,0xF50,0xF50,0xF50,0xF50,0xF50};
 
static const SpriteID _disaster_images_7[] = {0xF51,0xF51,0xF51,0xF51,0xF51,0xF51,0xF51,0xF51};
 
static const SpriteID _disaster_images_8[] = {0xF52,0xF52,0xF52,0xF52,0xF52,0xF52,0xF52,0xF52};
 
static const SpriteID _disaster_images_9[] = {0xF3E,0xF3E,0xF3E,0xF3E,0xF3E,0xF3E,0xF3E,0xF3E};
 
static const SpriteID _disaster_images_1[] = {0xF41, 0xF41, 0xF41, 0xF41, 0xF41, 0xF41, 0xF41, 0xF41};
 
static const SpriteID _disaster_images_2[] = {0xF44, 0xF44, 0xF44, 0xF44, 0xF44, 0xF44, 0xF44, 0xF44};
 
static const SpriteID _disaster_images_3[] = {0xF4E, 0xF4E, 0xF4E, 0xF4E, 0xF4E, 0xF4E, 0xF4E, 0xF4E};
 
static const SpriteID _disaster_images_4[] = {0xF46, 0xF46, 0xF47, 0xF47, 0xF48, 0xF48, 0xF49, 0xF49};
 
static const SpriteID _disaster_images_5[] = {0xF4A, 0xF4A, 0xF4B, 0xF4B, 0xF4C, 0xF4C, 0xF4D, 0xF4D};
 
static const SpriteID _disaster_images_6[] = {0xF50, 0xF50, 0xF50, 0xF50, 0xF50, 0xF50, 0xF50, 0xF50};
 
static const SpriteID _disaster_images_7[] = {0xF51, 0xF51, 0xF51, 0xF51, 0xF51, 0xF51, 0xF51, 0xF51};
 
static const SpriteID _disaster_images_8[] = {0xF52, 0xF52, 0xF52, 0xF52, 0xF52, 0xF52, 0xF52, 0xF52};
 
static const SpriteID _disaster_images_9[] = {0xF3E, 0xF3E, 0xF3E, 0xF3E, 0xF3E, 0xF3E, 0xF3E, 0xF3E};
 

	
 
static const SpriteID * const _disaster_images[] = {
 
	_disaster_images_1,_disaster_images_1,
 
	_disaster_images_2,_disaster_images_2,
 
	_disaster_images_3,_disaster_images_3,
 
	_disaster_images_8,_disaster_images_8,_disaster_images_9,
 
	_disaster_images_6,_disaster_images_6,
 
	_disaster_images_7,_disaster_images_7,
 
	_disaster_images_4,_disaster_images_5,
 
	_disaster_images_1, _disaster_images_1,
 
	_disaster_images_2, _disaster_images_2,
 
	_disaster_images_3, _disaster_images_3,
 
	_disaster_images_8, _disaster_images_8, _disaster_images_9,
 
	_disaster_images_6, _disaster_images_6,
 
	_disaster_images_7, _disaster_images_7,
 
	_disaster_images_4, _disaster_images_5,
 
};
 

	
 
static void DisasterVehicleUpdateImage(Vehicle *v)
 
{
 
	int img = v->u.disaster.image_override;
 
	if (img == 0)
dock_gui.c
Show inline comments
 
@@ -186,25 +186,25 @@ static void BuildDocksToolbWndProc(Windo
 
		if (_patches.link_terraform_toolbar) DeleteWindowById(WC_SCEN_LAND_GEN, 0);
 
		break;
 
	}
 
}
 

	
 
static const Widget _build_docks_toolb_widgets[] = {
 
{   WWT_CLOSEBOX,   RESIZE_NONE,     7,     0,    10,     0,    13, STR_00C5,										STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION,   RESIZE_NONE,     7,    11,   145,     0,    13, STR_9801_DOCK_CONSTRUCTION,	STR_018C_WINDOW_TITLE_DRAG_THIS},
 
{  WWT_STICKYBOX,   RESIZE_NONE,     7,   146,   157,     0,    13, 0x0,                         STR_STICKY_BUTTON},
 
{      WWT_PANEL,   RESIZE_NONE,     7,     0,    21,    14,    35, SPR_IMG_BUILD_CANAL,					STR_BUILD_CANALS_TIP},
 
{      WWT_PANEL,   RESIZE_NONE,     7,    22,    43,    14,    35, SPR_IMG_BUILD_LOCK,					STR_BUILD_LOCKS_TIP},
 
{   WWT_CLOSEBOX,   RESIZE_NONE,     7,     0,    10,     0,    13, STR_00C5,                   STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION,   RESIZE_NONE,     7,    11,   145,     0,    13, STR_9801_DOCK_CONSTRUCTION, STR_018C_WINDOW_TITLE_DRAG_THIS},
 
{  WWT_STICKYBOX,   RESIZE_NONE,     7,   146,   157,     0,    13, 0x0,                        STR_STICKY_BUTTON},
 
{      WWT_PANEL,   RESIZE_NONE,     7,     0,    21,    14,    35, SPR_IMG_BUILD_CANAL,        STR_BUILD_CANALS_TIP},
 
{      WWT_PANEL,   RESIZE_NONE,     7,    22,    43,    14,    35, SPR_IMG_BUILD_LOCK,         STR_BUILD_LOCKS_TIP},
 

	
 
{      WWT_PANEL,   RESIZE_NONE,     7,    44,    47,    14,    35, 0x0,													STR_NULL},
 
{      WWT_PANEL,   RESIZE_NONE,     7,    44,    47,    14,    35, 0x0,                        STR_NULL},
 

	
 
{      WWT_PANEL,   RESIZE_NONE,     7,    48,    69,    14,    35, 703,													STR_018D_DEMOLISH_BUILDINGS_ETC},
 
{      WWT_PANEL,   RESIZE_NONE,     7,    70,    91,    14,    35, 748,													STR_981E_BUILD_SHIP_DEPOT_FOR_BUILDING},
 
{      WWT_PANEL,   RESIZE_NONE,     7,    92,   113,    14,    35, 746,													STR_981D_BUILD_SHIP_DOCK},
 
{      WWT_PANEL,   RESIZE_NONE,     7,   114,   135,    14,    35, 693,													STR_9834_POSITION_BUOY_WHICH_CAN},
 
{      WWT_PANEL,   RESIZE_NONE,     7,   136,   157,    14,    35, SPR_IMG_LANDSCAPING,				STR_LANDSCAPING_TOOLBAR_TIP},
 
{      WWT_PANEL,   RESIZE_NONE,     7,    48,    69,    14,    35, 703,                        STR_018D_DEMOLISH_BUILDINGS_ETC},
 
{      WWT_PANEL,   RESIZE_NONE,     7,    70,    91,    14,    35, 748,                        STR_981E_BUILD_SHIP_DEPOT_FOR_BUILDING},
 
{      WWT_PANEL,   RESIZE_NONE,     7,    92,   113,    14,    35, 746,                        STR_981D_BUILD_SHIP_DOCK},
 
{      WWT_PANEL,   RESIZE_NONE,     7,   114,   135,    14,    35, 693,                        STR_9834_POSITION_BUOY_WHICH_CAN},
 
{      WWT_PANEL,   RESIZE_NONE,     7,   136,   157,    14,    35, SPR_IMG_LANDSCAPING,        STR_LANDSCAPING_TOOLBAR_TIP},
 
{   WIDGETS_END},
 
};
 

	
 
static const WindowDesc _build_docks_toolbar_desc = {
 
	640-158, 22, 158, 36,
 
	WC_BUILD_TOOLBAR,0,
 
@@ -268,17 +268,17 @@ static void BuildDockStationWndProc(Wind
 
		if (!WP(w,def_d).close) ResetObjectToPlace();
 
		break;
 
	}
 
}
 

	
 
static const Widget _build_dock_station_widgets[] = {
 
{   WWT_CLOSEBOX,   RESIZE_NONE,     7,     0,    10,     0,    13, STR_00C5,			STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION,   RESIZE_NONE,     7,    11,   147,     0,    13, STR_3068_DOCK,	STR_018C_WINDOW_TITLE_DRAG_THIS},
 
{      WWT_PANEL,   RESIZE_NONE,     7,     0,   147,    14,    74, 0x0,						STR_NULL},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,    14,    73,    30,    40, STR_02DB_OFF,	STR_3065_DON_T_HIGHLIGHT_COVERAGE},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,    74,   133,    30,    40, STR_02DA_ON,		STR_3064_HIGHLIGHT_COVERAGE_AREA},
 
{   WWT_CLOSEBOX,   RESIZE_NONE,     7,     0,    10,     0,    13, STR_00C5,      STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION,   RESIZE_NONE,     7,    11,   147,     0,    13, STR_3068_DOCK, STR_018C_WINDOW_TITLE_DRAG_THIS},
 
{      WWT_PANEL,   RESIZE_NONE,     7,     0,   147,    14,    74, 0x0,           STR_NULL},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,    14,    73,    30,    40, STR_02DB_OFF,  STR_3065_DON_T_HIGHLIGHT_COVERAGE},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,    74,   133,    30,    40, STR_02DA_ON,   STR_3064_HIGHLIGHT_COVERAGE_AREA},
 
{   WIDGETS_END},
 
};
 

	
 
static const WindowDesc _build_dock_station_desc = {
 
	-1, -1, 148, 75,
 
	WC_BUILD_STATION,WC_BUILD_TOOLBAR,
 
@@ -334,17 +334,17 @@ static void BuildDocksDepotWndProc(Windo
 
		if (!WP(w,def_d).close) ResetObjectToPlace();
 
		break;
 
	}
 
}
 

	
 
static const Widget _build_docks_depot_widgets[] = {
 
{   WWT_CLOSEBOX,   RESIZE_NONE,     7,     0,    10,     0,    13, STR_00C5,												STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION,   RESIZE_NONE,     7,    11,   203,     0,    13, STR_3800_SHIP_DEPOT_ORIENTATION,	STR_018C_WINDOW_TITLE_DRAG_THIS},
 
{      WWT_PANEL,   RESIZE_NONE,     7,     0,   203,    14,    85, 0x0,															STR_NULL},
 
{      WWT_PANEL,   RESIZE_NONE,    14,     3,   100,    17,    82, 0x0,															STR_3803_SELECT_SHIP_DEPOT_ORIENTATION},
 
{      WWT_PANEL,   RESIZE_NONE,    14,   103,   200,    17,    82, 0x0,															STR_3803_SELECT_SHIP_DEPOT_ORIENTATION},
 
{   WWT_CLOSEBOX,   RESIZE_NONE,     7,     0,    10,     0,    13, STR_00C5,                        STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION,   RESIZE_NONE,     7,    11,   203,     0,    13, STR_3800_SHIP_DEPOT_ORIENTATION, STR_018C_WINDOW_TITLE_DRAG_THIS},
 
{      WWT_PANEL,   RESIZE_NONE,     7,     0,   203,    14,    85, 0x0,                             STR_NULL},
 
{      WWT_PANEL,   RESIZE_NONE,    14,     3,   100,    17,    82, 0x0,                             STR_3803_SELECT_SHIP_DEPOT_ORIENTATION},
 
{      WWT_PANEL,   RESIZE_NONE,    14,   103,   200,    17,    82, 0x0,                             STR_3803_SELECT_SHIP_DEPOT_ORIENTATION},
 
{   WIDGETS_END},
 
};
 

	
 
static const WindowDesc _build_docks_depot_desc = {
 
	-1, -1, 204, 86,
 
	WC_BUILD_DEPOT,WC_BUILD_TOOLBAR,
dummy_land.c
Show inline comments
 
@@ -64,20 +64,20 @@ static void ChangeTileOwner_Dummy(TileIn
 
static uint32 GetTileTrackStatus_Dummy(TileIndex tile, TransportType mode)
 
{
 
	return 0;
 
}
 

	
 
const TileTypeProcs _tile_type_dummy_procs = {
 
	DrawTile_Dummy,						/* draw_tile_proc */
 
	GetSlopeZ_Dummy,					/* get_slope_z_proc */
 
	ClearTile_Dummy,					/* clear_tile_proc */
 
	GetAcceptedCargo_Dummy,		/* get_accepted_cargo_proc */
 
	GetTileDesc_Dummy,				/* get_tile_desc_proc */
 
	GetTileTrackStatus_Dummy,	/* get_tile_track_status_proc */
 
	ClickTile_Dummy,					/* click_tile_proc */
 
	AnimateTile_Dummy,				/* animate_tile_proc */
 
	TileLoop_Dummy,						/* tile_loop_clear */
 
	ChangeTileOwner_Dummy,		/* change_tile_owner_clear */
 
	NULL,											/* get_produced_cargo_proc */
 
	NULL,											/* vehicle_enter_tile_proc */
 
	GetSlopeTileh_Dummy,			/* get_slope_tileh_proc */
 
	DrawTile_Dummy,           /* draw_tile_proc */
 
	GetSlopeZ_Dummy,          /* get_slope_z_proc */
 
	ClearTile_Dummy,          /* clear_tile_proc */
 
	GetAcceptedCargo_Dummy,   /* get_accepted_cargo_proc */
 
	GetTileDesc_Dummy,        /* get_tile_desc_proc */
 
	GetTileTrackStatus_Dummy, /* get_tile_track_status_proc */
 
	ClickTile_Dummy,          /* click_tile_proc */
 
	AnimateTile_Dummy,        /* animate_tile_proc */
 
	TileLoop_Dummy,           /* tile_loop_clear */
 
	ChangeTileOwner_Dummy,    /* change_tile_owner_clear */
 
	NULL,                     /* get_produced_cargo_proc */
 
	NULL,                     /* vehicle_enter_tile_proc */
 
	GetSlopeTileh_Dummy,      /* get_slope_tileh_proc */
 
};
economy.c
Show inline comments
 
@@ -684,60 +684,60 @@ static byte _price_category[NUM_PRICES] 
 
	2, 2, 2, 2, 2, 2, 2, 2,
 
	2, 2, 1, 1, 1, 1, 1, 1,
 
	2,
 
};
 

	
 
static const int32 _price_base[NUM_PRICES] = {
 
	100,		// station_value
 
	100,		// build_rail
 
	95,			// build_road
 
	65,			// build_signals
 
	275,		// build_bridge
 
	600,		// build_train_depot
 
	500,		// build_road_depot
 
	700,		// build_ship_depot
 
	450,		// build_tunnel
 
	200,		// train_station_track
 
	180,		// train_station_length
 
	600,		// build_airport
 
	200,		// build_bus_station
 
	200,		// build_truck_station
 
	350,		// build_dock
 
	400000,	// build_railvehicle
 
	2000,		// build_railwagon
 
	700000,	// aircraft_base
 
	14000,	// roadveh_base
 
	65000,	// ship_base
 
	20,			// build_trees
 
	250,		// terraform
 
	20,			// clear_1
 
	40,			// purchase_land
 
	200,		// clear_2
 
	500,		// clear_3
 
	20,			// remove_trees
 
	-70,		// remove_rail
 
	10,			// remove_signals
 
	50,			// clear_bridge
 
	80,			// remove_train_depot
 
	80,			// remove_road_depot
 
	90,			// remove_ship_depot
 
	30,			// clear_tunnel
 
	10000,	// clear_water
 
	50,			// remove_rail_station
 
	30,			// remove_airport
 
	50,			// remove_bus_station
 
	50,			// remove_truck_station
 
	55,			// remove_dock
 
	1600,		// remove_house
 
	40,			// remove_road
 
	5600,		// running_rail[0] railroad
 
	5200,		// running_rail[1] monorail
 
	4800,		// running_rail[2] maglev
 
	9600,		// aircraft_running
 
	1600,		// roadveh_running
 
	5600,		// ship_running
 
	    100, // station_value
 
	    100, // build_rail
 
	     95, // build_road
 
	     65, // build_signals
 
	    275, // build_bridge
 
	    600, // build_train_depot
 
	    500, // build_road_depot
 
	    700, // build_ship_depot
 
	    450, // build_tunnel
 
	    200, // train_station_track
 
	    180, // train_station_length
 
	    600, // build_airport
 
	    200, // build_bus_station
 
	    200, // build_truck_station
 
	    350, // build_dock
 
	 400000, // build_railvehicle
 
	   2000, // build_railwagon
 
	 700000, // aircraft_base
 
	  14000, // roadveh_base
 
	  65000, // ship_base
 
	     20, // build_trees
 
	    250, // terraform
 
	     20, // clear_1
 
	     40, // purchase_land
 
	    200, // clear_2
 
	    500, // clear_3
 
	     20, // remove_trees
 
	    -70, // remove_rail
 
	     10, // remove_signals
 
	     50, // clear_bridge
 
	     80, // remove_train_depot
 
	     80, // remove_road_depot
 
	     90, // remove_ship_depot
 
	     30, // clear_tunnel
 
	  10000, // clear_water
 
	     50, // remove_rail_station
 
	     30, // remove_airport
 
	     50, // remove_bus_station
 
	     50, // remove_truck_station
 
	     55, // remove_dock
 
	   1600, // remove_house
 
	     40, // remove_road
 
	   5600, // running_rail[0] railroad
 
	   5200, // running_rail[1] monorail
 
	   4800, // running_rail[2] maglev
 
	   9600, // aircraft_running
 
	   1600, // roadveh_running
 
	   5600, // ship_running
 
	1000000, // build_industry
 
};
 

	
 
static byte price_base_multiplier[NUM_PRICES];
 

	
 
/**
 
@@ -1037,18 +1037,18 @@ static void SubsidyMonthlyHandler(void)
 
no_add:;
 
	if (modified)
 
		InvalidateWindow(WC_SUBSIDIES_LIST, 0);
 
}
 

	
 
static const SaveLoad _subsidies_desc[] = {
 
	SLE_VAR(Subsidy,cargo_type,		SLE_UINT8),
 
	SLE_VAR(Subsidy,age,					SLE_UINT8),
 
	SLE_CONDVAR(Subsidy,from,			SLE_FILE_U8 | SLE_VAR_U16, 0, 4),
 
	SLE_CONDVAR(Subsidy,from,			SLE_UINT16, 5, SL_MAX_VERSION),
 
	SLE_CONDVAR(Subsidy,to,				SLE_FILE_U8 | SLE_VAR_U16, 0, 4),
 
	SLE_CONDVAR(Subsidy,to,				SLE_UINT16, 5, SL_MAX_VERSION),
 
	    SLE_VAR(Subsidy, cargo_type, SLE_UINT8),
 
	    SLE_VAR(Subsidy, age,        SLE_UINT8),
 
	SLE_CONDVAR(Subsidy, from,       SLE_FILE_U8 | SLE_VAR_U16, 0, 4),
 
	SLE_CONDVAR(Subsidy, from,       SLE_UINT16,                5, SL_MAX_VERSION),
 
	SLE_CONDVAR(Subsidy, to,         SLE_FILE_U8 | SLE_VAR_U16, 0, 4),
 
	SLE_CONDVAR(Subsidy, to,         SLE_UINT16,                5, SL_MAX_VERSION),
 
	SLE_END()
 
};
 

	
 
static void Save_SUBS(void)
 
{
 
	int i;
 
@@ -1632,39 +1632,39 @@ int32 CmdBuyCompany(TileIndex tile, uint
 
	return p->bankrupt_value;
 
}
 

	
 
// Prices
 
static void SaveLoad_PRIC(void)
 
{
 
	SlArray(&_price, NUM_PRICES, SLE_INT32);
 
	SlArray(&_price,      NUM_PRICES, SLE_INT32);
 
	SlArray(&_price_frac, NUM_PRICES, SLE_UINT16);
 
}
 

	
 
// Cargo payment rates
 
static void SaveLoad_CAPR(void)
 
{
 
	SlArray(&_cargo_payment_rates, NUM_CARGO, SLE_INT32);
 
	SlArray(&_cargo_payment_rates,      NUM_CARGO, SLE_INT32);
 
	SlArray(&_cargo_payment_rates_frac, NUM_CARGO, SLE_UINT16);
 
}
 

	
 
static const SaveLoad _economy_desc[] = {
 
	SLE_VAR(Economy,max_loan,						SLE_INT32),
 
	SLE_VAR(Economy,max_loan_unround,		SLE_INT32),
 
	SLE_VAR(Economy,fluct,							SLE_FILE_I16 | SLE_VAR_I32),
 
	SLE_VAR(Economy,interest_rate,			SLE_UINT8),
 
	SLE_VAR(Economy,infl_amount,				SLE_UINT8),
 
	SLE_VAR(Economy,infl_amount_pr,			SLE_UINT8),
 
	SLE_VAR(Economy, max_loan,         SLE_INT32),
 
	SLE_VAR(Economy, max_loan_unround, SLE_INT32),
 
	SLE_VAR(Economy, fluct,            SLE_FILE_I16 | SLE_VAR_I32),
 
	SLE_VAR(Economy, interest_rate,    SLE_UINT8),
 
	SLE_VAR(Economy, infl_amount,      SLE_UINT8),
 
	SLE_VAR(Economy, infl_amount_pr,   SLE_UINT8),
 
	SLE_END()
 
};
 

	
 
// Economy variables
 
static void SaveLoad_ECMY(void)
 
{
 
	SlObject(&_economy, _economy_desc);
 
}
 

	
 
const ChunkHandler _economy_chunk_handlers[] = {
 
	{ 'PRIC', SaveLoad_PRIC, SaveLoad_PRIC, CH_RIFF | CH_AUTO_LENGTH},
 
	{ 'CAPR', SaveLoad_CAPR, SaveLoad_CAPR, CH_RIFF | CH_AUTO_LENGTH},
 
	{ 'SUBS', Save_SUBS,			Load_SUBS, CH_ARRAY},
 
	{ 'SUBS', Save_SUBS,     Load_SUBS,     CH_ARRAY},
 
	{ 'ECMY', SaveLoad_ECMY, SaveLoad_ECMY, CH_RIFF | CH_LAST},
 
};
engine.c
Show inline comments
 
@@ -22,39 +22,39 @@ EngineInfo _engine_info[TOTAL_NUM_ENGINE
 
RailVehicleInfo _rail_vehicle_info[NUM_TRAIN_ENGINES];
 
ShipVehicleInfo _ship_vehicle_info[NUM_SHIP_ENGINES];
 
AircraftVehicleInfo _aircraft_vehicle_info[NUM_AIRCRAFT_ENGINES];
 
RoadVehicleInfo _road_vehicle_info[NUM_ROAD_ENGINES];
 

	
 
enum {
 
	ENGINE_AVAILABLE = 1,
 
	ENGINE_AVAILABLE   = 1,
 
	ENGINE_INTRODUCING = 2,
 
	ENGINE_PREVIEWING = 4,
 
	ENGINE_PREVIEWING  = 4,
 
};
 

	
 
enum {
 
	YEAR_ENGINE_AGING_STOPS = 2050,
 
};
 

	
 
/** Bitmasked values of what type of cargo is refittable for the given vehicle-type.
 
 * This coupled with the landscape information (_landscape_global_cargo_mask) gives
 
 * us exactly what is refittable and what is not */
 
#define MC(cargo) (1 << cargo)
 
const uint32 _default_refitmasks[NUM_VEHICLE_TYPES] = {
 
	/* Trains */
 
	MC(GC_PASSENGERS)|MC(GC_COAL)|MC(GC_MAIL)|MC(GC_LIVESTOCK)|MC(GC_GOODS)|MC(GC_GRAIN)|MC(GC_WOOD)|MC(GC_IRON_ORE)|
 
	MC(GC_STEEL)|MC(GC_VALUABLES)|MC(GC_PAPER)|MC(GC_FOOD)|MC(GC_FRUIT)|MC(GC_COPPER_ORE)|MC(GC_WATER)|MC(GC_SUGAR)|
 
	MC(GC_TOYS)|MC(GC_CANDY)|MC(GC_TOFFEE)|MC(GC_COLA)|MC(GC_COTTON_CANDY)|MC(GC_BUBBLES)|MC(GC_PLASTIC)|MC(GC_FIZZY_DRINKS),
 
	MC(GC_PASSENGERS) | MC(GC_COAL)      | MC(GC_MAIL)   | MC(GC_LIVESTOCK) | MC(GC_GOODS)        | MC(GC_GRAIN)      | MC(GC_WOOD)    | MC(GC_IRON_ORE)    |
 
	MC(GC_STEEL)      | MC(GC_VALUABLES) | MC(GC_PAPER)  | MC(GC_FOOD)      | MC(GC_FRUIT)        | MC(GC_COPPER_ORE) | MC(GC_WATER)   | MC(GC_SUGAR)       |
 
	MC(GC_TOYS)       | MC(GC_CANDY)     | MC(GC_TOFFEE) | MC(GC_COLA)      | MC(GC_COTTON_CANDY) | MC(GC_BUBBLES)    | MC(GC_PLASTIC) | MC(GC_FIZZY_DRINKS),
 
	/* Road vehicles (not refittable by default) */
 
	0,
 
	/* Ships */
 
	MC(GC_COAL)|MC(GC_MAIL)|MC(GC_LIVESTOCK)|MC(GC_GOODS)|MC(GC_GRAIN)|MC(GC_WOOD)|MC(GC_IRON_ORE)|MC(GC_STEEL)|MC(GC_VALUABLES)|
 
	MC(GC_PAPER)|MC(GC_FOOD)|MC(GC_FRUIT)|MC(GC_COPPER_ORE)|MC(GC_WATER)|MC(GC_RUBBER)|MC(GC_SUGAR)|MC(GC_TOYS)|MC(GC_BATTERIES)|
 
	MC(GC_CANDY)|MC(GC_TOFFEE)|MC(GC_COLA)|MC(GC_COTTON_CANDY)|MC(GC_BUBBLES)|MC(GC_PLASTIC)|MC(GC_FIZZY_DRINKS),
 
	MC(GC_COAL)  | MC(GC_MAIL)   | MC(GC_LIVESTOCK) | MC(GC_GOODS)        | MC(GC_GRAIN)   | MC(GC_WOOD)    | MC(GC_IRON_ORE) | MC(GC_STEEL) | MC(GC_VALUABLES) |
 
	MC(GC_PAPER) | MC(GC_FOOD)   | MC(GC_FRUIT)     | MC(GC_COPPER_ORE)   | MC(GC_WATER)   | MC(GC_RUBBER)  | MC(GC_SUGAR)    | MC(GC_TOYS)  | MC(GC_BATTERIES) |
 
	MC(GC_CANDY) | MC(GC_TOFFEE) | MC(GC_COLA)      | MC(GC_COTTON_CANDY) | MC(GC_BUBBLES) | MC(GC_PLASTIC) | MC(GC_FIZZY_DRINKS),
 
	/* Aircraft */
 
	MC(GC_PASSENGERS)|MC(GC_MAIL)|MC(GC_GOODS)|MC(GC_VALUABLES)|MC(GC_FOOD)|MC(GC_FRUIT)|MC(GC_SUGAR)|MC(GC_TOYS)|
 
	MC(GC_BATTERIES)|MC(GC_CANDY)|MC(GC_TOFFEE)|MC(GC_COLA)|MC(GC_COTTON_CANDY)|MC(GC_BUBBLES)|MC(GC_PLASTIC)|MC(GC_FIZZY_DRINKS),
 
	MC(GC_PASSENGERS) | MC(GC_MAIL)  | MC(GC_GOODS)  | MC(GC_VALUABLES) | MC(GC_FOOD)         | MC(GC_FRUIT)   | MC(GC_SUGAR)   | MC(GC_TOYS) |
 
	MC(GC_BATTERIES)  | MC(GC_CANDY) | MC(GC_TOFFEE) | MC(GC_COLA)      | MC(GC_COTTON_CANDY) | MC(GC_BUBBLES) | MC(GC_PLASTIC) | MC(GC_FIZZY_DRINKS),
 
	/* Special/Disaster */
 
	0,0
 
};
 
#undef MC
 

	
 
void ShowEnginePreviewWindow(EngineID engine);
 
@@ -603,31 +603,31 @@ static void Load_ERNW(void)
 
		er = GetEngineRenew(index);
 
		SlObject(er, _engine_renew_desc);
 
	}
 
}
 

	
 
static const SaveLoad _engine_desc[] = {
 
	SLE_CONDVAR(Engine,intro_date,				SLE_FILE_U16 | SLE_VAR_I32,  0,  30),
 
	SLE_CONDVAR(Engine,intro_date,				SLE_INT32, 31, SL_MAX_VERSION),
 
	SLE_CONDVAR(Engine,age,								SLE_FILE_U16 | SLE_VAR_I32,  0,  30),
 
	SLE_CONDVAR(Engine,age,								SLE_INT32, 31, SL_MAX_VERSION),
 
	SLE_VAR(Engine,reliability,						SLE_UINT16),
 
	SLE_VAR(Engine,reliability_spd_dec,		SLE_UINT16),
 
	SLE_VAR(Engine,reliability_start,			SLE_UINT16),
 
	SLE_VAR(Engine,reliability_max,				SLE_UINT16),
 
	SLE_VAR(Engine,reliability_final,			SLE_UINT16),
 
	SLE_VAR(Engine,duration_phase_1,			SLE_UINT16),
 
	SLE_VAR(Engine,duration_phase_2,			SLE_UINT16),
 
	SLE_VAR(Engine,duration_phase_3,			SLE_UINT16),
 
	SLE_CONDVAR(Engine, intro_date,          SLE_FILE_U16 | SLE_VAR_I32,  0,  30),
 
	SLE_CONDVAR(Engine, intro_date,          SLE_INT32,                  31, SL_MAX_VERSION),
 
	SLE_CONDVAR(Engine, age,                 SLE_FILE_U16 | SLE_VAR_I32,  0,  30),
 
	SLE_CONDVAR(Engine, age,                 SLE_INT32,                  31, SL_MAX_VERSION),
 
	    SLE_VAR(Engine, reliability,         SLE_UINT16),
 
	    SLE_VAR(Engine, reliability_spd_dec, SLE_UINT16),
 
	    SLE_VAR(Engine, reliability_start,   SLE_UINT16),
 
	    SLE_VAR(Engine, reliability_max,     SLE_UINT16),
 
	    SLE_VAR(Engine, reliability_final,   SLE_UINT16),
 
	    SLE_VAR(Engine, duration_phase_1,    SLE_UINT16),
 
	    SLE_VAR(Engine, duration_phase_2,    SLE_UINT16),
 
	    SLE_VAR(Engine, duration_phase_3,    SLE_UINT16),
 

	
 
	SLE_VAR(Engine,lifelength,						SLE_UINT8),
 
	SLE_VAR(Engine,flags,									SLE_UINT8),
 
	SLE_VAR(Engine,preview_player,				SLE_UINT8),
 
	SLE_VAR(Engine,preview_wait,					SLE_UINT8),
 
	SLE_VAR(Engine,railtype,							SLE_UINT8),
 
	SLE_VAR(Engine,player_avail,					SLE_UINT8),
 
	    SLE_VAR(Engine, lifelength,          SLE_UINT8),
 
	    SLE_VAR(Engine, flags,               SLE_UINT8),
 
	    SLE_VAR(Engine, preview_player,      SLE_UINT8),
 
	    SLE_VAR(Engine, preview_wait,        SLE_UINT8),
 
	    SLE_VAR(Engine, railtype,            SLE_UINT8),
 
	    SLE_VAR(Engine, player_avail,        SLE_UINT8),
 

	
 
	// reserve extra space in savegame here. (currently 16 bytes)
 
	SLE_CONDNULL(16, 2, SL_MAX_VERSION),
 

	
 
	SLE_END()
 
};
engine.h
Show inline comments
 
@@ -140,22 +140,22 @@ void LoadCustomEngineNames(void);
 
void DeleteCustomEngineNames(void);
 

	
 
bool IsEngineBuildable(uint engine, byte type);
 

	
 
enum {
 
	NUM_NORMAL_RAIL_ENGINES = 54,
 
	NUM_MONORAIL_ENGINES = 30,
 
	NUM_MAGLEV_ENGINES = 32,
 
	NUM_TRAIN_ENGINES = NUM_NORMAL_RAIL_ENGINES + NUM_MONORAIL_ENGINES + NUM_MAGLEV_ENGINES,
 
	NUM_ROAD_ENGINES = 88,
 
	NUM_SHIP_ENGINES = 11,
 
	NUM_AIRCRAFT_ENGINES = 41,
 
	TOTAL_NUM_ENGINES = NUM_TRAIN_ENGINES + NUM_ROAD_ENGINES + NUM_SHIP_ENGINES + NUM_AIRCRAFT_ENGINES,
 
	AIRCRAFT_ENGINES_INDEX = NUM_TRAIN_ENGINES + NUM_ROAD_ENGINES + NUM_SHIP_ENGINES,
 
	SHIP_ENGINES_INDEX = NUM_TRAIN_ENGINES + NUM_ROAD_ENGINES,
 
	ROAD_ENGINES_INDEX = NUM_TRAIN_ENGINES,
 
	NUM_MONORAIL_ENGINES    = 30,
 
	NUM_MAGLEV_ENGINES      = 32,
 
	NUM_TRAIN_ENGINES       = NUM_NORMAL_RAIL_ENGINES + NUM_MONORAIL_ENGINES + NUM_MAGLEV_ENGINES,
 
	NUM_ROAD_ENGINES        = 88,
 
	NUM_SHIP_ENGINES        = 11,
 
	NUM_AIRCRAFT_ENGINES    = 41,
 
	TOTAL_NUM_ENGINES       = NUM_TRAIN_ENGINES + NUM_ROAD_ENGINES + NUM_SHIP_ENGINES + NUM_AIRCRAFT_ENGINES,
 
	AIRCRAFT_ENGINES_INDEX  = NUM_TRAIN_ENGINES + NUM_ROAD_ENGINES + NUM_SHIP_ENGINES,
 
	SHIP_ENGINES_INDEX      = NUM_TRAIN_ENGINES + NUM_ROAD_ENGINES,
 
	ROAD_ENGINES_INDEX      = NUM_TRAIN_ENGINES,
 
};
 
VARDEF Engine _engines[TOTAL_NUM_ENGINES];
 
#define FOR_ALL_ENGINES(e) for (e = _engines; e != endof(_engines); e++)
 

	
 
static inline Engine* GetEngine(EngineID i)
 
{
engine_gui.c
Show inline comments
 
@@ -34,17 +34,17 @@ static StringID GetEngineCategoryName(En
 
		return STR_8105_SHIP;
 

	
 
	return STR_8104_AIRCRAFT;
 
}
 

	
 
static const Widget _engine_preview_widgets[] = {
 
{   WWT_CLOSEBOX,   RESIZE_NONE,     5,     0,    10,     0,    13, STR_00C5,			STR_018B_CLOSE_WINDOW},
 
{   WWT_CLOSEBOX,   RESIZE_NONE,     5,     0,    10,     0,    13, STR_00C5,                                  STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION,   RESIZE_NONE,     5,    11,   299,     0,    13, STR_8100_MESSAGE_FROM_VEHICLE_MANUFACTURE, STR_018C_WINDOW_TITLE_DRAG_THIS},
 
{     WWT_IMGBTN,   RESIZE_NONE,     5,     0,   299,    14,   191, 0x0,						STR_NULL},
 
{ WWT_PUSHTXTBTN,   RESIZE_NONE,     5,    85,   144,   172,   183, STR_00C9_NO,		STR_NULL},
 
{ WWT_PUSHTXTBTN,   RESIZE_NONE,     5,   155,   214,   172,   183, STR_00C8_YES,	STR_NULL},
 
{     WWT_IMGBTN,   RESIZE_NONE,     5,     0,   299,    14,   191, 0x0,                                       STR_NULL},
 
{ WWT_PUSHTXTBTN,   RESIZE_NONE,     5,    85,   144,   172,   183, STR_00C9_NO,                               STR_NULL},
 
{ WWT_PUSHTXTBTN,   RESIZE_NONE,     5,   155,   214,   172,   183, STR_00C8_YES,                              STR_NULL},
 
{   WIDGETS_END},
 
};
 

	
 
typedef void DrawEngineProc(int x, int y, EngineID engine, uint32 image_ormod);
 
typedef void DrawEngineInfoProc(EngineID, int x, int y, int maxw);
 

	
fios.h
Show inline comments
 
@@ -9,23 +9,23 @@ typedef struct {
 
	uint64 mtime;
 
	char title[64];
 
	char name[256 - 12 - 64];
 
} FiosItem;
 

	
 
enum {
 
	FIOS_TYPE_DRIVE = 0,
 
	FIOS_TYPE_PARENT = 1,
 
	FIOS_TYPE_DIR = 2,
 
	FIOS_TYPE_FILE = 3,
 
	FIOS_TYPE_OLDFILE = 4,
 
	FIOS_TYPE_SCENARIO = 5,
 
	FIOS_TYPE_OLD_SCENARIO = 6,
 
	FIOS_TYPE_DIRECT = 7,
 
	FIOS_TYPE_PNG = 8,
 
	FIOS_TYPE_BMP = 9,
 
	FIOS_TYPE_INVALID = 255,
 
	FIOS_TYPE_DRIVE        =   0,
 
	FIOS_TYPE_PARENT       =   1,
 
	FIOS_TYPE_DIR          =   2,
 
	FIOS_TYPE_FILE         =   3,
 
	FIOS_TYPE_OLDFILE      =   4,
 
	FIOS_TYPE_SCENARIO     =   5,
 
	FIOS_TYPE_OLD_SCENARIO =   6,
 
	FIOS_TYPE_DIRECT       =   7,
 
	FIOS_TYPE_PNG          =   8,
 
	FIOS_TYPE_BMP          =   9,
 
	FIOS_TYPE_INVALID      = 255,
 
};
 

	
 
/* Variables to display file lists */
 
extern FiosItem *_fios_list; // defined in misc_gui.c
 
extern int _fios_num;        // defined in fios.c, read_only version of _fios_count
 
extern int _saveload_mode;   // defined in misc_gui.c
genworld_gui.c
Show inline comments
 
@@ -55,100 +55,100 @@ static inline void SetNewLandscapeType(b
 
	InvalidateWindowClasses(WC_SELECT_GAME);
 
	InvalidateWindowClasses(WC_GENERATE_LANDSCAPE);
 
}
 

	
 
// no longer static to allow calling from outside module
 
const Widget _generate_landscape_widgets[] = {
 
{  WWT_CLOSEBOX,  RESIZE_NONE, 13,   0,  10,   0,  13, STR_00C5,                STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION, RESIZE_NONE, 13,  11, 337,   0,  13, STR_WORLD_GENERATION_CAPTION,STR_NULL},
 
{     WWT_IMGBTN, RESIZE_NONE, 13,   0, 337,  14, 267, STR_NULL,                STR_NULL},
 
{  WWT_CLOSEBOX,  RESIZE_NONE, 13,   0,  10,   0,  13, STR_00C5,                     STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION, RESIZE_NONE, 13,  11, 337,   0,  13, STR_WORLD_GENERATION_CAPTION, STR_NULL},
 
{     WWT_IMGBTN, RESIZE_NONE, 13,   0, 337,  14, 267, STR_NULL,                     STR_NULL},
 

	
 
{    WWT_PANEL_2, RESIZE_NONE, 12,  10,  86,  24,  78, 0x1312,                  STR_030E_SELECT_TEMPERATE_LANDSCAPE},
 
{    WWT_PANEL_2, RESIZE_NONE, 12,  90, 166,  24,  78, 0x1314,                  STR_030F_SELECT_SUB_ARCTIC_LANDSCAPE},
 
{    WWT_PANEL_2, RESIZE_NONE, 12, 170, 246,  24,  78, 0x1316,                  STR_0310_SELECT_SUB_TROPICAL_LANDSCAPE},
 
{    WWT_PANEL_2, RESIZE_NONE, 12, 250, 326,  24,  78, 0x1318,                  STR_0311_SELECT_TOYLAND_LANDSCAPE},
 
{    WWT_PANEL_2, RESIZE_NONE, 12,  10,  86,  24,  78, 0x1312,                       STR_030E_SELECT_TEMPERATE_LANDSCAPE},
 
{    WWT_PANEL_2, RESIZE_NONE, 12,  90, 166,  24,  78, 0x1314,                       STR_030F_SELECT_SUB_ARCTIC_LANDSCAPE},
 
{    WWT_PANEL_2, RESIZE_NONE, 12, 170, 246,  24,  78, 0x1316,                       STR_0310_SELECT_SUB_TROPICAL_LANDSCAPE},
 
{    WWT_PANEL_2, RESIZE_NONE, 12, 250, 326,  24,  78, 0x1318,                       STR_0311_SELECT_TOYLAND_LANDSCAPE},
 

	
 
{      WWT_PANEL, RESIZE_NONE, 12, 114, 149,  90, 101, STR_NULL,                STR_NULL},
 
{    WWT_TEXTBTN, RESIZE_NONE, 12, 150, 161,  90, 101, STR_0225,                STR_NULL}, // Mapsize X
 
{      WWT_PANEL, RESIZE_NONE, 12, 180, 215,  90, 101, STR_NULL,                STR_NULL},
 
{    WWT_TEXTBTN, RESIZE_NONE, 12, 216, 227,  90, 101, STR_0225,                STR_NULL}, // Mapsize Y
 
{      WWT_PANEL, RESIZE_NONE, 12, 114, 149,  90, 101, STR_NULL,                     STR_NULL},
 
{    WWT_TEXTBTN, RESIZE_NONE, 12, 150, 161,  90, 101, STR_0225,                     STR_NULL}, // Mapsize X
 
{      WWT_PANEL, RESIZE_NONE, 12, 180, 215,  90, 101, STR_NULL,                     STR_NULL},
 
{    WWT_TEXTBTN, RESIZE_NONE, 12, 216, 227,  90, 101, STR_0225,                     STR_NULL}, // Mapsize Y
 

	
 
{      WWT_PANEL, RESIZE_NONE, 12, 114, 163, 112, 123, STR_NULL,                STR_NULL},
 
{    WWT_TEXTBTN, RESIZE_NONE, 12, 164, 175, 112, 123, STR_0225,                STR_NULL}, // Number of towns
 
{      WWT_PANEL, RESIZE_NONE, 12, 114, 163, 130, 141, STR_NULL,                STR_NULL},
 
{    WWT_TEXTBTN, RESIZE_NONE, 12, 164, 175, 130, 141, STR_0225,                STR_NULL}, // Number of industries
 
{      WWT_PANEL, RESIZE_NONE, 12, 114, 163, 112, 123, STR_NULL,                     STR_NULL},
 
{    WWT_TEXTBTN, RESIZE_NONE, 12, 164, 175, 112, 123, STR_0225,                     STR_NULL}, // Number of towns
 
{      WWT_PANEL, RESIZE_NONE, 12, 114, 163, 130, 141, STR_NULL,                     STR_NULL},
 
{    WWT_TEXTBTN, RESIZE_NONE, 12, 164, 175, 130, 141, STR_0225,                     STR_NULL}, // Number of industries
 

	
 
{     WWT_IMGBTN, RESIZE_NONE, 15, 114, 194, 152, 163, STR_NULL,                STR_RANDOM_SEED_HELP}, // Edit box for seed
 
{    WWT_TEXTBTN, RESIZE_NONE, 12, 203, 285, 152, 163, STR_RANDOM,              STR_RANDOM_HELP},
 
{     WWT_IMGBTN, RESIZE_NONE, 15, 114, 194, 152, 163, STR_NULL,                     STR_RANDOM_SEED_HELP}, // Edit box for seed
 
{    WWT_TEXTBTN, RESIZE_NONE, 12, 203, 285, 152, 163, STR_RANDOM,                   STR_RANDOM_HELP},
 

	
 
{    WWT_TEXTBTN, RESIZE_NONE,  6, 243, 326, 228, 257, STR_GENERATE,            STR_NULL}, // Generate button
 
{    WWT_TEXTBTN, RESIZE_NONE,  6, 243, 326, 228, 257, STR_GENERATE,                 STR_NULL}, // Generate button
 

	
 
{     WWT_IMGBTN, RESIZE_NONE, 12, 216, 227, 112, 123, SPR_ARROW_DOWN,          STR_029E_MOVE_THE_STARTING_DATE},
 
{      WWT_PANEL, RESIZE_NONE, 12, 228, 314, 112, 123, 0x0,                     STR_NULL},
 
{     WWT_IMGBTN, RESIZE_NONE, 12, 315, 326, 112, 123, SPR_ARROW_UP,            STR_029F_MOVE_THE_STARTING_DATE},
 
{     WWT_IMGBTN, RESIZE_NONE, 12, 216, 227, 112, 123, SPR_ARROW_DOWN,               STR_029E_MOVE_THE_STARTING_DATE},
 
{      WWT_PANEL, RESIZE_NONE, 12, 228, 314, 112, 123, 0x0,                          STR_NULL},
 
{     WWT_IMGBTN, RESIZE_NONE, 12, 315, 326, 112, 123, SPR_ARROW_UP,                 STR_029F_MOVE_THE_STARTING_DATE},
 

	
 
{     WWT_IMGBTN, RESIZE_NONE, 12, 282, 293, 130, 141, SPR_ARROW_DOWN,          STR_SNOW_LINE_DOWN},
 
{      WWT_PANEL, RESIZE_NONE, 12, 294, 314, 130, 141, 0x0,                     STR_NULL},
 
{     WWT_IMGBTN, RESIZE_NONE, 12, 315, 326, 130, 141, SPR_ARROW_UP,            STR_SNOW_LINE_UP},
 
{     WWT_IMGBTN, RESIZE_NONE, 12, 282, 293, 130, 141, SPR_ARROW_DOWN,               STR_SNOW_LINE_DOWN},
 
{      WWT_PANEL, RESIZE_NONE, 12, 294, 314, 130, 141, 0x0,                          STR_NULL},
 
{     WWT_IMGBTN, RESIZE_NONE, 12, 315, 326, 130, 141, SPR_ARROW_UP,                 STR_SNOW_LINE_UP},
 

	
 
{      WWT_PANEL, RESIZE_NONE, 12, 114, 219, 192, 203, STR_NULL,                STR_NULL},
 
{    WWT_TEXTBTN, RESIZE_NONE, 12, 220, 231, 192, 203, STR_0225,                STR_NULL}, // Tree placer
 
{      WWT_PANEL, RESIZE_NONE, 12, 114, 219, 192, 203, STR_NULL,                     STR_NULL},
 
{    WWT_TEXTBTN, RESIZE_NONE, 12, 220, 231, 192, 203, STR_0225,                     STR_NULL}, // Tree placer
 

	
 
{      WWT_EMPTY, RESIZE_NONE, 12, 114, 231, 174, 185, STR_NULL,                STR_NULL},
 
//{      WWT_PANEL, RESIZE_NONE, 12, 114, 219, 174, 185, STR_NULL,                STR_NULL},
 
{      WWT_PANEL, RESIZE_NONE, 12, 114, 231, 174, 185, STR_NULL,                STR_NULL},
 
//{    WWT_TEXTBTN, RESIZE_NONE, 12, 220, 231, 174, 185, STR_0225,                STR_NULL}, // Landscape generator
 
//{      WWT_PANEL, RESIZE_NONE, 12, 114, 219, 210, 221, STR_NULL,                STR_NULL},
 
{      WWT_PANEL, RESIZE_NONE, 12, 114, 231, 210, 221, STR_NULL,                STR_NULL},
 
//{    WWT_TEXTBTN, RESIZE_NONE, 12, 220, 231, 210, 221, STR_0225,                STR_NULL}, // Terrain type
 
//{      WWT_PANEL, RESIZE_NONE, 12, 114, 219, 228, 239, STR_NULL,                STR_NULL},
 
{      WWT_PANEL, RESIZE_NONE, 12, 114, 231, 228, 239, STR_NULL,                STR_NULL},
 
//{    WWT_TEXTBTN, RESIZE_NONE, 12, 220, 231, 228, 239, STR_0225,                STR_NULL}, // Water quantity
 
{      WWT_PANEL, RESIZE_NONE, 12, 113, 219, 246, 257, STR_NULL,                STR_NULL},
 
{    WWT_TEXTBTN, RESIZE_NONE, 12, 220, 231, 246, 257, STR_0225,                STR_NULL}, // Map smoothness
 
{      WWT_EMPTY, RESIZE_NONE, 12, 114, 231, 174, 185, STR_NULL,                     STR_NULL},
 
//{      WWT_PANEL, RESIZE_NONE, 12, 114, 219, 174, 185, STR_NULL,                     STR_NULL},
 
{      WWT_PANEL, RESIZE_NONE, 12, 114, 231, 174, 185, STR_NULL,                     STR_NULL},
 
//{    WWT_TEXTBTN, RESIZE_NONE, 12, 220, 231, 174, 185, STR_0225,                     STR_NULL}, // Landscape generator
 
//{      WWT_PANEL, RESIZE_NONE, 12, 114, 219, 210, 221, STR_NULL,                     STR_NULL},
 
{      WWT_PANEL, RESIZE_NONE, 12, 114, 231, 210, 221, STR_NULL,                     STR_NULL},
 
//{    WWT_TEXTBTN, RESIZE_NONE, 12, 220, 231, 210, 221, STR_0225,                     STR_NULL}, // Terrain type
 
//{      WWT_PANEL, RESIZE_NONE, 12, 114, 219, 228, 239, STR_NULL,                     STR_NULL},
 
{      WWT_PANEL, RESIZE_NONE, 12, 114, 231, 228, 239, STR_NULL,                     STR_NULL},
 
//{    WWT_TEXTBTN, RESIZE_NONE, 12, 220, 231, 228, 239, STR_0225,                     STR_NULL}, // Water quantity
 
{      WWT_PANEL, RESIZE_NONE, 12, 113, 219, 246, 257, STR_NULL,                     STR_NULL},
 
{    WWT_TEXTBTN, RESIZE_NONE, 12, 220, 231, 246, 257, STR_0225,                     STR_NULL}, // Map smoothness
 
{   WIDGETS_END},
 
};
 

	
 
const Widget _heightmap_load_widgets[] = {
 
{   WWT_CLOSEBOX, RESIZE_NONE, 13,   0,  10,   0,  13, STR_00C5,                STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION, RESIZE_NONE, 13,  11, 337,   0,  13, STR_WORLD_GENERATION_CAPTION,STR_NULL},
 
{     WWT_IMGBTN, RESIZE_NONE, 13,   0, 337,  14, 235, STR_NULL,                STR_NULL},
 
{   WWT_CLOSEBOX, RESIZE_NONE, 13,   0,  10,   0,  13, STR_00C5,                     STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION, RESIZE_NONE, 13,  11, 337,   0,  13, STR_WORLD_GENERATION_CAPTION, STR_NULL},
 
{     WWT_IMGBTN, RESIZE_NONE, 13,   0, 337,  14, 235, STR_NULL,                     STR_NULL},
 

	
 
{    WWT_PANEL_2, RESIZE_NONE, 12,  10,  86,  24,  78, 0x1312,                  STR_030E_SELECT_TEMPERATE_LANDSCAPE},
 
{    WWT_PANEL_2, RESIZE_NONE, 12,  90, 166,  24,  78, 0x1314,                  STR_030F_SELECT_SUB_ARCTIC_LANDSCAPE},
 
{    WWT_PANEL_2, RESIZE_NONE, 12, 170, 246,  24,  78, 0x1316,                  STR_0310_SELECT_SUB_TROPICAL_LANDSCAPE},
 
{    WWT_PANEL_2, RESIZE_NONE, 12, 250, 326,  24,  78, 0x1318,                  STR_0311_SELECT_TOYLAND_LANDSCAPE},
 
{    WWT_PANEL_2, RESIZE_NONE, 12,  10,  86,  24,  78, 0x1312,                       STR_030E_SELECT_TEMPERATE_LANDSCAPE},
 
{    WWT_PANEL_2, RESIZE_NONE, 12,  90, 166,  24,  78, 0x1314,                       STR_030F_SELECT_SUB_ARCTIC_LANDSCAPE},
 
{    WWT_PANEL_2, RESIZE_NONE, 12, 170, 246,  24,  78, 0x1316,                       STR_0310_SELECT_SUB_TROPICAL_LANDSCAPE},
 
{    WWT_PANEL_2, RESIZE_NONE, 12, 250, 326,  24,  78, 0x1318,                       STR_0311_SELECT_TOYLAND_LANDSCAPE},
 

	
 
{      WWT_PANEL, RESIZE_NONE, 12, 114, 149, 112, 123, STR_NULL,                STR_NULL},
 
{    WWT_TEXTBTN, RESIZE_NONE, 12, 150, 161, 112, 123, STR_0225,                STR_NULL}, // Mapsize X
 
{      WWT_PANEL, RESIZE_NONE, 12, 180, 215, 112, 123, STR_NULL,                STR_NULL},
 
{    WWT_TEXTBTN, RESIZE_NONE, 12, 216, 227, 112, 123, STR_0225,                STR_NULL}, // Mapsize Y
 
{      WWT_PANEL, RESIZE_NONE, 12, 114, 149, 112, 123, STR_NULL,                     STR_NULL},
 
{    WWT_TEXTBTN, RESIZE_NONE, 12, 150, 161, 112, 123, STR_0225,                     STR_NULL}, // Mapsize X
 
{      WWT_PANEL, RESIZE_NONE, 12, 180, 215, 112, 123, STR_NULL,                     STR_NULL},
 
{    WWT_TEXTBTN, RESIZE_NONE, 12, 216, 227, 112, 123, STR_0225,                     STR_NULL}, // Mapsize Y
 

	
 
{      WWT_PANEL, RESIZE_NONE, 12, 114, 163, 134, 145, STR_NULL,                STR_NULL},
 
{    WWT_TEXTBTN, RESIZE_NONE, 12, 164, 175, 134, 145, STR_0225,                STR_NULL}, // Number of towns
 
{      WWT_PANEL, RESIZE_NONE, 12, 114, 163, 152, 163, STR_NULL,                STR_NULL},
 
{    WWT_TEXTBTN, RESIZE_NONE, 12, 164, 175, 152, 163, STR_0225,                STR_NULL}, // Number of industries
 
{      WWT_PANEL, RESIZE_NONE, 12, 114, 163, 134, 145, STR_NULL,                     STR_NULL},
 
{    WWT_TEXTBTN, RESIZE_NONE, 12, 164, 175, 134, 145, STR_0225,                     STR_NULL}, // Number of towns
 
{      WWT_PANEL, RESIZE_NONE, 12, 114, 163, 152, 163, STR_NULL,                     STR_NULL},
 
{    WWT_TEXTBTN, RESIZE_NONE, 12, 164, 175, 152, 163, STR_0225,                     STR_NULL}, // Number of industries
 

	
 
{     WWT_IMGBTN, RESIZE_NONE, 15, 114, 194, 174, 185, STR_NULL,                STR_RANDOM_SEED_HELP}, // Edit box for seed
 
{    WWT_TEXTBTN, RESIZE_NONE, 12, 203, 285, 174, 185, STR_RANDOM,              STR_RANDOM_HELP},
 
{     WWT_IMGBTN, RESIZE_NONE, 15, 114, 194, 174, 185, STR_NULL,                     STR_RANDOM_SEED_HELP}, // Edit box for seed
 
{    WWT_TEXTBTN, RESIZE_NONE, 12, 203, 285, 174, 185, STR_RANDOM,                   STR_RANDOM_HELP},
 

	
 
{    WWT_TEXTBTN, RESIZE_NONE,  6, 243, 326, 196, 225, STR_GENERATE,            STR_NULL}, // Generate button
 
{    WWT_TEXTBTN, RESIZE_NONE,  6, 243, 326, 196, 225, STR_GENERATE,                 STR_NULL}, // Generate button
 

	
 
{     WWT_IMGBTN, RESIZE_NONE, 12, 216, 227, 134, 145, SPR_ARROW_DOWN,          STR_029E_MOVE_THE_STARTING_DATE},
 
{      WWT_PANEL, RESIZE_NONE, 12, 228, 314, 134, 145, 0x0,                     STR_NULL},
 
{     WWT_IMGBTN, RESIZE_NONE, 12, 315, 326, 134, 145, SPR_ARROW_UP,            STR_029F_MOVE_THE_STARTING_DATE},
 
{     WWT_IMGBTN, RESIZE_NONE, 12, 216, 227, 134, 145, SPR_ARROW_DOWN,               STR_029E_MOVE_THE_STARTING_DATE},
 
{      WWT_PANEL, RESIZE_NONE, 12, 228, 314, 134, 145, 0x0,                          STR_NULL},
 
{     WWT_IMGBTN, RESIZE_NONE, 12, 315, 326, 134, 145, SPR_ARROW_UP,                 STR_029F_MOVE_THE_STARTING_DATE},
 

	
 
{     WWT_IMGBTN, RESIZE_NONE, 12, 282, 293, 152, 163, SPR_ARROW_DOWN,          STR_SNOW_LINE_DOWN},
 
{      WWT_PANEL, RESIZE_NONE, 12, 294, 314, 152, 163, 0x0,                     STR_NULL},
 
{     WWT_IMGBTN, RESIZE_NONE, 12, 315, 326, 152, 163, SPR_ARROW_UP,            STR_SNOW_LINE_UP},
 
{     WWT_IMGBTN, RESIZE_NONE, 12, 282, 293, 152, 163, SPR_ARROW_DOWN,               STR_SNOW_LINE_DOWN},
 
{      WWT_PANEL, RESIZE_NONE, 12, 294, 314, 152, 163, 0x0,                          STR_NULL},
 
{     WWT_IMGBTN, RESIZE_NONE, 12, 315, 326, 152, 163, SPR_ARROW_UP,                 STR_SNOW_LINE_UP},
 

	
 
{      WWT_PANEL, RESIZE_NONE, 12, 114, 219, 196, 207, STR_NULL,                STR_NULL},
 
{    WWT_TEXTBTN, RESIZE_NONE, 12, 220, 231, 196, 207, STR_0225,                STR_NULL}, // Tree placer
 
{      WWT_PANEL, RESIZE_NONE, 12, 114, 219, 196, 207, STR_NULL,                     STR_NULL},
 
{    WWT_TEXTBTN, RESIZE_NONE, 12, 220, 231, 196, 207, STR_0225,                     STR_NULL}, // Tree placer
 

	
 
{      WWT_PANEL, RESIZE_NONE, 12, 114, 219, 214, 225, STR_NULL,                STR_NULL},
 
{    WWT_TEXTBTN, RESIZE_NONE, 12, 220, 231, 214, 225, STR_0225,                STR_NULL}, // Heightmap rotation
 
{      WWT_PANEL, RESIZE_NONE, 12, 114, 219, 214, 225, STR_NULL,                     STR_NULL},
 
{    WWT_TEXTBTN, RESIZE_NONE, 12, 220, 231, 214, 225, STR_0225,                     STR_NULL}, // Heightmap rotation
 
{   WIDGETS_END},
 
};
 

	
 
static void StartGeneratingLandscape(glwp_modes mode)
 
{
 
	/* If we want to go to the editor, and aren't yet, we need to delay
gfx.c
Show inline comments
 
@@ -268,18 +268,18 @@ static inline SpriteID GetFontBase(FontS
 
// 10 - newline
 
// 11-14 -
 
// 15-31 - 17 colors
 

	
 

	
 
enum {
 
	ASCII_SETX = 1,
 
	ASCII_SETXY = 2,
 
	ASCII_SETX       =  1,
 
	ASCII_SETXY      =  2,
 

	
 
	ASCII_TINYFONT = 8,
 
	ASCII_BIGFONT = 9,
 
	ASCII_NL = 10,
 
	ASCII_TINYFONT   =  8,
 
	ASCII_BIGFONT    =  9,
 
	ASCII_NL         = 10,
 

	
 
	ASCII_COLORSTART = 15,
 
};
 

	
 
/** Truncate a given string to a maximum width if neccessary.
 
 * If the string is truncated, add three dots ('...') to show this.
graph_gui.c
Show inline comments
 
@@ -254,23 +254,23 @@ static void GraphLegendWndProc(Window *w
 
		}
 
		break;
 
	}
 
}
 

	
 
static const Widget _graph_legend_widgets[] = {
 
{   WWT_CLOSEBOX,   RESIZE_NONE,    14,     0,    10,     0,    13, STR_00C5, STR_018B_CLOSE_WINDOW},
 
{   WWT_CLOSEBOX,   RESIZE_NONE,    14,     0,    10,     0,    13, STR_00C5,                       STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION,   RESIZE_NONE,    14,    11,   249,     0,    13, STR_704E_KEY_TO_COMPANY_GRAPHS, STR_018C_WINDOW_TITLE_DRAG_THIS},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     0,   249,    14,   113, 0x0,STR_NULL},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     2,   247,    16,    27, 0x0,STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     2,   247,    28,    39, 0x0,STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     2,   247,    40,    51, 0x0,STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     2,   247,    52,    63, 0x0,STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     2,   247,    64,    75, 0x0,STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     2,   247,    76,    87, 0x0,STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     2,   247,    88,    99, 0x0,STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     2,   247,   100,   111, 0x0,STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     0,   249,    14,   113, 0x0,                            STR_NULL},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     2,   247,    16,    27, 0x0,                            STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     2,   247,    28,    39, 0x0,                            STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     2,   247,    40,    51, 0x0,                            STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     2,   247,    52,    63, 0x0,                            STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     2,   247,    64,    75, 0x0,                            STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     2,   247,    76,    87, 0x0,                            STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     2,   247,    88,    99, 0x0,                            STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     2,   247,   100,   111, 0x0,                            STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
 
{   WIDGETS_END},
 
};
 

	
 
static const WindowDesc _graph_legend_desc = {
 
	-1, -1, 250, 114,
 
	WC_GRAPH_LEGEND,0,
 
@@ -362,16 +362,16 @@ static void OperatingProfitWndProc(Windo
 
			ShowGraphLegend();
 
		break;
 
	}
 
}
 

	
 
static const Widget _operating_profit_widgets[] = {
 
{   WWT_CLOSEBOX,   RESIZE_NONE,    14,     0,    10,     0,    13, STR_00C5,												STR_018B_CLOSE_WINDOW},
 
{   WWT_CLOSEBOX,   RESIZE_NONE,    14,     0,    10,     0,    13, STR_00C5,                        STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION,   RESIZE_NONE,    14,    11,   525,     0,    13, STR_7025_OPERATING_PROFIT_GRAPH, STR_018C_WINDOW_TITLE_DRAG_THIS},
 
{ WWT_PUSHTXTBTN,   RESIZE_NONE,    14,   526,   575,     0,    13, STR_704C_KEY,										STR_704D_SHOW_KEY_TO_GRAPHS},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     0,   575,    14,   173, 0x0,															STR_NULL},
 
{ WWT_PUSHTXTBTN,   RESIZE_NONE,    14,   526,   575,     0,    13, STR_704C_KEY,                    STR_704D_SHOW_KEY_TO_GRAPHS},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     0,   575,    14,   173, 0x0,                             STR_NULL},
 
{   WIDGETS_END},
 
};
 

	
 
static const WindowDesc _operating_profit_desc = {
 
	-1, -1, 576, 174,
 
	WC_OPERATING_PROFIT,0,
 
@@ -437,16 +437,16 @@ static void IncomeGraphWndProc(Window *w
 
			ShowGraphLegend();
 
		break;
 
	}
 
}
 

	
 
static const Widget _income_graph_widgets[] = {
 
{   WWT_CLOSEBOX,   RESIZE_NONE,    14,     0,    10,     0,    13, STR_00C5,							STR_018B_CLOSE_WINDOW},
 
{   WWT_CLOSEBOX,   RESIZE_NONE,    14,     0,    10,     0,    13, STR_00C5,              STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION,   RESIZE_NONE,    14,    11,   525,     0,    13, STR_7022_INCOME_GRAPH, STR_018C_WINDOW_TITLE_DRAG_THIS},
 
{ WWT_PUSHTXTBTN,   RESIZE_NONE,    14,   526,   575,     0,    13, STR_704C_KEY,					STR_704D_SHOW_KEY_TO_GRAPHS},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     0,   575,    14,   141, 0x0,										STR_NULL},
 
{ WWT_PUSHTXTBTN,   RESIZE_NONE,    14,   526,   575,     0,    13, STR_704C_KEY,          STR_704D_SHOW_KEY_TO_GRAPHS},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     0,   575,    14,   141, 0x0,                   STR_NULL},
 
{   WIDGETS_END},
 
};
 

	
 
static const WindowDesc _income_graph_desc = {
 
	-1, -1, 576, 142,
 
	WC_INCOME_GRAPH,0,
 
@@ -510,16 +510,16 @@ static void DeliveredCargoGraphWndProc(W
 
			ShowGraphLegend();
 
		break;
 
	}
 
}
 

	
 
static const Widget _delivered_cargo_graph_widgets[] = {
 
{   WWT_CLOSEBOX,   RESIZE_NONE,    14,     0,    10,     0,    13, STR_00C5,													STR_018B_CLOSE_WINDOW},
 
{   WWT_CLOSEBOX,   RESIZE_NONE,    14,     0,    10,     0,    13, STR_00C5,                          STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION,   RESIZE_NONE,    14,    11,   525,     0,    13, STR_7050_UNITS_OF_CARGO_DELIVERED, STR_018C_WINDOW_TITLE_DRAG_THIS},
 
{ WWT_PUSHTXTBTN,   RESIZE_NONE,    14,   526,   575,     0,    13, STR_704C_KEY,											STR_704D_SHOW_KEY_TO_GRAPHS},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     0,   575,    14,   141, 0x0,																STR_NULL},
 
{ WWT_PUSHTXTBTN,   RESIZE_NONE,    14,   526,   575,     0,    13, STR_704C_KEY,                      STR_704D_SHOW_KEY_TO_GRAPHS},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     0,   575,    14,   141, 0x0,                               STR_NULL},
 
{   WIDGETS_END},
 
};
 

	
 
static const WindowDesc _delivered_cargo_graph_desc = {
 
	-1, -1, 576, 142,
 
	WC_DELIVERED_CARGO,0,
 
@@ -585,17 +585,17 @@ static void PerformanceHistoryWndProc(Wi
 
			ShowPerformanceRatingDetail();
 
		break;
 
	}
 
}
 

	
 
static const Widget _performance_history_widgets[] = {
 
{   WWT_CLOSEBOX,   RESIZE_NONE,    14,     0,    10,     0,    13, STR_00C5,															STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION,   RESIZE_NONE,    14,    11,   475,     0,    13, STR_7051_COMPANY_PERFORMANCE_RATINGS,	STR_018C_WINDOW_TITLE_DRAG_THIS},
 
{ WWT_PUSHTXTBTN,   RESIZE_NONE,    14,   526,   575,     0,    13, STR_704C_KEY,													STR_704D_SHOW_KEY_TO_GRAPHS},
 
{ WWT_PUSHTXTBTN,   RESIZE_NONE,    14,   476,   525,     0,    13, STR_PERFORMANCE_DETAIL_KEY,						STR_704D_SHOW_KEY_TO_GRAPHS},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     0,   575,    14,   237, 0x0,																		STR_NULL},
 
{   WWT_CLOSEBOX,   RESIZE_NONE,    14,     0,    10,     0,    13, STR_00C5,                             STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION,   RESIZE_NONE,    14,    11,   475,     0,    13, STR_7051_COMPANY_PERFORMANCE_RATINGS, STR_018C_WINDOW_TITLE_DRAG_THIS},
 
{ WWT_PUSHTXTBTN,   RESIZE_NONE,    14,   526,   575,     0,    13, STR_704C_KEY,                         STR_704D_SHOW_KEY_TO_GRAPHS},
 
{ WWT_PUSHTXTBTN,   RESIZE_NONE,    14,   476,   525,     0,    13, STR_PERFORMANCE_DETAIL_KEY,           STR_704D_SHOW_KEY_TO_GRAPHS},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     0,   575,    14,   237, 0x0,                                  STR_NULL},
 
{   WIDGETS_END},
 
};
 

	
 
static const WindowDesc _performance_history_desc = {
 
	-1, -1, 576, 238,
 
	WC_PERFORMANCE_HISTORY,0,
 
@@ -659,16 +659,16 @@ static void CompanyValueGraphWndProc(Win
 
			ShowGraphLegend();
 
		break;
 
	}
 
}
 

	
 
static const Widget _company_value_graph_widgets[] = {
 
{   WWT_CLOSEBOX,   RESIZE_NONE,    14,     0,    10,     0,    13, STR_00C5,								STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION,   RESIZE_NONE,    14,    11,   525,     0,    13, STR_7052_COMPANY_VALUES,	STR_018C_WINDOW_TITLE_DRAG_THIS},
 
{ WWT_PUSHTXTBTN,   RESIZE_NONE,    14,   526,   575,     0,    13, STR_704C_KEY,						STR_704D_SHOW_KEY_TO_GRAPHS},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     0,   575,    14,   237, 0x0,											STR_NULL},
 
{   WWT_CLOSEBOX,   RESIZE_NONE,    14,     0,    10,     0,    13, STR_00C5,                STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION,   RESIZE_NONE,    14,    11,   525,     0,    13, STR_7052_COMPANY_VALUES, STR_018C_WINDOW_TITLE_DRAG_THIS},
 
{ WWT_PUSHTXTBTN,   RESIZE_NONE,    14,   526,   575,     0,    13, STR_704C_KEY,            STR_704D_SHOW_KEY_TO_GRAPHS},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     0,   575,    14,   237, 0x0,                     STR_NULL},
 
{   WIDGETS_END},
 
};
 

	
 
static const WindowDesc _company_value_graph_desc = {
 
	-1, -1, 576, 238,
 
	WC_COMPANY_VALUE,0,
 
@@ -749,27 +749,27 @@ static void CargoPaymentRatesWndProc(Win
 
		}
 
	} break;
 
	}
 
}
 

	
 
static const Widget _cargo_payment_rates_widgets[] = {
 
{   WWT_CLOSEBOX,   RESIZE_NONE,    14,     0,    10,     0,    13, STR_00C5,											STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION,   RESIZE_NONE,    14,    11,   567,     0,    13, STR_7061_CARGO_PAYMENT_RATES,	STR_018C_WINDOW_TITLE_DRAG_THIS},
 
{      WWT_PANEL,   RESIZE_NONE,    14,     0,   567,    14,   141, 0x0,														STR_NULL},
 
{      WWT_PANEL,   RESIZE_NONE,    12,   493,   562,    24,    31, 0x0,														STR_7064_TOGGLE_GRAPH_FOR_CARGO},
 
{      WWT_PANEL,   RESIZE_NONE,    12,   493,   562,    32,    39, 0x0,														STR_7064_TOGGLE_GRAPH_FOR_CARGO},
 
{      WWT_PANEL,   RESIZE_NONE,    12,   493,   562,    40,    47, 0x0,														STR_7064_TOGGLE_GRAPH_FOR_CARGO},
 
{      WWT_PANEL,   RESIZE_NONE,    12,   493,   562,    48,    55, 0x0,														STR_7064_TOGGLE_GRAPH_FOR_CARGO},
 
{      WWT_PANEL,   RESIZE_NONE,    12,   493,   562,    56,    63, 0x0,														STR_7064_TOGGLE_GRAPH_FOR_CARGO},
 
{      WWT_PANEL,   RESIZE_NONE,    12,   493,   562,    64,    71, 0x0,														STR_7064_TOGGLE_GRAPH_FOR_CARGO},
 
{      WWT_PANEL,   RESIZE_NONE,    12,   493,   562,    72,    79, 0x0,														STR_7064_TOGGLE_GRAPH_FOR_CARGO},
 
{      WWT_PANEL,   RESIZE_NONE,    12,   493,   562,    80,    87, 0x0,														STR_7064_TOGGLE_GRAPH_FOR_CARGO},
 
{      WWT_PANEL,   RESIZE_NONE,    12,   493,   562,    88,    95, 0x0,														STR_7064_TOGGLE_GRAPH_FOR_CARGO},
 
{      WWT_PANEL,   RESIZE_NONE,    12,   493,   562,    96,   103, 0x0,														STR_7064_TOGGLE_GRAPH_FOR_CARGO},
 
{      WWT_PANEL,   RESIZE_NONE,    12,   493,   562,   104,   111, 0x0,														STR_7064_TOGGLE_GRAPH_FOR_CARGO},
 
{      WWT_PANEL,   RESIZE_NONE,    12,   493,   562,   112,   119, 0x0,														STR_7064_TOGGLE_GRAPH_FOR_CARGO},
 
{   WWT_CLOSEBOX,   RESIZE_NONE,    14,     0,    10,     0,    13, STR_00C5,                     STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION,   RESIZE_NONE,    14,    11,   567,     0,    13, STR_7061_CARGO_PAYMENT_RATES, STR_018C_WINDOW_TITLE_DRAG_THIS},
 
{      WWT_PANEL,   RESIZE_NONE,    14,     0,   567,    14,   141, 0x0,                          STR_NULL},
 
{      WWT_PANEL,   RESIZE_NONE,    12,   493,   562,    24,    31, 0x0,                          STR_7064_TOGGLE_GRAPH_FOR_CARGO},
 
{      WWT_PANEL,   RESIZE_NONE,    12,   493,   562,    32,    39, 0x0,                          STR_7064_TOGGLE_GRAPH_FOR_CARGO},
 
{      WWT_PANEL,   RESIZE_NONE,    12,   493,   562,    40,    47, 0x0,                          STR_7064_TOGGLE_GRAPH_FOR_CARGO},
 
{      WWT_PANEL,   RESIZE_NONE,    12,   493,   562,    48,    55, 0x0,                          STR_7064_TOGGLE_GRAPH_FOR_CARGO},
 
{      WWT_PANEL,   RESIZE_NONE,    12,   493,   562,    56,    63, 0x0,                          STR_7064_TOGGLE_GRAPH_FOR_CARGO},
 
{      WWT_PANEL,   RESIZE_NONE,    12,   493,   562,    64,    71, 0x0,                          STR_7064_TOGGLE_GRAPH_FOR_CARGO},
 
{      WWT_PANEL,   RESIZE_NONE,    12,   493,   562,    72,    79, 0x0,                          STR_7064_TOGGLE_GRAPH_FOR_CARGO},
 
{      WWT_PANEL,   RESIZE_NONE,    12,   493,   562,    80,    87, 0x0,                          STR_7064_TOGGLE_GRAPH_FOR_CARGO},
 
{      WWT_PANEL,   RESIZE_NONE,    12,   493,   562,    88,    95, 0x0,                          STR_7064_TOGGLE_GRAPH_FOR_CARGO},
 
{      WWT_PANEL,   RESIZE_NONE,    12,   493,   562,    96,   103, 0x0,                          STR_7064_TOGGLE_GRAPH_FOR_CARGO},
 
{      WWT_PANEL,   RESIZE_NONE,    12,   493,   562,   104,   111, 0x0,                          STR_7064_TOGGLE_GRAPH_FOR_CARGO},
 
{      WWT_PANEL,   RESIZE_NONE,    12,   493,   562,   112,   119, 0x0,                          STR_7064_TOGGLE_GRAPH_FOR_CARGO},
 
{   WIDGETS_END},
 
};
 

	
 
static const WindowDesc _cargo_payment_rates_desc = {
 
	-1, -1, 568, 142,
 
	WC_PAYMENT_RATES,0,
 
@@ -1052,35 +1052,35 @@ static void PerformanceRatingDetailWndPr
 
			break;
 
		}
 
	}
 
}
 

	
 
static const Widget _performance_rating_detail_widgets[] = {
 
{   WWT_CLOSEBOX,   RESIZE_NONE,    14,     0,    10,     0,    13, STR_00C5,								STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION,   RESIZE_NONE,    14,    11,   298,     0,    13, STR_PERFORMANCE_DETAIL,	STR_018C_WINDOW_TITLE_DRAG_THIS},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     0,   298,    14,    27, 0x0,											STR_NULL},
 
{   WWT_CLOSEBOX,   RESIZE_NONE,    14,     0,    10,     0,    13, STR_00C5,               STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION,   RESIZE_NONE,    14,    11,   298,     0,    13, STR_PERFORMANCE_DETAIL, STR_018C_WINDOW_TITLE_DRAG_THIS},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     0,   298,    14,    27, 0x0,                    STR_NULL},
 

	
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     0,   298,    28,    47, 0x0,STR_PERFORMANCE_DETAIL_VEHICLES_TIP},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     0,   298,    48,    67, 0x0,STR_PERFORMANCE_DETAIL_STATIONS_TIP},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     0,   298,    68,    87, 0x0,STR_PERFORMANCE_DETAIL_MIN_PROFIT_TIP},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     0,   298,    88,   107, 0x0,STR_PERFORMANCE_DETAIL_MIN_INCOME_TIP},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     0,   298,   108,   127, 0x0,STR_PERFORMANCE_DETAIL_MAX_INCOME_TIP},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     0,   298,   128,   147, 0x0,STR_PERFORMANCE_DETAIL_DELIVERED_TIP},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     0,   298,   148,   167, 0x0,STR_PERFORMANCE_DETAIL_CARGO_TIP},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     0,   298,   168,   187, 0x0,STR_PERFORMANCE_DETAIL_MONEY_TIP},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     0,   298,   188,   207, 0x0,STR_PERFORMANCE_DETAIL_LOAN_TIP},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     0,   298,   208,   227, 0x0,STR_PERFORMANCE_DETAIL_TOTAL_TIP},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     0,   298,    28,    47, 0x0,                    STR_PERFORMANCE_DETAIL_VEHICLES_TIP},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     0,   298,    48,    67, 0x0,                    STR_PERFORMANCE_DETAIL_STATIONS_TIP},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     0,   298,    68,    87, 0x0,                    STR_PERFORMANCE_DETAIL_MIN_PROFIT_TIP},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     0,   298,    88,   107, 0x0,                    STR_PERFORMANCE_DETAIL_MIN_INCOME_TIP},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     0,   298,   108,   127, 0x0,                    STR_PERFORMANCE_DETAIL_MAX_INCOME_TIP},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     0,   298,   128,   147, 0x0,                    STR_PERFORMANCE_DETAIL_DELIVERED_TIP},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     0,   298,   148,   167, 0x0,                    STR_PERFORMANCE_DETAIL_CARGO_TIP},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     0,   298,   168,   187, 0x0,                    STR_PERFORMANCE_DETAIL_MONEY_TIP},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     0,   298,   188,   207, 0x0,                    STR_PERFORMANCE_DETAIL_LOAN_TIP},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     0,   298,   208,   227, 0x0,                    STR_PERFORMANCE_DETAIL_TOTAL_TIP},
 

	
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     2,    38,    14,    26, 0x0,STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,    39,    75,    14,    26, 0x0,STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,    76,   112,    14,    26, 0x0,STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,   113,   149,    14,    26, 0x0,STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,   150,   186,    14,    26, 0x0,STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,   187,   223,    14,    26, 0x0,STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,   224,   260,    14,    26, 0x0,STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,   261,   297,    14,    26, 0x0,STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,     2,    38,    14,    26, 0x0,                    STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,    39,    75,    14,    26, 0x0,                    STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,    76,   112,    14,    26, 0x0,                    STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,   113,   149,    14,    26, 0x0,                    STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,   150,   186,    14,    26, 0x0,                    STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,   187,   223,    14,    26, 0x0,                    STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,   224,   260,    14,    26, 0x0,                    STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
 
{     WWT_IMGBTN,   RESIZE_NONE,    14,   261,   297,    14,    26, 0x0,                    STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
 
{   WIDGETS_END},
 
};
 

	
 
static const WindowDesc _performance_rating_detail_desc = {
 
	-1, -1, 299, 228,
 
	WC_PERFORMANCE_DETAIL,0,
 
@@ -1205,18 +1205,18 @@ static void SignListWndProc(Window *w, W
 
		w->vscroll.cap += e->sizing.diff.y / 10;
 
		break;
 
	}
 
}
 

	
 
static const Widget _sign_list_widget[] = {
 
{   WWT_CLOSEBOX,   RESIZE_NONE,    14,     0,    10,     0,    13, STR_00C5,									STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION,  RESIZE_RIGHT,    14,    11,   345,     0,    13, STR_SIGN_LIST_CAPTION,		STR_018C_WINDOW_TITLE_DRAG_THIS},
 
{  WWT_STICKYBOX,     RESIZE_LR,    14,   346,   357,     0,    13, 0x0,											STR_STICKY_BUTTON},
 
{      WWT_PANEL,     RESIZE_RB,    14,     0,   345,    14,   137, 0x0,											STR_NULL},
 
{  WWT_SCROLLBAR,    RESIZE_LRB,    14,   346,   357,    14,   125, 0x0,											STR_0190_SCROLL_BAR_SCROLLS_LIST},
 
{  WWT_RESIZEBOX,   RESIZE_LRTB,    14,   346,   357,   126,   137, 0x0,											STR_RESIZE_BUTTON},
 
{   WWT_CLOSEBOX,   RESIZE_NONE,    14,     0,    10,     0,    13, STR_00C5,              STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION,  RESIZE_RIGHT,    14,    11,   345,     0,    13, STR_SIGN_LIST_CAPTION, STR_018C_WINDOW_TITLE_DRAG_THIS},
 
{  WWT_STICKYBOX,     RESIZE_LR,    14,   346,   357,     0,    13, 0x0,                   STR_STICKY_BUTTON},
 
{      WWT_PANEL,     RESIZE_RB,    14,     0,   345,    14,   137, 0x0,                   STR_NULL},
 
{  WWT_SCROLLBAR,    RESIZE_LRB,    14,   346,   357,    14,   125, 0x0,                   STR_0190_SCROLL_BAR_SCROLLS_LIST},
 
{  WWT_RESIZEBOX,   RESIZE_LRTB,    14,   346,   357,   126,   137, 0x0,                   STR_RESIZE_BUTTON},
 
{   WIDGETS_END},
 
};
 

	
 
static const WindowDesc _sign_list_desc = {
 
	-1, -1, 358, 138,
 
	WC_SIGN_LIST,0,
gui.h
Show inline comments
 
@@ -130,14 +130,14 @@ extern const byte _fios_colors[];
 
void ShowNetworkGameWindow(void);
 

	
 
/* bridge_gui.c */
 
void ShowBuildBridgeWindow(uint start, uint end, byte type);
 

	
 
enum {
 
	ZOOM_IN = 0,
 
	ZOOM_OUT = 1,
 
	ZOOM_IN   = 0,
 
	ZOOM_OUT  = 1,
 
	ZOOM_NONE = 2, // hack, used to update the button status
 
};
 

	
 
bool DoZoomInOutWindow(int how, Window *w);
 
void ShowBuildIndustryWindow(void);
 
void ShowQueryString(StringID str, StringID caption, uint maxlen, uint maxwidth, WindowClass window_class, WindowNumber window_number, CharSetFilter afilter);
industry.h
Show inline comments
 
@@ -105,51 +105,51 @@ VARDEF bool _industry_sort_dirty;
 

	
 

	
 
void DeleteIndustry(Industry *is);
 
void PlantRandomFarmField(const Industry *i);
 

	
 
enum {
 
	IT_COAL_MINE = 0,
 
	IT_POWER_STATION = 1,
 
	IT_SAWMILL = 2,
 
	IT_FOREST = 3,
 
	IT_OIL_REFINERY = 4,
 
	IT_OIL_RIG = 5,
 
	IT_FACTORY = 6,
 
	IT_PRINTING_WORKS = 7,
 
	IT_STEEL_MILL = 8,
 
	IT_FARM = 9,
 
	IT_COPPER_MINE = 10,
 
	IT_OIL_WELL = 11,
 
	IT_BANK_TEMP = 12,
 
	IT_FOOD_PROCESS = 13,
 
	IT_PAPER_MILL = 14,
 
	IT_GOLD_MINE = 15,
 
	IT_BANK_TROPIC_ARCTIC = 16,
 
	IT_DIAMOND_MINE = 17,
 
	IT_IRON_MINE = 18,
 
	IT_FRUIT_PLANTATION = 19,
 
	IT_RUBBER_PLANTATION = 20,
 
	IT_WATER_SUPPLY = 21,
 
	IT_WATER_TOWER = 22,
 
	IT_FACTORY_2 = 23,
 
	IT_FARM_2 = 24,
 
	IT_LUMBER_MILL = 25,
 
	IT_COTTON_CANDY = 26,
 
	IT_CANDY_FACTORY = 27,
 
	IT_BATTERY_FARM = 28,
 
	IT_COLA_WELLS = 29,
 
	IT_TOY_SHOP = 30,
 
	IT_TOY_FACTORY = 31,
 
	IT_PLASTIC_FOUNTAINS = 32,
 
	IT_FIZZY_DRINK_FACTORY = 33,
 
	IT_BUBBLE_GENERATOR = 34,
 
	IT_TOFFEE_QUARRY = 35,
 
	IT_SUGAR_MINE = 36,
 
	IT_COAL_MINE           =   0,
 
	IT_POWER_STATION       =   1,
 
	IT_SAWMILL             =   2,
 
	IT_FOREST              =   3,
 
	IT_OIL_REFINERY        =   4,
 
	IT_OIL_RIG             =   5,
 
	IT_FACTORY             =   6,
 
	IT_PRINTING_WORKS      =   7,
 
	IT_STEEL_MILL          =   8,
 
	IT_FARM                =   9,
 
	IT_COPPER_MINE         =  10,
 
	IT_OIL_WELL            =  11,
 
	IT_BANK_TEMP           =  12,
 
	IT_FOOD_PROCESS        =  13,
 
	IT_PAPER_MILL          =  14,
 
	IT_GOLD_MINE           =  15,
 
	IT_BANK_TROPIC_ARCTIC  =  16,
 
	IT_DIAMOND_MINE        =  17,
 
	IT_IRON_MINE           =  18,
 
	IT_FRUIT_PLANTATION    =  19,
 
	IT_RUBBER_PLANTATION   =  20,
 
	IT_WATER_SUPPLY        =  21,
 
	IT_WATER_TOWER         =  22,
 
	IT_FACTORY_2           =  23,
 
	IT_FARM_2              =  24,
 
	IT_LUMBER_MILL         =  25,
 
	IT_COTTON_CANDY        =  26,
 
	IT_CANDY_FACTORY       =  27,
 
	IT_BATTERY_FARM        =  28,
 
	IT_COLA_WELLS          =  29,
 
	IT_TOY_SHOP            =  30,
 
	IT_TOY_FACTORY         =  31,
 
	IT_PLASTIC_FOUNTAINS   =  32,
 
	IT_FIZZY_DRINK_FACTORY =  33,
 
	IT_BUBBLE_GENERATOR    =  34,
 
	IT_TOFFEE_QUARRY       =  35,
 
	IT_SUGAR_MINE          =  36,
 
	IT_END,
 
	IT_INVALID = 255,
 
	IT_INVALID             = 255,
 
};
 

	
 
typedef enum IndustryLifeTypes {
 
	INDUSTRYLIFE_NOT_CLOSABLE,     ///< Industry can never close
 
	INDUSTRYLIFE_PRODUCTION,       ///< Industry can close and change of production
 
	INDUSTRYLIFE_CLOSABLE,         ///< Industry can only close (no production change)
industry_cmd.c
Show inline comments
 
@@ -591,15 +591,15 @@ static void MakeIndustryTileBigger(TileI
 

	
 
static void TileLoopIndustry_BubbleGenerator(TileIndex tile)
 
{
 
	int dir;
 
	Vehicle *v;
 
	static const int8 _tileloop_ind_case_161[12] = {
 
		11, 0, -4, -14,
 
		-4, -10, -4, 1,
 
		49, 59, 60, 65,
 
		11,   0, -4, -14,
 
		-4, -10, -4,   1,
 
		49,  59, 60,  65,
 
	};
 

	
 
	SndPlayTileFx(SND_2E_EXTRACT_AND_POP, tile);
 

	
 
	dir = Random() & 3;
 

	
 
@@ -1157,17 +1157,17 @@ static const byte _industry_section_bits
 
	16, 16, 16, 16, 16, 16, 16, 16,
 
	16, 16, 16, 16, 16, 16, 16, 16,
 
	16, 16, 16, 16, 16, 16, 16, 16,
 
	16, 16, 16, 16, 16, 16, 16, 16,
 
	16, 16, 16, 16, 16, 16, 16, 16,
 
	16, 16, 16, 16, 16, 16, 16, 16,
 
	16, 16, 4, 2, 16, 16, 16, 16,
 
	16, 16,  4,  2, 16, 16, 16, 16,
 
	16, 16, 16, 16, 16, 16, 16, 16,
 
	16, 16, 16, 16, 16, 16, 16, 16,
 
	16, 16, 16, 16, 16, 16, 16, 16,
 
	16, 4, 2, 16, 16, 16, 16, 16,
 
	16,  4,  2, 16, 16, 16, 16, 16,
 
	16, 16, 16, 16, 16, 16, 16, 16,
 
	16, 16, 16, 16, 16, 16, 16, 16,
 
	16, 16, 16, 16, 16, 16, 16, 16,
 
	16, 16, 16, 16, 16, 16, 16, 16,
 
	16, 16, 16, 16, 16, 16, 16, 16,
 
	16, 16, 16, 16, 16, 16, 16, 16,
 
@@ -1760,16 +1760,16 @@ static void UpdateIndustryStatistics(Ind
 
	} else if (_patches.smooth_economy) {
 
		ExtChangeIndustryProduction(i);
 
	}
 
}
 

	
 
static const byte _new_industry_rand[4][32] = {
 
	{12,12,12,12,12,12,12, 0, 0, 6, 6, 9, 9, 3, 3, 3,18,18, 4, 4, 2, 2, 5, 5, 5, 5, 5, 5, 1, 1, 8, 8},
 
	{16,16,16, 0, 0, 0, 9, 9, 9, 9,13,13, 3, 3, 3, 3,15,15,15, 4, 4,11,11,11,11,11,14,14, 1, 1, 7, 7},
 
	{21,21,21,24,22,22,22,22,23,23,16,16,16, 4, 4,19,19,19,13,13,20,20,20,11,11,11,17,17,17,10,10,10},
 
	{30,30,30,36,36,31,31,31,27,27,27,28,28,28,26,26,26,34,34,34,35,35,35,29,29,29,32,32,32,33,33,33},
 
	{12, 12, 12, 12, 12, 12, 12,  0,  0,  6,  6,  9,  9,  3,  3,  3, 18, 18,  4,  4,  2,  2,  5,  5,  5,  5,  5,  5,  1,  1,  8,  8},
 
	{16, 16, 16,  0,  0,  0,  9,  9,  9,  9, 13, 13,  3,  3,  3,  3, 15, 15, 15,  4,  4, 11, 11, 11, 11, 11, 14, 14,  1,  1,  7,  7},
 
	{21, 21, 21, 24, 22, 22, 22, 22, 23, 23, 16, 16, 16,  4,  4, 19, 19, 19, 13, 13, 20, 20, 20, 11, 11, 11, 17, 17, 17, 10, 10, 10},
 
	{30, 30, 30, 36, 36, 31, 31, 31, 27, 27, 27, 28, 28, 28, 26, 26, 26, 34, 34, 34, 35, 35, 35, 29, 29, 29, 32, 32, 32, 33, 33, 33},
 
};
 

	
 
static void MaybeNewIndustry(uint32 r)
 
{
 
	int type;
 
	int j;
 
@@ -1897,52 +1897,52 @@ void InitializeIndustries(void)
 

	
 
	_total_industries = 0;
 
	_industry_sort_dirty = true;
 
}
 

	
 
const TileTypeProcs _tile_type_industry_procs = {
 
	DrawTile_Industry,					/* draw_tile_proc */
 
	GetSlopeZ_Industry,					/* get_slope_z_proc */
 
	ClearTile_Industry,					/* clear_tile_proc */
 
	GetAcceptedCargo_Industry,	/* get_accepted_cargo_proc */
 
	GetTileDesc_Industry,				/* get_tile_desc_proc */
 
	GetTileTrackStatus_Industry,/* get_tile_track_status_proc */
 
	ClickTile_Industry,					/* click_tile_proc */
 
	AnimateTile_Industry,				/* animate_tile_proc */
 
	TileLoop_Industry,					/* tile_loop_proc */
 
	ChangeTileOwner_Industry,		/* change_tile_owner_proc */
 
	GetProducedCargo_Industry,  /* get_produced_cargo_proc */
 
	NULL,												/* vehicle_enter_tile_proc */
 
	GetSlopeTileh_Industry,			/* get_slope_tileh_proc */
 
	DrawTile_Industry,           /* draw_tile_proc */
 
	GetSlopeZ_Industry,          /* get_slope_z_proc */
 
	ClearTile_Industry,          /* clear_tile_proc */
 
	GetAcceptedCargo_Industry,	 /* get_accepted_cargo_proc */
 
	GetTileDesc_Industry,        /* get_tile_desc_proc */
 
	GetTileTrackStatus_Industry, /* get_tile_track_status_proc */
 
	ClickTile_Industry,          /* click_tile_proc */
 
	AnimateTile_Industry,        /* animate_tile_proc */
 
	TileLoop_Industry,           /* tile_loop_proc */
 
	ChangeTileOwner_Industry,    /* change_tile_owner_proc */
 
	GetProducedCargo_Industry,   /* get_produced_cargo_proc */
 
	NULL,                        /* vehicle_enter_tile_proc */
 
	GetSlopeTileh_Industry,      /* get_slope_tileh_proc */
 
};
 

	
 
static const SaveLoad _industry_desc[] = {
 
	SLE_CONDVAR(Industry, xy,					SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
 
	SLE_CONDVAR(Industry, xy,					SLE_UINT32, 6, SL_MAX_VERSION),
 
	SLE_VAR(Industry,width,						SLE_UINT8),
 
	SLE_VAR(Industry,height,					SLE_UINT8),
 
	SLE_REF(Industry,town,						REF_TOWN),
 
	SLE_ARR(Industry,produced_cargo,  SLE_UINT8, 2),
 
	SLE_ARR(Industry,cargo_waiting,   SLE_UINT16, 2),
 
	SLE_ARR(Industry,production_rate, SLE_UINT8, 2),
 
	SLE_ARR(Industry,accepts_cargo,		SLE_UINT8, 3),
 
	SLE_VAR(Industry,prod_level,			SLE_UINT8),
 
	SLE_ARR(Industry,last_mo_production,SLE_UINT16, 2),
 
	SLE_ARR(Industry,last_mo_transported,SLE_UINT16, 2),
 
	SLE_ARR(Industry,pct_transported,SLE_UINT8, 2),
 
	SLE_ARR(Industry,total_production,SLE_UINT16, 2),
 
	SLE_ARR(Industry,total_transported,SLE_UINT16, 2),
 
	SLE_CONDVAR(Industry, xy,                  SLE_FILE_U16 | SLE_VAR_U32,  0, 5),
 
	SLE_CONDVAR(Industry, xy,                  SLE_UINT32,                  6, SL_MAX_VERSION),
 
	    SLE_VAR(Industry, width,               SLE_UINT8),
 
	    SLE_VAR(Industry, height,              SLE_UINT8),
 
	    SLE_REF(Industry, town,                REF_TOWN),
 
	    SLE_ARR(Industry, produced_cargo,      SLE_UINT8,  2),
 
	    SLE_ARR(Industry, cargo_waiting,       SLE_UINT16, 2),
 
	    SLE_ARR(Industry, production_rate,     SLE_UINT8,  2),
 
	    SLE_ARR(Industry, accepts_cargo,       SLE_UINT8,  3),
 
	    SLE_VAR(Industry, prod_level,          SLE_UINT8),
 
	    SLE_ARR(Industry, last_mo_production,  SLE_UINT16, 2),
 
	    SLE_ARR(Industry, last_mo_transported, SLE_UINT16, 2),
 
	    SLE_ARR(Industry, pct_transported,     SLE_UINT8,  2),
 
	    SLE_ARR(Industry, total_production,    SLE_UINT16, 2),
 
	    SLE_ARR(Industry, total_transported,   SLE_UINT16, 2),
 

	
 
	SLE_VAR(Industry,counter,					SLE_UINT16),
 
	    SLE_VAR(Industry, counter,             SLE_UINT16),
 

	
 
	SLE_VAR(Industry,type,						SLE_UINT8),
 
	SLE_VAR(Industry,owner,						SLE_UINT8),
 
	SLE_VAR(Industry,color_map,				SLE_UINT8),
 
	SLE_CONDVAR(Industry, last_prod_year,	SLE_FILE_U8 | SLE_VAR_I32, 0, 30),
 
	SLE_CONDVAR(Industry, last_prod_year,	SLE_INT32, 31, SL_MAX_VERSION),
 
	SLE_VAR(Industry,was_cargo_delivered,SLE_UINT8),
 
	    SLE_VAR(Industry, type,                SLE_UINT8),
 
	    SLE_VAR(Industry, owner,               SLE_UINT8),
 
	    SLE_VAR(Industry, color_map,           SLE_UINT8),
 
	SLE_CONDVAR(Industry, last_prod_year,      SLE_FILE_U8 | SLE_VAR_I32,  0, 30),
 
	SLE_CONDVAR(Industry, last_prod_year,      SLE_INT32,                 31, SL_MAX_VERSION),
 
	    SLE_VAR(Industry, was_cargo_delivered, SLE_UINT8),
 

	
 
	// reserve extra space in savegame here. (currently 32 bytes)
 
	SLE_CONDNULL(32, 2, SL_MAX_VERSION),
 

	
 
	SLE_END()
 
};
industry_gui.c
Show inline comments
 
@@ -54,136 +54,136 @@ static void BuildIndustryWndProc(Window 
 
		SetWindowDirty(w);
 
		break;
 
	}
 
}
 

	
 
static const Widget _build_industry_land0_widgets[] = {
 
{   WWT_CLOSEBOX,   RESIZE_NONE,     7,     0,    10,     0,    13, STR_00C5,											STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION,   RESIZE_NONE,     7,    11,   169,     0,    13, STR_0314_FUND_NEW_INDUSTRY,		STR_018C_WINDOW_TITLE_DRAG_THIS},
 
{      WWT_PANEL,   RESIZE_NONE,     7,     0,   169,    14,   115, 0x0,														STR_NULL},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    16,    27, STR_0241_POWER_STATION,				STR_0263_CONSTRUCT_POWER_STATION},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    29,    40, STR_0242_SAWMILL,							STR_0264_CONSTRUCT_SAWMILL},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    42,    53, STR_0244_OIL_REFINERY,					STR_0266_CONSTRUCT_OIL_REFINERY},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    55,    66, STR_0246_FACTORY,							STR_0268_CONSTRUCT_FACTORY},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    68,    79, STR_0247_STEEL_MILL,						STR_0269_CONSTRUCT_STEEL_MILL},
 
{   WWT_CLOSEBOX,   RESIZE_NONE,     7,     0,    10,     0,    13, STR_00C5,                       STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION,   RESIZE_NONE,     7,    11,   169,     0,    13, STR_0314_FUND_NEW_INDUSTRY,     STR_018C_WINDOW_TITLE_DRAG_THIS},
 
{      WWT_PANEL,   RESIZE_NONE,     7,     0,   169,    14,   115, 0x0,                            STR_NULL},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    16,    27, STR_0241_POWER_STATION,         STR_0263_CONSTRUCT_POWER_STATION},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    29,    40, STR_0242_SAWMILL,               STR_0264_CONSTRUCT_SAWMILL},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    42,    53, STR_0244_OIL_REFINERY,          STR_0266_CONSTRUCT_OIL_REFINERY},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    55,    66, STR_0246_FACTORY,               STR_0268_CONSTRUCT_FACTORY},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    68,    79, STR_0247_STEEL_MILL,            STR_0269_CONSTRUCT_STEEL_MILL},
 
{   WIDGETS_END},
 
};
 

	
 
static const Widget _build_industry_land1_widgets[] = {
 
{   WWT_CLOSEBOX,   RESIZE_NONE,     7,     0,    10,     0,    13, STR_00C5,											STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION,   RESIZE_NONE,     7,    11,   169,     0,    13, STR_0314_FUND_NEW_INDUSTRY,		STR_018C_WINDOW_TITLE_DRAG_THIS},
 
{      WWT_PANEL,   RESIZE_NONE,     7,     0,   169,    14,   115, 0x0,														STR_NULL},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    16,    27, STR_0241_POWER_STATION,				STR_0263_CONSTRUCT_POWER_STATION},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    29,    40, STR_024C_PAPER_MILL,						STR_026E_CONSTRUCT_PAPER_MILL},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    42,    53, STR_0244_OIL_REFINERY,					STR_0266_CONSTRUCT_OIL_REFINERY},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    55,    66, STR_024D_FOOD_PROCESSING_PLANT,STR_026F_CONSTRUCT_FOOD_PROCESSING},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    68,    79, STR_024E_PRINTING_WORKS,				STR_0270_CONSTRUCT_PRINTING_WORKS},
 
{   WWT_CLOSEBOX,   RESIZE_NONE,     7,     0,    10,     0,    13, STR_00C5,                       STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION,   RESIZE_NONE,     7,    11,   169,     0,    13, STR_0314_FUND_NEW_INDUSTRY,     STR_018C_WINDOW_TITLE_DRAG_THIS},
 
{      WWT_PANEL,   RESIZE_NONE,     7,     0,   169,    14,   115, 0x0,                            STR_NULL},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    16,    27, STR_0241_POWER_STATION,         STR_0263_CONSTRUCT_POWER_STATION},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    29,    40, STR_024C_PAPER_MILL,            STR_026E_CONSTRUCT_PAPER_MILL},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    42,    53, STR_0244_OIL_REFINERY,          STR_0266_CONSTRUCT_OIL_REFINERY},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    55,    66, STR_024D_FOOD_PROCESSING_PLANT, STR_026F_CONSTRUCT_FOOD_PROCESSING},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    68,    79, STR_024E_PRINTING_WORKS,        STR_0270_CONSTRUCT_PRINTING_WORKS},
 
{   WIDGETS_END},
 
};
 

	
 
static const Widget _build_industry_land2_widgets[] = {
 
{   WWT_CLOSEBOX,   RESIZE_NONE,     7,     0,    10,     0,    13, STR_00C5,											STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION,   RESIZE_NONE,     7,    11,   169,     0,    13, STR_0314_FUND_NEW_INDUSTRY,		STR_018C_WINDOW_TITLE_DRAG_THIS},
 
{      WWT_PANEL,   RESIZE_NONE,     7,     0,   169,    14,   115, 0x0,														STR_NULL},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    16,    27, STR_0250_LUMBER_MILL,					STR_0273_CONSTRUCT_LUMBER_MILL_TO},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    29,    40, STR_024D_FOOD_PROCESSING_PLANT,STR_026F_CONSTRUCT_FOOD_PROCESSING},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    42,    53, STR_0244_OIL_REFINERY,					STR_0266_CONSTRUCT_OIL_REFINERY},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    55,    66, STR_0246_FACTORY,							STR_0268_CONSTRUCT_FACTORY},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    68,    79, STR_0254_WATER_TOWER,					STR_0277_CONSTRUCT_WATER_TOWER_CAN},
 
{   WWT_CLOSEBOX,   RESIZE_NONE,     7,     0,    10,     0,    13, STR_00C5,                       STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION,   RESIZE_NONE,     7,    11,   169,     0,    13, STR_0314_FUND_NEW_INDUSTRY,     STR_018C_WINDOW_TITLE_DRAG_THIS},
 
{      WWT_PANEL,   RESIZE_NONE,     7,     0,   169,    14,   115, 0x0,                            STR_NULL},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    16,    27, STR_0250_LUMBER_MILL,           STR_0273_CONSTRUCT_LUMBER_MILL_TO},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    29,    40, STR_024D_FOOD_PROCESSING_PLANT, STR_026F_CONSTRUCT_FOOD_PROCESSING},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    42,    53, STR_0244_OIL_REFINERY,          STR_0266_CONSTRUCT_OIL_REFINERY},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    55,    66, STR_0246_FACTORY,               STR_0268_CONSTRUCT_FACTORY},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    68,    79, STR_0254_WATER_TOWER,           STR_0277_CONSTRUCT_WATER_TOWER_CAN},
 
{   WIDGETS_END},
 
};
 

	
 
static const Widget _build_industry_land3_widgets[] = {
 
{   WWT_CLOSEBOX,   RESIZE_NONE,     7,     0,    10,     0,    13, STR_00C5,											STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION,   RESIZE_NONE,     7,    11,   169,     0,    13, STR_0314_FUND_NEW_INDUSTRY,		STR_018C_WINDOW_TITLE_DRAG_THIS},
 
{      WWT_PANEL,   RESIZE_NONE,     7,     0,   169,    14,   115, 0x0,														STR_NULL},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    16,    27, STR_0258_CANDY_FACTORY,				STR_027B_CONSTRUCT_CANDY_FACTORY},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    29,    40, STR_025B_TOY_SHOP,							STR_027E_CONSTRUCT_TOY_SHOP},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    42,    53, STR_025C_TOY_FACTORY,					STR_027F_CONSTRUCT_TOY_FACTORY},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    55,    66, STR_025E_FIZZY_DRINK_FACTORY,	STR_0281_CONSTRUCT_FIZZY_DRINK_FACTORY},
 
{   WWT_CLOSEBOX,   RESIZE_NONE,     7,     0,    10,     0,    13, STR_00C5,                       STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION,   RESIZE_NONE,     7,    11,   169,     0,    13, STR_0314_FUND_NEW_INDUSTRY,     STR_018C_WINDOW_TITLE_DRAG_THIS},
 
{      WWT_PANEL,   RESIZE_NONE,     7,     0,   169,    14,   115, 0x0,                            STR_NULL},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    16,    27, STR_0258_CANDY_FACTORY,         STR_027B_CONSTRUCT_CANDY_FACTORY},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    29,    40, STR_025B_TOY_SHOP,              STR_027E_CONSTRUCT_TOY_SHOP},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    42,    53, STR_025C_TOY_FACTORY,           STR_027F_CONSTRUCT_TOY_FACTORY},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    55,    66, STR_025E_FIZZY_DRINK_FACTORY,   STR_0281_CONSTRUCT_FIZZY_DRINK_FACTORY},
 
{   WIDGETS_END},
 
};
 

	
 
static const Widget _build_industry_land0_widgets_extra[] = {
 
{   WWT_CLOSEBOX,   RESIZE_NONE,     7,     0,    10,     0,    13, STR_00C5,							STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION,   RESIZE_NONE,     7,    11,   169,     0,    13, STR_0314_FUND_NEW_INDUSTRY,STR_018C_WINDOW_TITLE_DRAG_THIS},
 
{      WWT_PANEL,   RESIZE_NONE,     7,     0,   169,    14,   187, 0x0,										STR_NULL},
 
{   WWT_CLOSEBOX,   RESIZE_NONE,     7,     0,    10,     0,    13, STR_00C5,                       STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION,   RESIZE_NONE,     7,    11,   169,     0,    13, STR_0314_FUND_NEW_INDUSTRY,     STR_018C_WINDOW_TITLE_DRAG_THIS},
 
{      WWT_PANEL,   RESIZE_NONE,     7,     0,   169,    14,   187, 0x0,                            STR_NULL},
 

	
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    16,    27, STR_0241_POWER_STATION,STR_0263_CONSTRUCT_POWER_STATION},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    29,    40, STR_0242_SAWMILL,			STR_0264_CONSTRUCT_SAWMILL},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    42,    53, STR_0244_OIL_REFINERY,	STR_0266_CONSTRUCT_OIL_REFINERY},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    55,    66, STR_0246_FACTORY,					STR_0268_CONSTRUCT_FACTORY},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    68,    79, STR_0247_STEEL_MILL,		STR_0269_CONSTRUCT_STEEL_MILL},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    16,    27, STR_0241_POWER_STATION,         STR_0263_CONSTRUCT_POWER_STATION},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    29,    40, STR_0242_SAWMILL,               STR_0264_CONSTRUCT_SAWMILL},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    42,    53, STR_0244_OIL_REFINERY,          STR_0266_CONSTRUCT_OIL_REFINERY},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    55,    66, STR_0246_FACTORY,               STR_0268_CONSTRUCT_FACTORY},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    68,    79, STR_0247_STEEL_MILL,            STR_0269_CONSTRUCT_STEEL_MILL},
 

	
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    84,    95, STR_0240_COAL_MINE,		STR_CONSTRUCT_COAL_MINE_TIP},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    97,    108, STR_0243_FOREST,			STR_CONSTRUCT_FOREST_TIP},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    110,    121, STR_0245_OIL_RIG,		STR_CONSTRUCT_OIL_RIG_TIP},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    123,    134, STR_0248_FARM,						STR_CONSTRUCT_FARM_TIP},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    136,    147, STR_024A_OIL_WELLS,			STR_CONSTRUCT_OIL_WELLS_TIP},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    149,    160, STR_0249_IRON_ORE_MINE,	STR_CONSTRUCT_IRON_ORE_MINE_TIP},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    84,    95, STR_0240_COAL_MINE,             STR_CONSTRUCT_COAL_MINE_TIP},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    97,   108, STR_0243_FOREST,                STR_CONSTRUCT_FOREST_TIP},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,   110,   121, STR_0245_OIL_RIG,               STR_CONSTRUCT_OIL_RIG_TIP},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,   123,   134, STR_0248_FARM,                  STR_CONSTRUCT_FARM_TIP},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,   136,   147, STR_024A_OIL_WELLS,             STR_CONSTRUCT_OIL_WELLS_TIP},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,   149,   160, STR_0249_IRON_ORE_MINE,         STR_CONSTRUCT_IRON_ORE_MINE_TIP},
 

	
 
{   WIDGETS_END},
 
};
 

	
 
static const Widget _build_industry_land1_widgets_extra[] = {
 
{   WWT_CLOSEBOX,   RESIZE_NONE,     7,     0,    10,     0,    13, STR_00C5,								STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION,   RESIZE_NONE,     7,    11,   169,     0,    13, STR_0314_FUND_NEW_INDUSTRY,		STR_018C_WINDOW_TITLE_DRAG_THIS},
 
{      WWT_PANEL,   RESIZE_NONE,     7,     0,   169,    14,   174, 0x0,											STR_NULL},
 
{   WWT_CLOSEBOX,   RESIZE_NONE,     7,     0,    10,     0,    13, STR_00C5,                       STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION,   RESIZE_NONE,     7,    11,   169,     0,    13, STR_0314_FUND_NEW_INDUSTRY,     STR_018C_WINDOW_TITLE_DRAG_THIS},
 
{      WWT_PANEL,   RESIZE_NONE,     7,     0,   169,    14,   174, 0x0,                            STR_NULL},
 

	
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    16,    27, STR_0241_POWER_STATION,	STR_0263_CONSTRUCT_POWER_STATION},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    29,    40, STR_024C_PAPER_MILL,			STR_026E_CONSTRUCT_PAPER_MILL},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    42,    53, STR_0244_OIL_REFINERY,		STR_0266_CONSTRUCT_OIL_REFINERY},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    55,    66, STR_024D_FOOD_PROCESSING_PLANT,STR_026F_CONSTRUCT_FOOD_PROCESSING},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    68,    79, STR_024E_PRINTING_WORKS,	STR_0270_CONSTRUCT_PRINTING_WORKS},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    16,    27, STR_0241_POWER_STATION,         STR_0263_CONSTRUCT_POWER_STATION},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    29,    40, STR_024C_PAPER_MILL,            STR_026E_CONSTRUCT_PAPER_MILL},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    42,    53, STR_0244_OIL_REFINERY,          STR_0266_CONSTRUCT_OIL_REFINERY},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    55,    66, STR_024D_FOOD_PROCESSING_PLANT, STR_026F_CONSTRUCT_FOOD_PROCESSING},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    68,    79, STR_024E_PRINTING_WORKS,        STR_0270_CONSTRUCT_PRINTING_WORKS},
 

	
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    81+3,    92+3, STR_0240_COAL_MINE,	STR_CONSTRUCT_COAL_MINE_TIP},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    94+3,   105+3, STR_0243_FOREST,			STR_CONSTRUCT_FOREST_TIP},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    107+3,  118+3, STR_0248_FARM,				STR_CONSTRUCT_FARM_TIP},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    120+3,  131+3, STR_024A_OIL_WELLS,	STR_CONSTRUCT_OIL_WELLS_TIP},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    133+3,  144+3, STR_024F_GOLD_MINE,	STR_CONSTRUCT_GOLD_MINE_TIP},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    84,    95, STR_0240_COAL_MINE,             STR_CONSTRUCT_COAL_MINE_TIP},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    97,   108, STR_0243_FOREST,                STR_CONSTRUCT_FOREST_TIP},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,   110,   121, STR_0248_FARM,                  STR_CONSTRUCT_FARM_TIP},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,   123,   134, STR_024A_OIL_WELLS,             STR_CONSTRUCT_OIL_WELLS_TIP},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,   136,   147, STR_024F_GOLD_MINE,             STR_CONSTRUCT_GOLD_MINE_TIP},
 
{   WIDGETS_END},
 
};
 

	
 
static const Widget _build_industry_land2_widgets_extra[] = {
 
{   WWT_CLOSEBOX,   RESIZE_NONE,     7,     0,    10,     0,    13, STR_00C5,							STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION,   RESIZE_NONE,     7,    11,   169,     0,    13, STR_0314_FUND_NEW_INDUSTRY,			STR_018C_WINDOW_TITLE_DRAG_THIS},
 
{      WWT_PANEL,   RESIZE_NONE,     7,     0,   169,    14,   200, 0x0,										STR_NULL},
 
{   WWT_CLOSEBOX,   RESIZE_NONE,     7,     0,    10,     0,    13, STR_00C5,                       STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION,   RESIZE_NONE,     7,    11,   169,     0,    13, STR_0314_FUND_NEW_INDUSTRY,     STR_018C_WINDOW_TITLE_DRAG_THIS},
 
{      WWT_PANEL,   RESIZE_NONE,     7,     0,   169,    14,   200, 0x0,                            STR_NULL},
 

	
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    16,    27, STR_0250_LUMBER_MILL,	STR_0273_CONSTRUCT_LUMBER_MILL_TO},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    29,    40, STR_024D_FOOD_PROCESSING_PLANT,STR_026F_CONSTRUCT_FOOD_PROCESSING},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    42,    53, STR_0244_OIL_REFINERY,	STR_0266_CONSTRUCT_OIL_REFINERY},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    55,    66, STR_0246_FACTORY,			STR_0268_CONSTRUCT_FACTORY},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    68,    79, STR_0254_WATER_TOWER,	STR_0277_CONSTRUCT_WATER_TOWER_CAN},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    16,    27, STR_0250_LUMBER_MILL,           STR_0273_CONSTRUCT_LUMBER_MILL_TO},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    29,    40, STR_024D_FOOD_PROCESSING_PLANT, STR_026F_CONSTRUCT_FOOD_PROCESSING},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    42,    53, STR_0244_OIL_REFINERY,          STR_0266_CONSTRUCT_OIL_REFINERY},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    55,    66, STR_0246_FACTORY,               STR_0268_CONSTRUCT_FACTORY},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    68,    79, STR_0254_WATER_TOWER,           STR_0277_CONSTRUCT_WATER_TOWER_CAN},
 

	
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    81+3,    92+3, STR_024A_OIL_WELLS,STR_CONSTRUCT_OIL_WELLS_TIP},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    94+3,    105+3, STR_0255_DIAMOND_MINE,			STR_CONSTRUCT_DIAMOND_MINE_TIP},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    107+3,    118+3, STR_0256_COPPER_ORE_MINE,	STR_CONSTRUCT_COPPER_ORE_MINE_TIP},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    120+3,    131+3, STR_0248_FARM,		STR_CONSTRUCT_FARM_TIP},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    133+3,    144+3, STR_0251_FRUIT_PLANTATION,	STR_CONSTRUCT_FRUIT_PLANTATION_TIP},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    146+3,    157+3, STR_0252_RUBBER_PLANTATION,STR_CONSTRUCT_RUBBER_PLANTATION_TIP},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    159+3,    170+3, STR_0253_WATER_SUPPLY,			STR_CONSTRUCT_WATER_SUPPLY_TIP},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    84,    95, STR_024A_OIL_WELLS,             STR_CONSTRUCT_OIL_WELLS_TIP},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    97,   108, STR_0255_DIAMOND_MINE,          STR_CONSTRUCT_DIAMOND_MINE_TIP},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,   110,   121, STR_0256_COPPER_ORE_MINE,       STR_CONSTRUCT_COPPER_ORE_MINE_TIP},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,   123,   134, STR_0248_FARM,                  STR_CONSTRUCT_FARM_TIP},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,   136,   147, STR_0251_FRUIT_PLANTATION,      STR_CONSTRUCT_FRUIT_PLANTATION_TIP},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,   149,   160, STR_0252_RUBBER_PLANTATION,     STR_CONSTRUCT_RUBBER_PLANTATION_TIP},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,   162,   173, STR_0253_WATER_SUPPLY,          STR_CONSTRUCT_WATER_SUPPLY_TIP},
 
{   WIDGETS_END},
 
};
 

	
 
static const Widget _build_industry_land3_widgets_extra[] = {
 
{   WWT_CLOSEBOX,   RESIZE_NONE,     7,     0,    10,     0,    13, STR_00C5,								STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION,   RESIZE_NONE,     7,    11,   169,     0,    13, STR_0314_FUND_NEW_INDUSTRY,			STR_018C_WINDOW_TITLE_DRAG_THIS},
 
{      WWT_PANEL,   RESIZE_NONE,     7,     0,   169,    14,   187, 0x0,	STR_NULL},
 
{   WWT_CLOSEBOX,   RESIZE_NONE,     7,     0,    10,     0,    13, STR_00C5,                       STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION,   RESIZE_NONE,     7,    11,   169,     0,    13, STR_0314_FUND_NEW_INDUSTRY,     STR_018C_WINDOW_TITLE_DRAG_THIS},
 
{      WWT_PANEL,   RESIZE_NONE,     7,     0,   169,    14,   187, 0x0,                            STR_NULL},
 

	
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    16,    27, STR_0258_CANDY_FACTORY,	STR_027B_CONSTRUCT_CANDY_FACTORY},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    29,    40, STR_025B_TOY_SHOP,				STR_027E_CONSTRUCT_TOY_SHOP},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    42,    53, STR_025C_TOY_FACTORY,		STR_027F_CONSTRUCT_TOY_FACTORY},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    55,    66, STR_025E_FIZZY_DRINK_FACTORY,		STR_0281_CONSTRUCT_FIZZY_DRINK_FACTORY},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    16,    27, STR_0258_CANDY_FACTORY,         STR_027B_CONSTRUCT_CANDY_FACTORY},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    29,    40, STR_025B_TOY_SHOP,              STR_027E_CONSTRUCT_TOY_SHOP},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    42,    53, STR_025C_TOY_FACTORY,           STR_027F_CONSTRUCT_TOY_FACTORY},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    55,    66, STR_025E_FIZZY_DRINK_FACTORY,   STR_0281_CONSTRUCT_FIZZY_DRINK_FACTORY},
 

	
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    68+3,    79+3, STR_0257_COTTON_CANDY_FOREST,STR_CONSTRUCT_COTTON_CANDY_TIP},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    81+3,    92+3, STR_0259_BATTERY_FARM,				STR_CONSTRUCT_BATTERY_FARM_TIP},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    94+3,    105+3, STR_025A_COLA_WELLS,				STR_CONSTRUCT_COLA_WELLS_TIP},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    107+3,    118+3, STR_025D_PLASTIC_FOUNTAINS,STR_CONSTRUCT_PLASTIC_FOUNTAINS_TIP},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    120+3,    131+3, STR_025F_BUBBLE_GENERATOR,	STR_CONSTRUCT_BUBBLE_GENERATOR_TIP},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    133+3,    144+3, STR_0260_TOFFEE_QUARRY,		STR_CONSTRUCT_TOFFEE_QUARRY_TIP},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    146+3,    157+3, STR_0261_SUGAR_MINE,				STR_CONSTRUCT_SUGAR_MINE_TIP},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    71,    82, STR_0257_COTTON_CANDY_FOREST,   STR_CONSTRUCT_COTTON_CANDY_TIP},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    84,    95, STR_0259_BATTERY_FARM,          STR_CONSTRUCT_BATTERY_FARM_TIP},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,    97,   108, STR_025A_COLA_WELLS,            STR_CONSTRUCT_COLA_WELLS_TIP},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,   110,   121, STR_025D_PLASTIC_FOUNTAINS,     STR_CONSTRUCT_PLASTIC_FOUNTAINS_TIP},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,   123,   134, STR_025F_BUBBLE_GENERATOR,      STR_CONSTRUCT_BUBBLE_GENERATOR_TIP},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,   136,   147, STR_0260_TOFFEE_QUARRY,         STR_CONSTRUCT_TOFFEE_QUARRY_TIP},
 
{    WWT_TEXTBTN,   RESIZE_NONE,    14,     2,   167,   149,   160, STR_0261_SUGAR_MINE,            STR_CONSTRUCT_SUGAR_MINE_TIP},
 
{   WIDGETS_END},
 
};
 

	
 

	
 
static const WindowDesc _build_industry_land0_desc = {
 
	-1, -1, 170, 116,
 
@@ -417,20 +417,20 @@ static void UpdateIndustryProduction(Ind
 

	
 
	if (i->produced_cargo[1] != CT_INVALID)
 
		i->total_production[1] = 8 * i->production_rate[1];
 
}
 

	
 
static const Widget _industry_view_widgets[] = {
 
{   WWT_CLOSEBOX,   RESIZE_NONE,     9,     0,    10,     0,    13, STR_00C5,	STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION,   RESIZE_NONE,     9,    11,   247,     0,    13, STR_4801,	STR_018C_WINDOW_TITLE_DRAG_THIS},
 
{  WWT_STICKYBOX,   RESIZE_NONE,     9,   248,   259,     0,    13, 0x0,       STR_STICKY_BUTTON},
 
{     WWT_IMGBTN,   RESIZE_NONE,     9,     0,   259,    14,   105, 0x0,				STR_NULL},
 
{	  WWT_6,   RESIZE_NONE,     9,     2,   257,    16,   103, 0x0,				STR_NULL},
 
{     WWT_IMGBTN,   RESIZE_NONE,     9,     0,   259,   106,   147, 0x0,				STR_NULL},
 
{ WWT_PUSHTXTBTN,   RESIZE_NONE,     9,     0,   129,   148,   159, STR_00E4_LOCATION,	STR_482C_CENTER_THE_MAIN_VIEW_ON},
 
{     WWT_IMGBTN,   RESIZE_NONE,     9,   130,   259,   148,   159, 0x0,				STR_NULL},
 
{   WWT_CLOSEBOX,   RESIZE_NONE,     9,     0,    10,     0,    13, STR_00C5,          STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION,   RESIZE_NONE,     9,    11,   247,     0,    13, STR_4801,          STR_018C_WINDOW_TITLE_DRAG_THIS},
 
{  WWT_STICKYBOX,   RESIZE_NONE,     9,   248,   259,     0,    13, 0x0,               STR_STICKY_BUTTON},
 
{     WWT_IMGBTN,   RESIZE_NONE,     9,     0,   259,    14,   105, 0x0,               STR_NULL},
 
{          WWT_6,   RESIZE_NONE,     9,     2,   257,    16,   103, 0x0,               STR_NULL},
 
{     WWT_IMGBTN,   RESIZE_NONE,     9,     0,   259,   106,   147, 0x0,               STR_NULL},
 
{ WWT_PUSHTXTBTN,   RESIZE_NONE,     9,     0,   129,   148,   159, STR_00E4_LOCATION, STR_482C_CENTER_THE_MAIN_VIEW_ON},
 
{     WWT_IMGBTN,   RESIZE_NONE,     9,   130,   259,   148,   159, 0x0,               STR_NULL},
 
{   WIDGETS_END},
 
};
 

	
 
static const WindowDesc _industry_view_desc = {
 
	-1, -1, 260, 160,
 
	WC_INDUSTRY_VIEW,0,
 
@@ -450,23 +450,23 @@ void ShowIndustryViewWindow(int industry
 
		WP(w,vp2_d).data_3 = 0;
 
		AssignWindowViewport(w, 3, 17, 0xFE, 0x56, GetIndustry(w->window_number)->xy + TileDiffXY(1, 1), 1);
 
	}
 
}
 

	
 
static const Widget _industry_directory_widgets[] = {
 
{   WWT_CLOSEBOX,   RESIZE_NONE,    13,     0,    10,     0,    13, STR_00C5,									STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION,   RESIZE_NONE,    13,    11,   495,     0,    13, STR_INDUSTRYDIR_CAPTION,	STR_018C_WINDOW_TITLE_DRAG_THIS},
 
{  WWT_STICKYBOX,   RESIZE_NONE,    13,   496,   507,     0,    13, 0x0,											STR_STICKY_BUTTON},
 
{ WWT_PUSHTXTBTN,   RESIZE_NONE,    13,     0,   100,    14,    25, STR_SORT_BY_NAME,					STR_SORT_ORDER_TIP},
 
{ WWT_PUSHTXTBTN,   RESIZE_NONE,    13,   101,   200,    14,    25, STR_SORT_BY_TYPE,					STR_SORT_ORDER_TIP},
 
{ WWT_PUSHTXTBTN,   RESIZE_NONE,    13,   201,   300,    14,    25, STR_SORT_BY_PRODUCTION,		STR_SORT_ORDER_TIP},
 
{ WWT_PUSHTXTBTN,   RESIZE_NONE,    13,   301,   400,    14,    25, STR_SORT_BY_TRANSPORTED,	STR_SORT_ORDER_TIP},
 
{      WWT_PANEL,   RESIZE_NONE,    13,   401,   495,    14,    25, 0x0,											STR_NULL},
 
{     WWT_IMGBTN, RESIZE_BOTTOM,    13,     0,   495,    26,   189, 0x0,											STR_200A_TOWN_NAMES_CLICK_ON_NAME},
 
{  WWT_SCROLLBAR, RESIZE_BOTTOM,    13,   496,   507,    14,   177, 0x0,											STR_0190_SCROLL_BAR_SCROLLS_LIST},
 
{  WWT_RESIZEBOX,     RESIZE_TB,    13,   496,   507,   178,   189, 0x0,											STR_RESIZE_BUTTON},
 
{   WWT_CLOSEBOX,   RESIZE_NONE,    13,     0,    10,     0,    13, STR_00C5,                STR_018B_CLOSE_WINDOW},
 
{    WWT_CAPTION,   RESIZE_NONE,    13,    11,   495,     0,    13, STR_INDUSTRYDIR_CAPTION, STR_018C_WINDOW_TITLE_DRAG_THIS},
 
{  WWT_STICKYBOX,   RESIZE_NONE,    13,   496,   507,     0,    13, 0x0,                     STR_STICKY_BUTTON},
 
{ WWT_PUSHTXTBTN,   RESIZE_NONE,    13,     0,   100,    14,    25, STR_SORT_BY_NAME,        STR_SORT_ORDER_TIP},
 
{ WWT_PUSHTXTBTN,   RESIZE_NONE,    13,   101,   200,    14,    25, STR_SORT_BY_TYPE,        STR_SORT_ORDER_TIP},
 
{ WWT_PUSHTXTBTN,   RESIZE_NONE,    13,   201,   300,    14,    25, STR_SORT_BY_PRODUCTION,  STR_SORT_ORDER_TIP},
 
{ WWT_PUSHTXTBTN,   RESIZE_NONE,    13,   301,   400,    14,    25, STR_SORT_BY_TRANSPORTED, STR_SORT_ORDER_TIP},
 
{      WWT_PANEL,   RESIZE_NONE,    13,   401,   495,    14,    25, 0x0,                     STR_NULL},
 
{     WWT_IMGBTN, RESIZE_BOTTOM,    13,     0,   495,    26,   189, 0x0,                     STR_200A_TOWN_NAMES_CLICK_ON_NAME},
 
{  WWT_SCROLLBAR, RESIZE_BOTTOM,    13,   496,   507,    14,   177, 0x0,                     STR_0190_SCROLL_BAR_SCROLLS_LIST},
 
{  WWT_RESIZEBOX,     RESIZE_TB,    13,   496,   507,   178,   189, 0x0,                     STR_RESIZE_BUTTON},
 
{   WIDGETS_END},
 
};
 

	
 
static uint _num_industry_sort;
 

	
 
static char _bufcache[96];
intro_gui.c
Show inline comments
 
@@ -12,30 +12,30 @@
 
#include "variables.h"
 
#include "settings.h"
 
#include "heightmap.h"
 
#include "genworld.h"
 

	
 
static const Widget _select_game_widgets[] = {
 
{    WWT_CAPTION, RESIZE_NONE, 13,   0, 335,   0,  13, STR_0307_OPENTTD,       STR_NULL},
 
{     WWT_IMGBTN, RESIZE_NONE, 13,   0, 335,  14, 176, STR_NULL,               STR_NULL},
 
{ WWT_PUSHTXTBTN, RESIZE_NONE, 12,  10, 167,  22,  33, STR_0140_NEW_GAME,      STR_02FB_START_A_NEW_GAME},
 
{ WWT_PUSHTXTBTN, RESIZE_NONE, 12, 168, 325,  22,  33, STR_0141_LOAD_GAME,     STR_02FC_LOAD_A_SAVED_GAME},
 
{ WWT_PUSHTXTBTN, RESIZE_NONE, 12,  10, 167,  40,  51, STR_029A_PLAY_SCENARIO, STR_0303_START_A_NEW_GAME_USING},
 
{ WWT_PUSHTXTBTN, RESIZE_NONE, 12, 168, 325,  40,  51, STR_PLAY_HEIGHTMAP,     STR_PLAY_HEIGHTMAP_HINT},
 
{ WWT_PUSHTXTBTN, RESIZE_NONE, 12,  10, 167,  58,  69, STR_0220_CREATE_SCENARIO,STR_02FE_CREATE_A_CUSTOMIZED_GAME},
 
{ WWT_PUSHTXTBTN, RESIZE_NONE, 12, 168, 325,  58,  69, STR_MULTIPLAYER,        STR_0300_SELECT_MULTIPLAYER_GAME},
 
{    WWT_CAPTION, RESIZE_NONE, 13,   0, 335,   0,  13, STR_0307_OPENTTD,         STR_NULL},
 
{     WWT_IMGBTN, RESIZE_NONE, 13,   0, 335,  14, 176, STR_NULL,                 STR_NULL},
 
{ WWT_PUSHTXTBTN, RESIZE_NONE, 12,  10, 167,  22,  33, STR_0140_NEW_GAME,        STR_02FB_START_A_NEW_GAME},
 
{ WWT_PUSHTXTBTN, RESIZE_NONE, 12, 168, 325,  22,  33, STR_0141_LOAD_GAME,       STR_02FC_LOAD_A_SAVED_GAME},
 
{ WWT_PUSHTXTBTN, RESIZE_NONE, 12,  10, 167,  40,  51, STR_029A_PLAY_SCENARIO,   STR_0303_START_A_NEW_GAME_USING},
 
{ WWT_PUSHTXTBTN, RESIZE_NONE, 12, 168, 325,  40,  51, STR_PLAY_HEIGHTMAP,       STR_PLAY_HEIGHTMAP_HINT},
 
{ WWT_PUSHTXTBTN, RESIZE_NONE, 12,  10, 167,  58,  69, STR_0220_CREATE_SCENARIO, STR_02FE_CREATE_A_CUSTOMIZED_GAME},
 
{ WWT_PUSHTXTBTN, RESIZE_NONE, 12, 168, 325,  58,  69, STR_MULTIPLAYER,          STR_0300_SELECT_MULTIPLAYER_GAME},
 

	
 
{    WWT_PANEL_2, RESIZE_NONE, 12,  10,  86,  77, 131, 0x1312,                 STR_030E_SELECT_TEMPERATE_LANDSCAPE},
 
{    WWT_PANEL_2, RESIZE_NONE, 12,  90, 166,  77, 131, 0x1314,                 STR_030F_SELECT_SUB_ARCTIC_LANDSCAPE},
 
{    WWT_PANEL_2, RESIZE_NONE, 12, 170, 246,  77, 131, 0x1316,                 STR_0310_SELECT_SUB_TROPICAL_LANDSCAPE},
 
{    WWT_PANEL_2, RESIZE_NONE, 12, 250, 326,  77, 131, 0x1318,                 STR_0311_SELECT_TOYLAND_LANDSCAPE},
 
{    WWT_PANEL_2, RESIZE_NONE, 12,  10,  86,  77, 131, 0x1312,                   STR_030E_SELECT_TEMPERATE_LANDSCAPE},
 
{    WWT_PANEL_2, RESIZE_NONE, 12,  90, 166,  77, 131, 0x1314,                   STR_030F_SELECT_SUB_ARCTIC_LANDSCAPE},
 
{    WWT_PANEL_2, RESIZE_NONE, 12, 170, 246,  77, 131, 0x1316,                   STR_0310_SELECT_SUB_TROPICAL_LANDSCAPE},
 
{    WWT_PANEL_2, RESIZE_NONE, 12, 250, 326,  77, 131, 0x1318,                   STR_0311_SELECT_TOYLAND_LANDSCAPE},
 

	
 
{ WWT_PUSHTXTBTN, RESIZE_NONE, 12,  10, 167, 139, 150, STR_0148_GAME_OPTIONS,  STR_0301_DISPLAY_GAME_OPTIONS},
 
{ WWT_PUSHTXTBTN, RESIZE_NONE, 12, 168, 325, 139, 150, STR_01FE_DIFFICULTY,    STR_0302_DISPLAY_DIFFICULTY_OPTIONS},
 
{ WWT_PUSHTXTBTN, RESIZE_NONE, 12,  10, 167, 157, 168, STR_CONFIG_PATCHES,     STR_CONFIG_PATCHES_TIP},
 
{ WWT_PUSHTXTBTN, RESIZE_NONE, 12, 168, 325, 157, 168, STR_0304_QUIT,          STR_0305_QUIT_OPENTTD},
 
{ WWT_PUSHTXTBTN, RESIZE_NONE, 12,  10, 167, 139, 150, STR_0148_GAME_OPTIONS,    STR_0301_DISPLAY_GAME_OPTIONS},
 
{ WWT_PUSHTXTBTN, RESIZE_NONE, 12, 168, 325, 139, 150, STR_01FE_DIFFICULTY,      STR_0302_DISPLAY_DIFFICULTY_OPTIONS},
 
{ WWT_PUSHTXTBTN, RESIZE_NONE, 12,  10, 167, 157, 168, STR_CONFIG_PATCHES,       STR_CONFIG_PATCHES_TIP},
 
{ WWT_PUSHTXTBTN, RESIZE_NONE, 12, 168, 325, 157, 168, STR_0304_QUIT,            STR_0305_QUIT_OPENTTD},
 
{    WIDGETS_END },
 
};
 

	
 
extern void HandleOnEditText(WindowEvent *e);
 
extern void HandleOnEditTextCancel(void);
 

	
landscape.c
Show inline comments
 
@@ -47,19 +47,19 @@ const TileTypeProcs * const _tile_type_p
 
	&_tile_type_tunnelbridge_procs,
 
	&_tile_type_unmovable_procs,
 
};
 

	
 
/* landscape slope => sprite */
 
const byte _tileh_to_sprite[32] = {
 
	0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,0,
 
	0,0,0,0,0,0,0,16,0,0,0,17,0,15,18,0,
 
	0, 1, 2, 3, 4, 5, 6,  7, 8, 9, 10, 11, 12, 13, 14, 0,
 
	0, 0, 0, 0, 0, 0, 0, 16, 0, 0,  0, 17,  0, 15, 18, 0,
 
};
 

	
 
const byte _inclined_tileh[] = {
 
	SLOPE_SW, SLOPE_NW, SLOPE_SW, SLOPE_SE, SLOPE_NE, SLOPE_SE, SLOPE_NE, SLOPE_NW,
 
	SLOPE_E, SLOPE_N, SLOPE_W, SLOPE_S,
 
	SLOPE_SW,  SLOPE_NW,  SLOPE_SW,  SLOPE_SE, SLOPE_NE, SLOPE_SE, SLOPE_NE, SLOPE_NW,
 
	SLOPE_E,   SLOPE_N,   SLOPE_W,   SLOPE_S,
 
	SLOPE_NWS, SLOPE_WSE, SLOPE_SEN, SLOPE_ENW
 
};
 

	
 

	
 
uint GetPartialZ(int x, int y, Slope corners)
 
{
 
@@ -442,14 +442,14 @@ void ConvertGroundTilesIntoWaterTiles(vo
 
					break;
 
			}
 
		}
 
	}
 
}
 

	
 
static const byte _genterrain_tbl_1[5] = { 10, 22, 33, 37, 4 };
 
static const byte _genterrain_tbl_2[5] = { 0, 0, 0, 0, 33 };
 
static const byte _genterrain_tbl_1[5] = { 10, 22, 33, 37, 4  };
 
static const byte _genterrain_tbl_2[5] = {  0,  0,  0,  0, 33 };
 

	
 
static void GenerateTerrain(int type, int flag)
 
{
 
	uint32 r;
 
	uint x;
 
	uint y;

Changeset was too big and was cut off... Show full diff anyway

0 comments (0 inline, 0 general)