1
0
Fork 0

(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.

release/0.5
rubidium 2006-08-22 14:38:37 +00:00
parent 5f4dbbd522
commit 480af9c917
97 changed files with 5385 additions and 5386 deletions

View File

@ -34,30 +34,30 @@ static uint _ai_service_interval;
typedef void AiStateAction(Player *p); typedef void AiStateAction(Player *p);
enum { enum {
AIS_0 = 0, AIS_0 = 0,
AIS_1 = 1, AIS_1 = 1,
AIS_VEH_LOOP = 2, AIS_VEH_LOOP = 2,
AIS_VEH_CHECK_REPLACE_VEHICLE = 3, AIS_VEH_CHECK_REPLACE_VEHICLE = 3,
AIS_VEH_DO_REPLACE_VEHICLE = 4, AIS_VEH_DO_REPLACE_VEHICLE = 4,
AIS_WANT_NEW_ROUTE = 5, AIS_WANT_NEW_ROUTE = 5,
AIS_BUILD_DEFAULT_RAIL_BLOCKS = 6, AIS_BUILD_DEFAULT_RAIL_BLOCKS = 6,
AIS_BUILD_RAIL = 7, AIS_BUILD_RAIL = 7,
AIS_BUILD_RAIL_VEH = 8, AIS_BUILD_RAIL_VEH = 8,
AIS_DELETE_RAIL_BLOCKS = 9, AIS_DELETE_RAIL_BLOCKS = 9,
AIS_BUILD_DEFAULT_ROAD_BLOCKS = 10, AIS_BUILD_DEFAULT_ROAD_BLOCKS = 10,
AIS_BUILD_ROAD = 11, AIS_BUILD_ROAD = 11,
AIS_BUILD_ROAD_VEHICLES = 12, AIS_BUILD_ROAD_VEHICLES = 12,
AIS_DELETE_ROAD_BLOCKS = 13, AIS_DELETE_ROAD_BLOCKS = 13,
AIS_AIRPORT_STUFF = 14, AIS_AIRPORT_STUFF = 14,
AIS_BUILD_DEFAULT_AIRPORT_BLOCKS = 15, AIS_BUILD_DEFAULT_AIRPORT_BLOCKS = 15,
AIS_BUILD_AIRCRAFT_VEHICLES = 16, AIS_BUILD_AIRCRAFT_VEHICLES = 16,
AIS_CHECK_SHIP_STUFF = 17, AIS_CHECK_SHIP_STUFF = 17,
AIS_BUILD_DEFAULT_SHIP_BLOCKS = 18, AIS_BUILD_DEFAULT_SHIP_BLOCKS = 18,
AIS_DO_SHIP_STUFF = 19, AIS_DO_SHIP_STUFF = 19,
AIS_SELL_VEHICLE = 20, AIS_SELL_VEHICLE = 20,
AIS_REMOVE_STATION = 21, AIS_REMOVE_STATION = 21,
AIS_REMOVE_TRACK = 22, AIS_REMOVE_TRACK = 22,
AIS_REMOVE_SINGLE_RAIL_TILE = 23 AIS_REMOVE_SINGLE_RAIL_TILE = 23
}; };
@ -1668,24 +1668,24 @@ static int AiBuildDefaultRailTrack(TileIndex tile, byte p0, byte p1, byte p2, by
static const byte _terraform_up_flags[] = { static const byte _terraform_up_flags[] = {
14, 13, 12, 11, 14, 13, 12, 11,
10, 9, 8, 7, 10, 9, 8, 7,
6, 5, 4, 3, 6, 5, 4, 3,
2, 1, 0, 1, 2, 1, 0, 1,
2, 1, 4, 1, 2, 1, 4, 1,
2, 1, 8, 1, 2, 1, 8, 1,
2, 1, 4, 2, 2, 1, 4, 2,
2, 1 2, 1
}; };
static const byte _terraform_down_flags[] = { static const byte _terraform_down_flags[] = {
1, 2, 3, 4, 1, 2, 3, 4,
5, 6, 1, 8, 5, 6, 1, 8,
9, 10, 8, 12, 9, 10, 8, 12,
4, 2, 0, 0, 4, 2, 0, 0,
1, 2, 3, 4, 1, 2, 3, 4,
5, 6, 2, 8, 5, 6, 2, 8,
9, 10, 1, 12, 9, 10, 1, 12,
8, 4 8, 4
}; };
static void AiDoTerraformLand(TileIndex tile, int dir, int unk, int mode) static void AiDoTerraformLand(TileIndex tile, int dir, int unk, int mode)
@ -1865,14 +1865,14 @@ typedef struct AiRailFinder {
} AiRailFinder; } AiRailFinder;
static const byte _ai_table_15[4][8] = { static const byte _ai_table_15[4][8] = {
{0, 0, 4, 3, 3, 1, 128+0, 64}, {0, 0, 4, 3, 3, 1, 128 + 0, 64},
{1, 1, 2, 0, 4, 2, 128+1, 65}, {1, 1, 2, 0, 4, 2, 128 + 1, 65},
{0, 2, 2, 3, 5, 1, 128+2, 66}, {0, 2, 2, 3, 5, 1, 128 + 2, 66},
{1, 3, 5, 0, 3, 2, 128+3, 67} {1, 3, 5, 0, 3, 2, 128 + 3, 67}
}; };
static const byte _dir_table_1[] = {3, 9, 12, 6}; 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_2[] = {12, 6, 3, 9};
static bool AiIsTileBanned(const Player* p, TileIndex tile, byte val) static bool AiIsTileBanned(const Player* p, TileIndex tile, byte val)
@ -2729,8 +2729,9 @@ typedef struct AiRoadEnum {
} AiRoadEnum; } AiRoadEnum;
static const byte _dir_by_track[] = { static const byte _dir_by_track[] = {
0,1,0,1,2,1, 0,0, 0, 1, 0, 1, 2, 1,
2,3,3,2,3,0, 0, 0,
2, 3, 3, 2, 3, 0,
}; };
static void AiBuildRoadRecursive(AiRoadFinder *arf, TileIndex tile, int dir); static void AiBuildRoadRecursive(AiRoadFinder *arf, TileIndex tile, int dir);

View File

@ -1703,36 +1703,36 @@ static void AircraftEventHandler_HeliEndLanding(Vehicle *v, const AirportFTAClas
typedef void AircraftStateHandler(Vehicle *v, const AirportFTAClass *Airport); typedef void AircraftStateHandler(Vehicle *v, const AirportFTAClass *Airport);
static AircraftStateHandler * const _aircraft_state_handlers[] = { static AircraftStateHandler * const _aircraft_state_handlers[] = {
AircraftEventHandler_General, // TO_ALL = 0 AircraftEventHandler_General, // TO_ALL = 0
AircraftEventHandler_InHangar, // HANGAR = 1 AircraftEventHandler_InHangar, // HANGAR = 1
AircraftEventHandler_AtTerminal, // TERM1 = 2 AircraftEventHandler_AtTerminal, // TERM1 = 2
AircraftEventHandler_AtTerminal, // TERM2 = 3 AircraftEventHandler_AtTerminal, // TERM2 = 3
AircraftEventHandler_AtTerminal, // TERM3 = 4 AircraftEventHandler_AtTerminal, // TERM3 = 4
AircraftEventHandler_AtTerminal, // TERM4 = 5 AircraftEventHandler_AtTerminal, // TERM4 = 5
AircraftEventHandler_AtTerminal, // TERM5 = 6 AircraftEventHandler_AtTerminal, // TERM5 = 6
AircraftEventHandler_AtTerminal, // TERM6 = 7 AircraftEventHandler_AtTerminal, // TERM6 = 7
AircraftEventHandler_AtTerminal, // HELIPAD1 = 8 AircraftEventHandler_AtTerminal, // HELIPAD1 = 8
AircraftEventHandler_AtTerminal, // HELIPAD2 = 9 AircraftEventHandler_AtTerminal, // HELIPAD2 = 9
AircraftEventHandler_TakeOff, // TAKEOFF = 10 AircraftEventHandler_TakeOff, // TAKEOFF = 10
AircraftEventHandler_StartTakeOff, // STARTTAKEOFF = 11 AircraftEventHandler_StartTakeOff, // STARTTAKEOFF = 11
AircraftEventHandler_EndTakeOff, // ENDTAKEOFF = 12 AircraftEventHandler_EndTakeOff, // ENDTAKEOFF = 12
AircraftEventHandler_HeliTakeOff, // HELITAKEOFF = 13 AircraftEventHandler_HeliTakeOff, // HELITAKEOFF = 13
AircraftEventHandler_Flying, // FLYING = 14 AircraftEventHandler_Flying, // FLYING = 14
AircraftEventHandler_Landing, // LANDING = 15 AircraftEventHandler_Landing, // LANDING = 15
AircraftEventHandler_EndLanding, // ENDLANDING = 16 AircraftEventHandler_EndLanding, // ENDLANDING = 16
AircraftEventHandler_HeliLanding, // HELILANDING = 17 AircraftEventHandler_HeliLanding, // HELILANDING = 17
AircraftEventHandler_HeliEndLanding,// HELIENDLANDING = 18 AircraftEventHandler_HeliEndLanding, // HELIENDLANDING = 18
AircraftEventHandler_AtTerminal, // TERM7 = 19 AircraftEventHandler_AtTerminal, // TERM7 = 19
AircraftEventHandler_AtTerminal, // TERM8 = 20 AircraftEventHandler_AtTerminal, // TERM8 = 20
AircraftEventHandler_AtTerminal, // HELIPAD3 = 21 AircraftEventHandler_AtTerminal, // HELIPAD3 = 21
AircraftEventHandler_AtTerminal, // HELIPAD4 = 22 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 // 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) { 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); CLRBITS(st->airport_flags, Airport->layout[v->u.air.previous_pos].block);
} }

View File

@ -224,14 +224,14 @@ static void NewAircraftWndProc(Window *w, WindowEvent *e)
} }
static const Widget _new_aircraft_widgets[] = { static const Widget _new_aircraft_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, 239, 0, 13, STR_A005_NEW_AIRCRAFT, STR_018C_WINDOW_TITLE_DRAG_THIS}, { 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_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_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_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, 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_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_RESIZEBOX, RESIZE_TB, 14, 228, 239, 182, 193, 0x0, STR_RESIZE_BUTTON },
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -311,11 +311,11 @@ static void AircraftRefitWndProc(Window *w, WindowEvent *e)
} }
static const Widget _aircraft_refit_widgets[] = { static const Widget _aircraft_refit_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, 239, 0, 13, STR_A03C_REFIT, STR_018C_WINDOW_TITLE_DRAG_THIS}, { 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, 14, 145, 0x0, STR_A03E_SELECT_TYPE_OF_CARGO_FOR },
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 239, 146, 167, 0x0, STR_NULL}, { 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_PUSHTXTBTN, RESIZE_NONE, 14, 0, 239, 168, 179, STR_A03D_REFIT_AIRCRAFT, STR_A03F_REFIT_AIRCRAFT_TO_CARRY },
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -467,20 +467,20 @@ do_change_service_int:
static const Widget _aircraft_details_widgets[] = { static const Widget _aircraft_details_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, 349, 0, 13, STR_A00C_DETAILS, STR_018C_WINDOW_TITLE_DRAG_THIS}, { 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_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, 14, 55, 0x0, STR_NULL },
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 389, 56, 101, 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, 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_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_IMGBTN, RESIZE_NONE, 14, 11, 389, 102, 113, 0x0, STR_NULL },
{ WIDGETS_END}, { WIDGETS_END},
}; };
static const WindowDesc _aircraft_details_desc = { static const WindowDesc _aircraft_details_desc = {
-1,-1, 390, 114, -1, -1, 390, 114,
WC_VEHICLE_DETAILS,WC_VEHICLE_VIEW, WC_VEHICLE_DETAILS, WC_VEHICLE_VIEW,
WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS, WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS,
_aircraft_details_widgets, _aircraft_details_widgets,
AircraftDetailsWndProc AircraftDetailsWndProc
@ -505,21 +505,21 @@ static void ShowAircraftDetailsWindow(const Vehicle *v)
static const Widget _aircraft_view_widgets[] = { static const Widget _aircraft_view_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_RIGHT, 14, 11, 237, 0, 13, STR_A00A, STR_018C_WINDOW_TITLE_DRAG_THIS }, { 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_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_IMGBTN, RESIZE_RB, 14, 0, 231, 14, 103, 0x0, STR_NULL },
{ WWT_6, RESIZE_RB, 14, 2, 229, 16, 101, 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_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, 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, 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, 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, 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, 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_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_PANEL, RESIZE_LRB, 14, 232, 249, 104, 103, 0x0, STR_NULL },
{ WWT_RESIZEBOX, RESIZE_LRTB, 14, 238, 249, 104, 115, 0x0, STR_NULL }, { WWT_RESIZEBOX, RESIZE_LRTB, 14, 238, 249, 104, 115, 0x0, STR_NULL },
{ WIDGETS_END } { WIDGETS_END},
}; };
@ -907,19 +907,19 @@ static void AircraftDepotWndProc(Window *w, WindowEvent *e)
} }
static const Widget _aircraft_depot_widgets[] = { static const Widget _aircraft_depot_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_RIGHT, 14, 11, 318, 0, 13, STR_A002_AIRCRAFT_HANGAR, STR_018C_WINDOW_TITLE_DRAG_THIS}, { 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_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_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_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_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_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_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_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_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_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_RESIZEBOX, RESIZE_LRTB, 14, 319, 330, 62, 73, 0x0, STR_RESIZE_BUTTON },
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -971,34 +971,34 @@ static void DrawSmallOrderList(const Vehicle *v, int x, int y)
static const Widget _player_aircraft_widgets[] = { static const Widget _player_aircraft_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_RIGHT, 14, 11, 247, 0, 13, STR_A009_AIRCRAFT, STR_018C_WINDOW_TITLE_DRAG_THIS}, { 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_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_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_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_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_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_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_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, 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_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_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_RESIZEBOX, RESIZE_LRTB, 14, 248, 259, 170, 181, 0x0, STR_RESIZE_BUTTON },
{ WIDGETS_END}, { WIDGETS_END},
}; };
static const Widget _other_player_aircraft_widgets[] = { static const Widget _other_player_aircraft_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_RIGHT, 14, 11, 247, 0, 13, STR_A009_AIRCRAFT, STR_018C_WINDOW_TITLE_DRAG_THIS}, { 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_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_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_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_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_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_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_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_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_RESIZEBOX, RESIZE_LRTB, 14, 248, 259, 170, 181, 0x0, STR_RESIZE_BUTTON },
{ WIDGETS_END}, { WIDGETS_END},
}; };

View File

@ -3,22 +3,22 @@
#ifndef AIRPORT_H #ifndef AIRPORT_H
#define AIRPORT_H #define AIRPORT_H
enum {MAX_TERMINALS = 10}; enum {MAX_TERMINALS = 10};
enum {MAX_HELIPADS = 4}; enum {MAX_HELIPADS = 4};
enum {MAX_ELEMENTS = 255}; enum {MAX_ELEMENTS = 255};
enum {MAX_HEADINGS = 22}; enum {MAX_HEADINGS = 22};
// Airport types // Airport types
enum { enum {
AT_SMALL = 0, AT_SMALL = 0,
AT_LARGE = 1, AT_LARGE = 1,
AT_HELIPORT = 2, AT_HELIPORT = 2,
AT_METROPOLITAN = 3, AT_METROPOLITAN = 3,
AT_INTERNATIONAL = 4, AT_INTERNATIONAL = 4,
AT_COMMUTER = 5, AT_COMMUTER = 5,
AT_HELIDEPOT = 6, AT_HELIDEPOT = 6,
AT_INTERCON = 7, AT_INTERCON = 7,
AT_HELISTATION = 8, AT_HELISTATION = 8,
AT_OILRIG = 15 AT_OILRIG = 15
}; };
@ -30,28 +30,28 @@ enum {
}; };
enum { enum {
AMED_NOSPDCLAMP = 1<<0, AMED_NOSPDCLAMP = 1 << 0,
AMED_TAKEOFF = 1<<1, AMED_TAKEOFF = 1 << 1,
AMED_SLOWTURN = 1<<2, AMED_SLOWTURN = 1 << 2,
AMED_LAND = 1<<3, AMED_LAND = 1 << 3,
AMED_EXACTPOS = 1<<4, AMED_EXACTPOS = 1 << 4,
AMED_BRAKE = 1<<5, AMED_BRAKE = 1 << 5,
AMED_HELI_RAISE = 1<<6, AMED_HELI_RAISE = 1 << 6,
AMED_HELI_LOWER = 1<<7, AMED_HELI_LOWER = 1 << 7,
}; };
/* Movement States on Airports (headings target) */ /* Movement States on Airports (headings target) */
enum { enum {
TO_ALL = 0, TO_ALL = 0,
HANGAR = 1, HANGAR = 1,
TERM1 = 2, TERM1 = 2,
TERM2 = 3, TERM2 = 3,
TERM3 = 4, TERM3 = 4,
TERM4 = 5, TERM4 = 5,
TERM5 = 6, TERM5 = 6,
TERM6 = 7, TERM6 = 7,
HELIPAD1 = 8, HELIPAD1 = 8,
HELIPAD2 = 9, HELIPAD2 = 9,
TAKEOFF = 10, TAKEOFF = 10,
STARTTAKEOFF = 11, STARTTAKEOFF = 11,
ENDTAKEOFF = 12, ENDTAKEOFF = 12,
@ -75,18 +75,18 @@ static const byte _airport_terminal_flag[] = {0, 1, 2, 3, 4, 5, 22, 23, 0, 0, 6
/* Movement Blocks on Airports */ /* Movement Blocks on Airports */
// blocks (eg_airport_flags) // blocks (eg_airport_flags)
enum { enum {
TERM1_block = 1 << 0, TERM1_block = 1 << 0,
TERM2_block = 1 << 1, TERM2_block = 1 << 1,
TERM3_block = 1 << 2, TERM3_block = 1 << 2,
TERM4_block = 1 << 3, TERM4_block = 1 << 3,
TERM5_block = 1 << 4, TERM5_block = 1 << 4,
TERM6_block = 1 << 5, TERM6_block = 1 << 5,
HELIPAD1_block = 1 << 6, HELIPAD1_block = 1 << 6,
HELIPAD2_block = 1 << 7, HELIPAD2_block = 1 << 7,
RUNWAY_IN_OUT_block = 1 << 8, RUNWAY_IN_OUT_block = 1 << 8,
RUNWAY_IN_block = 1 << 8, RUNWAY_IN_block = 1 << 8,
AIRPORT_BUSY_block = 1 << 8, AIRPORT_BUSY_block = 1 << 8,
RUNWAY_OUT_block = 1 << 9, RUNWAY_OUT_block = 1 << 9,
TAXIWAY_BUSY_block = 1 << 10, TAXIWAY_BUSY_block = 1 << 10,
OUT_WAY_block = 1 << 11, OUT_WAY_block = 1 << 11,
IN_WAY_block = 1 << 12, IN_WAY_block = 1 << 12,

View File

@ -113,12 +113,12 @@ static void BuildAirToolbWndProc(Window *w, WindowEvent *e)
} }
static const Widget _air_toolbar_widgets[] = { static const Widget _air_toolbar_widgets[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, { 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_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_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, 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, 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_PANEL, RESIZE_NONE, 7, 64, 85, 14, 35, SPR_IMG_LANDSCAPING, STR_LANDSCAPING_TOOLBAR_TIP },
{ WIDGETS_END}, { WIDGETS_END},
}; };

File diff suppressed because it is too large Load Diff

View File

@ -79,10 +79,10 @@ static void BuildBridgeWndProc(Window *w, WindowEvent *e)
} }
static const Widget _build_bridge_widgets[] = { static const Widget _build_bridge_widgets[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, { 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_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_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_SCROLLBAR, RESIZE_NONE, 7, 188, 199, 14, 101, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -96,10 +96,10 @@ static const WindowDesc _build_bridge_desc = {
static const Widget _build_road_bridge_widgets[] = { static const Widget _build_road_bridge_widgets[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, { 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_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_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_SCROLLBAR, RESIZE_NONE, 7, 188, 199, 14, 101, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST},
{ WIDGETS_END}, { WIDGETS_END},
}; };

View File

@ -778,17 +778,17 @@ void InitializeClearLand(void)
} }
const TileTypeProcs _tile_type_clear_procs = { const TileTypeProcs _tile_type_clear_procs = {
DrawTile_Clear, /* draw_tile_proc */ DrawTile_Clear, /* draw_tile_proc */
GetSlopeZ_Clear, /* get_slope_z_proc */ GetSlopeZ_Clear, /* get_slope_z_proc */
ClearTile_Clear, /* clear_tile_proc */ ClearTile_Clear, /* clear_tile_proc */
GetAcceptedCargo_Clear, /* get_accepted_cargo_proc */ GetAcceptedCargo_Clear, /* get_accepted_cargo_proc */
GetTileDesc_Clear, /* get_tile_desc_proc */ GetTileDesc_Clear, /* get_tile_desc_proc */
GetTileTrackStatus_Clear, /* get_tile_track_status_proc */ GetTileTrackStatus_Clear, /* get_tile_track_status_proc */
ClickTile_Clear, /* click_tile_proc */ ClickTile_Clear, /* click_tile_proc */
AnimateTile_Clear, /* animate_tile_proc */ AnimateTile_Clear, /* animate_tile_proc */
TileLoop_Clear, /* tile_loop_clear */ TileLoop_Clear, /* tile_loop_clear */
ChangeTileOwner_Clear, /* change_tile_owner_clear */ ChangeTileOwner_Clear, /* change_tile_owner_clear */
NULL, /* get_produced_cargo_proc */ NULL, /* get_produced_cargo_proc */
NULL, /* vehicle_enter_tile_proc */ NULL, /* vehicle_enter_tile_proc */
GetSlopeTileh_Clear, /* get_slope_tileh_proc */ GetSlopeTileh_Clear, /* get_slope_tileh_proc */
}; };

216
command.h
View File

@ -4,150 +4,150 @@
#define COMMAND_H #define COMMAND_H
enum { enum {
CMD_BUILD_RAILROAD_TRACK = 0, CMD_BUILD_RAILROAD_TRACK = 0,
CMD_REMOVE_RAILROAD_TRACK = 1, CMD_REMOVE_RAILROAD_TRACK = 1,
CMD_BUILD_SINGLE_RAIL = 2, CMD_BUILD_SINGLE_RAIL = 2,
CMD_REMOVE_SINGLE_RAIL = 3, CMD_REMOVE_SINGLE_RAIL = 3,
CMD_LANDSCAPE_CLEAR = 4, CMD_LANDSCAPE_CLEAR = 4,
CMD_BUILD_BRIDGE = 5, CMD_BUILD_BRIDGE = 5,
CMD_BUILD_RAILROAD_STATION = 6, CMD_BUILD_RAILROAD_STATION = 6,
CMD_BUILD_TRAIN_DEPOT = 7, CMD_BUILD_TRAIN_DEPOT = 7,
CMD_BUILD_SIGNALS = 8, CMD_BUILD_SIGNALS = 8,
CMD_REMOVE_SIGNALS = 9, CMD_REMOVE_SIGNALS = 9,
CMD_TERRAFORM_LAND = 10, CMD_TERRAFORM_LAND = 10,
CMD_PURCHASE_LAND_AREA = 11, CMD_PURCHASE_LAND_AREA = 11,
CMD_SELL_LAND_AREA = 12, CMD_SELL_LAND_AREA = 12,
CMD_BUILD_TUNNEL = 13, CMD_BUILD_TUNNEL = 13,
CMD_REMOVE_FROM_RAILROAD_STATION = 14, CMD_REMOVE_FROM_RAILROAD_STATION = 14,
CMD_CONVERT_RAIL = 15, CMD_CONVERT_RAIL = 15,
CMD_BUILD_TRAIN_WAYPOINT = 16, CMD_BUILD_TRAIN_WAYPOINT = 16,
CMD_RENAME_WAYPOINT = 17, CMD_RENAME_WAYPOINT = 17,
CMD_REMOVE_TRAIN_WAYPOINT = 18, CMD_REMOVE_TRAIN_WAYPOINT = 18,
CMD_BUILD_ROAD_STOP = 21, CMD_BUILD_ROAD_STOP = 21,
CMD_BUILD_LONG_ROAD = 23, CMD_BUILD_LONG_ROAD = 23,
CMD_REMOVE_LONG_ROAD = 24, CMD_REMOVE_LONG_ROAD = 24,
CMD_BUILD_ROAD = 25, CMD_BUILD_ROAD = 25,
CMD_REMOVE_ROAD = 26, CMD_REMOVE_ROAD = 26,
CMD_BUILD_ROAD_DEPOT = 27, 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_SHIP_DEPOT = 31,
CMD_BUILD_BUOY = 32, CMD_BUILD_BUOY = 32,
CMD_PLANT_TREE = 33, CMD_PLANT_TREE = 33,
CMD_BUILD_RAIL_VEHICLE = 34, CMD_BUILD_RAIL_VEHICLE = 34,
CMD_MOVE_RAIL_VEHICLE = 35, 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_TRAIN_GOTO_DEPOT = 39,
CMD_FORCE_TRAIN_PROCEED = 40, CMD_FORCE_TRAIN_PROCEED = 40,
CMD_REVERSE_TRAIN_DIRECTION = 41, CMD_REVERSE_TRAIN_DIRECTION = 41,
CMD_MODIFY_ORDER = 42, CMD_MODIFY_ORDER = 42,
CMD_SKIP_ORDER = 43, CMD_SKIP_ORDER = 43,
CMD_DELETE_ORDER = 44, CMD_DELETE_ORDER = 44,
CMD_INSERT_ORDER = 45, 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_BUILD_COMPANY_HQ = 48,
CMD_SET_PLAYER_FACE = 49, CMD_SET_PLAYER_FACE = 49,
CMD_SET_PLAYER_COLOR = 50, CMD_SET_PLAYER_COLOR = 50,
CMD_INCREASE_LOAN = 51, CMD_INCREASE_LOAN = 51,
CMD_DECREASE_LOAN = 52, CMD_DECREASE_LOAN = 52,
CMD_WANT_ENGINE_PREVIEW = 53, CMD_WANT_ENGINE_PREVIEW = 53,
CMD_NAME_VEHICLE = 54, CMD_NAME_VEHICLE = 54,
CMD_RENAME_ENGINE = 55, CMD_RENAME_ENGINE = 55,
CMD_CHANGE_COMPANY_NAME = 56, CMD_CHANGE_COMPANY_NAME = 56,
CMD_CHANGE_PRESIDENT_NAME = 57, CMD_CHANGE_PRESIDENT_NAME = 57,
CMD_RENAME_STATION = 58, CMD_RENAME_STATION = 58,
CMD_SELL_AIRCRAFT = 59, CMD_SELL_AIRCRAFT = 59,
CMD_START_STOP_AIRCRAFT = 60, CMD_START_STOP_AIRCRAFT = 60,
CMD_BUILD_AIRCRAFT = 61, CMD_BUILD_AIRCRAFT = 61,
CMD_SEND_AIRCRAFT_TO_HANGAR = 62, CMD_SEND_AIRCRAFT_TO_HANGAR = 62,
CMD_REFIT_AIRCRAFT = 64, CMD_REFIT_AIRCRAFT = 64,
CMD_PLACE_SIGN = 65, CMD_PLACE_SIGN = 65,
CMD_RENAME_SIGN = 66, CMD_RENAME_SIGN = 66,
CMD_BUILD_ROAD_VEH = 67, CMD_BUILD_ROAD_VEH = 67,
CMD_START_STOP_ROADVEH = 68, CMD_START_STOP_ROADVEH = 68,
CMD_SELL_ROAD_VEH = 69, CMD_SELL_ROAD_VEH = 69,
CMD_SEND_ROADVEH_TO_DEPOT = 70, CMD_SEND_ROADVEH_TO_DEPOT = 70,
CMD_TURN_ROADVEH = 71, CMD_TURN_ROADVEH = 71,
CMD_REFIT_ROAD_VEH = 72, CMD_REFIT_ROAD_VEH = 72,
CMD_PAUSE = 73, CMD_PAUSE = 73,
CMD_BUY_SHARE_IN_COMPANY = 74, CMD_BUY_SHARE_IN_COMPANY = 74,
CMD_SELL_SHARE_IN_COMPANY = 75, CMD_SELL_SHARE_IN_COMPANY = 75,
CMD_BUY_COMPANY = 76, CMD_BUY_COMPANY = 76,
CMD_BUILD_TOWN = 77, CMD_BUILD_TOWN = 77,
CMD_RENAME_TOWN = 80, CMD_RENAME_TOWN = 80,
CMD_DO_TOWN_ACTION = 81, 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_START_STOP_SHIP = 86,
CMD_SELL_SHIP = 87, CMD_SELL_SHIP = 87,
CMD_BUILD_SHIP = 88, CMD_BUILD_SHIP = 88,
CMD_SEND_SHIP_TO_DEPOT = 89, CMD_SEND_SHIP_TO_DEPOT = 89,
CMD_REFIT_SHIP = 91, CMD_REFIT_SHIP = 91,
CMD_CLONE_ORDER = 99, CMD_CLONE_ORDER = 99,
CMD_CLEAR_AREA = 100, CMD_CLEAR_AREA = 100,
CMD_MONEY_CHEAT = 102, CMD_MONEY_CHEAT = 102,
CMD_BUILD_CANAL = 103, CMD_BUILD_CANAL = 103,
CMD_PLAYER_CTRL = 104, // used in multiplayer to create a new player etc. CMD_PLAYER_CTRL = 104, // used in multiplayer to create a new player etc.
CMD_LEVEL_LAND = 105, // level land CMD_LEVEL_LAND = 105, // level land
CMD_REFIT_RAIL_VEHICLE = 106, CMD_REFIT_RAIL_VEHICLE = 106,
CMD_RESTORE_ORDER_INDEX = 107, CMD_RESTORE_ORDER_INDEX = 107,
CMD_BUILD_LOCK = 108, CMD_BUILD_LOCK = 108,
CMD_BUILD_SIGNAL_TRACK = 110, CMD_BUILD_SIGNAL_TRACK = 110,
CMD_REMOVE_SIGNAL_TRACK = 111, CMD_REMOVE_SIGNAL_TRACK = 111,
CMD_GIVE_MONEY = 113, CMD_GIVE_MONEY = 113,
CMD_CHANGE_PATCH_SETTING = 114, CMD_CHANGE_PATCH_SETTING = 114,
CMD_REPLACE_VEHICLE = 115, CMD_REPLACE_VEHICLE = 115,
CMD_CLONE_VEHICLE = 116, CMD_CLONE_VEHICLE = 116,
}; };
enum { enum {
DC_EXEC = 1, DC_EXEC = 0x01,
DC_AUTO = 2, // don't allow building on structures DC_AUTO = 0x02, // don't allow building on structures
DC_QUERY_COST = 4, // query cost only, don't build. DC_QUERY_COST = 0x04, // query cost only, don't build.
DC_NO_WATER = 8, // don't allow building on water 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_NO_RAIL_OVERLAP = 0x10, // don't allow overlap of rails (used in buildrail)
DC_AI_BUILDING = 0x20, // special building rules for AI DC_AI_BUILDING = 0x20, // special building rules for AI
DC_NO_TOWN_RATING = 0x40, // town rating does not disallow you from building DC_NO_TOWN_RATING = 0x40, // town rating does not disallow you from building
DC_FORCETEST = 0x80, // force test too. DC_FORCETEST = 0x80, // force test too.
CMD_ERROR = ((int32)0x80000000), CMD_ERROR = ((int32)0x80000000),
}; };
@ -155,11 +155,11 @@ enum {
#define CMD_MSG(x) ((x)<<16) #define CMD_MSG(x) ((x)<<16)
enum { enum {
CMD_AUTO = 0x200, CMD_AUTO = 0x0200,
CMD_NO_WATER = 0x400, CMD_NO_WATER = 0x0400,
CMD_NETWORK_COMMAND = 0x800, // execute the command without sending it on the network 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_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 /** Command flags for the command table

24
date.c
View File

@ -34,18 +34,18 @@ void SetDate(Date date)
#define M(a, b) ((a << 5) | b) #define M(a, b) ((a << 5) | b)
static const uint16 _month_date_from_year_day[] = { 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( 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( 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( 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( 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( 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( 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( 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( 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( 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( 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(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(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 #undef M

View File

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

View File

@ -54,24 +54,24 @@ static void DisasterClearSquare(TileIndex tile)
} }
} }
static const SpriteID _disaster_images_1[] = {0xF41,0xF41,0xF41,0xF41,0xF41,0xF41,0xF41,0xF41}; 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_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_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_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_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_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_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_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_9[] = {0xF3E, 0xF3E, 0xF3E, 0xF3E, 0xF3E, 0xF3E, 0xF3E, 0xF3E};
static const SpriteID * const _disaster_images[] = { static const SpriteID * const _disaster_images[] = {
_disaster_images_1,_disaster_images_1, _disaster_images_1, _disaster_images_1,
_disaster_images_2,_disaster_images_2, _disaster_images_2, _disaster_images_2,
_disaster_images_3,_disaster_images_3, _disaster_images_3, _disaster_images_3,
_disaster_images_8,_disaster_images_8,_disaster_images_9, _disaster_images_8, _disaster_images_8, _disaster_images_9,
_disaster_images_6,_disaster_images_6, _disaster_images_6, _disaster_images_6,
_disaster_images_7,_disaster_images_7, _disaster_images_7, _disaster_images_7,
_disaster_images_4,_disaster_images_5, _disaster_images_4, _disaster_images_5,
}; };
static void DisasterVehicleUpdateImage(Vehicle *v) static void DisasterVehicleUpdateImage(Vehicle *v)

View File

@ -189,19 +189,19 @@ static void BuildDocksToolbWndProc(Window *w, WindowEvent *e)
} }
static const Widget _build_docks_toolb_widgets[] = { static const Widget _build_docks_toolb_widgets[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, { 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_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_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, 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, 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, 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, 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, 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, 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, 136, 157, 14, 35, SPR_IMG_LANDSCAPING, STR_LANDSCAPING_TOOLBAR_TIP},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -271,11 +271,11 @@ static void BuildDockStationWndProc(Window *w, WindowEvent *e)
} }
static const Widget _build_dock_station_widgets[] = { static const Widget _build_dock_station_widgets[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, { 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_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_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, 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_TEXTBTN, RESIZE_NONE, 14, 74, 133, 30, 40, STR_02DA_ON, STR_3064_HIGHLIGHT_COVERAGE_AREA},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -337,11 +337,11 @@ static void BuildDocksDepotWndProc(Window *w, WindowEvent *e)
} }
static const Widget _build_docks_depot_widgets[] = { static const Widget _build_docks_depot_widgets[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, { 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_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, 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, 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_PANEL, RESIZE_NONE, 14, 103, 200, 17, 82, 0x0, STR_3803_SELECT_SHIP_DEPOT_ORIENTATION},
{ WIDGETS_END}, { WIDGETS_END},
}; };

View File

@ -67,17 +67,17 @@ static uint32 GetTileTrackStatus_Dummy(TileIndex tile, TransportType mode)
} }
const TileTypeProcs _tile_type_dummy_procs = { const TileTypeProcs _tile_type_dummy_procs = {
DrawTile_Dummy, /* draw_tile_proc */ DrawTile_Dummy, /* draw_tile_proc */
GetSlopeZ_Dummy, /* get_slope_z_proc */ GetSlopeZ_Dummy, /* get_slope_z_proc */
ClearTile_Dummy, /* clear_tile_proc */ ClearTile_Dummy, /* clear_tile_proc */
GetAcceptedCargo_Dummy, /* get_accepted_cargo_proc */ GetAcceptedCargo_Dummy, /* get_accepted_cargo_proc */
GetTileDesc_Dummy, /* get_tile_desc_proc */ GetTileDesc_Dummy, /* get_tile_desc_proc */
GetTileTrackStatus_Dummy, /* get_tile_track_status_proc */ GetTileTrackStatus_Dummy, /* get_tile_track_status_proc */
ClickTile_Dummy, /* click_tile_proc */ ClickTile_Dummy, /* click_tile_proc */
AnimateTile_Dummy, /* animate_tile_proc */ AnimateTile_Dummy, /* animate_tile_proc */
TileLoop_Dummy, /* tile_loop_clear */ TileLoop_Dummy, /* tile_loop_clear */
ChangeTileOwner_Dummy, /* change_tile_owner_clear */ ChangeTileOwner_Dummy, /* change_tile_owner_clear */
NULL, /* get_produced_cargo_proc */ NULL, /* get_produced_cargo_proc */
NULL, /* vehicle_enter_tile_proc */ NULL, /* vehicle_enter_tile_proc */
GetSlopeTileh_Dummy, /* get_slope_tileh_proc */ GetSlopeTileh_Dummy, /* get_slope_tileh_proc */
}; };

126
economy.c
View File

@ -687,54 +687,54 @@ static byte _price_category[NUM_PRICES] = {
}; };
static const int32 _price_base[NUM_PRICES] = { static const int32 _price_base[NUM_PRICES] = {
100, // station_value 100, // station_value
100, // build_rail 100, // build_rail
95, // build_road 95, // build_road
65, // build_signals 65, // build_signals
275, // build_bridge 275, // build_bridge
600, // build_train_depot 600, // build_train_depot
500, // build_road_depot 500, // build_road_depot
700, // build_ship_depot 700, // build_ship_depot
450, // build_tunnel 450, // build_tunnel
200, // train_station_track 200, // train_station_track
180, // train_station_length 180, // train_station_length
600, // build_airport 600, // build_airport
200, // build_bus_station 200, // build_bus_station
200, // build_truck_station 200, // build_truck_station
350, // build_dock 350, // build_dock
400000, // build_railvehicle 400000, // build_railvehicle
2000, // build_railwagon 2000, // build_railwagon
700000, // aircraft_base 700000, // aircraft_base
14000, // roadveh_base 14000, // roadveh_base
65000, // ship_base 65000, // ship_base
20, // build_trees 20, // build_trees
250, // terraform 250, // terraform
20, // clear_1 20, // clear_1
40, // purchase_land 40, // purchase_land
200, // clear_2 200, // clear_2
500, // clear_3 500, // clear_3
20, // remove_trees 20, // remove_trees
-70, // remove_rail -70, // remove_rail
10, // remove_signals 10, // remove_signals
50, // clear_bridge 50, // clear_bridge
80, // remove_train_depot 80, // remove_train_depot
80, // remove_road_depot 80, // remove_road_depot
90, // remove_ship_depot 90, // remove_ship_depot
30, // clear_tunnel 30, // clear_tunnel
10000, // clear_water 10000, // clear_water
50, // remove_rail_station 50, // remove_rail_station
30, // remove_airport 30, // remove_airport
50, // remove_bus_station 50, // remove_bus_station
50, // remove_truck_station 50, // remove_truck_station
55, // remove_dock 55, // remove_dock
1600, // remove_house 1600, // remove_house
40, // remove_road 40, // remove_road
5600, // running_rail[0] railroad 5600, // running_rail[0] railroad
5200, // running_rail[1] monorail 5200, // running_rail[1] monorail
4800, // running_rail[2] maglev 4800, // running_rail[2] maglev
9600, // aircraft_running 9600, // aircraft_running
1600, // roadveh_running 1600, // roadveh_running
5600, // ship_running 5600, // ship_running
1000000, // build_industry 1000000, // build_industry
}; };
@ -1040,12 +1040,12 @@ no_add:;
} }
static const SaveLoad _subsidies_desc[] = { static const SaveLoad _subsidies_desc[] = {
SLE_VAR(Subsidy,cargo_type, SLE_UINT8), SLE_VAR(Subsidy, cargo_type, SLE_UINT8),
SLE_VAR(Subsidy,age, 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_FILE_U8 | SLE_VAR_U16, 0, 4),
SLE_CONDVAR(Subsidy,from, SLE_UINT16, 5, SL_MAX_VERSION), 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_FILE_U8 | SLE_VAR_U16, 0, 4),
SLE_CONDVAR(Subsidy,to, SLE_UINT16, 5, SL_MAX_VERSION), SLE_CONDVAR(Subsidy, to, SLE_UINT16, 5, SL_MAX_VERSION),
SLE_END() SLE_END()
}; };
@ -1635,24 +1635,24 @@ int32 CmdBuyCompany(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
// Prices // Prices
static void SaveLoad_PRIC(void) static void SaveLoad_PRIC(void)
{ {
SlArray(&_price, NUM_PRICES, SLE_INT32); SlArray(&_price, NUM_PRICES, SLE_INT32);
SlArray(&_price_frac, NUM_PRICES, SLE_UINT16); SlArray(&_price_frac, NUM_PRICES, SLE_UINT16);
} }
// Cargo payment rates // Cargo payment rates
static void SaveLoad_CAPR(void) 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); SlArray(&_cargo_payment_rates_frac, NUM_CARGO, SLE_UINT16);
} }
static const SaveLoad _economy_desc[] = { static const SaveLoad _economy_desc[] = {
SLE_VAR(Economy,max_loan, SLE_INT32), SLE_VAR(Economy, max_loan, SLE_INT32),
SLE_VAR(Economy,max_loan_unround, SLE_INT32), SLE_VAR(Economy, max_loan_unround, SLE_INT32),
SLE_VAR(Economy,fluct, SLE_FILE_I16 | SLE_VAR_I32), SLE_VAR(Economy, fluct, SLE_FILE_I16 | SLE_VAR_I32),
SLE_VAR(Economy,interest_rate, SLE_UINT8), SLE_VAR(Economy, interest_rate, SLE_UINT8),
SLE_VAR(Economy,infl_amount, SLE_UINT8), SLE_VAR(Economy, infl_amount, SLE_UINT8),
SLE_VAR(Economy,infl_amount_pr, SLE_UINT8), SLE_VAR(Economy, infl_amount_pr, SLE_UINT8),
SLE_END() SLE_END()
}; };
@ -1665,6 +1665,6 @@ static void SaveLoad_ECMY(void)
const ChunkHandler _economy_chunk_handlers[] = { const ChunkHandler _economy_chunk_handlers[] = {
{ 'PRIC', SaveLoad_PRIC, SaveLoad_PRIC, CH_RIFF | CH_AUTO_LENGTH}, { 'PRIC', SaveLoad_PRIC, SaveLoad_PRIC, CH_RIFF | CH_AUTO_LENGTH},
{ 'CAPR', SaveLoad_CAPR, SaveLoad_CAPR, 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}, { 'ECMY', SaveLoad_ECMY, SaveLoad_ECMY, CH_RIFF | CH_LAST},
}; };

View File

@ -25,9 +25,9 @@ AircraftVehicleInfo _aircraft_vehicle_info[NUM_AIRCRAFT_ENGINES];
RoadVehicleInfo _road_vehicle_info[NUM_ROAD_ENGINES]; RoadVehicleInfo _road_vehicle_info[NUM_ROAD_ENGINES];
enum { enum {
ENGINE_AVAILABLE = 1, ENGINE_AVAILABLE = 1,
ENGINE_INTRODUCING = 2, ENGINE_INTRODUCING = 2,
ENGINE_PREVIEWING = 4, ENGINE_PREVIEWING = 4,
}; };
enum { enum {
@ -40,18 +40,18 @@ enum {
#define MC(cargo) (1 << cargo) #define MC(cargo) (1 << cargo)
const uint32 _default_refitmasks[NUM_VEHICLE_TYPES] = { const uint32 _default_refitmasks[NUM_VEHICLE_TYPES] = {
/* Trains */ /* 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_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_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_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) */ /* Road vehicles (not refittable by default) */
0, 0,
/* Ships */ /* 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_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_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_CANDY) | MC(GC_TOFFEE) | MC(GC_COLA) | MC(GC_COTTON_CANDY) | MC(GC_BUBBLES) | MC(GC_PLASTIC) | MC(GC_FIZZY_DRINKS),
/* Aircraft */ /* 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_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_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 */ /* Special/Disaster */
0,0 0,0
}; };
@ -606,25 +606,25 @@ static void Load_ERNW(void)
} }
static const SaveLoad _engine_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_FILE_U16 | SLE_VAR_I32, 0, 30),
SLE_CONDVAR(Engine,intro_date, SLE_INT32, 31, SL_MAX_VERSION), 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_FILE_U16 | SLE_VAR_I32, 0, 30),
SLE_CONDVAR(Engine,age, SLE_INT32, 31, SL_MAX_VERSION), SLE_CONDVAR(Engine, age, SLE_INT32, 31, SL_MAX_VERSION),
SLE_VAR(Engine,reliability, SLE_UINT16), SLE_VAR(Engine, reliability, SLE_UINT16),
SLE_VAR(Engine,reliability_spd_dec, SLE_UINT16), SLE_VAR(Engine, reliability_spd_dec, SLE_UINT16),
SLE_VAR(Engine,reliability_start, SLE_UINT16), SLE_VAR(Engine, reliability_start, SLE_UINT16),
SLE_VAR(Engine,reliability_max, SLE_UINT16), SLE_VAR(Engine, reliability_max, SLE_UINT16),
SLE_VAR(Engine,reliability_final, SLE_UINT16), SLE_VAR(Engine, reliability_final, SLE_UINT16),
SLE_VAR(Engine,duration_phase_1, SLE_UINT16), SLE_VAR(Engine, duration_phase_1, SLE_UINT16),
SLE_VAR(Engine,duration_phase_2, SLE_UINT16), SLE_VAR(Engine, duration_phase_2, SLE_UINT16),
SLE_VAR(Engine,duration_phase_3, SLE_UINT16), SLE_VAR(Engine, duration_phase_3, SLE_UINT16),
SLE_VAR(Engine,lifelength, SLE_UINT8), SLE_VAR(Engine, lifelength, SLE_UINT8),
SLE_VAR(Engine,flags, SLE_UINT8), SLE_VAR(Engine, flags, SLE_UINT8),
SLE_VAR(Engine,preview_player, SLE_UINT8), SLE_VAR(Engine, preview_player, SLE_UINT8),
SLE_VAR(Engine,preview_wait, SLE_UINT8), SLE_VAR(Engine, preview_wait, SLE_UINT8),
SLE_VAR(Engine,railtype, SLE_UINT8), SLE_VAR(Engine, railtype, SLE_UINT8),
SLE_VAR(Engine,player_avail, SLE_UINT8), SLE_VAR(Engine, player_avail, SLE_UINT8),
// reserve extra space in savegame here. (currently 16 bytes) // reserve extra space in savegame here. (currently 16 bytes)
SLE_CONDNULL(16, 2, SL_MAX_VERSION), SLE_CONDNULL(16, 2, SL_MAX_VERSION),

View File

@ -143,16 +143,16 @@ bool IsEngineBuildable(uint engine, byte type);
enum { enum {
NUM_NORMAL_RAIL_ENGINES = 54, NUM_NORMAL_RAIL_ENGINES = 54,
NUM_MONORAIL_ENGINES = 30, NUM_MONORAIL_ENGINES = 30,
NUM_MAGLEV_ENGINES = 32, NUM_MAGLEV_ENGINES = 32,
NUM_TRAIN_ENGINES = NUM_NORMAL_RAIL_ENGINES + NUM_MONORAIL_ENGINES + NUM_MAGLEV_ENGINES, NUM_TRAIN_ENGINES = NUM_NORMAL_RAIL_ENGINES + NUM_MONORAIL_ENGINES + NUM_MAGLEV_ENGINES,
NUM_ROAD_ENGINES = 88, NUM_ROAD_ENGINES = 88,
NUM_SHIP_ENGINES = 11, NUM_SHIP_ENGINES = 11,
NUM_AIRCRAFT_ENGINES = 41, NUM_AIRCRAFT_ENGINES = 41,
TOTAL_NUM_ENGINES = NUM_TRAIN_ENGINES + NUM_ROAD_ENGINES + NUM_SHIP_ENGINES + NUM_AIRCRAFT_ENGINES, 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, AIRCRAFT_ENGINES_INDEX = NUM_TRAIN_ENGINES + NUM_ROAD_ENGINES + NUM_SHIP_ENGINES,
SHIP_ENGINES_INDEX = NUM_TRAIN_ENGINES + NUM_ROAD_ENGINES, SHIP_ENGINES_INDEX = NUM_TRAIN_ENGINES + NUM_ROAD_ENGINES,
ROAD_ENGINES_INDEX = NUM_TRAIN_ENGINES, ROAD_ENGINES_INDEX = NUM_TRAIN_ENGINES,
}; };
VARDEF Engine _engines[TOTAL_NUM_ENGINES]; VARDEF Engine _engines[TOTAL_NUM_ENGINES];
#define FOR_ALL_ENGINES(e) for (e = _engines; e != endof(_engines); e++) #define FOR_ALL_ENGINES(e) for (e = _engines; e != endof(_engines); e++)

View File

@ -37,11 +37,11 @@ static StringID GetEngineCategoryName(EngineID engine)
} }
static const Widget _engine_preview_widgets[] = { 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_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_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, 85, 144, 172, 183, STR_00C9_NO, STR_NULL},
{ WWT_PUSHTXTBTN, RESIZE_NONE, 5, 155, 214, 172, 183, STR_00C8_YES, STR_NULL}, { WWT_PUSHTXTBTN, RESIZE_NONE, 5, 155, 214, 172, 183, STR_00C8_YES, STR_NULL},
{ WIDGETS_END}, { WIDGETS_END},
}; };

22
fios.h
View File

@ -12,17 +12,17 @@ typedef struct {
} FiosItem; } FiosItem;
enum { enum {
FIOS_TYPE_DRIVE = 0, FIOS_TYPE_DRIVE = 0,
FIOS_TYPE_PARENT = 1, FIOS_TYPE_PARENT = 1,
FIOS_TYPE_DIR = 2, FIOS_TYPE_DIR = 2,
FIOS_TYPE_FILE = 3, FIOS_TYPE_FILE = 3,
FIOS_TYPE_OLDFILE = 4, FIOS_TYPE_OLDFILE = 4,
FIOS_TYPE_SCENARIO = 5, FIOS_TYPE_SCENARIO = 5,
FIOS_TYPE_OLD_SCENARIO = 6, FIOS_TYPE_OLD_SCENARIO = 6,
FIOS_TYPE_DIRECT = 7, FIOS_TYPE_DIRECT = 7,
FIOS_TYPE_PNG = 8, FIOS_TYPE_PNG = 8,
FIOS_TYPE_BMP = 9, FIOS_TYPE_BMP = 9,
FIOS_TYPE_INVALID = 255, FIOS_TYPE_INVALID = 255,
}; };
/* Variables to display file lists */ /* Variables to display file lists */

View File

@ -58,94 +58,94 @@ static inline void SetNewLandscapeType(byte landscape)
// no longer static to allow calling from outside module // no longer static to allow calling from outside module
const Widget _generate_landscape_widgets[] = { const Widget _generate_landscape_widgets[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, 13, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, { 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_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_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, 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, 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, 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, 250, 326, 24, 78, 0x1318, STR_0311_SELECT_TOYLAND_LANDSCAPE},
{ WWT_PANEL, RESIZE_NONE, 12, 114, 149, 90, 101, STR_NULL, STR_NULL}, { 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_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_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_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_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_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_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_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_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, 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_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_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, 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_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_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, 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_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_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_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, 219, 174, 185, STR_NULL, STR_NULL},
{ WWT_PANEL, RESIZE_NONE, 12, 114, 231, 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_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, 219, 210, 221, STR_NULL, STR_NULL},
{ WWT_PANEL, RESIZE_NONE, 12, 114, 231, 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_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, 219, 228, 239, STR_NULL, STR_NULL},
{ WWT_PANEL, RESIZE_NONE, 12, 114, 231, 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_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_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_TEXTBTN, RESIZE_NONE, 12, 220, 231, 246, 257, STR_0225, STR_NULL}, // Map smoothness
{ WIDGETS_END}, { WIDGETS_END},
}; };
const Widget _heightmap_load_widgets[] = { const Widget _heightmap_load_widgets[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, 13, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, { 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_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_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, 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, 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, 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, 250, 326, 24, 78, 0x1318, STR_0311_SELECT_TOYLAND_LANDSCAPE},
{ WWT_PANEL, RESIZE_NONE, 12, 114, 149, 112, 123, STR_NULL, STR_NULL}, { 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_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_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_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_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_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_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_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_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, 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_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_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, 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_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_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, 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_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_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_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_TEXTBTN, RESIZE_NONE, 12, 220, 231, 214, 225, STR_0225, STR_NULL}, // Heightmap rotation
{ WIDGETS_END}, { WIDGETS_END},
}; };

10
gfx.c
View File

@ -271,12 +271,12 @@ static inline SpriteID GetFontBase(FontSize size)
enum { enum {
ASCII_SETX = 1, ASCII_SETX = 1,
ASCII_SETXY = 2, ASCII_SETXY = 2,
ASCII_TINYFONT = 8, ASCII_TINYFONT = 8,
ASCII_BIGFONT = 9, ASCII_BIGFONT = 9,
ASCII_NL = 10, ASCII_NL = 10,
ASCII_COLORSTART = 15, ASCII_COLORSTART = 15,
}; };

View File

@ -257,17 +257,17 @@ static void GraphLegendWndProc(Window *w, WindowEvent *e)
} }
static const Widget _graph_legend_widgets[] = { 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_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, 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, 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, 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, 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, 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, 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, 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, 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, 2, 247, 100, 111, 0x0, STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -365,10 +365,10 @@ static void OperatingProfitWndProc(Window *w, WindowEvent *e)
} }
static const Widget _operating_profit_widgets[] = { 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_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_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_IMGBTN, RESIZE_NONE, 14, 0, 575, 14, 173, 0x0, STR_NULL},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -440,10 +440,10 @@ static void IncomeGraphWndProc(Window *w, WindowEvent *e)
} }
static const Widget _income_graph_widgets[] = { 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_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_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_IMGBTN, RESIZE_NONE, 14, 0, 575, 14, 141, 0x0, STR_NULL},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -513,10 +513,10 @@ static void DeliveredCargoGraphWndProc(Window *w, WindowEvent *e)
} }
static const Widget _delivered_cargo_graph_widgets[] = { 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_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_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_IMGBTN, RESIZE_NONE, 14, 0, 575, 14, 141, 0x0, STR_NULL},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -588,11 +588,11 @@ static void PerformanceHistoryWndProc(Window *w, WindowEvent *e)
} }
static const Widget _performance_history_widgets[] = { static const Widget _performance_history_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, 475, 0, 13, STR_7051_COMPANY_PERFORMANCE_RATINGS, STR_018C_WINDOW_TITLE_DRAG_THIS}, { 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, 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_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_IMGBTN, RESIZE_NONE, 14, 0, 575, 14, 237, 0x0, STR_NULL},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -662,10 +662,10 @@ static void CompanyValueGraphWndProc(Window *w, WindowEvent *e)
} }
static const Widget _company_value_graph_widgets[] = { static const Widget _company_value_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_7052_COMPANY_VALUES, STR_018C_WINDOW_TITLE_DRAG_THIS}, { 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_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_IMGBTN, RESIZE_NONE, 14, 0, 575, 14, 237, 0x0, STR_NULL},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -752,21 +752,21 @@ static void CargoPaymentRatesWndProc(Window *w, WindowEvent *e)
} }
static const Widget _cargo_payment_rates_widgets[] = { static const Widget _cargo_payment_rates_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, 567, 0, 13, STR_7061_CARGO_PAYMENT_RATES, STR_018C_WINDOW_TITLE_DRAG_THIS}, { 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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_PANEL, RESIZE_NONE, 12, 493, 562, 112, 119, 0x0, STR_7064_TOGGLE_GRAPH_FOR_CARGO},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -1055,29 +1055,29 @@ static void PerformanceRatingDetailWndProc(Window *w, WindowEvent *e)
} }
static const Widget _performance_rating_detail_widgets[] = { static const Widget _performance_rating_detail_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, 298, 0, 13, STR_PERFORMANCE_DETAIL, STR_018C_WINDOW_TITLE_DRAG_THIS}, { 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 261, 297, 14, 26, 0x0, STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -1208,12 +1208,12 @@ static void SignListWndProc(Window *w, WindowEvent *e)
} }
static const Widget _sign_list_widget[] = { static const Widget _sign_list_widget[] = {
{ 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_RIGHT, 14, 11, 345, 0, 13, STR_SIGN_LIST_CAPTION, STR_018C_WINDOW_TITLE_DRAG_THIS}, { 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_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_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_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_RESIZEBOX, RESIZE_LRTB, 14, 346, 357, 126, 137, 0x0, STR_RESIZE_BUTTON},
{ WIDGETS_END}, { WIDGETS_END},
}; };

4
gui.h
View File

@ -133,8 +133,8 @@ void ShowNetworkGameWindow(void);
void ShowBuildBridgeWindow(uint start, uint end, byte type); void ShowBuildBridgeWindow(uint start, uint end, byte type);
enum { enum {
ZOOM_IN = 0, ZOOM_IN = 0,
ZOOM_OUT = 1, ZOOM_OUT = 1,
ZOOM_NONE = 2, // hack, used to update the button status ZOOM_NONE = 2, // hack, used to update the button status
}; };

View File

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

View File

@ -594,9 +594,9 @@ static void TileLoopIndustry_BubbleGenerator(TileIndex tile)
int dir; int dir;
Vehicle *v; Vehicle *v;
static const int8 _tileloop_ind_case_161[12] = { static const int8 _tileloop_ind_case_161[12] = {
11, 0, -4, -14, 11, 0, -4, -14,
-4, -10, -4, 1, -4, -10, -4, 1,
49, 59, 60, 65, 49, 59, 60, 65,
}; };
SndPlayTileFx(SND_2E_EXTRACT_AND_POP, tile); SndPlayTileFx(SND_2E_EXTRACT_AND_POP, tile);
@ -1160,11 +1160,11 @@ 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, 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,
@ -1763,10 +1763,10 @@ static void UpdateIndustryStatistics(Industry *i)
} }
static const byte _new_industry_rand[4][32] = { 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}, {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}, {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}, {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}, {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) static void MaybeNewIndustry(uint32 r)
@ -1900,46 +1900,46 @@ void InitializeIndustries(void)
} }
const TileTypeProcs _tile_type_industry_procs = { const TileTypeProcs _tile_type_industry_procs = {
DrawTile_Industry, /* draw_tile_proc */ DrawTile_Industry, /* draw_tile_proc */
GetSlopeZ_Industry, /* get_slope_z_proc */ GetSlopeZ_Industry, /* get_slope_z_proc */
ClearTile_Industry, /* clear_tile_proc */ ClearTile_Industry, /* clear_tile_proc */
GetAcceptedCargo_Industry, /* get_accepted_cargo_proc */ GetAcceptedCargo_Industry, /* get_accepted_cargo_proc */
GetTileDesc_Industry, /* get_tile_desc_proc */ GetTileDesc_Industry, /* get_tile_desc_proc */
GetTileTrackStatus_Industry,/* get_tile_track_status_proc */ GetTileTrackStatus_Industry, /* get_tile_track_status_proc */
ClickTile_Industry, /* click_tile_proc */ ClickTile_Industry, /* click_tile_proc */
AnimateTile_Industry, /* animate_tile_proc */ AnimateTile_Industry, /* animate_tile_proc */
TileLoop_Industry, /* tile_loop_proc */ TileLoop_Industry, /* tile_loop_proc */
ChangeTileOwner_Industry, /* change_tile_owner_proc */ ChangeTileOwner_Industry, /* change_tile_owner_proc */
GetProducedCargo_Industry, /* get_produced_cargo_proc */ GetProducedCargo_Industry, /* get_produced_cargo_proc */
NULL, /* vehicle_enter_tile_proc */ NULL, /* vehicle_enter_tile_proc */
GetSlopeTileh_Industry, /* get_slope_tileh_proc */ GetSlopeTileh_Industry, /* get_slope_tileh_proc */
}; };
static const SaveLoad _industry_desc[] = { static const SaveLoad _industry_desc[] = {
SLE_CONDVAR(Industry, xy, SLE_FILE_U16 | SLE_VAR_U32, 0, 5), SLE_CONDVAR(Industry, xy, SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
SLE_CONDVAR(Industry, xy, SLE_UINT32, 6, SL_MAX_VERSION), SLE_CONDVAR(Industry, xy, SLE_UINT32, 6, SL_MAX_VERSION),
SLE_VAR(Industry,width, SLE_UINT8), SLE_VAR(Industry, width, SLE_UINT8),
SLE_VAR(Industry,height, SLE_UINT8), SLE_VAR(Industry, height, SLE_UINT8),
SLE_REF(Industry,town, REF_TOWN), SLE_REF(Industry, town, REF_TOWN),
SLE_ARR(Industry,produced_cargo, SLE_UINT8, 2), SLE_ARR(Industry, produced_cargo, SLE_UINT8, 2),
SLE_ARR(Industry,cargo_waiting, SLE_UINT16, 2), SLE_ARR(Industry, cargo_waiting, SLE_UINT16, 2),
SLE_ARR(Industry,production_rate, SLE_UINT8, 2), SLE_ARR(Industry, production_rate, SLE_UINT8, 2),
SLE_ARR(Industry,accepts_cargo, SLE_UINT8, 3), SLE_ARR(Industry, accepts_cargo, SLE_UINT8, 3),
SLE_VAR(Industry,prod_level, SLE_UINT8), SLE_VAR(Industry, prod_level, SLE_UINT8),
SLE_ARR(Industry,last_mo_production,SLE_UINT16, 2), SLE_ARR(Industry, last_mo_production, SLE_UINT16, 2),
SLE_ARR(Industry,last_mo_transported,SLE_UINT16, 2), SLE_ARR(Industry, last_mo_transported, SLE_UINT16, 2),
SLE_ARR(Industry,pct_transported,SLE_UINT8, 2), SLE_ARR(Industry, pct_transported, SLE_UINT8, 2),
SLE_ARR(Industry,total_production,SLE_UINT16, 2), SLE_ARR(Industry, total_production, SLE_UINT16, 2),
SLE_ARR(Industry,total_transported,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, type, SLE_UINT8),
SLE_VAR(Industry,owner, SLE_UINT8), SLE_VAR(Industry, owner, SLE_UINT8),
SLE_VAR(Industry,color_map, 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_FILE_U8 | SLE_VAR_I32, 0, 30),
SLE_CONDVAR(Industry, last_prod_year, SLE_INT32, 31, SL_MAX_VERSION), SLE_CONDVAR(Industry, last_prod_year, SLE_INT32, 31, SL_MAX_VERSION),
SLE_VAR(Industry,was_cargo_delivered,SLE_UINT8), SLE_VAR(Industry, was_cargo_delivered, SLE_UINT8),
// reserve extra space in savegame here. (currently 32 bytes) // reserve extra space in savegame here. (currently 32 bytes)
SLE_CONDNULL(32, 2, SL_MAX_VERSION), SLE_CONDNULL(32, 2, SL_MAX_VERSION),

View File

@ -57,130 +57,130 @@ static void BuildIndustryWndProc(Window *w, WindowEvent *e)
} }
static const Widget _build_industry_land0_widgets[] = { static const Widget _build_industry_land0_widgets[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, { 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_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_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, 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, 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, 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, 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, 68, 79, STR_0247_STEEL_MILL, STR_0269_CONSTRUCT_STEEL_MILL},
{ WIDGETS_END}, { WIDGETS_END},
}; };
static const Widget _build_industry_land1_widgets[] = { static const Widget _build_industry_land1_widgets[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, { 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_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_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, 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, 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, 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, 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, 68, 79, STR_024E_PRINTING_WORKS, STR_0270_CONSTRUCT_PRINTING_WORKS},
{ WIDGETS_END}, { WIDGETS_END},
}; };
static const Widget _build_industry_land2_widgets[] = { static const Widget _build_industry_land2_widgets[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, { 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_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_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, 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, 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, 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, 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, 68, 79, STR_0254_WATER_TOWER, STR_0277_CONSTRUCT_WATER_TOWER_CAN},
{ WIDGETS_END}, { WIDGETS_END},
}; };
static const Widget _build_industry_land3_widgets[] = { static const Widget _build_industry_land3_widgets[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, { 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_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_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, 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, 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, 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, 55, 66, STR_025E_FIZZY_DRINK_FACTORY, STR_0281_CONSTRUCT_FIZZY_DRINK_FACTORY},
{ WIDGETS_END}, { WIDGETS_END},
}; };
static const Widget _build_industry_land0_widgets_extra[] = { static const Widget _build_industry_land0_widgets_extra[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, { 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_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_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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 149, 160, STR_0249_IRON_ORE_MINE, STR_CONSTRUCT_IRON_ORE_MINE_TIP},
{ WIDGETS_END}, { WIDGETS_END},
}; };
static const Widget _build_industry_land1_widgets_extra[] = { static const Widget _build_industry_land1_widgets_extra[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, { 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_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_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, 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, 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, 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, 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, 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, 84, 95, 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, 97, 108, 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, 110, 121, 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, 123, 134, 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, 136, 147, STR_024F_GOLD_MINE, STR_CONSTRUCT_GOLD_MINE_TIP},
{ WIDGETS_END}, { WIDGETS_END},
}; };
static const Widget _build_industry_land2_widgets_extra[] = { static const Widget _build_industry_land2_widgets_extra[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, { 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_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_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, 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, 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, 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, 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, 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, 84, 95, 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, 97, 108, 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, 110, 121, 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, 123, 134, 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, 136, 147, 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, 149, 160, 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, 162, 173, STR_0253_WATER_SUPPLY, STR_CONSTRUCT_WATER_SUPPLY_TIP},
{ WIDGETS_END}, { WIDGETS_END},
}; };
static const Widget _build_industry_land3_widgets_extra[] = { static const Widget _build_industry_land3_widgets_extra[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, { 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_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_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, 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, 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, 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, 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, 71, 82, 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, 84, 95, 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, 97, 108, 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, 110, 121, 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, 123, 134, 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, 136, 147, 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, 149, 160, STR_0261_SUGAR_MINE, STR_CONSTRUCT_SUGAR_MINE_TIP},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -420,14 +420,14 @@ static void UpdateIndustryProduction(Industry *i)
} }
static const Widget _industry_view_widgets[] = { static const Widget _industry_view_widgets[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, 9, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, { 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_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_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_IMGBTN, RESIZE_NONE, 9, 0, 259, 14, 105, 0x0, STR_NULL},
{ WWT_6, RESIZE_NONE, 9, 2, 257, 16, 103, 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_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_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_IMGBTN, RESIZE_NONE, 9, 130, 259, 148, 159, 0x0, STR_NULL},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -453,17 +453,17 @@ void ShowIndustryViewWindow(int industry)
} }
static const Widget _industry_directory_widgets[] = { static const Widget _industry_directory_widgets[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, 13, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, { 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_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_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, 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, 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, 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_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_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_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_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_RESIZEBOX, RESIZE_TB, 13, 496, 507, 178, 189, 0x0, STR_RESIZE_BUTTON},
{ WIDGETS_END}, { WIDGETS_END},
}; };

View File

@ -15,24 +15,24 @@
#include "genworld.h" #include "genworld.h"
static const Widget _select_game_widgets[] = { static const Widget _select_game_widgets[] = {
{ WWT_CAPTION, RESIZE_NONE, 13, 0, 335, 0, 13, STR_0307_OPENTTD, STR_NULL}, { 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_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, 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, 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, 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, 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, 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_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, 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, 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, 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, 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, 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, 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, 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, 168, 325, 157, 168, STR_0304_QUIT, STR_0305_QUIT_OPENTTD},
{ WIDGETS_END }, { WIDGETS_END },
}; };

View File

@ -50,13 +50,13 @@ const TileTypeProcs * const _tile_type_procs[16] = {
/* landscape slope => sprite */ /* landscape slope => sprite */
const byte _tileh_to_sprite[32] = { const byte _tileh_to_sprite[32] = {
0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,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, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 17, 0, 15, 18, 0,
}; };
const byte _inclined_tileh[] = { const byte _inclined_tileh[] = {
SLOPE_SW, SLOPE_NW, SLOPE_SW, SLOPE_SE, SLOPE_NE, SLOPE_SE, SLOPE_NE, SLOPE_NW, 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_E, SLOPE_N, SLOPE_W, SLOPE_S,
SLOPE_NWS, SLOPE_WSE, SLOPE_SEN, SLOPE_ENW SLOPE_NWS, SLOPE_WSE, SLOPE_SEN, SLOPE_ENW
}; };
@ -445,8 +445,8 @@ void ConvertGroundTilesIntoWaterTiles(void)
} }
} }
static const byte _genterrain_tbl_1[5] = { 10, 22, 33, 37, 4 }; 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_2[5] = { 0, 0, 0, 0, 33 };
static void GenerateTerrain(int type, int flag) static void GenerateTerrain(int type, int flag)
{ {

View File

@ -428,33 +428,33 @@ static void MenuClickHelp(int index)
typedef void MenuClickedProc(int index); typedef void MenuClickedProc(int index);
static MenuClickedProc * const _menu_clicked_procs[] = { static MenuClickedProc * const _menu_clicked_procs[] = {
NULL, /* 0 */ NULL, /* 0 */
NULL, /* 1 */ NULL, /* 1 */
MenuClickSettings, /* 2 */ MenuClickSettings, /* 2 */
MenuClickSaveLoad, /* 3 */ MenuClickSaveLoad, /* 3 */
MenuClickMap, /* 4 */ MenuClickMap, /* 4 */
MenuClickTown, /* 5 */ MenuClickTown, /* 5 */
MenuClickSubsidies, /* 6 */ MenuClickSubsidies, /* 6 */
MenuClickStations, /* 7 */ MenuClickStations, /* 7 */
MenuClickFinances, /* 8 */ MenuClickFinances, /* 8 */
MenuClickCompany, /* 9 */ MenuClickCompany, /* 9 */
MenuClickGraphs, /* 10 */ MenuClickGraphs, /* 10 */
MenuClickLeague, /* 11 */ MenuClickLeague, /* 11 */
MenuClickIndustry, /* 12 */ MenuClickIndustry, /* 12 */
MenuClickShowTrains, /* 13 */ MenuClickShowTrains, /* 13 */
MenuClickShowRoad, /* 14 */ MenuClickShowRoad, /* 14 */
MenuClickShowShips, /* 15 */ MenuClickShowShips, /* 15 */
MenuClickShowAir, /* 16 */ MenuClickShowAir, /* 16 */
MenuClickScenMap, /* 17 */ MenuClickScenMap, /* 17 */
NULL, /* 18 */ NULL, /* 18 */
MenuClickBuildRail, /* 19 */ MenuClickBuildRail, /* 19 */
MenuClickBuildRoad, /* 20 */ MenuClickBuildRoad, /* 20 */
MenuClickBuildWater, /* 21 */ MenuClickBuildWater, /* 21 */
MenuClickBuildAir, /* 22 */ MenuClickBuildAir, /* 22 */
MenuClickForest, /* 23 */ MenuClickForest, /* 23 */
MenuClickMusicWindow, /* 24 */ MenuClickMusicWindow, /* 24 */
MenuClickNewspaper, /* 25 */ MenuClickNewspaper, /* 25 */
MenuClickHelp, /* 26 */ MenuClickHelp, /* 26 */
}; };
static void MenuWndProc(Window *w, WindowEvent *e) static void MenuWndProc(Window *w, WindowEvent *e)
@ -533,13 +533,13 @@ static void MenuWndProc(Window *w, WindowEvent *e)
} }
static const Widget _menu_widgets[] = { static const Widget _menu_widgets[] = {
{ WWT_PANEL, RESIZE_NONE, 14, 0, 159, 0, 65535, 0, STR_NULL}, { WWT_PANEL, RESIZE_NONE, 14, 0, 159, 0, 65535, 0, STR_NULL},
{ WIDGETS_END}, { WIDGETS_END},
}; };
static const Widget _player_menu_widgets[] = { static const Widget _player_menu_widgets[] = {
{ WWT_PANEL, RESIZE_NONE, 14, 0, 240, 0, 81, 0, STR_NULL}, { WWT_PANEL, RESIZE_NONE, 14, 0, 240, 0, 81, 0, STR_NULL},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -1187,13 +1187,13 @@ static const Widget _scen_edit_land_gen_widgets[] = {
static const int8 _multi_terraform_coords[][2] = { static const int8 _multi_terraform_coords[][2] = {
{ 0, -2}, { 0, -2},
{ 4, 0},{ -4, 0},{ 0, 2}, { 4, 0}, { -4, 0}, { 0, 2},
{ -8, 2},{ -4, 4},{ 0, 6},{ 4, 4},{ 8, 2}, { -8, 2}, { -4, 4}, { 0, 6}, { 4, 4}, { 8, 2},
{-12, 0},{ -8, -2},{ -4, -4},{ 0, -6},{ 4, -4},{ 8, -2},{ 12, 0}, {-12, 0}, { -8, -2}, { -4, -4}, { 0, -6}, { 4, -4}, { 8, -2}, { 12, 0},
{-16, 2},{-12, 4},{ -8, 6},{ -4, 8},{ 0, 10},{ 4, 8},{ 8, 6},{ 12, 4},{ 16, 2}, {-16, 2}, {-12, 4}, { -8, 6}, { -4, 8}, { 0, 10}, { 4, 8}, { 8, 6}, { 12, 4}, { 16, 2},
{-20, 0},{-16, -2},{-12, -4},{ -8, -6},{ -4, -8},{ 0,-10},{ 4, -8},{ 8, -6},{ 12, -4},{ 16, -2},{ 20, 0}, {-20, 0}, {-16, -2}, {-12, -4}, { -8, -6}, { -4, -8}, { 0,-10}, { 4, -8}, { 8, -6}, { 12, -4}, { 16, -2}, { 20, 0},
{-24, 2},{-20, 4},{-16, 6},{-12, 8},{ -8, 10},{ -4, 12},{ 0, 14},{ 4, 12},{ 8, 10},{ 12, 8},{ 16, 6},{ 20, 4},{ 24, 2}, {-24, 2}, {-20, 4}, {-16, 6}, {-12, 8}, { -8, 10}, { -4, 12}, { 0, 14}, { 4, 12}, { 8, 10}, { 12, 8}, { 16, 6}, { 20, 4}, { 24, 2},
{-28, 0},{-24, -2},{-20, -4},{-16, -6},{-12, -8},{ -8,-10},{ -4,-12},{ 0,-14},{ 4,-12},{ 8,-10},{ 12, -8},{ 16, -6},{ 20, -4},{ 24, -2},{ 28, 0}, {-28, 0}, {-24, -2}, {-20, -4}, {-16, -6}, {-12, -8}, { -8,-10}, { -4,-12}, { 0,-14}, { 4,-12}, { 8,-10}, { 12, -8}, { 16, -6}, { 20, -4}, { 24, -2}, { 28, 0},
}; };
// TODO - Merge with terraform_gui.c (move there) after I have cooled down at its braindeadness // TODO - Merge with terraform_gui.c (move there) after I have cooled down at its braindeadness
@ -1477,90 +1477,90 @@ static void ToolbarScenGenTown(Window *w)
static const Widget _scenedit_industry_normal_widgets[] = { static const Widget _scenedit_industry_normal_widgets[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, { 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_023F_INDUSTRY_GENERATION, STR_NULL}, { WWT_CAPTION, RESIZE_NONE, 7, 11, 169, 0, 13, STR_023F_INDUSTRY_GENERATION, STR_NULL},
{ WWT_IMGBTN, RESIZE_NONE, 7, 0, 169, 14, 224, 0x0, STR_NULL}, { WWT_IMGBTN, RESIZE_NONE, 7, 0, 169, 14, 224, 0x0, STR_NULL},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 16, 27, STR_MANY_RANDOM_INDUSTRIES, STR_RANDOM_INDUSTRIES_TIP}, { WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 16, 27, STR_MANY_RANDOM_INDUSTRIES, STR_RANDOM_INDUSTRIES_TIP},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 42, 53, STR_0240_COAL_MINE, STR_0262_CONSTRUCT_COAL_MINE}, { WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 42, 53, STR_0240_COAL_MINE, STR_0262_CONSTRUCT_COAL_MINE},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 55, 66, STR_0241_POWER_STATION, STR_0263_CONSTRUCT_POWER_STATION}, { WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 55, 66, STR_0241_POWER_STATION, STR_0263_CONSTRUCT_POWER_STATION},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 68, 79, STR_0242_SAWMILL, STR_0264_CONSTRUCT_SAWMILL}, { WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 68, 79, STR_0242_SAWMILL, STR_0264_CONSTRUCT_SAWMILL},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 81, 92, STR_0243_FOREST, STR_0265_PLANT_FOREST}, { WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 81, 92, STR_0243_FOREST, STR_0265_PLANT_FOREST},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 94, 105, STR_0244_OIL_REFINERY, STR_0266_CONSTRUCT_OIL_REFINERY}, { WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 94, 105, STR_0244_OIL_REFINERY, STR_0266_CONSTRUCT_OIL_REFINERY},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 107, 118, STR_0245_OIL_RIG, STR_0267_CONSTRUCT_OIL_RIG_CAN_ONLY}, { WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 107, 118, STR_0245_OIL_RIG, STR_0267_CONSTRUCT_OIL_RIG_CAN_ONLY},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 120, 131, STR_0246_FACTORY, STR_0268_CONSTRUCT_FACTORY}, { WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 120, 131, STR_0246_FACTORY, STR_0268_CONSTRUCT_FACTORY},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 133, 144, STR_0247_STEEL_MILL, STR_0269_CONSTRUCT_STEEL_MILL}, { WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 133, 144, STR_0247_STEEL_MILL, STR_0269_CONSTRUCT_STEEL_MILL},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 146, 157, STR_0248_FARM, STR_026A_CONSTRUCT_FARM}, { WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 146, 157, STR_0248_FARM, STR_026A_CONSTRUCT_FARM},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 159, 170, STR_0249_IRON_ORE_MINE, STR_026B_CONSTRUCT_IRON_ORE_MINE}, { WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 159, 170, STR_0249_IRON_ORE_MINE, STR_026B_CONSTRUCT_IRON_ORE_MINE},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 172, 183, STR_024A_OIL_WELLS, STR_026C_CONSTRUCT_OIL_WELLS}, { WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 172, 183, STR_024A_OIL_WELLS, STR_026C_CONSTRUCT_OIL_WELLS},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 185, 196, STR_024B_BANK, STR_026D_CONSTRUCT_BANK_CAN_ONLY}, { WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 185, 196, STR_024B_BANK, STR_026D_CONSTRUCT_BANK_CAN_ONLY},
{ WIDGETS_END}, { WIDGETS_END},
}; };
static const Widget _scenedit_industry_hilly_widgets[] = { static const Widget _scenedit_industry_hilly_widgets[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, { 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_023F_INDUSTRY_GENERATION, STR_NULL}, { WWT_CAPTION, RESIZE_NONE, 7, 11, 169, 0, 13, STR_023F_INDUSTRY_GENERATION, STR_NULL},
{ WWT_IMGBTN, RESIZE_NONE, 7, 0, 169, 14, 224, 0x0, STR_NULL}, { WWT_IMGBTN, RESIZE_NONE, 7, 0, 169, 14, 224, 0x0, STR_NULL},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 16, 27, STR_MANY_RANDOM_INDUSTRIES, STR_RANDOM_INDUSTRIES_TIP}, { WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 16, 27, STR_MANY_RANDOM_INDUSTRIES, STR_RANDOM_INDUSTRIES_TIP},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 42, 53, STR_0240_COAL_MINE, STR_0262_CONSTRUCT_COAL_MINE}, { WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 42, 53, STR_0240_COAL_MINE, STR_0262_CONSTRUCT_COAL_MINE},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 55, 66, STR_0241_POWER_STATION, STR_0263_CONSTRUCT_POWER_STATION}, { WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 55, 66, STR_0241_POWER_STATION, STR_0263_CONSTRUCT_POWER_STATION},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 68, 79, STR_024C_PAPER_MILL, STR_026E_CONSTRUCT_PAPER_MILL}, { WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 68, 79, STR_024C_PAPER_MILL, STR_026E_CONSTRUCT_PAPER_MILL},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 81, 92, STR_0243_FOREST, STR_0265_PLANT_FOREST}, { WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 81, 92, STR_0243_FOREST, STR_0265_PLANT_FOREST},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 94, 105, STR_0244_OIL_REFINERY, STR_0266_CONSTRUCT_OIL_REFINERY}, { WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 94, 105, STR_0244_OIL_REFINERY, STR_0266_CONSTRUCT_OIL_REFINERY},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 107, 118, STR_024D_FOOD_PROCESSING_PLANT, STR_026F_CONSTRUCT_FOOD_PROCESSING}, { WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 107, 118, STR_024D_FOOD_PROCESSING_PLANT, STR_026F_CONSTRUCT_FOOD_PROCESSING},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 120, 131, STR_024E_PRINTING_WORKS, STR_0270_CONSTRUCT_PRINTING_WORKS}, { WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 120, 131, STR_024E_PRINTING_WORKS, STR_0270_CONSTRUCT_PRINTING_WORKS},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 133, 144, STR_024F_GOLD_MINE, STR_0271_CONSTRUCT_GOLD_MINE}, { WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 133, 144, STR_024F_GOLD_MINE, STR_0271_CONSTRUCT_GOLD_MINE},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 146, 157, STR_0248_FARM, STR_026A_CONSTRUCT_FARM}, { WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 146, 157, STR_0248_FARM, STR_026A_CONSTRUCT_FARM},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 159, 170, STR_024B_BANK, STR_0272_CONSTRUCT_BANK_CAN_ONLY}, { WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 159, 170, STR_024B_BANK, STR_0272_CONSTRUCT_BANK_CAN_ONLY},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 172, 183, STR_024A_OIL_WELLS, STR_026C_CONSTRUCT_OIL_WELLS}, { WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 172, 183, STR_024A_OIL_WELLS, STR_026C_CONSTRUCT_OIL_WELLS},
{ WIDGETS_END}, { WIDGETS_END},
}; };
static const Widget _scenedit_industry_desert_widgets[] = { static const Widget _scenedit_industry_desert_widgets[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, { 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_023F_INDUSTRY_GENERATION, STR_NULL}, { WWT_CAPTION, RESIZE_NONE, 7, 11, 169, 0, 13, STR_023F_INDUSTRY_GENERATION, STR_NULL},
{ WWT_IMGBTN, RESIZE_NONE, 7, 0, 169, 14, 224, 0x0, STR_NULL}, { WWT_IMGBTN, RESIZE_NONE, 7, 0, 169, 14, 224, 0x0, STR_NULL},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 16, 27, STR_MANY_RANDOM_INDUSTRIES, STR_RANDOM_INDUSTRIES_TIP}, { WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 16, 27, STR_MANY_RANDOM_INDUSTRIES, STR_RANDOM_INDUSTRIES_TIP},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 42, 53, STR_0250_LUMBER_MILL, STR_0273_CONSTRUCT_LUMBER_MILL_TO}, { WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 42, 53, STR_0250_LUMBER_MILL, STR_0273_CONSTRUCT_LUMBER_MILL_TO},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 55, 66, STR_0251_FRUIT_PLANTATION, STR_0274_PLANT_FRUIT_PLANTATION}, { WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 55, 66, STR_0251_FRUIT_PLANTATION, STR_0274_PLANT_FRUIT_PLANTATION},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 68, 79, STR_0252_RUBBER_PLANTATION,STR_0275_PLANT_RUBBER_PLANTATION}, { WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 68, 79, STR_0252_RUBBER_PLANTATION, STR_0275_PLANT_RUBBER_PLANTATION},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 81, 92, STR_0244_OIL_REFINERY, STR_0266_CONSTRUCT_OIL_REFINERY}, { WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 81, 92, STR_0244_OIL_REFINERY, STR_0266_CONSTRUCT_OIL_REFINERY},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 94, 105, STR_024D_FOOD_PROCESSING_PLANT, STR_026F_CONSTRUCT_FOOD_PROCESSING}, { WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 94, 105, STR_024D_FOOD_PROCESSING_PLANT, STR_026F_CONSTRUCT_FOOD_PROCESSING},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 107, 118, STR_0246_FACTORY, STR_0268_CONSTRUCT_FACTORY}, { WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 107, 118, STR_0246_FACTORY, STR_0268_CONSTRUCT_FACTORY},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 120, 131, STR_0253_WATER_SUPPLY, STR_0276_CONSTRUCT_WATER_SUPPLY}, { WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 120, 131, STR_0253_WATER_SUPPLY, STR_0276_CONSTRUCT_WATER_SUPPLY},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 133, 144, STR_0248_FARM, STR_026A_CONSTRUCT_FARM}, { WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 133, 144, STR_0248_FARM, STR_026A_CONSTRUCT_FARM},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 146, 157, STR_0254_WATER_TOWER, STR_0277_CONSTRUCT_WATER_TOWER_CAN}, { WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 146, 157, STR_0254_WATER_TOWER, STR_0277_CONSTRUCT_WATER_TOWER_CAN},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 159, 170, STR_024A_OIL_WELLS, STR_026C_CONSTRUCT_OIL_WELLS}, { WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 159, 170, STR_024A_OIL_WELLS, STR_026C_CONSTRUCT_OIL_WELLS},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 172, 183, STR_024B_BANK, STR_0272_CONSTRUCT_BANK_CAN_ONLY}, { WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 172, 183, STR_024B_BANK, STR_0272_CONSTRUCT_BANK_CAN_ONLY},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 185, 196, STR_0255_DIAMOND_MINE, STR_0278_CONSTRUCT_DIAMOND_MINE}, { WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 185, 196, STR_0255_DIAMOND_MINE, STR_0278_CONSTRUCT_DIAMOND_MINE},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 198, 209, STR_0256_COPPER_ORE_MINE, STR_0279_CONSTRUCT_COPPER_ORE_MINE}, { WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 198, 209, STR_0256_COPPER_ORE_MINE, STR_0279_CONSTRUCT_COPPER_ORE_MINE},
{ WIDGETS_END}, { WIDGETS_END},
}; };
static const Widget _scenedit_industry_candy_widgets[] = { static const Widget _scenedit_industry_candy_widgets[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, { 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_023F_INDUSTRY_GENERATION,STR_NULL}, { WWT_CAPTION, RESIZE_NONE, 7, 11, 169, 0, 13, STR_023F_INDUSTRY_GENERATION, STR_NULL},
{ WWT_IMGBTN, RESIZE_NONE, 7, 0, 169, 14, 224, 0x0, STR_NULL}, { WWT_IMGBTN, RESIZE_NONE, 7, 0, 169, 14, 224, 0x0, STR_NULL},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 16, 27, STR_MANY_RANDOM_INDUSTRIES, STR_RANDOM_INDUSTRIES_TIP}, { WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 16, 27, STR_MANY_RANDOM_INDUSTRIES, STR_RANDOM_INDUSTRIES_TIP},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 42, 53, STR_0257_COTTON_CANDY_FOREST,STR_027A_PLANT_COTTON_CANDY_FOREST}, { WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 42, 53, STR_0257_COTTON_CANDY_FOREST, STR_027A_PLANT_COTTON_CANDY_FOREST},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 55, 66, STR_0258_CANDY_FACTORY, STR_027B_CONSTRUCT_CANDY_FACTORY}, { WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 55, 66, STR_0258_CANDY_FACTORY, STR_027B_CONSTRUCT_CANDY_FACTORY},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 68, 79, STR_0259_BATTERY_FARM, STR_027C_CONSTRUCT_BATTERY_FARM}, { WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 68, 79, STR_0259_BATTERY_FARM, STR_027C_CONSTRUCT_BATTERY_FARM},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 81, 92, STR_025A_COLA_WELLS, STR_027D_CONSTRUCT_COLA_WELLS}, { WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 81, 92, STR_025A_COLA_WELLS, STR_027D_CONSTRUCT_COLA_WELLS},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 94, 105, STR_025B_TOY_SHOP, STR_027E_CONSTRUCT_TOY_SHOP}, { WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 94, 105, STR_025B_TOY_SHOP, STR_027E_CONSTRUCT_TOY_SHOP},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 107, 118, STR_025C_TOY_FACTORY, STR_027F_CONSTRUCT_TOY_FACTORY}, { WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 107, 118, STR_025C_TOY_FACTORY, STR_027F_CONSTRUCT_TOY_FACTORY},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 120, 131, STR_025D_PLASTIC_FOUNTAINS, STR_0280_CONSTRUCT_PLASTIC_FOUNTAINS}, { WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 120, 131, STR_025D_PLASTIC_FOUNTAINS, STR_0280_CONSTRUCT_PLASTIC_FOUNTAINS},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 133, 144, STR_025E_FIZZY_DRINK_FACTORY,STR_0281_CONSTRUCT_FIZZY_DRINK_FACTORY}, { WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 133, 144, STR_025E_FIZZY_DRINK_FACTORY, STR_0281_CONSTRUCT_FIZZY_DRINK_FACTORY},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 146, 157, STR_025F_BUBBLE_GENERATOR, STR_0282_CONSTRUCT_BUBBLE_GENERATOR}, { WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 146, 157, STR_025F_BUBBLE_GENERATOR, STR_0282_CONSTRUCT_BUBBLE_GENERATOR},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 159, 170, STR_0260_TOFFEE_QUARRY, STR_0283_CONSTRUCT_TOFFEE_QUARRY}, { WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 159, 170, STR_0260_TOFFEE_QUARRY, STR_0283_CONSTRUCT_TOFFEE_QUARRY},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 172, 183, STR_0261_SUGAR_MINE, STR_0284_CONSTRUCT_SUGAR_MINE}, { WWT_TEXTBTN, RESIZE_NONE, 14, 2, 167, 172, 183, STR_0261_SUGAR_MINE, STR_0284_CONSTRUCT_SUGAR_MINE},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -1603,9 +1603,9 @@ static bool TryBuildIndustry(TileIndex tile, int type)
static const byte _industry_type_list[4][16] = { static const byte _industry_type_list[4][16] = {
{0, 1, 2, 3, 4, 5, 6, 8, 9, 18, 11, 12}, { 0, 1, 2, 3, 4, 5, 6, 8, 9, 18, 11, 12},
{0, 1, 14, 3, 4, 13, 7, 15, 9, 16, 11, 12}, { 0, 1, 14, 3, 4, 13, 7, 15, 9, 16, 11, 12},
{25, 19, 20, 4, 13, 23, 21, 24, 22, 11, 16, 17, 10}, {25, 19, 20, 4, 13, 23, 21, 24, 22, 11, 16, 17, 10},
{26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36}, {26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36},
}; };
@ -1874,15 +1874,15 @@ static void MainToolbarWndProc(Window *w, WindowEvent *e)
} }
static const Widget _toolb_normal_widgets[] = { static const Widget _toolb_normal_widgets[] = {
{ WWT_PANEL, RESIZE_NONE, 14, 0, 21, 0, 21, SPR_IMG_PAUSE, STR_0171_PAUSE_GAME}, { WWT_PANEL, RESIZE_NONE, 14, 0, 21, 0, 21, SPR_IMG_PAUSE, STR_0171_PAUSE_GAME},
{ WWT_PANEL, RESIZE_NONE, 14, 22, 43, 0, 21, SPR_IMG_FASTFORWARD, STR_FAST_FORWARD}, { WWT_PANEL, RESIZE_NONE, 14, 22, 43, 0, 21, SPR_IMG_FASTFORWARD, STR_FAST_FORWARD},
{ WWT_PANEL, RESIZE_NONE, 14, 44, 65, 0, 21, SPR_IMG_SETTINGS, STR_0187_OPTIONS}, { WWT_PANEL, RESIZE_NONE, 14, 44, 65, 0, 21, SPR_IMG_SETTINGS, STR_0187_OPTIONS},
{ WWT_PANEL_2, RESIZE_NONE, 14, 66, 87, 0, 21, SPR_IMG_SAVE, STR_0172_SAVE_GAME_ABANDON_GAME}, { WWT_PANEL_2, RESIZE_NONE, 14, 66, 87, 0, 21, SPR_IMG_SAVE, STR_0172_SAVE_GAME_ABANDON_GAME},
{ WWT_PANEL, RESIZE_NONE, 14, 96, 117, 0, 21, SPR_IMG_SMALLMAP, STR_0174_DISPLAY_MAP}, { WWT_PANEL, RESIZE_NONE, 14, 96, 117, 0, 21, SPR_IMG_SMALLMAP, STR_0174_DISPLAY_MAP},
{ WWT_PANEL, RESIZE_NONE, 14, 118, 139, 0, 21, SPR_IMG_TOWN, STR_0176_DISPLAY_TOWN_DIRECTORY}, { WWT_PANEL, RESIZE_NONE, 14, 118, 139, 0, 21, SPR_IMG_TOWN, STR_0176_DISPLAY_TOWN_DIRECTORY},
{ WWT_PANEL, RESIZE_NONE, 14, 140, 161, 0, 21, SPR_IMG_SUBSIDIES, STR_02DC_DISPLAY_SUBSIDIES}, { WWT_PANEL, RESIZE_NONE, 14, 140, 161, 0, 21, SPR_IMG_SUBSIDIES, STR_02DC_DISPLAY_SUBSIDIES},
{ WWT_PANEL, RESIZE_NONE, 14, 162, 183, 0, 21, SPR_IMG_COMPANY_LIST, STR_0173_DISPLAY_LIST_OF_COMPANY}, { WWT_PANEL, RESIZE_NONE, 14, 162, 183, 0, 21, SPR_IMG_COMPANY_LIST, STR_0173_DISPLAY_LIST_OF_COMPANY},
{ WWT_PANEL, RESIZE_NONE, 14, 191, 212, 0, 21, SPR_IMG_COMPANY_FINANCE, STR_0177_DISPLAY_COMPANY_FINANCES}, { WWT_PANEL, RESIZE_NONE, 14, 191, 212, 0, 21, SPR_IMG_COMPANY_FINANCE, STR_0177_DISPLAY_COMPANY_FINANCES},
{ WWT_PANEL, RESIZE_NONE, 14, 213, 235, 0, 21, SPR_IMG_COMPANY_GENERAL, STR_0178_DISPLAY_COMPANY_GENERAL}, { WWT_PANEL, RESIZE_NONE, 14, 213, 235, 0, 21, SPR_IMG_COMPANY_GENERAL, STR_0178_DISPLAY_COMPANY_GENERAL},
@ -1890,23 +1890,23 @@ static const Widget _toolb_normal_widgets[] = {
{ WWT_PANEL, RESIZE_NONE, 14, 258, 279, 0, 21, SPR_IMG_COMPANY_LEAGUE, STR_017A_DISPLAY_COMPANY_LEAGUE}, { WWT_PANEL, RESIZE_NONE, 14, 258, 279, 0, 21, SPR_IMG_COMPANY_LEAGUE, STR_017A_DISPLAY_COMPANY_LEAGUE},
{ WWT_PANEL, RESIZE_NONE, 14, 280, 301, 0, 21, SPR_IMG_INDUSTRY, STR_0312_FUND_CONSTRUCTION_OF_NEW}, { WWT_PANEL, RESIZE_NONE, 14, 280, 301, 0, 21, SPR_IMG_INDUSTRY, STR_0312_FUND_CONSTRUCTION_OF_NEW},
{ WWT_PANEL, RESIZE_NONE, 14, 310, 331, 0, 21, SPR_IMG_TRAINLIST, STR_017B_DISPLAY_LIST_OF_COMPANY}, { WWT_PANEL, RESIZE_NONE, 14, 310, 331, 0, 21, SPR_IMG_TRAINLIST, STR_017B_DISPLAY_LIST_OF_COMPANY},
{ WWT_PANEL, RESIZE_NONE, 14, 332, 353, 0, 21, SPR_IMG_TRUCKLIST, STR_017C_DISPLAY_LIST_OF_COMPANY}, { WWT_PANEL, RESIZE_NONE, 14, 332, 353, 0, 21, SPR_IMG_TRUCKLIST, STR_017C_DISPLAY_LIST_OF_COMPANY},
{ WWT_PANEL, RESIZE_NONE, 14, 354, 375, 0, 21, SPR_IMG_SHIPLIST, STR_017D_DISPLAY_LIST_OF_COMPANY}, { WWT_PANEL, RESIZE_NONE, 14, 354, 375, 0, 21, SPR_IMG_SHIPLIST, STR_017D_DISPLAY_LIST_OF_COMPANY},
{ WWT_PANEL, RESIZE_NONE, 14, 376, 397, 0, 21, SPR_IMG_AIRPLANESLIST, STR_017E_DISPLAY_LIST_OF_COMPANY}, { WWT_PANEL, RESIZE_NONE, 14, 376, 397, 0, 21, SPR_IMG_AIRPLANESLIST, STR_017E_DISPLAY_LIST_OF_COMPANY},
{ WWT_PANEL, RESIZE_NONE, 14, 406, 427, 0, 21, SPR_IMG_ZOOMIN, STR_017F_ZOOM_THE_VIEW_IN}, { WWT_PANEL, RESIZE_NONE, 14, 406, 427, 0, 21, SPR_IMG_ZOOMIN, STR_017F_ZOOM_THE_VIEW_IN},
{ WWT_PANEL, RESIZE_NONE, 14, 428, 449, 0, 21, SPR_IMG_ZOOMOUT, STR_0180_ZOOM_THE_VIEW_OUT}, { WWT_PANEL, RESIZE_NONE, 14, 428, 449, 0, 21, SPR_IMG_ZOOMOUT, STR_0180_ZOOM_THE_VIEW_OUT},
{ WWT_PANEL, RESIZE_NONE, 14, 457, 478, 0, 21, SPR_IMG_BUILDRAIL, STR_0181_BUILD_RAILROAD_TRACK}, { WWT_PANEL, RESIZE_NONE, 14, 457, 478, 0, 21, SPR_IMG_BUILDRAIL, STR_0181_BUILD_RAILROAD_TRACK},
{ WWT_PANEL, RESIZE_NONE, 14, 479, 500, 0, 21, SPR_IMG_BUILDROAD, STR_0182_BUILD_ROADS}, { WWT_PANEL, RESIZE_NONE, 14, 479, 500, 0, 21, SPR_IMG_BUILDROAD, STR_0182_BUILD_ROADS},
{ WWT_PANEL, RESIZE_NONE, 14, 501, 522, 0, 21, SPR_IMG_BUILDWATER, STR_0183_BUILD_SHIP_DOCKS}, { WWT_PANEL, RESIZE_NONE, 14, 501, 522, 0, 21, SPR_IMG_BUILDWATER, STR_0183_BUILD_SHIP_DOCKS},
{ WWT_PANEL, RESIZE_NONE, 14, 523, 544, 0, 21, SPR_IMG_BUILDAIR, STR_0184_BUILD_AIRPORTS}, { WWT_PANEL, RESIZE_NONE, 14, 523, 544, 0, 21, SPR_IMG_BUILDAIR, STR_0184_BUILD_AIRPORTS},
{ WWT_PANEL, RESIZE_NONE, 14, 545, 566, 0, 21, SPR_IMG_LANDSCAPING, STR_LANDSCAPING_TOOLBAR_TIP}, // tree icon is 0x2E6 { WWT_PANEL, RESIZE_NONE, 14, 545, 566, 0, 21, SPR_IMG_LANDSCAPING, STR_LANDSCAPING_TOOLBAR_TIP}, // tree icon is 0x2E6
{ WWT_PANEL, RESIZE_NONE, 14, 574, 595, 0, 21, SPR_IMG_MUSIC, STR_01D4_SHOW_SOUND_MUSIC_WINDOW}, { WWT_PANEL, RESIZE_NONE, 14, 574, 595, 0, 21, SPR_IMG_MUSIC, STR_01D4_SHOW_SOUND_MUSIC_WINDOW},
{ WWT_PANEL, RESIZE_NONE, 14, 596, 617, 0, 21, SPR_IMG_MESSAGES, STR_0203_SHOW_LAST_MESSAGE_NEWS}, { WWT_PANEL, RESIZE_NONE, 14, 596, 617, 0, 21, SPR_IMG_MESSAGES, STR_0203_SHOW_LAST_MESSAGE_NEWS},
{ WWT_PANEL, RESIZE_NONE, 14, 618, 639, 0, 21, SPR_IMG_QUERY, STR_0186_LAND_BLOCK_INFORMATION}, { WWT_PANEL, RESIZE_NONE, 14, 618, 639, 0, 21, SPR_IMG_QUERY, STR_0186_LAND_BLOCK_INFORMATION},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -1943,16 +1943,16 @@ static const Widget _toolb_scen_widgets[] = {
{ WWT_PANEL, RESIZE_NONE, 14, 540, 561, 0, 21, SPR_IMG_PLANTTREES, STR_0288_PLANT_TREES}, { WWT_PANEL, RESIZE_NONE, 14, 540, 561, 0, 21, SPR_IMG_PLANTTREES, STR_0288_PLANT_TREES},
{ WWT_PANEL, RESIZE_NONE, 14, 562, 583, 0, 21, SPR_IMG_SIGN, STR_0289_PLACE_SIGN}, { WWT_PANEL, RESIZE_NONE, 14, 562, 583, 0, 21, SPR_IMG_SIGN, STR_0289_PLACE_SIGN},
{ WWT_EMPTY, RESIZE_NONE, 0, 0, 0, 0, 0, 0x0, STR_NULL}, { WWT_EMPTY, RESIZE_NONE, 0, 0, 0, 0, 0, 0x0, STR_NULL},
{ WWT_EMPTY, RESIZE_NONE, 0, 0, 0, 0, 0, 0x0, STR_NULL}, { WWT_EMPTY, RESIZE_NONE, 0, 0, 0, 0, 0, 0x0, STR_NULL},
{ WWT_EMPTY, RESIZE_NONE, 0, 0, 0, 0, 0, 0x0, STR_NULL}, { WWT_EMPTY, RESIZE_NONE, 0, 0, 0, 0, 0, 0x0, STR_NULL},
{ WWT_EMPTY, RESIZE_NONE, 0, 0, 0, 0, 0, 0x0, STR_NULL}, { WWT_EMPTY, RESIZE_NONE, 0, 0, 0, 0, 0, 0x0, STR_NULL},
{ WWT_EMPTY, RESIZE_NONE, 0, 0, 0, 0, 0, 0x0, STR_NULL}, { WWT_EMPTY, RESIZE_NONE, 0, 0, 0, 0, 0, 0x0, STR_NULL},
{ WWT_EMPTY, RESIZE_NONE, 0, 0, 0, 0, 0, 0x0, STR_NULL}, { WWT_EMPTY, RESIZE_NONE, 0, 0, 0, 0, 0, 0x0, STR_NULL},
{ WWT_EMPTY, RESIZE_NONE, 0, 0, 0, 0, 0, 0x0, STR_NULL}, { WWT_EMPTY, RESIZE_NONE, 0, 0, 0, 0, 0, 0x0, STR_NULL},
{ WWT_PANEL, RESIZE_NONE, 14, 596, 617, 0, 21, SPR_IMG_MUSIC, STR_01D4_SHOW_SOUND_MUSIC_WINDOW}, { WWT_PANEL, RESIZE_NONE, 14, 596, 617, 0, 21, SPR_IMG_MUSIC, STR_01D4_SHOW_SOUND_MUSIC_WINDOW},
{ WWT_EMPTY, RESIZE_NONE, 0, 0, 0, 0, 0, 0x0, STR_NULL}, { WWT_EMPTY, RESIZE_NONE, 0, 0, 0, 0, 0, 0x0, STR_NULL},
{ WWT_PANEL, RESIZE_NONE, 14, 618, 639, 0, 21, SPR_IMG_QUERY, STR_0186_LAND_BLOCK_INFORMATION}, { WWT_PANEL, RESIZE_NONE, 14, 618, 639, 0, 21, SPR_IMG_QUERY, STR_0186_LAND_BLOCK_INFORMATION},
{WIDGETS_END}, {WIDGETS_END},
}; };

2
map.h
View File

@ -81,7 +81,7 @@ enum {
enum { enum {
TILE_SIZE = 16, /* Tiles are 16x16 "units" in size */ TILE_SIZE = 16, /* Tiles are 16x16 "units" in size */
TILE_PIXELS = 32, /* a tile is 32x32 pixels */ TILE_PIXELS = 32, /* a tile is 32x32 pixels */
TILE_HEIGHT = 8, /* The standard height-difference between tiles on two levels is 8 (z-diff 8) */ TILE_HEIGHT = 8, /* The standard height-difference between tiles on two levels is 8 (z-diff 8) */
}; };

70
misc.c
View File

@ -268,26 +268,26 @@ static void Load_NAME(void)
} }
static const SaveLoadGlobVarList _date_desc[] = { static const SaveLoadGlobVarList _date_desc[] = {
SLEG_CONDVAR(_date, SLE_FILE_U16 | SLE_VAR_U32, 0, 30), SLEG_CONDVAR(_date, SLE_FILE_U16 | SLE_VAR_U32, 0, 30),
SLEG_CONDVAR(_date, SLE_UINT32, 31, SL_MAX_VERSION), SLEG_CONDVAR(_date, SLE_UINT32, 31, SL_MAX_VERSION),
SLEG_VAR(_date_fract, SLE_UINT16), SLEG_VAR(_date_fract, SLE_UINT16),
SLEG_VAR(_tick_counter, SLE_UINT16), SLEG_VAR(_tick_counter, SLE_UINT16),
SLEG_VAR(_vehicle_id_ctr_day, SLE_UINT16), SLEG_VAR(_vehicle_id_ctr_day, SLE_UINT16),
SLEG_VAR(_age_cargo_skip_counter,SLE_UINT8), SLEG_VAR(_age_cargo_skip_counter, SLE_UINT8),
SLEG_VAR(_avail_aircraft, SLE_UINT8), SLEG_VAR(_avail_aircraft, SLE_UINT8),
SLEG_CONDVAR(_cur_tileloop_tile, SLE_FILE_U16 | SLE_VAR_U32, 0, 5), SLEG_CONDVAR(_cur_tileloop_tile, SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
SLEG_CONDVAR(_cur_tileloop_tile, SLE_UINT32, 6, SL_MAX_VERSION), SLEG_CONDVAR(_cur_tileloop_tile, SLE_UINT32, 6, SL_MAX_VERSION),
SLEG_VAR(_disaster_delay, SLE_UINT16), SLEG_VAR(_disaster_delay, SLE_UINT16),
SLEG_VAR(_station_tick_ctr, SLE_UINT16), SLEG_VAR(_station_tick_ctr, SLE_UINT16),
SLEG_VAR(_random_seeds[0][0], SLE_UINT32), SLEG_VAR(_random_seeds[0][0], SLE_UINT32),
SLEG_VAR(_random_seeds[0][1], SLE_UINT32), SLEG_VAR(_random_seeds[0][1], SLE_UINT32),
SLEG_CONDVAR(_cur_town_ctr, SLE_FILE_U8 | SLE_VAR_U32, 0, 9), SLEG_CONDVAR(_cur_town_ctr, SLE_FILE_U8 | SLE_VAR_U32, 0, 9),
SLEG_CONDVAR(_cur_town_ctr, SLE_UINT32, 10, SL_MAX_VERSION), SLEG_CONDVAR(_cur_town_ctr, SLE_UINT32, 10, SL_MAX_VERSION),
SLEG_VAR(_cur_player_tick_index, SLE_FILE_U8 | SLE_VAR_U32), SLEG_VAR(_cur_player_tick_index, SLE_FILE_U8 | SLE_VAR_U32),
SLEG_VAR(_next_competitor_start, SLE_FILE_U16 | SLE_VAR_U32), SLEG_VAR(_next_competitor_start, SLE_FILE_U16 | SLE_VAR_U32),
SLEG_VAR(_trees_tick_ctr, SLE_UINT8), SLEG_VAR(_trees_tick_ctr, SLE_UINT8),
SLEG_CONDVAR(_pause, SLE_UINT8, 4, SL_MAX_VERSION), SLEG_CONDVAR(_pause, SLE_UINT8, 4, SL_MAX_VERSION),
SLEG_CONDVAR(_cur_town_iter, SLE_UINT32, 11, SL_MAX_VERSION), SLEG_CONDVAR(_cur_town_iter, SLE_UINT32, 11, SL_MAX_VERSION),
SLEG_END() SLEG_END()
}; };
@ -300,11 +300,11 @@ static void SaveLoad_DATE(void)
static const SaveLoadGlobVarList _view_desc[] = { static const SaveLoadGlobVarList _view_desc[] = {
SLEG_CONDVAR(_saved_scrollpos_x, SLE_FILE_I16 | SLE_VAR_I32, 0, 5), SLEG_CONDVAR(_saved_scrollpos_x, SLE_FILE_I16 | SLE_VAR_I32, 0, 5),
SLEG_CONDVAR(_saved_scrollpos_x, SLE_INT32, 6, SL_MAX_VERSION), SLEG_CONDVAR(_saved_scrollpos_x, SLE_INT32, 6, SL_MAX_VERSION),
SLEG_CONDVAR(_saved_scrollpos_y, SLE_FILE_I16 | SLE_VAR_I32, 0, 5), SLEG_CONDVAR(_saved_scrollpos_y, SLE_FILE_I16 | SLE_VAR_I32, 0, 5),
SLEG_CONDVAR(_saved_scrollpos_y, SLE_INT32, 6, SL_MAX_VERSION), SLEG_CONDVAR(_saved_scrollpos_y, SLE_INT32, 6, SL_MAX_VERSION),
SLEG_VAR(_saved_scrollpos_zoom,SLE_UINT8), SLEG_VAR(_saved_scrollpos_zoom, SLE_UINT8),
SLEG_END() SLEG_END()
}; };
@ -579,17 +579,17 @@ static void Load_CHTS(void)
const ChunkHandler _misc_chunk_handlers[] = { const ChunkHandler _misc_chunk_handlers[] = {
{ 'MAPS', Save_MAPS, Load_MAPS, CH_RIFF }, { 'MAPS', Save_MAPS, Load_MAPS, CH_RIFF },
{ 'MAPT', Save_MAPT, Load_MAPT, CH_RIFF }, { 'MAPT', Save_MAPT, Load_MAPT, CH_RIFF },
{ 'MAPO', Save_MAP1, Load_MAP1, CH_RIFF }, { 'MAPO', Save_MAP1, Load_MAP1, CH_RIFF },
{ 'MAP2', Save_MAP2, Load_MAP2, CH_RIFF }, { 'MAP2', Save_MAP2, Load_MAP2, CH_RIFF },
{ 'M3LO', Save_MAP3, Load_MAP3, CH_RIFF }, { 'M3LO', Save_MAP3, Load_MAP3, CH_RIFF },
{ 'M3HI', Save_MAP4, Load_MAP4, CH_RIFF }, { 'M3HI', Save_MAP4, Load_MAP4, CH_RIFF },
{ 'MAP5', Save_MAP5, Load_MAP5, CH_RIFF }, { 'MAP5', Save_MAP5, Load_MAP5, CH_RIFF },
{ 'MAPE', Save_MAPE, Load_MAPE, CH_RIFF }, { 'MAPE', Save_MAPE, Load_MAPE, CH_RIFF },
{ 'NAME', Save_NAME, Load_NAME, CH_ARRAY}, { 'NAME', Save_NAME, Load_NAME, CH_ARRAY},
{ 'DATE', SaveLoad_DATE, SaveLoad_DATE, CH_RIFF}, { 'DATE', SaveLoad_DATE, SaveLoad_DATE, CH_RIFF},
{ 'VIEW', SaveLoad_VIEW, SaveLoad_VIEW, CH_RIFF}, { 'VIEW', SaveLoad_VIEW, SaveLoad_VIEW, CH_RIFF},
{ 'CHTS', Save_CHTS, Load_CHTS, CH_RIFF | CH_LAST} { 'CHTS', Save_CHTS, Load_CHTS, CH_RIFF | CH_LAST}
}; };

View File

@ -126,9 +126,9 @@ static void LandInfoWndProc(Window *w, WindowEvent *e)
} }
static const Widget _land_info_widgets[] = { static const Widget _land_info_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, 279, 0, 13, STR_01A3_LAND_AREA_INFORMATION, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_NONE, 14, 11, 279, 0, 13, STR_01A3_LAND_AREA_INFORMATION, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 279, 14, 92, 0x0, STR_NULL}, { WWT_IMGBTN, RESIZE_NONE, 14, 0, 279, 14, 92, 0x0, STR_NULL},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -277,10 +277,10 @@ static void AboutWindowProc(Window *w, WindowEvent *e)
} }
static const Widget _about_widgets[] = { static const Widget _about_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, 419, 0, 13, STR_015B_OPENTTD, STR_NULL}, { WWT_CAPTION, RESIZE_NONE, 14, 11, 419, 0, 13, STR_015B_OPENTTD, STR_NULL},
{ WWT_PANEL, RESIZE_NONE, 14, 0, 419, 14, 271, 0x0, STR_NULL}, { WWT_PANEL, RESIZE_NONE, 14, 0, 419, 14, 271, 0x0, STR_NULL},
{ WWT_FRAME, RESIZE_NONE, 14, 5, 414, 40, 245, STR_NULL, STR_NULL}, { WWT_FRAME, RESIZE_NONE, 14, 5, 414, 40, 245, STR_NULL, STR_NULL},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -302,10 +302,10 @@ void ShowAboutWindow(void)
static int _tree_to_plant; static int _tree_to_plant;
static const uint32 _tree_sprites[] = { static const uint32 _tree_sprites[] = {
0x655,0x663,0x678,0x62B,0x647,0x639,0x64E,0x632,0x67F,0x68D,0x69B,0x6A9, 0x655, 0x663, 0x678, 0x62B, 0x647, 0x639, 0x64E, 0x632, 0x67F, 0x68D, 0x69B, 0x6A9,
0x6AF,0x6D2,0x6D9,0x6C4,0x6CB,0x6B6,0x6BD,0x6E0, 0x6AF, 0x6D2, 0x6D9, 0x6C4, 0x6CB, 0x6B6, 0x6BD, 0x6E0,
0x72E,0x734,0x74A,0x74F,0x76B,0x78F,0x788,0x77B,0x75F,0x774,0x720,0x797, 0x72E, 0x734, 0x74A, 0x74F, 0x76B, 0x78F, 0x788, 0x77B, 0x75F, 0x774, 0x720, 0x797,
0x79E,0x7A5 | PALETTE_TO_GREEN,0x7AC | PALETTE_TO_RED,0x7B3,0x7BA,0x7C1 | PALETTE_TO_RED,0x7C8 | PALETTE_TO_PALE_GREEN,0x7CF | PALETTE_TO_YELLOW,0x7D6 | PALETTE_TO_RED 0x79E, 0x7A5 | PALETTE_TO_GREEN, 0x7AC | PALETTE_TO_RED, 0x7B3, 0x7BA, 0x7C1 | PALETTE_TO_RED, 0x7C8 | PALETTE_TO_PALE_GREEN, 0x7CF | PALETTE_TO_YELLOW, 0x7D6 | PALETTE_TO_RED
}; };
static void BuildTreesWndProc(Window *w, WindowEvent *e) static void BuildTreesWndProc(Window *w, WindowEvent *e)
@ -392,22 +392,22 @@ static void BuildTreesWndProc(Window *w, WindowEvent *e)
} }
static const Widget _build_trees_widgets[] = { static const Widget _build_trees_widgets[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, { WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
{ WWT_CAPTION, RESIZE_NONE, 7, 11, 142, 0, 13, STR_2802_TREES, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_NONE, 7, 11, 142, 0, 13, STR_2802_TREES, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_PANEL, RESIZE_NONE, 7, 0, 142, 14, 170, 0x0, STR_NULL}, { WWT_PANEL, RESIZE_NONE, 7, 0, 142, 14, 170, 0x0, STR_NULL},
{ WWT_PANEL, RESIZE_NONE, 14, 2, 35, 16, 61, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT}, { WWT_PANEL, RESIZE_NONE, 14, 2, 35, 16, 61, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT},
{ WWT_PANEL, RESIZE_NONE, 14, 37, 70, 16, 61, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT}, { WWT_PANEL, RESIZE_NONE, 14, 37, 70, 16, 61, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT},
{ WWT_PANEL, RESIZE_NONE, 14, 72, 105, 16, 61, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT}, { WWT_PANEL, RESIZE_NONE, 14, 72, 105, 16, 61, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT},
{ WWT_PANEL, RESIZE_NONE, 14, 107, 140, 16, 61, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT}, { WWT_PANEL, RESIZE_NONE, 14, 107, 140, 16, 61, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT},
{ WWT_PANEL, RESIZE_NONE, 14, 2, 35, 63, 108, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT}, { WWT_PANEL, RESIZE_NONE, 14, 2, 35, 63, 108, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT},
{ WWT_PANEL, RESIZE_NONE, 14, 37, 70, 63, 108, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT}, { WWT_PANEL, RESIZE_NONE, 14, 37, 70, 63, 108, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT},
{ WWT_PANEL, RESIZE_NONE, 14, 72, 105, 63, 108, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT}, { WWT_PANEL, RESIZE_NONE, 14, 72, 105, 63, 108, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT},
{ WWT_PANEL, RESIZE_NONE, 14, 107, 140, 63, 108, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT}, { WWT_PANEL, RESIZE_NONE, 14, 107, 140, 63, 108, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT},
{ WWT_PANEL, RESIZE_NONE, 14, 2, 35, 110, 155, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT}, { WWT_PANEL, RESIZE_NONE, 14, 2, 35, 110, 155, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT},
{ WWT_PANEL, RESIZE_NONE, 14, 37, 70, 110, 155, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT}, { WWT_PANEL, RESIZE_NONE, 14, 37, 70, 110, 155, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT},
{ WWT_PANEL, RESIZE_NONE, 14, 72, 105, 110, 155, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT}, { WWT_PANEL, RESIZE_NONE, 14, 72, 105, 110, 155, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT},
{ WWT_PANEL, RESIZE_NONE, 14, 107, 140, 110, 155, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT}, { WWT_PANEL, RESIZE_NONE, 14, 107, 140, 110, 155, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 140, 157, 168, STR_TREES_RANDOM_TYPE, STR_TREES_RANDOM_TYPE_TIP}, { WWT_TEXTBTN, RESIZE_NONE, 14, 2, 140, 157, 168, STR_TREES_RANDOM_TYPE, STR_TREES_RANDOM_TYPE_TIP},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -420,23 +420,23 @@ static const WindowDesc _build_trees_desc = {
}; };
static const Widget _build_trees_scen_widgets[] = { static const Widget _build_trees_scen_widgets[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, { WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
{ WWT_CAPTION, RESIZE_NONE, 7, 11, 142, 0, 13, STR_2802_TREES, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_NONE, 7, 11, 142, 0, 13, STR_2802_TREES, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_PANEL, RESIZE_NONE, 7, 0, 142, 14, 183, 0x0, STR_NULL}, { WWT_PANEL, RESIZE_NONE, 7, 0, 142, 14, 183, 0x0, STR_NULL},
{ WWT_PANEL, RESIZE_NONE, 14, 2, 35, 16, 61, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT}, { WWT_PANEL, RESIZE_NONE, 14, 2, 35, 16, 61, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT},
{ WWT_PANEL, RESIZE_NONE, 14, 37, 70, 16, 61, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT}, { WWT_PANEL, RESIZE_NONE, 14, 37, 70, 16, 61, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT},
{ WWT_PANEL, RESIZE_NONE, 14, 72, 105, 16, 61, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT}, { WWT_PANEL, RESIZE_NONE, 14, 72, 105, 16, 61, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT},
{ WWT_PANEL, RESIZE_NONE, 14, 107, 140, 16, 61, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT}, { WWT_PANEL, RESIZE_NONE, 14, 107, 140, 16, 61, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT},
{ WWT_PANEL, RESIZE_NONE, 14, 2, 35, 63, 108, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT}, { WWT_PANEL, RESIZE_NONE, 14, 2, 35, 63, 108, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT},
{ WWT_PANEL, RESIZE_NONE, 14, 37, 70, 63, 108, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT}, { WWT_PANEL, RESIZE_NONE, 14, 37, 70, 63, 108, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT},
{ WWT_PANEL, RESIZE_NONE, 14, 72, 105, 63, 108, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT}, { WWT_PANEL, RESIZE_NONE, 14, 72, 105, 63, 108, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT},
{ WWT_PANEL, RESIZE_NONE, 14, 107, 140, 63, 108, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT}, { WWT_PANEL, RESIZE_NONE, 14, 107, 140, 63, 108, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT},
{ WWT_PANEL, RESIZE_NONE, 14, 2, 35, 110, 155, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT}, { WWT_PANEL, RESIZE_NONE, 14, 2, 35, 110, 155, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT},
{ WWT_PANEL, RESIZE_NONE, 14, 37, 70, 110, 155, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT}, { WWT_PANEL, RESIZE_NONE, 14, 37, 70, 110, 155, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT},
{ WWT_PANEL, RESIZE_NONE, 14, 72, 105, 110, 155, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT}, { WWT_PANEL, RESIZE_NONE, 14, 72, 105, 110, 155, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT},
{ WWT_PANEL, RESIZE_NONE, 14, 107, 140, 110, 155, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT}, { WWT_PANEL, RESIZE_NONE, 14, 107, 140, 110, 155, 0x0, STR_280D_SELECT_TREE_TYPE_TO_PLANT},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 140, 157, 168, STR_TREES_RANDOM_TYPE, STR_TREES_RANDOM_TYPE_TIP}, { WWT_TEXTBTN, RESIZE_NONE, 14, 2, 140, 157, 168, STR_TREES_RANDOM_TYPE, STR_TREES_RANDOM_TYPE_TIP},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 140, 170, 181, STR_028A_RANDOM_TREES, STR_028B_PLANT_TREES_RANDOMLY_OVER}, { WWT_TEXTBTN, RESIZE_NONE, 14, 2, 140, 170, 181, STR_028A_RANDOM_TREES, STR_028B_PLANT_TREES_RANDOMLY_OVER},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -465,16 +465,16 @@ static uint _errmsg_duration;
static const Widget _errmsg_widgets[] = { static const Widget _errmsg_widgets[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, 4, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, { WWT_CLOSEBOX, RESIZE_NONE, 4, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
{ WWT_CAPTION, RESIZE_NONE, 4, 11, 239, 0, 13, STR_00B2_MESSAGE, STR_NULL}, { WWT_CAPTION, RESIZE_NONE, 4, 11, 239, 0, 13, STR_00B2_MESSAGE, STR_NULL},
{ WWT_PANEL, RESIZE_NONE, 4, 0, 239, 14, 45, 0x0, STR_NULL}, { WWT_PANEL, RESIZE_NONE, 4, 0, 239, 14, 45, 0x0, STR_NULL},
{ WIDGETS_END}, { WIDGETS_END},
}; };
static const Widget _errmsg_face_widgets[] = { static const Widget _errmsg_face_widgets[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, 4, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, { WWT_CLOSEBOX, RESIZE_NONE, 4, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
{ WWT_CAPTION, RESIZE_NONE, 4, 11, 333, 0, 13, STR_00B3_MESSAGE_FROM, STR_NULL}, { WWT_CAPTION, RESIZE_NONE, 4, 11, 333, 0, 13, STR_00B3_MESSAGE_FROM, STR_NULL},
{ WWT_PANEL, RESIZE_NONE, 4, 0, 333, 14, 136, 0x0, STR_NULL}, { WWT_PANEL, RESIZE_NONE, 4, 0, 333, 14, 136, 0x0, STR_NULL},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -1046,12 +1046,12 @@ press_ok:;
} }
static const Widget _query_string_widgets[] = { static const Widget _query_string_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, 259, 0, 13, STR_012D, STR_NULL}, { WWT_CAPTION, RESIZE_NONE, 14, 11, 259, 0, 13, STR_012D, STR_NULL},
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 259, 14, 29, 0x0, STR_NULL}, { WWT_IMGBTN, RESIZE_NONE, 14, 0, 259, 14, 29, 0x0, STR_NULL},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 0, 129, 30, 41, STR_012E_CANCEL, STR_NULL}, { WWT_TEXTBTN, RESIZE_NONE, 14, 0, 129, 30, 41, STR_012E_CANCEL, STR_NULL},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 130, 259, 30, 41, STR_012F_OK, STR_NULL}, { WWT_TEXTBTN, RESIZE_NONE, 14, 130, 259, 30, 41, STR_012F_OK, STR_NULL},
{ WWT_IMGBTN, RESIZE_NONE, 14, 2, 257, 16, 27, 0x0, STR_NULL}, { WWT_IMGBTN, RESIZE_NONE, 14, 2, 257, 16, 27, 0x0, STR_NULL},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -1167,80 +1167,80 @@ void ShowQuery(StringID caption, StringID message, void (*ok_cancel_callback)(bo
static const Widget _load_dialog_1_widgets[] = { static const Widget _load_dialog_1_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_RIGHT, 14, 11, 256, 0, 13, STR_4001_LOAD_GAME, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_RIGHT, 14, 11, 256, 0, 13, STR_4001_LOAD_GAME, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_PUSHTXTBTN, RESIZE_NONE, 14, 0, 127, 14, 25, STR_SORT_BY_NAME, STR_SORT_ORDER_TIP}, { WWT_PUSHTXTBTN, RESIZE_NONE, 14, 0, 127, 14, 25, STR_SORT_BY_NAME, STR_SORT_ORDER_TIP},
{ WWT_PUSHTXTBTN, RESIZE_NONE, 14, 128, 256, 14, 25, STR_SORT_BY_DATE, STR_SORT_ORDER_TIP}, { WWT_PUSHTXTBTN, RESIZE_NONE, 14, 128, 256, 14, 25, STR_SORT_BY_DATE, STR_SORT_ORDER_TIP},
{ WWT_IMGBTN, RESIZE_RIGHT, 14, 0, 256, 26, 47, 0x0, STR_NULL}, { WWT_IMGBTN, RESIZE_RIGHT, 14, 0, 256, 26, 47, 0x0, STR_NULL},
{ WWT_IMGBTN, RESIZE_RB, 14, 0, 256, 48, 293, 0x0, STR_NULL}, { WWT_IMGBTN, RESIZE_RB, 14, 0, 256, 48, 293, 0x0, STR_NULL},
{ WWT_PUSHIMGBTN, RESIZE_LR, 14, 245, 256, 48, 59, SPR_HOUSE_ICON, STR_SAVELOAD_HOME_BUTTON}, { WWT_PUSHIMGBTN, RESIZE_LR, 14, 245, 256, 48, 59, SPR_HOUSE_ICON, STR_SAVELOAD_HOME_BUTTON},
{ WWT_6, RESIZE_RB, 14, 2, 243, 50, 291, 0x0, STR_400A_LIST_OF_DRIVES_DIRECTORIES}, { WWT_6, RESIZE_RB, 14, 2, 243, 50, 291, 0x0, STR_400A_LIST_OF_DRIVES_DIRECTORIES},
{ WWT_SCROLLBAR, RESIZE_LRB, 14, 245, 256, 60, 281, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST}, { WWT_SCROLLBAR, RESIZE_LRB, 14, 245, 256, 60, 281, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST},
{ WWT_RESIZEBOX, RESIZE_LRTB, 14, 245, 256, 282, 293, 0x0, STR_RESIZE_BUTTON}, { WWT_RESIZEBOX, RESIZE_LRTB, 14, 245, 256, 282, 293, 0x0, STR_RESIZE_BUTTON},
{ WIDGETS_END}, { WIDGETS_END},
}; };
static const Widget _load_dialog_2_widgets[] = { static const Widget _load_dialog_2_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_RIGHT, 14, 11, 256, 0, 13, STR_0298_LOAD_SCENARIO, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_RIGHT, 14, 11, 256, 0, 13, STR_0298_LOAD_SCENARIO, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_PUSHTXTBTN, RESIZE_NONE, 14, 0, 127, 14, 25, STR_SORT_BY_NAME, STR_SORT_ORDER_TIP}, { WWT_PUSHTXTBTN, RESIZE_NONE, 14, 0, 127, 14, 25, STR_SORT_BY_NAME, STR_SORT_ORDER_TIP},
{ WWT_PUSHTXTBTN, RESIZE_NONE, 14, 128, 256, 14, 25, STR_SORT_BY_DATE, STR_SORT_ORDER_TIP}, { WWT_PUSHTXTBTN, RESIZE_NONE, 14, 128, 256, 14, 25, STR_SORT_BY_DATE, STR_SORT_ORDER_TIP},
{ WWT_IMGBTN, RESIZE_RIGHT, 14, 0, 256, 26, 47, 0x0, STR_NULL}, { WWT_IMGBTN, RESIZE_RIGHT, 14, 0, 256, 26, 47, 0x0, STR_NULL},
{ WWT_IMGBTN, RESIZE_RB, 14, 0, 256, 48, 293, 0x0, STR_NULL}, { WWT_IMGBTN, RESIZE_RB, 14, 0, 256, 48, 293, 0x0, STR_NULL},
{ WWT_PUSHIMGBTN, RESIZE_LR, 14, 245, 256, 48, 59, SPR_HOUSE_ICON, STR_SAVELOAD_HOME_BUTTON}, { WWT_PUSHIMGBTN, RESIZE_LR, 14, 245, 256, 48, 59, SPR_HOUSE_ICON, STR_SAVELOAD_HOME_BUTTON},
{ WWT_6, RESIZE_RB, 14, 2, 243, 50, 291, 0x0, STR_400A_LIST_OF_DRIVES_DIRECTORIES}, { WWT_6, RESIZE_RB, 14, 2, 243, 50, 291, 0x0, STR_400A_LIST_OF_DRIVES_DIRECTORIES},
{ WWT_SCROLLBAR, RESIZE_LRB, 14, 245, 256, 60, 281, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST}, { WWT_SCROLLBAR, RESIZE_LRB, 14, 245, 256, 60, 281, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST},
{ WWT_RESIZEBOX, RESIZE_LRTB, 14, 245, 256, 282, 293, 0x0, STR_RESIZE_BUTTON}, { WWT_RESIZEBOX, RESIZE_LRTB, 14, 245, 256, 282, 293, 0x0, STR_RESIZE_BUTTON},
{ WIDGETS_END}, { WIDGETS_END},
}; };
static const Widget _load_dialog_3_widgets[] = { static const Widget _load_dialog_3_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_RIGHT, 14, 11, 256, 0, 13, STR_4011_LOAD_HEIGHTMAP,STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_RIGHT, 14, 11, 256, 0, 13, STR_4011_LOAD_HEIGHTMAP, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_PUSHTXTBTN, RESIZE_NONE, 14, 0, 127, 14, 25, STR_SORT_BY_NAME, STR_SORT_ORDER_TIP}, { WWT_PUSHTXTBTN, RESIZE_NONE, 14, 0, 127, 14, 25, STR_SORT_BY_NAME, STR_SORT_ORDER_TIP},
{ WWT_PUSHTXTBTN, RESIZE_NONE, 14, 128, 256, 14, 25, STR_SORT_BY_DATE, STR_SORT_ORDER_TIP}, { WWT_PUSHTXTBTN, RESIZE_NONE, 14, 128, 256, 14, 25, STR_SORT_BY_DATE, STR_SORT_ORDER_TIP},
{ WWT_IMGBTN, RESIZE_RIGHT, 14, 0, 256, 26, 47, 0x0, STR_NULL}, { WWT_IMGBTN, RESIZE_RIGHT, 14, 0, 256, 26, 47, 0x0, STR_NULL},
{ WWT_IMGBTN, RESIZE_RB, 14, 0, 256, 48, 293, 0x0, STR_NULL}, { WWT_IMGBTN, RESIZE_RB, 14, 0, 256, 48, 293, 0x0, STR_NULL},
{ WWT_PUSHIMGBTN, RESIZE_LR, 14, 245, 256, 48, 59, SPR_HOUSE_ICON, STR_SAVELOAD_HOME_BUTTON}, { WWT_PUSHIMGBTN, RESIZE_LR, 14, 245, 256, 48, 59, SPR_HOUSE_ICON, STR_SAVELOAD_HOME_BUTTON},
{ WWT_6, RESIZE_RB, 14, 2, 243, 50, 291, 0x0, STR_400A_LIST_OF_DRIVES_DIRECTORIES}, { WWT_6, RESIZE_RB, 14, 2, 243, 50, 291, 0x0, STR_400A_LIST_OF_DRIVES_DIRECTORIES},
{ WWT_SCROLLBAR, RESIZE_LRB, 14, 245, 256, 60, 281, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST}, { WWT_SCROLLBAR, RESIZE_LRB, 14, 245, 256, 60, 281, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST},
{ WWT_RESIZEBOX, RESIZE_LRTB, 14, 245, 256, 282, 293, 0x0, STR_RESIZE_BUTTON}, { WWT_RESIZEBOX, RESIZE_LRTB, 14, 245, 256, 282, 293, 0x0, STR_RESIZE_BUTTON},
{ WIDGETS_END}, { WIDGETS_END},
}; };
static const Widget _save_dialog_widgets[] = { static const Widget _save_dialog_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_RIGHT, 14, 11, 256, 0, 13, STR_4000_SAVE_GAME, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_RIGHT, 14, 11, 256, 0, 13, STR_4000_SAVE_GAME, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_PUSHTXTBTN, RESIZE_NONE, 14, 0, 127, 14, 25, STR_SORT_BY_NAME, STR_SORT_ORDER_TIP}, { WWT_PUSHTXTBTN, RESIZE_NONE, 14, 0, 127, 14, 25, STR_SORT_BY_NAME, STR_SORT_ORDER_TIP},
{ WWT_PUSHTXTBTN, RESIZE_NONE, 14, 128, 256, 14, 25, STR_SORT_BY_DATE, STR_SORT_ORDER_TIP}, { WWT_PUSHTXTBTN, RESIZE_NONE, 14, 128, 256, 14, 25, STR_SORT_BY_DATE, STR_SORT_ORDER_TIP},
{ WWT_IMGBTN, RESIZE_RIGHT, 14, 0, 256, 26, 47, 0x0, STR_NULL}, { WWT_IMGBTN, RESIZE_RIGHT, 14, 0, 256, 26, 47, 0x0, STR_NULL},
{ WWT_IMGBTN, RESIZE_RB, 14, 0, 256, 48, 291, 0x0, STR_NULL}, { WWT_IMGBTN, RESIZE_RB, 14, 0, 256, 48, 291, 0x0, STR_NULL},
{ WWT_PUSHIMGBTN, RESIZE_LR, 14, 245, 256, 48, 59, SPR_HOUSE_ICON, STR_SAVELOAD_HOME_BUTTON}, { WWT_PUSHIMGBTN, RESIZE_LR, 14, 245, 256, 48, 59, SPR_HOUSE_ICON, STR_SAVELOAD_HOME_BUTTON},
{ WWT_6, RESIZE_RB, 14, 2, 243, 50, 290, 0x0, STR_400A_LIST_OF_DRIVES_DIRECTORIES}, { WWT_6, RESIZE_RB, 14, 2, 243, 50, 290, 0x0, STR_400A_LIST_OF_DRIVES_DIRECTORIES},
{ WWT_SCROLLBAR, RESIZE_LRB, 14, 245, 256, 60, 291, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST}, { WWT_SCROLLBAR, RESIZE_LRB, 14, 245, 256, 60, 291, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST},
{ WWT_IMGBTN, RESIZE_RTB, 14, 0, 256, 292, 307, 0x0, STR_NULL}, { WWT_IMGBTN, RESIZE_RTB, 14, 0, 256, 292, 307, 0x0, STR_NULL},
{ WWT_IMGBTN, RESIZE_RTB, 14, 2, 254, 294, 305, 0x0, STR_400B_CURRENTLY_SELECTED_NAME}, { WWT_IMGBTN, RESIZE_RTB, 14, 2, 254, 294, 305, 0x0, STR_400B_CURRENTLY_SELECTED_NAME},
{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 0, 127, 308, 319, STR_4003_DELETE, STR_400C_DELETE_THE_CURRENTLY_SELECTED}, { WWT_PUSHTXTBTN, RESIZE_TB, 14, 0, 127, 308, 319, STR_4003_DELETE, STR_400C_DELETE_THE_CURRENTLY_SELECTED},
{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 128, 244, 308, 319, STR_4002_SAVE, STR_400D_SAVE_THE_CURRENT_GAME_USING}, { WWT_PUSHTXTBTN, RESIZE_TB, 14, 128, 244, 308, 319, STR_4002_SAVE, STR_400D_SAVE_THE_CURRENT_GAME_USING},
{ WWT_RESIZEBOX, RESIZE_LRTB, 14, 245, 256, 308, 319, 0x0, STR_RESIZE_BUTTON}, { WWT_RESIZEBOX, RESIZE_LRTB, 14, 245, 256, 308, 319, 0x0, STR_RESIZE_BUTTON},
{ WIDGETS_END}, { WIDGETS_END},
}; };
static const Widget _save_dialog_scen_widgets[] = { static const Widget _save_dialog_scen_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_RIGHT, 14, 11, 256, 0, 13, STR_0299_SAVE_SCENARIO, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_RIGHT, 14, 11, 256, 0, 13, STR_0299_SAVE_SCENARIO, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_PUSHTXTBTN, RESIZE_NONE, 14, 0, 127, 14, 25, STR_SORT_BY_NAME, STR_SORT_ORDER_TIP}, { WWT_PUSHTXTBTN, RESIZE_NONE, 14, 0, 127, 14, 25, STR_SORT_BY_NAME, STR_SORT_ORDER_TIP},
{ WWT_PUSHTXTBTN, RESIZE_NONE, 14, 128, 256, 14, 25, STR_SORT_BY_DATE, STR_SORT_ORDER_TIP}, { WWT_PUSHTXTBTN, RESIZE_NONE, 14, 128, 256, 14, 25, STR_SORT_BY_DATE, STR_SORT_ORDER_TIP},
{ WWT_IMGBTN, RESIZE_RIGHT, 14, 0, 256, 26, 47, 0x0, STR_NULL}, { WWT_IMGBTN, RESIZE_RIGHT, 14, 0, 256, 26, 47, 0x0, STR_NULL},
{ WWT_IMGBTN, RESIZE_RB, 14, 0, 256, 48, 291, 0x0, STR_NULL}, { WWT_IMGBTN, RESIZE_RB, 14, 0, 256, 48, 291, 0x0, STR_NULL},
{ WWT_PUSHIMGBTN, RESIZE_LR, 14, 245, 256, 48, 59, SPR_HOUSE_ICON, STR_SAVELOAD_HOME_BUTTON}, { WWT_PUSHIMGBTN, RESIZE_LR, 14, 245, 256, 48, 59, SPR_HOUSE_ICON, STR_SAVELOAD_HOME_BUTTON},
{ WWT_6, RESIZE_RB, 14, 2, 243, 50, 290, 0x0, STR_400A_LIST_OF_DRIVES_DIRECTORIES}, { WWT_6, RESIZE_RB, 14, 2, 243, 50, 290, 0x0, STR_400A_LIST_OF_DRIVES_DIRECTORIES},
{ WWT_SCROLLBAR, RESIZE_LRB, 14, 245, 256, 60, 291, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST}, { WWT_SCROLLBAR, RESIZE_LRB, 14, 245, 256, 60, 291, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST},
{ WWT_IMGBTN, RESIZE_RTB, 14, 0, 256, 292, 307, 0x0, STR_NULL}, { WWT_IMGBTN, RESIZE_RTB, 14, 0, 256, 292, 307, 0x0, STR_NULL},
{ WWT_IMGBTN, RESIZE_RTB, 14, 2, 254, 294, 305, 0x0, STR_400B_CURRENTLY_SELECTED_NAME}, { WWT_IMGBTN, RESIZE_RTB, 14, 2, 254, 294, 305, 0x0, STR_400B_CURRENTLY_SELECTED_NAME},
{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 0, 127, 308, 319, STR_4003_DELETE, STR_400C_DELETE_THE_CURRENTLY_SELECTED}, { WWT_PUSHTXTBTN, RESIZE_TB, 14, 0, 127, 308, 319, STR_4003_DELETE, STR_400C_DELETE_THE_CURRENTLY_SELECTED},
{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 128, 244, 308, 319, STR_4002_SAVE, STR_400D_SAVE_THE_CURRENT_GAME_USING}, { WWT_PUSHTXTBTN, RESIZE_TB, 14, 128, 244, 308, 319, STR_4002_SAVE, STR_400D_SAVE_THE_CURRENT_GAME_USING},
{ WWT_RESIZEBOX, RESIZE_LRTB, 14, 245, 256, 308, 319, 0x0, STR_RESIZE_BUTTON}, { WWT_RESIZEBOX, RESIZE_LRTB, 14, 245, 256, 308, 319, 0x0, STR_RESIZE_BUTTON},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -1720,10 +1720,10 @@ static const CheatEntry _cheats_ui[] = {
static const Widget _cheat_widgets[] = { static const Widget _cheat_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, 399, 0, 13, STR_CHEATS, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_NONE, 14, 11, 399, 0, 13, STR_CHEATS, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_PANEL, RESIZE_NONE, 14, 0, 399, 14, 169, 0x0, STR_NULL}, { WWT_PANEL, RESIZE_NONE, 14, 0, 399, 14, 169, 0x0, STR_NULL},
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 399, 14, 169, 0x0, STR_CHEATS_TIP}, { WWT_IMGBTN, RESIZE_NONE, 14, 0, 399, 14, 169, 0x0, STR_CHEATS_TIP},
{ WIDGETS_END}, { WIDGETS_END},
}; };

View File

@ -299,19 +299,19 @@ static void MusicTrackSelectionWndProc(Window *w, WindowEvent *e)
} }
static const Widget _music_track_selection_widgets[] = { static const Widget _music_track_selection_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, 431, 0, 13, STR_01EB_MUSIC_PROGRAM_SELECTION, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_NONE, 14, 11, 431, 0, 13, STR_01EB_MUSIC_PROGRAM_SELECTION, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 431, 14, 217, 0x0, STR_NULL}, { WWT_IMGBTN, RESIZE_NONE, 14, 0, 431, 14, 217, 0x0, STR_NULL},
{ WWT_IMGBTN, RESIZE_NONE, 14, 2, 181, 22, 215, 0x0, STR_01FA_CLICK_ON_MUSIC_TRACK_TO}, { WWT_IMGBTN, RESIZE_NONE, 14, 2, 181, 22, 215, 0x0, STR_01FA_CLICK_ON_MUSIC_TRACK_TO},
{ WWT_IMGBTN, RESIZE_NONE, 14, 250, 429, 22, 215, 0x0, STR_CLICK_ON_TRACK_TO_REMOVE}, { WWT_IMGBTN, RESIZE_NONE, 14, 250, 429, 22, 215, 0x0, STR_CLICK_ON_TRACK_TO_REMOVE},
{ WWT_PUSHIMGBTN, RESIZE_NONE, 14, 186, 245, 44, 51, 0x0, STR_01F3_SELECT_ALL_TRACKS_PROGRAM}, { WWT_PUSHIMGBTN, RESIZE_NONE, 14, 186, 245, 44, 51, 0x0, STR_01F3_SELECT_ALL_TRACKS_PROGRAM},
{ WWT_PUSHIMGBTN, RESIZE_NONE, 14, 186, 245, 52, 59, 0x0, STR_01F4_SELECT_OLD_STYLE_MUSIC}, { WWT_PUSHIMGBTN, RESIZE_NONE, 14, 186, 245, 52, 59, 0x0, STR_01F4_SELECT_OLD_STYLE_MUSIC},
{ WWT_PUSHIMGBTN, RESIZE_NONE, 14, 186, 245, 60, 67, 0x0, STR_01F5_SELECT_NEW_STYLE_MUSIC}, { WWT_PUSHIMGBTN, RESIZE_NONE, 14, 186, 245, 60, 67, 0x0, STR_01F5_SELECT_NEW_STYLE_MUSIC},
{ WWT_PUSHIMGBTN, RESIZE_NONE, 14, 186, 245, 68, 75, 0x0, STR_0330_SELECT_EZY_STREET_STYLE}, { WWT_PUSHIMGBTN, RESIZE_NONE, 14, 186, 245, 68, 75, 0x0, STR_0330_SELECT_EZY_STREET_STYLE},
{ WWT_PUSHIMGBTN, RESIZE_NONE, 14, 186, 245, 76, 83, 0x0, STR_01F6_SELECT_CUSTOM_1_USER_DEFINED}, { WWT_PUSHIMGBTN, RESIZE_NONE, 14, 186, 245, 76, 83, 0x0, STR_01F6_SELECT_CUSTOM_1_USER_DEFINED},
{ WWT_PUSHIMGBTN, RESIZE_NONE, 14, 186, 245, 84, 91, 0x0, STR_01F7_SELECT_CUSTOM_2_USER_DEFINED}, { WWT_PUSHIMGBTN, RESIZE_NONE, 14, 186, 245, 84, 91, 0x0, STR_01F7_SELECT_CUSTOM_2_USER_DEFINED},
{ WWT_PUSHIMGBTN, RESIZE_NONE, 14, 186, 245, 108, 115, 0x0, STR_01F8_CLEAR_CURRENT_PROGRAM_CUSTOM1}, { WWT_PUSHIMGBTN, RESIZE_NONE, 14, 186, 245, 108, 115, 0x0, STR_01F8_CLEAR_CURRENT_PROGRAM_CUSTOM1},
//{ WWT_PUSHIMGBTN, RESIZE_NONE, 14, 186, 245, 124, 131, 0x0, STR_01F9_SAVE_MUSIC_SETTINGS}, //{ WWT_PUSHIMGBTN, RESIZE_NONE, 14, 186, 245, 124, 131, 0x0, STR_01F9_SAVE_MUSIC_SETTINGS},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -468,24 +468,24 @@ static void MusicWindowWndProc(Window *w, WindowEvent *e)
} }
static const Widget _music_window_widgets[] = { static const Widget _music_window_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, 299, 0, 13, STR_01D2_JAZZ_JUKEBOX, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_NONE, 14, 11, 299, 0, 13, STR_01D2_JAZZ_JUKEBOX, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_PUSHIMGBTN, RESIZE_NONE, 14, 0, 21, 14, 35, 0x2C5, STR_01DE_SKIP_TO_PREVIOUS_TRACK}, { WWT_PUSHIMGBTN, RESIZE_NONE, 14, 0, 21, 14, 35, 0x2C5, STR_01DE_SKIP_TO_PREVIOUS_TRACK},
{ WWT_PUSHIMGBTN, RESIZE_NONE, 14, 22, 43, 14, 35, 0x2C6, STR_01DF_SKIP_TO_NEXT_TRACK_IN_SELECTION}, { WWT_PUSHIMGBTN, RESIZE_NONE, 14, 22, 43, 14, 35, 0x2C6, STR_01DF_SKIP_TO_NEXT_TRACK_IN_SELECTION},
{ WWT_PUSHIMGBTN, RESIZE_NONE, 14, 44, 65, 14, 35, 0x2C7, STR_01E0_STOP_PLAYING_MUSIC}, { WWT_PUSHIMGBTN, RESIZE_NONE, 14, 44, 65, 14, 35, 0x2C7, STR_01E0_STOP_PLAYING_MUSIC},
{ WWT_PUSHIMGBTN, RESIZE_NONE, 14, 66, 87, 14, 35, 0x2C8, STR_01E1_START_PLAYING_MUSIC}, { WWT_PUSHIMGBTN, RESIZE_NONE, 14, 66, 87, 14, 35, 0x2C8, STR_01E1_START_PLAYING_MUSIC},
{ WWT_IMGBTN, RESIZE_NONE, 14, 88, 299, 14, 35, 0x0, STR_01E2_DRAG_SLIDERS_TO_SET_MUSIC}, { WWT_IMGBTN, RESIZE_NONE, 14, 88, 299, 14, 35, 0x0, STR_01E2_DRAG_SLIDERS_TO_SET_MUSIC},
{ WWT_IMGBTN, RESIZE_NONE, 14, 186, 201, 15, 34, 0x0, STR_NULL}, { WWT_IMGBTN, RESIZE_NONE, 14, 186, 201, 15, 34, 0x0, STR_NULL},
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 299, 36, 57, 0x0, STR_NULL}, { WWT_IMGBTN, RESIZE_NONE, 14, 0, 299, 36, 57, 0x0, STR_NULL},
{ WWT_IMGBTN, RESIZE_NONE, 14, 59, 240, 45, 53, 0x0, STR_NULL}, { WWT_IMGBTN, RESIZE_NONE, 14, 59, 240, 45, 53, 0x0, STR_NULL},
{ WWT_PUSHIMGBTN, RESIZE_NONE, 14, 6, 55, 42, 49, 0x0, STR_01FB_TOGGLE_PROGRAM_SHUFFLE}, { WWT_PUSHIMGBTN, RESIZE_NONE, 14, 6, 55, 42, 49, 0x0, STR_01FB_TOGGLE_PROGRAM_SHUFFLE},
{ WWT_PUSHIMGBTN, RESIZE_NONE, 14, 244, 293, 42, 49, 0x0, STR_01FC_SHOW_MUSIC_TRACK_SELECTION}, { WWT_PUSHIMGBTN, RESIZE_NONE, 14, 244, 293, 42, 49, 0x0, STR_01FC_SHOW_MUSIC_TRACK_SELECTION},
{ WWT_PUSHIMGBTN, RESIZE_NONE, 14, 0, 49, 58, 65, 0x0, STR_01F3_SELECT_ALL_TRACKS_PROGRAM}, { WWT_PUSHIMGBTN, RESIZE_NONE, 14, 0, 49, 58, 65, 0x0, STR_01F3_SELECT_ALL_TRACKS_PROGRAM},
{ WWT_PUSHIMGBTN, RESIZE_NONE, 14, 50, 99, 58, 65, 0x0, STR_01F4_SELECT_OLD_STYLE_MUSIC}, { WWT_PUSHIMGBTN, RESIZE_NONE, 14, 50, 99, 58, 65, 0x0, STR_01F4_SELECT_OLD_STYLE_MUSIC},
{ WWT_PUSHIMGBTN, RESIZE_NONE, 14, 100, 149, 58, 65, 0x0, STR_01F5_SELECT_NEW_STYLE_MUSIC}, { WWT_PUSHIMGBTN, RESIZE_NONE, 14, 100, 149, 58, 65, 0x0, STR_01F5_SELECT_NEW_STYLE_MUSIC},
{ WWT_PUSHIMGBTN, RESIZE_NONE, 14, 150, 199, 58, 65, 0x0, STR_0330_SELECT_EZY_STREET_STYLE}, { WWT_PUSHIMGBTN, RESIZE_NONE, 14, 150, 199, 58, 65, 0x0, STR_0330_SELECT_EZY_STREET_STYLE},
{ WWT_PUSHIMGBTN, RESIZE_NONE, 14, 200, 249, 58, 65, 0x0, STR_01F6_SELECT_CUSTOM_1_USER_DEFINED}, { WWT_PUSHIMGBTN, RESIZE_NONE, 14, 200, 249, 58, 65, 0x0, STR_01F6_SELECT_CUSTOM_1_USER_DEFINED},
{ WWT_PUSHIMGBTN, RESIZE_NONE, 14, 250, 299, 58, 65, 0x0, STR_01F7_SELECT_CUSTOM_2_USER_DEFINED}, { WWT_PUSHIMGBTN, RESIZE_NONE, 14, 250, 299, 58, 65, 0x0, STR_01F7_SELECT_CUSTOM_2_USER_DEFINED},
{ WIDGETS_END}, { WIDGETS_END},
}; };

View File

@ -46,15 +46,15 @@
#define NETWORK_STATION_TYPES 5 #define NETWORK_STATION_TYPES 5
enum { enum {
NETWORK_NAME_LENGTH = 80, NETWORK_NAME_LENGTH = 80,
NETWORK_HOSTNAME_LENGTH = 80, NETWORK_HOSTNAME_LENGTH = 80,
NETWORK_REVISION_LENGTH = 15, NETWORK_REVISION_LENGTH = 15,
NETWORK_PASSWORD_LENGTH = 20, NETWORK_PASSWORD_LENGTH = 20,
NETWORK_PLAYERS_LENGTH = 200, NETWORK_PLAYERS_LENGTH = 200,
NETWORK_CLIENT_NAME_LENGTH = 25, NETWORK_CLIENT_NAME_LENGTH = 25,
NETWORK_RCONCOMMAND_LENGTH = 500, NETWORK_RCONCOMMAND_LENGTH = 500,
NETWORK_NUM_LANGUAGES = 4, NETWORK_NUM_LANGUAGES = 4,
}; };
// This is the struct used by both client and server // This is the struct used by both client and server
@ -87,36 +87,36 @@ typedef struct NetworkGameInfo {
} NetworkGameInfo; } NetworkGameInfo;
typedef struct NetworkPlayerInfo { typedef struct NetworkPlayerInfo {
char company_name[NETWORK_NAME_LENGTH]; // Company name char company_name[NETWORK_NAME_LENGTH]; // Company name
char password[NETWORK_PASSWORD_LENGTH]; // The password for the player char password[NETWORK_PASSWORD_LENGTH]; // The password for the player
Year inaugurated_year; // What year the company started in Year inaugurated_year; // What year the company started in
int64 company_value; // The company value int64 company_value; // The company value
int64 money; // The amount of money the company has int64 money; // The amount of money the company has
int64 income; // How much did the company earned last year int64 income; // How much did the company earned last year
uint16 performance; // What was his performance last month? uint16 performance; // What was his performance last month?
byte use_password; // 0: No password 1: There is a password byte use_password; // 0: No password 1: There is a password
uint16 num_vehicle[NETWORK_VEHICLE_TYPES]; // How many vehicles are there of this type? uint16 num_vehicle[NETWORK_VEHICLE_TYPES]; // How many vehicles are there of this type?
uint16 num_station[NETWORK_STATION_TYPES]; // How many stations are there of this type? uint16 num_station[NETWORK_STATION_TYPES]; // How many stations are there of this type?
char players[NETWORK_PLAYERS_LENGTH]; // The players that control this company (Name1, name2, ..) char players[NETWORK_PLAYERS_LENGTH]; // The players that control this company (Name1, name2, ..)
uint16 months_empty; // How many months the company is empty uint16 months_empty; // How many months the company is empty
} NetworkPlayerInfo; } NetworkPlayerInfo;
typedef struct NetworkClientInfo { typedef struct NetworkClientInfo {
uint16 client_index; /// Index of the client (same as ClientState->index) uint16 client_index; // Index of the client (same as ClientState->index)
char client_name[NETWORK_CLIENT_NAME_LENGTH]; /// Name of the client char client_name[NETWORK_CLIENT_NAME_LENGTH]; // Name of the client
byte client_lang; /// The language of the client byte client_lang; // The language of the client
byte client_playas; /// As which player is this client playing (PlayerID) byte client_playas; // As which player is this client playing (PlayerID)
uint32 client_ip; /// IP-address of the client (so he can be banned) uint32 client_ip; // IP-address of the client (so he can be banned)
Date join_date; /// Gamedate the player has joined Date join_date; // Gamedate the player has joined
char unique_id[NETWORK_NAME_LENGTH]; /// Every play sends an unique id so we can indentify him char unique_id[NETWORK_NAME_LENGTH]; // Every play sends an unique id so we can indentify him
} NetworkClientInfo; } NetworkClientInfo;
typedef struct NetworkGameList { typedef struct NetworkGameList {
NetworkGameInfo info; NetworkGameInfo info;
uint32 ip; uint32 ip;
uint16 port; uint16 port;
bool online; // False if the server did not respond (default status) bool online; // False if the server did not respond (default status)
bool manually; // True if the server was added manually bool manually; // True if the server was added manually
struct NetworkGameList *next; struct NetworkGameList *next;
} NetworkGameList; } NetworkGameList;
@ -133,10 +133,10 @@ typedef enum {
// language ids for server_lang and client_lang // language ids for server_lang and client_lang
typedef enum { typedef enum {
NETLANG_ANY = 0, NETLANG_ANY = 0,
NETLANG_ENGLISH = 1, NETLANG_ENGLISH = 1,
NETLANG_GERMAN = 2, NETLANG_GERMAN = 2,
NETLANG_FRENCH = 3, NETLANG_FRENCH = 3,
} NetworkLanguage; } NetworkLanguage;
VARDEF NetworkGameList *_network_game_list; VARDEF NetworkGameList *_network_game_list;

View File

@ -508,34 +508,34 @@ static void NetworkGameWindowWndProc(Window *w, WindowEvent *e)
} }
static const Widget _network_game_window_widgets[] = { static const Widget _network_game_window_widgets[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, BGC, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, { WWT_CLOSEBOX, RESIZE_NONE, BGC, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
{ WWT_CAPTION, RESIZE_NONE, BGC, 11, 549, 0, 13, STR_NETWORK_MULTIPLAYER, STR_NULL}, { WWT_CAPTION, RESIZE_NONE, BGC, 11, 549, 0, 13, STR_NETWORK_MULTIPLAYER, STR_NULL},
{ WWT_IMGBTN, RESIZE_NONE, BGC, 0, 549, 14, 249, STR_NULL, STR_NULL}, { WWT_IMGBTN, RESIZE_NONE, BGC, 0, 549, 14, 249, STR_NULL, STR_NULL},
/* LEFT SIDE */ /* LEFT SIDE */
{ WWT_IMGBTN, RESIZE_NONE, BGC, 310, 461, 22, 33, STR_NULL, STR_NETWORK_ENTER_NAME_TIP}, { WWT_IMGBTN, RESIZE_NONE, BGC, 310, 461, 22, 33, STR_NULL, STR_NETWORK_ENTER_NAME_TIP},
{ WWT_6, RESIZE_NONE, BGC, 90, 181, 22, 33, STR_NETWORK_COMBO1, STR_NETWORK_CONNECTION_TIP}, { WWT_6, RESIZE_NONE, BGC, 90, 181, 22, 33, STR_NETWORK_COMBO1, STR_NETWORK_CONNECTION_TIP},
{ WWT_TEXTBTN, RESIZE_NONE, BGC, 170, 180, 23, 32, STR_0225, STR_NETWORK_CONNECTION_TIP}, { WWT_TEXTBTN, RESIZE_NONE, BGC, 170, 180, 23, 32, STR_0225, STR_NETWORK_CONNECTION_TIP},
{ WWT_PUSHTXTBTN, RESIZE_NONE, BTC, 10, 170, 42, 53, STR_NETWORK_GAME_NAME, STR_NETWORK_GAME_NAME_TIP}, { WWT_PUSHTXTBTN, RESIZE_NONE, BTC, 10, 170, 42, 53, STR_NETWORK_GAME_NAME, STR_NETWORK_GAME_NAME_TIP},
{ WWT_PUSHTXTBTN, RESIZE_NONE, BTC, 171, 250, 42, 53, STR_NETWORK_CLIENTS_CAPTION,STR_NETWORK_CLIENTS_CAPTION_TIP}, { WWT_PUSHTXTBTN, RESIZE_NONE, BTC, 171, 250, 42, 53, STR_NETWORK_CLIENTS_CAPTION, STR_NETWORK_CLIENTS_CAPTION_TIP},
{ WWT_PUSHTXTBTN, RESIZE_NONE, BTC, 251, 290, 42, 53, STR_EMPTY, STR_NETWORK_INFO_ICONS_TIP}, { WWT_PUSHTXTBTN, RESIZE_NONE, BTC, 251, 290, 42, 53, STR_EMPTY, STR_NETWORK_INFO_ICONS_TIP},
{ WWT_MATRIX, RESIZE_NONE, BGC, 10, 290, 54, 222, (12 << 8) + 1, STR_NETWORK_CLICK_GAME_TO_SELECT}, { WWT_MATRIX, RESIZE_NONE, BGC, 10, 290, 54, 222, (12 << 8) + 1, STR_NETWORK_CLICK_GAME_TO_SELECT},
{ WWT_SCROLLBAR, RESIZE_NONE, BGC, 291, 302, 42, 222, STR_NULL, STR_0190_SCROLL_BAR_SCROLLS_LIST}, { WWT_SCROLLBAR, RESIZE_NONE, BGC, 291, 302, 42, 222, STR_NULL, STR_0190_SCROLL_BAR_SCROLLS_LIST},
{ WWT_PUSHTXTBTN, RESIZE_NONE, BTC, 30, 130, 232, 243, STR_NETWORK_FIND_SERVER, STR_NETWORK_FIND_SERVER_TIP}, { WWT_PUSHTXTBTN, RESIZE_NONE, BTC, 30, 130, 232, 243, STR_NETWORK_FIND_SERVER, STR_NETWORK_FIND_SERVER_TIP},
{ WWT_PUSHTXTBTN, RESIZE_NONE, BTC, 180, 280, 232, 243, STR_NETWORK_ADD_SERVER, STR_NETWORK_ADD_SERVER_TIP}, { WWT_PUSHTXTBTN, RESIZE_NONE, BTC, 180, 280, 232, 243, STR_NETWORK_ADD_SERVER, STR_NETWORK_ADD_SERVER_TIP},
/* RIGHT SIDE */ /* RIGHT SIDE */
{ WWT_PUSHTXTBTN, RESIZE_NONE, BTC, 315, 415, 232, 243, STR_NETWORK_START_SERVER, STR_NETWORK_START_SERVER_TIP}, { WWT_PUSHTXTBTN, RESIZE_NONE, BTC, 315, 415, 232, 243, STR_NETWORK_START_SERVER, STR_NETWORK_START_SERVER_TIP},
{ WWT_PUSHTXTBTN, RESIZE_NONE, BTC, 430, 535, 232, 243, STR_012E_CANCEL, STR_NULL}, { WWT_PUSHTXTBTN, RESIZE_NONE, BTC, 430, 535, 232, 243, STR_012E_CANCEL, STR_NULL},
{ WWT_PANEL, RESIZE_NONE, BGC, 310, 540, 42, 222, STR_NULL, STR_NULL}, { WWT_PANEL, RESIZE_NONE, BGC, 310, 540, 42, 222, STR_NULL, STR_NULL},
{ WWT_PUSHTXTBTN, RESIZE_NONE, BTC, 315, 415, 201, 212, STR_NETWORK_JOIN_GAME, STR_NULL}, { WWT_PUSHTXTBTN, RESIZE_NONE, BTC, 315, 415, 201, 212, STR_NETWORK_JOIN_GAME, STR_NULL},
{ WWT_PUSHTXTBTN, RESIZE_NONE, BTC, 430, 535, 201, 212, STR_NETWORK_REFRESH, STR_NETWORK_REFRESH_TIP}, { WWT_PUSHTXTBTN, RESIZE_NONE, BTC, 430, 535, 201, 212, STR_NETWORK_REFRESH, STR_NETWORK_REFRESH_TIP},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -744,30 +744,30 @@ static void NetworkStartServerWindowWndProc(Window *w, WindowEvent *e)
} }
static const Widget _network_start_server_window_widgets[] = { static const Widget _network_start_server_window_widgets[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, BGC, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW }, { WWT_CLOSEBOX, RESIZE_NONE, BGC, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW },
{ WWT_CAPTION, RESIZE_NONE, BGC, 11, 419, 0, 13, STR_NETWORK_START_GAME_WINDOW, STR_NULL}, { WWT_CAPTION, RESIZE_NONE, BGC, 11, 419, 0, 13, STR_NETWORK_START_GAME_WINDOW, STR_NULL},
{ WWT_IMGBTN, RESIZE_NONE, BGC, 0, 419, 14, 243, 0x0, STR_NULL}, { WWT_IMGBTN, RESIZE_NONE, BGC, 0, 419, 14, 243, 0x0, STR_NULL},
{ WWT_IMGBTN, RESIZE_NONE, BGC, 100, 272, 22, 33, 0x0, STR_NETWORK_NEW_GAME_NAME_TIP}, { WWT_IMGBTN, RESIZE_NONE, BGC, 100, 272, 22, 33, 0x0, STR_NETWORK_NEW_GAME_NAME_TIP},
{ WWT_PUSHTXTBTN, RESIZE_NONE, BTC, 285, 405, 22, 33, STR_NETWORK_SET_PASSWORD, STR_NETWORK_PASSWORD_TIP}, { WWT_PUSHTXTBTN, RESIZE_NONE, BTC, 285, 405, 22, 33, STR_NETWORK_SET_PASSWORD, STR_NETWORK_PASSWORD_TIP},
{ WWT_6, RESIZE_NONE, BGC, 10, 271, 62, 216, 0x0, STR_NETWORK_SELECT_MAP_TIP}, { WWT_6, RESIZE_NONE, BGC, 10, 271, 62, 216, 0x0, STR_NETWORK_SELECT_MAP_TIP},
{ WWT_SCROLLBAR, RESIZE_NONE, BGC, 259, 270, 63, 215, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST}, { WWT_SCROLLBAR, RESIZE_NONE, BGC, 259, 270, 63, 215, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST},
/* Combo boxes to control Connection Type / Max Clients / Max Companies / Max Observers / Language */ /* Combo boxes to control Connection Type / Max Clients / Max Companies / Max Observers / Language */
{ WWT_6, RESIZE_NONE, BGC, 280, 410, 77, 88, STR_NETWORK_COMBO1, STR_NETWORK_CONNECTION_TIP}, { WWT_6, RESIZE_NONE, BGC, 280, 410, 77, 88, STR_NETWORK_COMBO1, STR_NETWORK_CONNECTION_TIP},
{ WWT_TEXTBTN, RESIZE_NONE, BGC, 399, 409, 78, 87, STR_0225, STR_NETWORK_CONNECTION_TIP}, { WWT_TEXTBTN, RESIZE_NONE, BGC, 399, 409, 78, 87, STR_0225, STR_NETWORK_CONNECTION_TIP},
{ WWT_6, RESIZE_NONE, BGC, 280, 410, 109, 120, STR_NETWORK_COMBO2, STR_NETWORK_NUMBER_OF_CLIENTS_TIP}, { WWT_6, RESIZE_NONE, BGC, 280, 410, 109, 120, STR_NETWORK_COMBO2, STR_NETWORK_NUMBER_OF_CLIENTS_TIP},
{ WWT_TEXTBTN, RESIZE_NONE, BGC, 399, 409, 110, 119, STR_0225, STR_NETWORK_NUMBER_OF_CLIENTS_TIP}, { WWT_TEXTBTN, RESIZE_NONE, BGC, 399, 409, 110, 119, STR_0225, STR_NETWORK_NUMBER_OF_CLIENTS_TIP},
{ WWT_6, RESIZE_NONE, BGC, 280, 410, 141, 152, STR_NETWORK_COMBO3, STR_NETWORK_NUMBER_OF_COMPANIES_TIP}, { WWT_6, RESIZE_NONE, BGC, 280, 410, 141, 152, STR_NETWORK_COMBO3, STR_NETWORK_NUMBER_OF_COMPANIES_TIP},
{ WWT_TEXTBTN, RESIZE_NONE, BGC, 399, 409, 142, 151, STR_0225, STR_NETWORK_NUMBER_OF_COMPANIES_TIP}, { WWT_TEXTBTN, RESIZE_NONE, BGC, 399, 409, 142, 151, STR_0225, STR_NETWORK_NUMBER_OF_COMPANIES_TIP},
{ WWT_6, RESIZE_NONE, BGC, 280, 410, 173, 184, STR_NETWORK_COMBO4, STR_NETWORK_NUMBER_OF_SPECTATORS_TIP}, { WWT_6, RESIZE_NONE, BGC, 280, 410, 173, 184, STR_NETWORK_COMBO4, STR_NETWORK_NUMBER_OF_SPECTATORS_TIP},
{ WWT_TEXTBTN, RESIZE_NONE, BGC, 399, 409, 174, 183, STR_0225, STR_NETWORK_NUMBER_OF_SPECTATORS_TIP}, { WWT_TEXTBTN, RESIZE_NONE, BGC, 399, 409, 174, 183, STR_0225, STR_NETWORK_NUMBER_OF_SPECTATORS_TIP},
{ WWT_6, RESIZE_NONE, BGC, 280, 410, 205, 216, STR_NETWORK_COMBO5, STR_NETWORK_LANGUAGE_TIP}, { WWT_6, RESIZE_NONE, BGC, 280, 410, 205, 216, STR_NETWORK_COMBO5, STR_NETWORK_LANGUAGE_TIP},
{ WWT_TEXTBTN, RESIZE_NONE, BGC, 399, 409, 206, 215, STR_0225, STR_NETWORK_LANGUAGE_TIP}, { WWT_TEXTBTN, RESIZE_NONE, BGC, 399, 409, 206, 215, STR_0225, STR_NETWORK_LANGUAGE_TIP},
{ WWT_PUSHTXTBTN, RESIZE_NONE, BTC, 40, 140, 224, 235, STR_NETWORK_START_GAME, STR_NETWORK_START_GAME_TIP}, { WWT_PUSHTXTBTN, RESIZE_NONE, BTC, 40, 140, 224, 235, STR_NETWORK_START_GAME, STR_NETWORK_START_GAME_TIP},
{ WWT_PUSHTXTBTN, RESIZE_NONE, BTC, 150, 250, 224, 235, STR_NETWORK_LOAD_GAME, STR_NETWORK_LOAD_GAME_TIP}, { WWT_PUSHTXTBTN, RESIZE_NONE, BTC, 150, 250, 224, 235, STR_NETWORK_LOAD_GAME, STR_NETWORK_LOAD_GAME_TIP},
{ WWT_PUSHTXTBTN, RESIZE_NONE, BTC, 260, 360, 224, 235, STR_012E_CANCEL, STR_NULL}, { WWT_PUSHTXTBTN, RESIZE_NONE, BTC, 260, 360, 224, 235, STR_012E_CANCEL, STR_NULL},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -963,24 +963,24 @@ static void NetworkLobbyWindowWndProc(Window *w, WindowEvent *e)
} }
static const Widget _network_lobby_window_widgets[] = { static const Widget _network_lobby_window_widgets[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, BGC, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW }, { WWT_CLOSEBOX, RESIZE_NONE, BGC, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW },
{ WWT_CAPTION, RESIZE_NONE, BGC, 11, 419, 0, 13, STR_NETWORK_GAME_LOBBY, STR_NULL}, { WWT_CAPTION, RESIZE_NONE, BGC, 11, 419, 0, 13, STR_NETWORK_GAME_LOBBY, STR_NULL},
{ WWT_IMGBTN, RESIZE_NONE, BGC, 0, 419, 14, 234, STR_NULL, STR_NULL}, { WWT_IMGBTN, RESIZE_NONE, BGC, 0, 419, 14, 234, STR_NULL, STR_NULL},
// company list // company list
{ WWT_PANEL, RESIZE_NONE, BTC, 10, 155, 38, 49, STR_NULL, STR_NULL}, { WWT_PANEL, RESIZE_NONE, BTC, 10, 155, 38, 49, STR_NULL, STR_NULL},
{ WWT_MATRIX, RESIZE_NONE, BGC, 10, 155, 50, 190, (10 << 8) + 1, STR_NETWORK_COMPANY_LIST_TIP}, { WWT_MATRIX, RESIZE_NONE, BGC, 10, 155, 50, 190, (10 << 8) + 1, STR_NETWORK_COMPANY_LIST_TIP},
{ WWT_SCROLLBAR, RESIZE_NONE, BGC, 156, 167, 38, 190, STR_NULL, STR_0190_SCROLL_BAR_SCROLLS_LIST}, { WWT_SCROLLBAR, RESIZE_NONE, BGC, 156, 167, 38, 190, STR_NULL, STR_0190_SCROLL_BAR_SCROLLS_LIST},
// company/player info // company/player info
{ WWT_PANEL, RESIZE_NONE, BGC, 173, 404, 38, 190, STR_NULL, STR_NULL}, { WWT_PANEL, RESIZE_NONE, BGC, 173, 404, 38, 190, STR_NULL, STR_NULL},
// buttons // buttons
{ WWT_PUSHTXTBTN, RESIZE_NONE, BTC, 10, 151, 200, 211, STR_NETWORK_JOIN_COMPANY, STR_NETWORK_JOIN_COMPANY_TIP}, { WWT_PUSHTXTBTN, RESIZE_NONE, BTC, 10, 151, 200, 211, STR_NETWORK_JOIN_COMPANY, STR_NETWORK_JOIN_COMPANY_TIP},
{ WWT_PUSHTXTBTN, RESIZE_NONE, BTC, 10, 151, 215, 226, STR_NETWORK_NEW_COMPANY, STR_NETWORK_NEW_COMPANY_TIP}, { WWT_PUSHTXTBTN, RESIZE_NONE, BTC, 10, 151, 215, 226, STR_NETWORK_NEW_COMPANY, STR_NETWORK_NEW_COMPANY_TIP},
{ WWT_PUSHTXTBTN, RESIZE_NONE, BTC, 158, 268, 200, 211, STR_NETWORK_SPECTATE_GAME,STR_NETWORK_SPECTATE_GAME_TIP}, { WWT_PUSHTXTBTN, RESIZE_NONE, BTC, 158, 268, 200, 211, STR_NETWORK_SPECTATE_GAME, STR_NETWORK_SPECTATE_GAME_TIP},
{ WWT_PUSHTXTBTN, RESIZE_NONE, BTC, 158, 268, 215, 226, STR_NETWORK_REFRESH, STR_NETWORK_REFRESH_TIP}, { WWT_PUSHTXTBTN, RESIZE_NONE, BTC, 158, 268, 215, 226, STR_NETWORK_REFRESH, STR_NETWORK_REFRESH_TIP},
{ WWT_PUSHTXTBTN, RESIZE_NONE, BTC, 278, 388, 200, 211, STR_012E_CANCEL, STR_NULL}, { WWT_PUSHTXTBTN, RESIZE_NONE, BTC, 278, 388, 200, 211, STR_012E_CANCEL, STR_NULL},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -1045,7 +1045,7 @@ static const Widget _client_list_widgets[] = {
}; };
static const Widget _client_list_popup_widgets[] = { static const Widget _client_list_popup_widgets[] = {
{ WWT_PANEL, RESIZE_NONE, 14, 0, 99, 0, 0, 0, STR_NULL}, { WWT_PANEL, RESIZE_NONE, 14, 0, 99, 0, 0, 0, STR_NULL},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -1443,9 +1443,9 @@ static void NetworkJoinStatusWindowWndProc(Window *w, WindowEvent *e)
} }
static const Widget _network_join_status_window_widget[] = { static const Widget _network_join_status_window_widget[] = {
{ 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_NETWORK_CONNECTING, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_NONE, 14, 11, 249, 0, 13, STR_NETWORK_CONNECTING, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 249, 14, 84, 0x0,STR_NULL}, { WWT_IMGBTN, RESIZE_NONE, 14, 0, 249, 14, 84, 0x0, STR_NULL},
{ WWT_PUSHTXTBTN, RESIZE_NONE, BTC, 75, 175, 69, 80, STR_NETWORK_DISCONNECT, STR_NULL}, { WWT_PUSHTXTBTN, RESIZE_NONE, BTC, 75, 175, 69, 80, STR_NETWORK_DISCONNECT, STR_NULL},
{ WIDGETS_END}, { WIDGETS_END},
}; };

View File

@ -26,19 +26,19 @@ typedef enum {
PACKET_UDP_CLIENT_FIND_SERVER, PACKET_UDP_CLIENT_FIND_SERVER,
PACKET_UDP_SERVER_RESPONSE, PACKET_UDP_SERVER_RESPONSE,
PACKET_UDP_CLIENT_DETAIL_INFO, PACKET_UDP_CLIENT_DETAIL_INFO,
PACKET_UDP_SERVER_DETAIL_INFO, // Is not used in OpenTTD itself, only for external querying PACKET_UDP_SERVER_DETAIL_INFO, // Is not used in OpenTTD itself, only for external querying
PACKET_UDP_SERVER_REGISTER, // Packet to register itself to the master server PACKET_UDP_SERVER_REGISTER, // Packet to register itself to the master server
PACKET_UDP_MASTER_ACK_REGISTER, // Packet indicating registration has succedeed PACKET_UDP_MASTER_ACK_REGISTER, // Packet indicating registration has succedeed
PACKET_UDP_CLIENT_GET_LIST, // Request for serverlist from master server PACKET_UDP_CLIENT_GET_LIST, // Request for serverlist from master server
PACKET_UDP_MASTER_RESPONSE_LIST, // Response from master server with server ip's + port's PACKET_UDP_MASTER_RESPONSE_LIST, // Response from master server with server ip's + port's
PACKET_UDP_SERVER_UNREGISTER, // Request to be removed from the server-list PACKET_UDP_SERVER_UNREGISTER, // Request to be removed from the server-list
PACKET_UDP_END PACKET_UDP_END
} PacketUDPType; } PacketUDPType;
enum { enum {
ADVERTISE_NORMAL_INTERVAL = 30000, // interval between advertising in ticks (15 minutes) ADVERTISE_NORMAL_INTERVAL = 30000, // interval between advertising in ticks (15 minutes)
ADVERTISE_RETRY_INTERVAL = 300, // readvertise when no response after this many ticks (9 seconds) ADVERTISE_RETRY_INTERVAL = 300, // readvertise when no response after this many ticks (9 seconds)
ADVERTISE_RETRY_TIMES = 3 // give up readvertising after this much failed retries ADVERTISE_RETRY_TIMES = 3 // give up readvertising after this much failed retries
}; };
#define DEF_UDP_RECEIVE_COMMAND(type) void NetworkPacketReceive_ ## type ## _command(Packet *p, struct sockaddr_in *client_addr) #define DEF_UDP_RECEIVE_COMMAND(type) void NetworkPacketReceive_ ## type ## _command(Packet *p, struct sockaddr_in *client_addr)

View File

@ -9,10 +9,10 @@
* the custom GRF files. It is basically just a transcribed table from TTDPatch's newgrf.txt. * the custom GRF files. It is basically just a transcribed table from TTDPatch's newgrf.txt.
*/ */
const CargoID _global_cargo_id[NUM_LANDSCAPE][NUM_CARGO] = { const CargoID _global_cargo_id[NUM_LANDSCAPE][NUM_CARGO] = {
/* LT_NORMAL */ {GC_PASSENGERS, GC_COAL, GC_MAIL, GC_OIL, GC_LIVESTOCK, GC_GOODS, GC_GRAIN, GC_WOOD, GC_IRON_ORE, GC_STEEL, GC_VALUABLES, GC_PAPER_TEMP}, /* LT_NORMAL */ {GC_PASSENGERS, GC_COAL, GC_MAIL, GC_OIL, GC_LIVESTOCK, GC_GOODS, GC_GRAIN, GC_WOOD, GC_IRON_ORE, GC_STEEL, GC_VALUABLES, GC_PAPER_TEMP},
/* LT_HILLY */ {GC_PASSENGERS, GC_COAL, GC_MAIL, GC_OIL, GC_LIVESTOCK, GC_GOODS, GC_GRAIN, GC_WOOD, GC_INVALID, GC_PAPER, GC_VALUABLES, GC_FOOD }, /* LT_HILLY */ {GC_PASSENGERS, GC_COAL, GC_MAIL, GC_OIL, GC_LIVESTOCK, GC_GOODS, GC_GRAIN, GC_WOOD, GC_INVALID, GC_PAPER, GC_VALUABLES, GC_FOOD },
/* LT_DESERT */ {GC_PASSENGERS, GC_RUBBER,GC_MAIL, GC_OIL, GC_FRUIT, GC_GOODS, GC_GRAIN, GC_WOOD, GC_COPPER_ORE, GC_WATER, GC_VALUABLES, GC_FOOD }, /* LT_DESERT */ {GC_PASSENGERS, GC_RUBBER, GC_MAIL, GC_OIL, GC_FRUIT, GC_GOODS, GC_GRAIN, GC_WOOD, GC_COPPER_ORE, GC_WATER, GC_VALUABLES, GC_FOOD },
/* LT_CANDY */ {GC_PASSENGERS, GC_SUGAR, GC_MAIL, GC_TOYS,GC_BATTERIES, GC_CANDY, GC_TOFFEE,GC_COLA, GC_COTTON_CANDY,GC_BUBBLES,GC_PLASTIC, GC_FIZZY_DRINKS }, /* LT_CANDY */ {GC_PASSENGERS, GC_SUGAR, GC_MAIL, GC_TOYS, GC_BATTERIES, GC_CANDY, GC_TOFFEE, GC_COLA, GC_COTTON_CANDY, GC_BUBBLES, GC_PLASTIC, GC_FIZZY_DRINKS },
/** /**
* - GC_INVALID (255) means that cargo is not available for that climate * - GC_INVALID (255) means that cargo is not available for that climate
* - GC_PAPER_TEMP (27) is paper in temperate climate in TTDPatch * - GC_PAPER_TEMP (27) is paper in temperate climate in TTDPatch
@ -25,11 +25,11 @@ const CargoID _global_cargo_id[NUM_LANDSCAPE][NUM_CARGO] = {
/** BEGIN --- TRANSLATE FROM GLOBAL CARGO TO LOCAL CARGO ID'S **/ /** BEGIN --- TRANSLATE FROM GLOBAL CARGO TO LOCAL CARGO ID'S **/
/** Map global cargo ID's to local-cargo ID's */ /** Map global cargo ID's to local-cargo ID's */
const CargoID _local_cargo_id_ctype[NUM_GLOBAL_CID] = { const CargoID _local_cargo_id_ctype[NUM_GLOBAL_CID] = {
CT_PASSENGERS,CT_COAL, CT_MAIL, CT_OIL, CT_LIVESTOCK,CT_GOODS, CT_GRAIN, CT_WOOD, /* 0- 7 */ CT_PASSENGERS, CT_COAL, CT_MAIL, CT_OIL, CT_LIVESTOCK, CT_GOODS, CT_GRAIN, CT_WOOD, /* 0- 7 */
CT_IRON_ORE, CT_STEEL, CT_VALUABLES, CT_PAPER, CT_FOOD, CT_FRUIT, CT_COPPER_ORE, CT_WATER, /* 8-15 */ CT_IRON_ORE, CT_STEEL, CT_VALUABLES, CT_PAPER, CT_FOOD, CT_FRUIT, CT_COPPER_ORE, CT_WATER, /* 8-15 */
CT_RUBBER, CT_SUGAR, CT_TOYS, CT_BATTERIES,CT_CANDY, CT_TOFFEE, CT_COLA, CT_COTTON_CANDY, /* 16-23 */ CT_RUBBER, CT_SUGAR, CT_TOYS, CT_BATTERIES, CT_CANDY, CT_TOFFEE, CT_COLA, CT_COTTON_CANDY, /* 16-23 */
CT_BUBBLES, CT_PLASTIC,CT_FIZZY_DRINKS,CT_PAPER /* unsup. */,CT_HILLY_UNUSED, /* 24-28 */ CT_BUBBLES, CT_PLASTIC, CT_FIZZY_DRINKS, CT_PAPER /* unsup. */, CT_HILLY_UNUSED, /* 24-28 */
CT_INVALID, CT_INVALID /* 29-30 */ CT_INVALID, CT_INVALID /* 29-30 */
}; };
/** Bitmasked value where the global cargo ID is available in landscape /** Bitmasked value where the global cargo ID is available in landscape
@ -37,17 +37,13 @@ const CargoID _local_cargo_id_ctype[NUM_GLOBAL_CID] = {
#define MC(cargo) (1 << cargo) #define MC(cargo) (1 << cargo)
const uint32 _landscape_global_cargo_mask[NUM_LANDSCAPE] = const uint32 _landscape_global_cargo_mask[NUM_LANDSCAPE] =
{ /* LT_NORMAL: temperate */ { /* LT_NORMAL: temperate */
MC(GC_PASSENGERS)|MC(GC_COAL)|MC(GC_MAIL)|MC(GC_OIL)|MC(GC_LIVESTOCK)|MC(GC_GOODS)|MC(GC_GRAIN)|MC(GC_WOOD)| MC(GC_PASSENGERS) | MC(GC_COAL) | MC(GC_MAIL) | MC(GC_OIL) | MC(GC_LIVESTOCK) | MC(GC_GOODS) | MC(GC_GRAIN) | MC(GC_WOOD) | MC(GC_IRON_ORE) | MC(GC_STEEL) | MC(GC_VALUABLES),
MC(GC_IRON_ORE)|MC(GC_STEEL)|MC(GC_VALUABLES),
/* LT_HILLY: arctic */ /* LT_HILLY: arctic */
MC(GC_PASSENGERS)|MC(GC_COAL)|MC(GC_MAIL)|MC(GC_OIL)|MC(GC_LIVESTOCK)|MC(GC_GOODS)| MC(GC_PASSENGERS) | MC(GC_COAL) | MC(GC_MAIL) | MC(GC_OIL) | MC(GC_LIVESTOCK) | MC(GC_GOODS) | MC(GC_GRAIN) | MC(GC_WOOD) | MC(GC_VALUABLES) | MC(GC_PAPER) | MC(GC_FOOD),
MC(GC_GRAIN)|MC(GC_WOOD)|MC(GC_VALUABLES)|MC(GC_PAPER)|MC(GC_FOOD),
/* LT_DESERT: rainforest/desert */ /* LT_DESERT: rainforest/desert */
MC(GC_PASSENGERS)|MC(GC_MAIL)|MC(GC_OIL)|MC(GC_GOODS)|MC(GC_GRAIN)|MC(GC_WOOD)| MC(GC_PASSENGERS) | MC(GC_MAIL) | MC(GC_OIL) | MC(GC_GOODS) | MC(GC_GRAIN) | MC(GC_WOOD) | MC(GC_VALUABLES) | MC(GC_FOOD) | MC(GC_FRUIT) | MC(GC_COPPER_ORE) | MC(GC_WATER) | MC(GC_RUBBER),
MC(GC_VALUABLES)|MC(GC_FOOD)|MC(GC_FRUIT)|MC(GC_COPPER_ORE)|MC(GC_WATER)|MC(GC_RUBBER),
/* LT_CANDY: toyland */ /* LT_CANDY: toyland */
MC(GC_PASSENGERS)|MC(GC_MAIL)|MC(GC_SUGAR)|MC(GC_TOYS)|MC(GC_BATTERIES)|MC(GC_CANDY)| MC(GC_PASSENGERS) | MC(GC_MAIL) | 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_TOFFEE)|MC(GC_COLA)|MC(GC_COTTON_CANDY)|MC(GC_BUBBLES)|MC(GC_PLASTIC)|MC(GC_FIZZY_DRINKS)
}; };
/** END --- TRANSLATE FROM GLOBAL CARGO TO LOCAL CARGO ID'S **/ /** END --- TRANSLATE FROM GLOBAL CARGO TO LOCAL CARGO ID'S **/
@ -57,12 +53,12 @@ const uint32 _landscape_global_cargo_mask[NUM_LANDSCAPE] =
const uint32 cargo_classes[16] = { const uint32 cargo_classes[16] = {
/* Passengers */ MC(GC_PASSENGERS), /* Passengers */ MC(GC_PASSENGERS),
/* Mail */ MC(GC_MAIL), /* Mail */ MC(GC_MAIL),
/* Express */ MC(GC_GOODS)|MC(GC_FOOD)|MC(GC_CANDY), /* Express */ MC(GC_GOODS) | MC(GC_FOOD) | MC(GC_CANDY),
/* Armoured */ MC(GC_VALUABLES), /* Armoured */ MC(GC_VALUABLES),
/* Bulk */ MC(GC_COAL)|MC(GC_GRAIN)|MC(GC_IRON_ORE)|MC(GC_COPPER_ORE)|MC(GC_FRUIT)|MC(GC_SUGAR)|MC(GC_TOFFEE)|MC(GC_COTTON_CANDY), /* Bulk */ MC(GC_COAL) | MC(GC_GRAIN) | MC(GC_IRON_ORE) | MC(GC_COPPER_ORE) | MC(GC_FRUIT) | MC(GC_SUGAR) | MC(GC_TOFFEE) | MC(GC_COTTON_CANDY),
/* Piece */ MC(GC_LIVESTOCK)|MC(GC_WOOD)|MC(GC_STEEL)|MC(GC_PAPER)|MC(GC_TOYS)|MC(GC_BATTERIES)|MC(GC_BUBBLES)|MC(GC_FIZZY_DRINKS), /* Piece */ MC(GC_LIVESTOCK) | MC(GC_WOOD) | MC(GC_STEEL) | MC(GC_PAPER) | MC(GC_TOYS) | MC(GC_BATTERIES) | MC(GC_BUBBLES) | MC(GC_FIZZY_DRINKS),
/* Liquids */ MC(GC_OIL)|MC(GC_WATER)|MC(GC_RUBBER)|MC(GC_COLA)|MC(GC_PLASTIC), /* Liquids */ MC(GC_OIL) | MC(GC_WATER) | MC(GC_RUBBER) | MC(GC_COLA) | MC(GC_PLASTIC),
/* Chilled */ MC(GC_FOOD)|MC(GC_FRUIT), /* Chilled */ MC(GC_FOOD) | MC(GC_FRUIT),
/* Undefined */ 0, 0, 0, 0, 0, 0, 0, 0 /* Undefined */ 0, 0, 0, 0, 0, 0, 0, 0
}; };
#undef MC #undef MC

View File

@ -41,11 +41,11 @@ bool UsesWagonOverride(const Vehicle *v);
#define GetCustomVehicleIcon(et, direction) GetCustomEngineSprite(et, NULL, direction) #define GetCustomVehicleIcon(et, direction) GetCustomEngineSprite(et, NULL, direction)
typedef enum VehicleTrigger { typedef enum VehicleTrigger {
VEHICLE_TRIGGER_NEW_CARGO = 1, VEHICLE_TRIGGER_NEW_CARGO = 1,
// Externally triggered only for the first vehicle in chain // Externally triggered only for the first vehicle in chain
VEHICLE_TRIGGER_DEPOT = 2, VEHICLE_TRIGGER_DEPOT = 2,
// Externally triggered only for the first vehicle in chain, only if whole chain is empty // Externally triggered only for the first vehicle in chain, only if whole chain is empty
VEHICLE_TRIGGER_EMPTY = 4, VEHICLE_TRIGGER_EMPTY = 4,
// Not triggered externally (called for the whole chain if we got NEW_CARGO) // Not triggered externally (called for the whole chain if we got NEW_CARGO)
VEHICLE_TRIGGER_ANY_NEW_CARGO = 8, VEHICLE_TRIGGER_ANY_NEW_CARGO = 8,
} VehicleTrigger; } VehicleTrigger;

42
news.h
View File

@ -32,39 +32,39 @@ VARDEF NewsItem _statusbar_news_item;
enum { enum {
NT_ARRIVAL_PLAYER = 0, NT_ARRIVAL_PLAYER = 0,
NT_ARRIVAL_OTHER = 1, NT_ARRIVAL_OTHER = 1,
NT_ACCIDENT = 2, NT_ACCIDENT = 2,
NT_COMPANY_INFO = 3, NT_COMPANY_INFO = 3,
NT_ECONOMY = 4, NT_ECONOMY = 4,
NT_ADVICE = 5, NT_ADVICE = 5,
NT_NEW_VEHICLES = 6, NT_NEW_VEHICLES = 6,
NT_ACCEPTANCE = 7, NT_ACCEPTANCE = 7,
NT_SUBSIDIES = 8, NT_SUBSIDIES = 8,
NT_GENERAL = 9, NT_GENERAL = 9,
}; };
enum NewsMode { enum NewsMode {
NM_SMALL = 0, NM_SMALL = 0,
NM_NORMAL = 1, NM_NORMAL = 1,
NM_THIN = 2, NM_THIN = 2,
NM_CALLBACK = 3, NM_CALLBACK = 3,
}; };
enum NewsFlags { enum NewsFlags {
NF_VIEWPORT = 1, NF_VIEWPORT = 0x01,
NF_TILE = 4, NF_TILE = 0x04,
NF_VEHICLE = 8, NF_VEHICLE = 0x08,
NF_FORCE_BIG = 0x10, NF_FORCE_BIG = 0x10,
NF_NOEXPIRE = 0x20, NF_NOEXPIRE = 0x20,
NF_INCOLOR = 0x40, NF_INCOLOR = 0x40,
}; };
enum { enum {
DNC_TRAINAVAIL = 0, DNC_TRAINAVAIL = 0,
DNC_ROADAVAIL = 1, DNC_ROADAVAIL = 1,
DNC_SHIPAVAIL = 2, DNC_SHIPAVAIL = 2,
DNC_AIRCRAFTAVAIL = 3, DNC_AIRCRAFTAVAIL = 3,
DNC_BANKRUPCY = 4, DNC_BANKRUPCY = 4,
}; };
/** /**

View File

@ -307,10 +307,10 @@ static WindowDesc _news_type2_desc = {
}; };
static const Widget _news_type0_widgets[] = { static const Widget _news_type0_widgets[] = {
{ WWT_PANEL, RESIZE_NONE, 5, 0, 279, 14, 86, 0x0, STR_NULL}, { WWT_PANEL, RESIZE_NONE, 5, 0, 279, 14, 86, 0x0, STR_NULL},
{ 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, 279, 0, 13, STR_012C_MESSAGE, STR_NULL}, { WWT_CAPTION, RESIZE_NONE, 5, 11, 279, 0, 13, STR_012C_MESSAGE, STR_NULL},
{ WWT_6, RESIZE_NONE, 5, 2, 277, 16, 64, 0x0, STR_NULL}, { WWT_6, RESIZE_NONE, 5, 2, 277, 16, 64, 0x0, STR_NULL},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -642,12 +642,12 @@ static void MessageHistoryWndProc(Window *w, WindowEvent *e)
} }
static const Widget _message_history_widgets[] = { static const Widget _message_history_widgets[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, 13, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, { WWT_CLOSEBOX, RESIZE_NONE, 13, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
{ WWT_CAPTION, RESIZE_RIGHT, 13, 11, 387, 0, 13, STR_MESSAGE_HISTORY, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_RIGHT, 13, 11, 387, 0, 13, STR_MESSAGE_HISTORY, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_STICKYBOX, RESIZE_LR, 13, 388, 399, 0, 13, 0x0, STR_STICKY_BUTTON}, { WWT_STICKYBOX, RESIZE_LR, 13, 388, 399, 0, 13, 0x0, STR_STICKY_BUTTON},
{ WWT_IMGBTN, RESIZE_RB, 13, 0, 387, 14, 139, 0x0, STR_MESSAGE_HISTORY_TIP}, { WWT_IMGBTN, RESIZE_RB, 13, 0, 387, 14, 139, 0x0, STR_MESSAGE_HISTORY_TIP},
{ WWT_SCROLLBAR, RESIZE_LRB, 13, 388, 399, 14, 127, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST}, { WWT_SCROLLBAR, RESIZE_LRB, 13, 388, 399, 14, 127, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST},
{ WWT_RESIZEBOX, RESIZE_LRTB, 13, 388, 399, 128, 139, 0x0, STR_RESIZE_BUTTON}, { WWT_RESIZEBOX, RESIZE_LRTB, 13, 388, 399, 128, 139, 0x0, STR_RESIZE_BUTTON},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -801,43 +801,43 @@ static void MessageOptionsWndProc(Window *w, WindowEvent *e)
} }
static const Widget _message_options_widgets[] = { static const Widget _message_options_widgets[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, 13, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, { WWT_CLOSEBOX, RESIZE_NONE, 13, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
{ WWT_CAPTION, RESIZE_NONE, 13, 11, 409, 0, 13, STR_0204_MESSAGE_OPTIONS, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_NONE, 13, 11, 409, 0, 13, STR_0204_MESSAGE_OPTIONS, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_PANEL, RESIZE_NONE, 13, 0, 409, 14, 184, STR_NULL, STR_NULL}, { WWT_PANEL, RESIZE_NONE, 13, 0, 409, 14, 184, STR_NULL, STR_NULL},
{ WWT_PUSHIMGBTN, RESIZE_NONE, 3, 4, 12, 26, 37, SPR_ARROW_LEFT, STR_HSCROLL_BAR_SCROLLS_LIST}, { WWT_PUSHIMGBTN, RESIZE_NONE, 3, 4, 12, 26, 37, SPR_ARROW_LEFT, STR_HSCROLL_BAR_SCROLLS_LIST},
{ WWT_PUSHIMGBTN, RESIZE_NONE, 3, 90, 98, 26, 37, SPR_ARROW_RIGHT, STR_HSCROLL_BAR_SCROLLS_LIST}, { WWT_PUSHIMGBTN, RESIZE_NONE, 3, 90, 98, 26, 37, SPR_ARROW_RIGHT, STR_HSCROLL_BAR_SCROLLS_LIST},
{ WWT_PUSHIMGBTN, RESIZE_NONE, 3, 4, 12, 38, 49, SPR_ARROW_LEFT, STR_HSCROLL_BAR_SCROLLS_LIST}, { WWT_PUSHIMGBTN, RESIZE_NONE, 3, 4, 12, 38, 49, SPR_ARROW_LEFT, STR_HSCROLL_BAR_SCROLLS_LIST},
{ WWT_PUSHIMGBTN, RESIZE_NONE, 3, 90, 98, 38, 49, SPR_ARROW_RIGHT, STR_HSCROLL_BAR_SCROLLS_LIST}, { WWT_PUSHIMGBTN, RESIZE_NONE, 3, 90, 98, 38, 49, SPR_ARROW_RIGHT, STR_HSCROLL_BAR_SCROLLS_LIST},
{ WWT_PUSHIMGBTN, RESIZE_NONE, 3, 4, 12, 50, 61, SPR_ARROW_LEFT, STR_HSCROLL_BAR_SCROLLS_LIST}, { WWT_PUSHIMGBTN, RESIZE_NONE, 3, 4, 12, 50, 61, SPR_ARROW_LEFT, STR_HSCROLL_BAR_SCROLLS_LIST},
{ WWT_PUSHIMGBTN, RESIZE_NONE, 3, 90, 98, 50, 61, SPR_ARROW_RIGHT, STR_HSCROLL_BAR_SCROLLS_LIST}, { WWT_PUSHIMGBTN, RESIZE_NONE, 3, 90, 98, 50, 61, SPR_ARROW_RIGHT, STR_HSCROLL_BAR_SCROLLS_LIST},
{ WWT_PUSHIMGBTN, RESIZE_NONE, 3, 4, 12, 62, 73, SPR_ARROW_LEFT, STR_HSCROLL_BAR_SCROLLS_LIST}, { WWT_PUSHIMGBTN, RESIZE_NONE, 3, 4, 12, 62, 73, SPR_ARROW_LEFT, STR_HSCROLL_BAR_SCROLLS_LIST},
{ WWT_PUSHIMGBTN, RESIZE_NONE, 3, 90, 98, 62, 73, SPR_ARROW_RIGHT, STR_HSCROLL_BAR_SCROLLS_LIST}, { WWT_PUSHIMGBTN, RESIZE_NONE, 3, 90, 98, 62, 73, SPR_ARROW_RIGHT, STR_HSCROLL_BAR_SCROLLS_LIST},
{ WWT_PUSHIMGBTN, RESIZE_NONE, 3, 4, 12, 74, 85, SPR_ARROW_LEFT, STR_HSCROLL_BAR_SCROLLS_LIST}, { WWT_PUSHIMGBTN, RESIZE_NONE, 3, 4, 12, 74, 85, SPR_ARROW_LEFT, STR_HSCROLL_BAR_SCROLLS_LIST},
{ WWT_PUSHIMGBTN, RESIZE_NONE, 3, 90, 98, 74, 85, SPR_ARROW_RIGHT, STR_HSCROLL_BAR_SCROLLS_LIST}, { WWT_PUSHIMGBTN, RESIZE_NONE, 3, 90, 98, 74, 85, SPR_ARROW_RIGHT, STR_HSCROLL_BAR_SCROLLS_LIST},
{ WWT_PUSHIMGBTN, RESIZE_NONE, 3, 4, 12, 86, 97, SPR_ARROW_LEFT, STR_HSCROLL_BAR_SCROLLS_LIST}, { WWT_PUSHIMGBTN, RESIZE_NONE, 3, 4, 12, 86, 97, SPR_ARROW_LEFT, STR_HSCROLL_BAR_SCROLLS_LIST},
{ WWT_PUSHIMGBTN, RESIZE_NONE, 3, 90, 98, 86, 97, SPR_ARROW_RIGHT, STR_HSCROLL_BAR_SCROLLS_LIST}, { WWT_PUSHIMGBTN, RESIZE_NONE, 3, 90, 98, 86, 97, SPR_ARROW_RIGHT, STR_HSCROLL_BAR_SCROLLS_LIST},
{ WWT_PUSHIMGBTN, RESIZE_NONE, 3, 4, 12, 98, 109, SPR_ARROW_LEFT, STR_HSCROLL_BAR_SCROLLS_LIST}, { WWT_PUSHIMGBTN, RESIZE_NONE, 3, 4, 12, 98, 109, SPR_ARROW_LEFT, STR_HSCROLL_BAR_SCROLLS_LIST},
{ WWT_PUSHIMGBTN, RESIZE_NONE, 3, 90, 98, 98, 109, SPR_ARROW_RIGHT, STR_HSCROLL_BAR_SCROLLS_LIST}, { WWT_PUSHIMGBTN, RESIZE_NONE, 3, 90, 98, 98, 109, SPR_ARROW_RIGHT, STR_HSCROLL_BAR_SCROLLS_LIST},
{ WWT_PUSHIMGBTN, RESIZE_NONE, 3, 4, 12, 110, 121, SPR_ARROW_LEFT, STR_HSCROLL_BAR_SCROLLS_LIST}, { WWT_PUSHIMGBTN, RESIZE_NONE, 3, 4, 12, 110, 121, SPR_ARROW_LEFT, STR_HSCROLL_BAR_SCROLLS_LIST},
{ WWT_PUSHIMGBTN, RESIZE_NONE, 3, 90, 98, 110, 121, SPR_ARROW_RIGHT, STR_HSCROLL_BAR_SCROLLS_LIST}, { WWT_PUSHIMGBTN, RESIZE_NONE, 3, 90, 98, 110, 121, SPR_ARROW_RIGHT, STR_HSCROLL_BAR_SCROLLS_LIST},
{ WWT_PUSHIMGBTN, RESIZE_NONE, 3, 4, 12, 122, 133, SPR_ARROW_LEFT, STR_HSCROLL_BAR_SCROLLS_LIST}, { WWT_PUSHIMGBTN, RESIZE_NONE, 3, 4, 12, 122, 133, SPR_ARROW_LEFT, STR_HSCROLL_BAR_SCROLLS_LIST},
{ WWT_PUSHIMGBTN, RESIZE_NONE, 3, 90, 98, 122, 133, SPR_ARROW_RIGHT, STR_HSCROLL_BAR_SCROLLS_LIST}, { WWT_PUSHIMGBTN, RESIZE_NONE, 3, 90, 98, 122, 133, SPR_ARROW_RIGHT, STR_HSCROLL_BAR_SCROLLS_LIST},
{ WWT_PUSHIMGBTN, RESIZE_NONE, 3, 4, 12, 134, 145, SPR_ARROW_LEFT, STR_HSCROLL_BAR_SCROLLS_LIST}, { WWT_PUSHIMGBTN, RESIZE_NONE, 3, 4, 12, 134, 145, SPR_ARROW_LEFT, STR_HSCROLL_BAR_SCROLLS_LIST},
{ WWT_PUSHIMGBTN, RESIZE_NONE, 3, 90, 98, 134, 145, SPR_ARROW_RIGHT, STR_HSCROLL_BAR_SCROLLS_LIST}, { WWT_PUSHIMGBTN, RESIZE_NONE, 3, 90, 98, 134, 145, SPR_ARROW_RIGHT, STR_HSCROLL_BAR_SCROLLS_LIST},
{ WWT_PANEL, RESIZE_NONE, 3, 4, 86, 154, 165, STR_NULL, STR_NULL}, { WWT_PANEL, RESIZE_NONE, 3, 4, 86, 154, 165, STR_NULL, STR_NULL},
{ WWT_TEXTBTN, RESIZE_NONE, 3, 87, 98, 154, 165, STR_0225, STR_NULL}, { WWT_TEXTBTN, RESIZE_NONE, 3, 87, 98, 154, 165, STR_0225, STR_NULL},
{ WWT_4, RESIZE_NONE, 3, 4, 98, 166, 177, STR_02DB_OFF, STR_NULL}, { WWT_4, RESIZE_NONE, 3, 4, 98, 166, 177, STR_02DB_OFF, STR_NULL},
{ WIDGETS_END}, { WIDGETS_END},
}; };

View File

@ -909,22 +909,22 @@ static void ScrollMainViewport(int x, int y)
} }
static const int8 scrollamt[16][2] = { static const int8 scrollamt[16][2] = {
{ 0, 0}, { 0, 0},
{-2, 0}, // 1:left {-2, 0}, // 1 : left
{ 0,-2}, // 2:up { 0, -2}, // 2 : up
{-2,-1}, // 3:left + up {-2, -1}, // 3 : left + up
{ 2, 0}, // 4:right { 2, 0}, // 4 : right
{ 0, 0}, // 5:left + right { 0, 0}, // 5 : left + right
{ 2,-1}, // 6:right + up { 2, -1}, // 6 : right + up
{ 0,-2}, // 7:left + right + up = up { 0, -2}, // 7 : left + right + up = up
{ 0 ,2}, // 8:down { 0 ,2}, // 8 : down
{-2 ,1}, // 9:down+left {-2 ,1}, // 9 : down+left
{ 0, 0}, // 10:impossible { 0, 0}, // 10 : impossible
{-2, 0}, // 11:left + up + down = left {-2, 0}, // 11 : left + up + down = left
{ 2, 1}, // 12:down+right { 2, 1}, // 12 : down+right
{ 0, 2}, // 13:left + right + down = down { 0, 2}, // 13 : left + right + down = down
{ 0,-2}, // 14:left + right + up = up { 0, -2}, // 14 : left + right + up = up
{ 0, 0}, // 15:impossible { 0, 0}, // 15 : impossible
}; };
static void HandleKeyScrolling(void) static void HandleKeyScrolling(void)

328
openttd.h
View File

@ -69,17 +69,17 @@ enum GameModes {
}; };
enum SwitchModes { enum SwitchModes {
SM_NONE = 0, SM_NONE = 0,
SM_NEWGAME = 1, SM_NEWGAME = 1,
SM_EDITOR = 2, SM_EDITOR = 2,
SM_LOAD = 3, SM_LOAD = 3,
SM_MENU = 4, SM_MENU = 4,
SM_SAVE = 5, SM_SAVE = 5,
SM_GENRANDLAND = 6, SM_GENRANDLAND = 6,
SM_LOAD_SCENARIO = 9, SM_LOAD_SCENARIO = 9,
SM_START_SCENARIO = 10, SM_START_SCENARIO = 10,
SM_START_HEIGHTMAP = 11, SM_START_HEIGHTMAP = 11,
SM_LOAD_HEIGHTMAP = 12, SM_LOAD_HEIGHTMAP = 12,
}; };
@ -123,22 +123,22 @@ typedef struct TileInfo {
/* Display Options */ /* Display Options */
enum { enum {
DO_SHOW_TOWN_NAMES = 1 << 0, DO_SHOW_TOWN_NAMES = 1 << 0,
DO_SHOW_STATION_NAMES = 1 << 1, DO_SHOW_STATION_NAMES = 1 << 1,
DO_SHOW_SIGNS = 1 << 2, DO_SHOW_SIGNS = 1 << 2,
DO_FULL_ANIMATION = 1 << 3, DO_FULL_ANIMATION = 1 << 3,
DO_TRANS_BUILDINGS = 1 << 4, DO_TRANS_BUILDINGS = 1 << 4,
DO_FULL_DETAIL = 1 << 5, DO_FULL_DETAIL = 1 << 5,
DO_WAYPOINTS = 1 << 6, DO_WAYPOINTS = 1 << 6,
DO_TRANS_SIGNS = 1 << 7, DO_TRANS_SIGNS = 1 << 7,
}; };
/* Landscape types */ /* Landscape types */
enum { enum {
LT_NORMAL = 0, LT_NORMAL = 0,
LT_HILLY = 1, LT_HILLY = 1,
LT_DESERT = 2, LT_DESERT = 2,
LT_CANDY = 3, LT_CANDY = 3,
NUM_LANDSCAPE = 4, NUM_LANDSCAPE = 4,
}; };
@ -222,48 +222,48 @@ typedef struct GameDifficulty {
enum { enum {
// Temperate // Temperate
CT_PASSENGERS = 0, CT_PASSENGERS = 0,
CT_COAL = 1, CT_COAL = 1,
CT_MAIL = 2, CT_MAIL = 2,
CT_OIL = 3, CT_OIL = 3,
CT_LIVESTOCK = 4, CT_LIVESTOCK = 4,
CT_GOODS = 5, CT_GOODS = 5,
CT_GRAIN = 6, CT_GRAIN = 6,
CT_WOOD = 7, CT_WOOD = 7,
CT_IRON_ORE = 8, CT_IRON_ORE = 8,
CT_STEEL = 9, CT_STEEL = 9,
CT_VALUABLES = 10, CT_VALUABLES = 10,
CT_FOOD = 11, CT_FOOD = 11,
// Arctic // Arctic
CT_WHEAT = 6, CT_WHEAT = 6,
CT_HILLY_UNUSED = 8, CT_HILLY_UNUSED = 8,
CT_PAPER = 9, CT_PAPER = 9,
CT_GOLD = 10, CT_GOLD = 10,
// Tropic // Tropic
CT_RUBBER = 1, CT_RUBBER = 1,
CT_FRUIT = 4, CT_FRUIT = 4,
CT_MAIZE = 6, CT_MAIZE = 6,
CT_COPPER_ORE = 8, CT_COPPER_ORE = 8,
CT_WATER = 9, CT_WATER = 9,
CT_DIAMONDS = 10, CT_DIAMONDS = 10,
// Toyland // Toyland
CT_SUGAR = 1, CT_SUGAR = 1,
CT_TOYS = 3, CT_TOYS = 3,
CT_BATTERIES = 4, CT_BATTERIES = 4,
CT_CANDY = 5, CT_CANDY = 5,
CT_TOFFEE = 6, CT_TOFFEE = 6,
CT_COLA = 7, CT_COLA = 7,
CT_COTTON_CANDY = 8, CT_COTTON_CANDY = 8,
CT_BUBBLES = 9, CT_BUBBLES = 9,
CT_PLASTIC = 10, CT_PLASTIC = 10,
CT_FIZZY_DRINKS = 11, CT_FIZZY_DRINKS = 11,
NUM_CARGO = 12, NUM_CARGO = 12,
CT_INVALID = 0xFF CT_INVALID = 0xFF
}; };
typedef uint AcceptedCargo[NUM_CARGO]; typedef uint AcceptedCargo[NUM_CARGO];
@ -337,111 +337,111 @@ typedef struct {
enum { enum {
WC_MAIN_WINDOW = 0x0, WC_MAIN_WINDOW = 0x00,
WC_MAIN_TOOLBAR = 0x1, WC_MAIN_TOOLBAR = 0x01,
WC_STATUS_BAR = 0x2, WC_STATUS_BAR = 0x02,
WC_BUILD_TOOLBAR = 0x3, WC_BUILD_TOOLBAR = 0x03,
WC_NEWS_WINDOW = 0x4, WC_NEWS_WINDOW = 0x04,
WC_TOWN_DIRECTORY = 0x5, WC_TOWN_DIRECTORY = 0x05,
WC_STATION_LIST = 0x6, WC_STATION_LIST = 0x06,
WC_TOWN_VIEW = 0x7, WC_TOWN_VIEW = 0x07,
WC_SMALLMAP = 0x8, WC_SMALLMAP = 0x08,
WC_TRAINS_LIST = 0x9, WC_TRAINS_LIST = 0x09,
WC_ROADVEH_LIST = 0xA, WC_ROADVEH_LIST = 0x0A,
WC_SHIPS_LIST = 0xB, WC_SHIPS_LIST = 0x0B,
WC_AIRCRAFT_LIST = 0xC, WC_AIRCRAFT_LIST = 0x0C,
WC_VEHICLE_VIEW = 0xD, WC_VEHICLE_VIEW = 0x0D,
WC_VEHICLE_DETAILS = 0xE, WC_VEHICLE_DETAILS = 0x0E,
WC_VEHICLE_REFIT = 0xF, WC_VEHICLE_REFIT = 0x0F,
WC_VEHICLE_ORDERS = 0x10, WC_VEHICLE_ORDERS = 0x10,
WC_STATION_VIEW = 0x11, WC_STATION_VIEW = 0x11,
WC_VEHICLE_DEPOT = 0x12, WC_VEHICLE_DEPOT = 0x12,
WC_BUILD_VEHICLE = 0x13, WC_BUILD_VEHICLE = 0x13,
WC_BUILD_BRIDGE = 0x14, WC_BUILD_BRIDGE = 0x14,
WC_ERRMSG = 0x15, WC_ERRMSG = 0x15,
WC_ASK_ABANDON_GAME = 0x16, WC_ASK_ABANDON_GAME = 0x16,
WC_QUIT_GAME = 0x17, WC_QUIT_GAME = 0x17,
WC_BUILD_STATION = 0x18, WC_BUILD_STATION = 0x18,
WC_BUS_STATION = 0x19, WC_BUS_STATION = 0x19,
WC_TRUCK_STATION = 0x1A, WC_TRUCK_STATION = 0x1A,
WC_BUILD_DEPOT = 0x1B, WC_BUILD_DEPOT = 0x1B,
WC_COMPANY = 0x1D, WC_COMPANY = 0x1D,
WC_FINANCES = 0x1E, WC_FINANCES = 0x1E,
WC_PLAYER_COLOR = 0x1F, WC_PLAYER_COLOR = 0x1F,
WC_QUERY_STRING = 0x20, WC_QUERY_STRING = 0x20,
WC_SAVELOAD = 0x21, WC_SAVELOAD = 0x21,
WC_SELECT_GAME = 0x22, WC_SELECT_GAME = 0x22,
WC_TOOLBAR_MENU = 0x24, WC_TOOLBAR_MENU = 0x24,
WC_INCOME_GRAPH = 0x25, WC_INCOME_GRAPH = 0x25,
WC_OPERATING_PROFIT = 0x26, WC_OPERATING_PROFIT = 0x26,
WC_TOOLTIPS = 0x27, WC_TOOLTIPS = 0x27,
WC_INDUSTRY_VIEW = 0x28, WC_INDUSTRY_VIEW = 0x28,
WC_PLAYER_FACE = 0x29, WC_PLAYER_FACE = 0x29,
WC_LAND_INFO = 0x2A, WC_LAND_INFO = 0x2A,
WC_TOWN_AUTHORITY = 0x2B, WC_TOWN_AUTHORITY = 0x2B,
WC_SUBSIDIES_LIST = 0x2C, WC_SUBSIDIES_LIST = 0x2C,
WC_GRAPH_LEGEND = 0x2D, WC_GRAPH_LEGEND = 0x2D,
WC_DELIVERED_CARGO = 0x2E, WC_DELIVERED_CARGO = 0x2E,
WC_PERFORMANCE_HISTORY = 0x2F, WC_PERFORMANCE_HISTORY = 0x2F,
WC_COMPANY_VALUE = 0x30, WC_COMPANY_VALUE = 0x30,
WC_COMPANY_LEAGUE = 0x31, WC_COMPANY_LEAGUE = 0x31,
WC_BUY_COMPANY = 0x32, WC_BUY_COMPANY = 0x32,
WC_PAYMENT_RATES = 0x33, WC_PAYMENT_RATES = 0x33,
WC_ENGINE_PREVIEW = 0x35, WC_ENGINE_PREVIEW = 0x35,
WC_MUSIC_WINDOW = 0x36, WC_MUSIC_WINDOW = 0x36,
WC_MUSIC_TRACK_SELECTION = 0x37, WC_MUSIC_TRACK_SELECTION = 0x37,
WC_SCEN_LAND_GEN = 0x38, // also used for landscaping toolbar WC_SCEN_LAND_GEN = 0x38, // also used for landscaping toolbar
WC_ASK_RESET_LANDSCAPE = 0x39, WC_ASK_RESET_LANDSCAPE = 0x39,
WC_SCEN_TOWN_GEN = 0x3A, WC_SCEN_TOWN_GEN = 0x3A,
WC_SCEN_INDUSTRY = 0x3B, WC_SCEN_INDUSTRY = 0x3B,
WC_SCEN_BUILD_ROAD = 0x3C, WC_SCEN_BUILD_ROAD = 0x3C,
WC_BUILD_TREES = 0x3D, WC_BUILD_TREES = 0x3D,
WC_SEND_NETWORK_MSG = 0x3E, WC_SEND_NETWORK_MSG = 0x3E,
WC_DROPDOWN_MENU = 0x3F, WC_DROPDOWN_MENU = 0x3F,
WC_BUILD_INDUSTRY = 0x40, WC_BUILD_INDUSTRY = 0x40,
WC_GAME_OPTIONS = 0x41, WC_GAME_OPTIONS = 0x41,
WC_NETWORK_WINDOW = 0x42, WC_NETWORK_WINDOW = 0x42,
WC_INDUSTRY_DIRECTORY = 0x43, WC_INDUSTRY_DIRECTORY = 0x43,
WC_MESSAGE_HISTORY = 0x44, WC_MESSAGE_HISTORY = 0x44,
WC_CHEATS = 0x45, WC_CHEATS = 0x45,
WC_PERFORMANCE_DETAIL = 0x46, WC_PERFORMANCE_DETAIL = 0x46,
WC_CONSOLE = 0x47, WC_CONSOLE = 0x47,
WC_EXTRA_VIEW_PORT = 0x48, WC_EXTRA_VIEW_PORT = 0x48,
WC_CLIENT_LIST = 0x49, WC_CLIENT_LIST = 0x49,
WC_NETWORK_STATUS_WINDOW = 0x4A, WC_NETWORK_STATUS_WINDOW = 0x4A,
WC_CUSTOM_CURRENCY = 0x4B, WC_CUSTOM_CURRENCY = 0x4B,
WC_REPLACE_VEHICLE = 0x4C, WC_REPLACE_VEHICLE = 0x4C,
WC_HIGHSCORE = 0x4D, WC_HIGHSCORE = 0x4D,
WC_ENDSCREEN = 0x4E, WC_ENDSCREEN = 0x4E,
WC_SIGN_LIST = 0x4F, WC_SIGN_LIST = 0x4F,
WC_GENERATE_LANDSCAPE = 0x50, WC_GENERATE_LANDSCAPE = 0x50,
WC_GENERATE_PROGRESS_WINDOW = 0x51, WC_GENERATE_PROGRESS_WINDOW = 0x51,
WC_OK_CANCEL_QUERY = 0x52, WC_OK_CANCEL_QUERY = 0x52,
}; };
enum { enum {
EXPENSES_CONSTRUCTION = 0, EXPENSES_CONSTRUCTION = 0,
EXPENSES_NEW_VEHICLES = 1, EXPENSES_NEW_VEHICLES = 1,
EXPENSES_TRAIN_RUN = 2, EXPENSES_TRAIN_RUN = 2,
EXPENSES_ROADVEH_RUN = 3, EXPENSES_ROADVEH_RUN = 3,
EXPENSES_AIRCRAFT_RUN = 4, EXPENSES_AIRCRAFT_RUN = 4,
EXPENSES_SHIP_RUN = 5, EXPENSES_SHIP_RUN = 5,
EXPENSES_PROPERTY = 6, EXPENSES_PROPERTY = 6,
EXPENSES_TRAIN_INC = 7, EXPENSES_TRAIN_INC = 7,
EXPENSES_ROADVEH_INC = 8, EXPENSES_ROADVEH_INC = 8,
EXPENSES_AIRCRAFT_INC = 9, EXPENSES_AIRCRAFT_INC = 9,
EXPENSES_SHIP_INC = 10, EXPENSES_SHIP_INC = 10,
EXPENSES_LOAN_INT = 11, EXPENSES_LOAN_INT = 11,
EXPENSES_OTHER = 12, EXPENSES_OTHER = 12,
}; };
// special string constants // special string constants
enum SpecialStrings { enum SpecialStrings {
// special strings for town names. the town name is generated dynamically on request. // special strings for town names. the town name is generated dynamically on request.
SPECSTR_TOWNNAME_START = 0x20C0, SPECSTR_TOWNNAME_START = 0x20C0,
SPECSTR_TOWNNAME_ENGLISH = SPECSTR_TOWNNAME_START, SPECSTR_TOWNNAME_ENGLISH = SPECSTR_TOWNNAME_START,
SPECSTR_TOWNNAME_FRENCH, SPECSTR_TOWNNAME_FRENCH,
SPECSTR_TOWNNAME_GERMAN, SPECSTR_TOWNNAME_GERMAN,
SPECSTR_TOWNNAME_AMERICAN, SPECSTR_TOWNNAME_AMERICAN,
@ -462,37 +462,37 @@ enum SpecialStrings {
SPECSTR_TOWNNAME_TURKISH, SPECSTR_TOWNNAME_TURKISH,
SPECSTR_TOWNNAME_ITALIAN, SPECSTR_TOWNNAME_ITALIAN,
SPECSTR_TOWNNAME_CATALAN, SPECSTR_TOWNNAME_CATALAN,
SPECSTR_TOWNNAME_LAST = SPECSTR_TOWNNAME_CATALAN, SPECSTR_TOWNNAME_LAST = SPECSTR_TOWNNAME_CATALAN,
// special strings for player names on the form "TownName transport". // special strings for player names on the form "TownName transport".
SPECSTR_PLAYERNAME_START = 0x70EA, SPECSTR_PLAYERNAME_START = 0x70EA,
SPECSTR_PLAYERNAME_ENGLISH = SPECSTR_PLAYERNAME_START, SPECSTR_PLAYERNAME_ENGLISH = SPECSTR_PLAYERNAME_START,
SPECSTR_PLAYERNAME_FRENCH, SPECSTR_PLAYERNAME_FRENCH,
SPECSTR_PLAYERNAME_GERMAN, SPECSTR_PLAYERNAME_GERMAN,
SPECSTR_PLAYERNAME_AMERICAN, SPECSTR_PLAYERNAME_AMERICAN,
SPECSTR_PLAYERNAME_LATIN, SPECSTR_PLAYERNAME_LATIN,
SPECSTR_PLAYERNAME_SILLY, SPECSTR_PLAYERNAME_SILLY,
SPECSTR_PLAYERNAME_LAST = SPECSTR_PLAYERNAME_SILLY, SPECSTR_PLAYERNAME_LAST = SPECSTR_PLAYERNAME_SILLY,
SPECSTR_ANDCO_NAME = 0x70E6, SPECSTR_ANDCO_NAME = 0x70E6,
SPECSTR_PRESIDENT_NAME = 0x70E7, SPECSTR_PRESIDENT_NAME = 0x70E7,
SPECSTR_SONGNAME = 0x70E8, SPECSTR_SONGNAME = 0x70E8,
// reserve 32 strings for the *.lng files // reserve 32 strings for the *.lng files
SPECSTR_LANGUAGE_START = 0x7100, SPECSTR_LANGUAGE_START = 0x7100,
SPECSTR_LANGUAGE_END = 0x711f, SPECSTR_LANGUAGE_END = 0x711f,
// reserve 32 strings for various screen resolutions // reserve 32 strings for various screen resolutions
SPECSTR_RESOLUTION_START = 0x7120, SPECSTR_RESOLUTION_START = 0x7120,
SPECSTR_RESOLUTION_END = 0x713f, SPECSTR_RESOLUTION_END = 0x713f,
// reserve 32 strings for screenshot formats // reserve 32 strings for screenshot formats
SPECSTR_SCREENSHOT_START = 0x7140, SPECSTR_SCREENSHOT_START = 0x7140,
SPECSTR_SCREENSHOT_END = 0x715F, SPECSTR_SCREENSHOT_END = 0x715F,
// Used to implement SetDParamStr // Used to implement SetDParamStr
STR_SPEC_DYNSTRING = 0xF800, STR_SPEC_DYNSTRING = 0xF800,
STR_SPEC_USERSTRING = 0xF808, STR_SPEC_USERSTRING = 0xF808,
}; };
typedef void PlaceProc(TileIndex tile); typedef void PlaceProc(TileIndex tile);
@ -509,7 +509,7 @@ VARDEF byte _savegame_sort_order;
#define INVALID_STRING_ID 0xFFFF #define INVALID_STRING_ID 0xFFFF
enum { enum {
MAX_SCREEN_WIDTH = 2048, MAX_SCREEN_WIDTH = 2048,
MAX_SCREEN_HEIGHT = 1200, MAX_SCREEN_HEIGHT = 1200,
}; };
@ -517,7 +517,7 @@ enum {
* gameview when here. Bitencoded variable that only allows scrolling if all * gameview when here. Bitencoded variable that only allows scrolling if all
* elements are zero */ * elements are zero */
enum { enum {
SCROLL_CON = 0, SCROLL_CON = 0,
SCROLL_EDIT = 1, SCROLL_EDIT = 1,
SCROLL_SAVE = 2, SCROLL_SAVE = 2,
SCROLL_CHAT = 4, SCROLL_CHAT = 4,

View File

@ -36,7 +36,7 @@ enum OrderFlagMasks {
//Flags for depots: //Flags for depots:
/** The current depot-order was initiated because it was in the vehicle's order list */ /** The current depot-order was initiated because it was in the vehicle's order list */
OF_PART_OF_ORDERS = 0x2, OF_PART_OF_ORDERS = 0x2,
/** if OF_PART_OF_ORDERS is not set, this will cause the vehicle to be stopped in the depot */ /** if OF_PART_OF_ORDERS is not set, this will cause the vehicle to be stopped in the depot */
OF_HALT_IN_DEPOT = 0x4, OF_HALT_IN_DEPOT = 0x4,
/** if OF_PART_OF_ORDERS is set, this will cause the order only be come active if the vehicle needs servicing */ /** if OF_PART_OF_ORDERS is set, this will cause the order only be come active if the vehicle needs servicing */

View File

@ -1115,10 +1115,10 @@ void InitializeOrders(void)
} }
static const SaveLoad _order_desc[] = { static const SaveLoad _order_desc[] = {
SLE_VAR(Order,type, SLE_UINT8), SLE_VAR(Order, type, SLE_UINT8),
SLE_VAR(Order,flags, SLE_UINT8), SLE_VAR(Order, flags, SLE_UINT8),
SLE_VAR(Order,station, SLE_UINT16), SLE_VAR(Order, station, SLE_UINT16),
SLE_REF(Order,next, REF_ORDER), SLE_REF(Order, next, REF_ORDER),
// reserve extra space in savegame here. (currently 10 bytes) // reserve extra space in savegame here. (currently 10 bytes)
SLE_CONDNULL(10, 5, SL_MAX_VERSION), SLE_CONDNULL(10, 5, SL_MAX_VERSION),

View File

@ -513,19 +513,19 @@ static void OrdersWndProc(Window *w, WindowEvent *e)
} }
static const Widget _orders_train_widgets[] = { static const Widget _orders_train_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_RIGHT, 14, 11, 384, 0, 13, STR_8829_ORDERS, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_RIGHT, 14, 11, 384, 0, 13, STR_8829_ORDERS, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_PANEL, RESIZE_RB, 14, 0, 372, 14, 75, 0x0, STR_8852_ORDERS_LIST_CLICK_ON_ORDER}, { WWT_PANEL, RESIZE_RB, 14, 0, 372, 14, 75, 0x0, STR_8852_ORDERS_LIST_CLICK_ON_ORDER},
{ WWT_SCROLLBAR, RESIZE_LRB, 14, 373, 384, 14, 75, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST}, { WWT_SCROLLBAR, RESIZE_LRB, 14, 373, 384, 14, 75, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST},
{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 0, 52, 76, 87, STR_8823_SKIP, STR_8853_SKIP_THE_CURRENT_ORDER}, { WWT_PUSHTXTBTN, RESIZE_TB, 14, 0, 52, 76, 87, STR_8823_SKIP, STR_8853_SKIP_THE_CURRENT_ORDER},
{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 53, 105, 76, 87, STR_8824_DELETE, STR_8854_DELETE_THE_HIGHLIGHTED}, { WWT_PUSHTXTBTN, RESIZE_TB, 14, 53, 105, 76, 87, STR_8824_DELETE, STR_8854_DELETE_THE_HIGHLIGHTED},
{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 106, 158, 76, 87, STR_8825_NON_STOP, STR_8855_MAKE_THE_HIGHLIGHTED_ORDER}, { WWT_PUSHTXTBTN, RESIZE_TB, 14, 106, 158, 76, 87, STR_8825_NON_STOP, STR_8855_MAKE_THE_HIGHLIGHTED_ORDER},
{WWT_NODISTXTBTN, RESIZE_TB, 14, 159, 211, 76, 87, STR_8826_GO_TO, STR_8856_INSERT_A_NEW_ORDER_BEFORE}, {WWT_NODISTXTBTN, RESIZE_TB, 14, 159, 211, 76, 87, STR_8826_GO_TO, STR_8856_INSERT_A_NEW_ORDER_BEFORE},
{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 212, 264, 76, 87, STR_FULLLOAD_OR_SERVICE, STR_NULL}, { WWT_PUSHTXTBTN, RESIZE_TB, 14, 212, 264, 76, 87, STR_FULLLOAD_OR_SERVICE, STR_NULL},
{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 265, 319, 76, 87, STR_8828_UNLOAD, STR_8858_MAKE_THE_HIGHLIGHTED_ORDER}, { WWT_PUSHTXTBTN, RESIZE_TB, 14, 265, 319, 76, 87, STR_8828_UNLOAD, STR_8858_MAKE_THE_HIGHLIGHTED_ORDER},
{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 320, 372, 76, 87, STR_886F_TRANSFER, STR_886D_MAKE_THE_HIGHLIGHTED_ORDER}, { WWT_PUSHTXTBTN, RESIZE_TB, 14, 320, 372, 76, 87, STR_886F_TRANSFER, STR_886D_MAKE_THE_HIGHLIGHTED_ORDER},
{ WWT_PANEL, RESIZE_RTB, 14, 373, 372, 76, 87, 0x0, STR_NULL}, { WWT_PANEL, RESIZE_RTB, 14, 373, 372, 76, 87, 0x0, STR_NULL},
{ WWT_RESIZEBOX, RESIZE_LRTB, 14, 373, 384, 76, 87, 0x0, STR_RESIZE_BUTTON}, { WWT_RESIZEBOX, RESIZE_LRTB, 14, 373, 384, 76, 87, 0x0, STR_RESIZE_BUTTON},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -538,19 +538,19 @@ static const WindowDesc _orders_train_desc = {
}; };
static const Widget _orders_widgets[] = { static const Widget _orders_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_RIGHT, 14, 11, 395, 0, 13, STR_8829_ORDERS, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_RIGHT, 14, 11, 395, 0, 13, STR_8829_ORDERS, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_PANEL, RESIZE_RB, 14, 0, 383, 14, 75, 0x0, STR_8852_ORDERS_LIST_CLICK_ON_ORDER}, { WWT_PANEL, RESIZE_RB, 14, 0, 383, 14, 75, 0x0, STR_8852_ORDERS_LIST_CLICK_ON_ORDER},
{ WWT_SCROLLBAR, RESIZE_LRB, 14, 384, 395, 14, 75, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST}, { WWT_SCROLLBAR, RESIZE_LRB, 14, 384, 395, 14, 75, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST},
{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 0, 63, 76, 87, STR_8823_SKIP, STR_8853_SKIP_THE_CURRENT_ORDER}, { WWT_PUSHTXTBTN, RESIZE_TB, 14, 0, 63, 76, 87, STR_8823_SKIP, STR_8853_SKIP_THE_CURRENT_ORDER},
{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 64, 128, 76, 87, STR_8824_DELETE, STR_8854_DELETE_THE_HIGHLIGHTED}, { WWT_PUSHTXTBTN, RESIZE_TB, 14, 64, 128, 76, 87, STR_8824_DELETE, STR_8854_DELETE_THE_HIGHLIGHTED},
{ WWT_EMPTY, RESIZE_TB, 14, 0, 0, 76, 87, 0x0, 0x0}, { WWT_EMPTY, RESIZE_TB, 14, 0, 0, 76, 87, 0x0, 0x0},
{WWT_NODISTXTBTN, RESIZE_TB, 14, 129, 192, 76, 87, STR_8826_GO_TO, STR_8856_INSERT_A_NEW_ORDER_BEFORE}, {WWT_NODISTXTBTN, RESIZE_TB, 14, 129, 192, 76, 87, STR_8826_GO_TO, STR_8856_INSERT_A_NEW_ORDER_BEFORE},
{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 193, 256, 76, 87, STR_FULLLOAD_OR_SERVICE, STR_NULL}, { WWT_PUSHTXTBTN, RESIZE_TB, 14, 193, 256, 76, 87, STR_FULLLOAD_OR_SERVICE, STR_NULL},
{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 257, 319, 76, 87, STR_8828_UNLOAD, STR_8858_MAKE_THE_HIGHLIGHTED_ORDER}, { WWT_PUSHTXTBTN, RESIZE_TB, 14, 257, 319, 76, 87, STR_8828_UNLOAD, STR_8858_MAKE_THE_HIGHLIGHTED_ORDER},
{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 320, 383, 76, 87, STR_886F_TRANSFER, STR_886D_MAKE_THE_HIGHLIGHTED_ORDER}, { WWT_PUSHTXTBTN, RESIZE_TB, 14, 320, 383, 76, 87, STR_886F_TRANSFER, STR_886D_MAKE_THE_HIGHLIGHTED_ORDER},
{ WWT_PANEL, RESIZE_RTB, 14, 384, 383, 76, 87, 0x0, STR_NULL}, { WWT_PANEL, RESIZE_RTB, 14, 384, 383, 76, 87, 0x0, STR_NULL},
{ WWT_RESIZEBOX, RESIZE_LRTB, 14, 384, 395, 76, 87, 0x0, STR_RESIZE_BUTTON}, { WWT_RESIZEBOX, RESIZE_LRTB, 14, 384, 395, 76, 87, 0x0, STR_RESIZE_BUTTON},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -563,18 +563,18 @@ static const WindowDesc _orders_desc = {
}; };
static const Widget _other_orders_widgets[] = { static const Widget _other_orders_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_RIGHT, 14, 11, 331, 0, 13, STR_A00B_ORDERS, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_RIGHT, 14, 11, 331, 0, 13, STR_A00B_ORDERS, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_PANEL, RESIZE_RB, 14, 0, 319, 14, 75, 0x0, STR_8852_ORDERS_LIST_CLICK_ON_ORDER}, { WWT_PANEL, RESIZE_RB, 14, 0, 319, 14, 75, 0x0, STR_8852_ORDERS_LIST_CLICK_ON_ORDER},
{ WWT_SCROLLBAR, RESIZE_LRB, 14, 320, 331, 14, 75, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST}, { WWT_SCROLLBAR, RESIZE_LRB, 14, 320, 331, 14, 75, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST},
{ WWT_EMPTY, RESIZE_NONE, 14, 0, 319, 76, 87, 0x0, STR_NULL}, { WWT_EMPTY, RESIZE_NONE, 14, 0, 319, 76, 87, 0x0, STR_NULL},
{ WWT_EMPTY, RESIZE_NONE, 14, 0, 319, 76, 87, 0x0, STR_NULL}, { WWT_EMPTY, RESIZE_NONE, 14, 0, 319, 76, 87, 0x0, STR_NULL},
{ WWT_EMPTY, RESIZE_NONE, 14, 0, 319, 76, 87, 0x0, STR_NULL}, { WWT_EMPTY, RESIZE_NONE, 14, 0, 319, 76, 87, 0x0, STR_NULL},
{ WWT_EMPTY, RESIZE_NONE, 14, 0, 319, 76, 87, 0x0, STR_NULL}, { WWT_EMPTY, RESIZE_NONE, 14, 0, 319, 76, 87, 0x0, STR_NULL},
{ WWT_EMPTY, RESIZE_NONE, 14, 0, 319, 76, 87, 0x0, STR_NULL}, { WWT_EMPTY, RESIZE_NONE, 14, 0, 319, 76, 87, 0x0, STR_NULL},
{ WWT_EMPTY, RESIZE_NONE, 14, 0, 319, 76, 87, 0x0, STR_NULL}, { WWT_EMPTY, RESIZE_NONE, 14, 0, 319, 76, 87, 0x0, STR_NULL},
{ WWT_PANEL, RESIZE_RTB, 14, 0, 319, 76, 87, 0x0, STR_NULL}, { WWT_PANEL, RESIZE_RTB, 14, 0, 319, 76, 87, 0x0, STR_NULL},
{ WWT_RESIZEBOX, RESIZE_LRTB, 14, 320, 331, 76, 87, 0x0, STR_RESIZE_BUTTON}, { WWT_RESIZEBOX, RESIZE_LRTB, 14, 320, 331, 76, 87, 0x0, STR_RESIZE_BUTTON},
{ WIDGETS_END}, { WIDGETS_END},
}; };

View File

@ -115,13 +115,15 @@ static const byte _bits_mask[4] = {
}; };
static const byte _tpf_new_direction[14] = { static const byte _tpf_new_direction[14] = {
0,1,0,1,2,1, 0,0, 0, 1, 0, 1, 2, 1,
2,3,3,2,3,0, 0, 0,
2, 3, 3, 2, 3, 0,
}; };
static const byte _tpf_prev_direction[14] = { static const byte _tpf_prev_direction[14] = {
0,1,1,0,1,2, 0,0, 0, 1, 1, 0, 1, 2,
2,3,2,3,0,3, 0, 0,
2, 3, 2, 3, 0, 3,
}; };
@ -230,23 +232,23 @@ static uint SkipToEndOfTunnel(TrackPathFinder* tpf, TileIndex tile, DiagDirectio
} }
const byte _ffb_64[128] = { const byte _ffb_64[128] = {
0,0,1,0,2,0,1,0, 0, 0, 1, 0, 2, 0, 1, 0,
3,0,1,0,2,0,1,0, 3, 0, 1, 0, 2, 0, 1, 0,
4,0,1,0,2,0,1,0, 4, 0, 1, 0, 2, 0, 1, 0,
3,0,1,0,2,0,1,0, 3, 0, 1, 0, 2, 0, 1, 0,
5,0,1,0,2,0,1,0, 5, 0, 1, 0, 2, 0, 1, 0,
3,0,1,0,2,0,1,0, 3, 0, 1, 0, 2, 0, 1, 0,
4,0,1,0,2,0,1,0, 4, 0, 1, 0, 2, 0, 1, 0,
3,0,1,0,2,0,1,0, 3, 0, 1, 0, 2, 0, 1, 0,
0,0,0,2,0,4,4,6, 0, 0, 0, 2, 0, 4, 4, 6,
0,8,8,10,8,12,12,14, 0, 8, 8, 10, 8, 12, 12, 14,
0,16,16,18,16,20,20,22, 0, 16, 16, 18, 16, 20, 20, 22,
16,24,24,26,24,28,28,30, 16, 24, 24, 26, 24, 28, 28, 30,
0,32,32,34,32,36,36,38, 0, 32, 32, 34, 32, 36, 36, 38,
32,40,40,42,40,44,44,46, 32, 40, 40, 42, 40, 44, 44, 46,
32,48,48,50,48,52,52,54, 32, 48, 48, 50, 48, 52, 52, 54,
48,56,56,58,56,60,60,62, 48, 56, 56, 58, 56, 60, 60, 62,
}; };
static void TPFMode1(TrackPathFinder* tpf, TileIndex tile, DiagDirection direction) static void TPFMode1(TrackPathFinder* tpf, TileIndex tile, DiagDirection direction)
@ -414,12 +416,12 @@ typedef struct {
} StackedItem; } StackedItem;
static const byte _new_track[6][4] = { static const byte _new_track[6][4] = {
{0,0xff,8,0xff,}, {0, 0xff, 8, 0xff,},
{0xff,1,0xff,9,}, {0xff, 1, 0xff, 9,},
{0xff,2,10,0xff,}, {0xff, 2, 10, 0xff,},
{3,0xff,0xff,11,}, {3, 0xff, 0xff, 11,},
{12,4,0xff,0xff,}, {12, 4, 0xff, 0xff,},
{0xff,0xff,5,13,}, {0xff, 0xff, 5, 13,},
}; };
typedef struct HashLink { typedef struct HashLink {
@ -659,8 +661,8 @@ static uint DistanceMoo(TileIndex t0, TileIndex t1)
// is currently limited to 16384 // is currently limited to 16384
static const byte _length_of_track[16] = { static const byte _length_of_track[16] = {
DIAG_FACTOR,DIAG_FACTOR,STR_FACTOR,STR_FACTOR,STR_FACTOR,STR_FACTOR,0,0, DIAG_FACTOR, DIAG_FACTOR, STR_FACTOR, STR_FACTOR, STR_FACTOR, STR_FACTOR, 0, 0,
DIAG_FACTOR,DIAG_FACTOR,STR_FACTOR,STR_FACTOR,STR_FACTOR,STR_FACTOR,0,0 DIAG_FACTOR, DIAG_FACTOR, STR_FACTOR, STR_FACTOR, STR_FACTOR, STR_FACTOR, 0, 0
}; };
// new more optimized pathfinder for trains... // new more optimized pathfinder for trains...

View File

@ -12,7 +12,7 @@ typedef struct PlayerEconomyEntry {
int32 income; int32 income;
int32 expenses; int32 expenses;
int32 delivered_cargo; int32 delivered_cargo;
int32 performance_history; // player score (scale 0-1000) int32 performance_history; // player score (scale 0-1000)
int64 company_value; int64 company_value;
} PlayerEconomyEntry; } PlayerEconomyEntry;
@ -31,7 +31,7 @@ typedef struct AiBuildRec {
typedef struct PlayerAI { typedef struct PlayerAI {
byte state; byte state;
byte tick; // Used to determine how often to move byte tick; // Used to determine how often to move
uint32 state_counter; // Can hold tile index! uint32 state_counter; // Can hold tile index!
uint16 timeout_counter; uint16 timeout_counter;
@ -72,17 +72,17 @@ typedef struct PlayerAI {
typedef struct Ai_PathFinderInfo { typedef struct Ai_PathFinderInfo {
TileIndex start_tile_tl; // tl = top-left TileIndex start_tile_tl; // tl = top-left
TileIndex start_tile_br; // br = bottom-right TileIndex start_tile_br; // br = bottom-right
TileIndex end_tile_tl; // tl = top-left TileIndex end_tile_tl; // tl = top-left
TileIndex end_tile_br; // br = bottom-right TileIndex end_tile_br; // br = bottom-right
byte start_direction; // 0 to 3 or AI_PATHFINDER_NO_DIRECTION byte start_direction; // 0 to 3 or AI_PATHFINDER_NO_DIRECTION
byte end_direction; // 0 to 3 or AI_PATHFINDER_NO_DIRECTION byte end_direction; // 0 to 3 or AI_PATHFINDER_NO_DIRECTION
TileIndex route[500]; TileIndex route[500];
byte route_extra[500]; // Some extra information about the route like bridge/tunnel byte route_extra[500]; // Some extra information about the route like bridge/tunnel
int route_length; int route_length;
int position; // Current position in the build-path, needed to build the path int position; // Current position in the build-path, needed to build the path
bool rail_or_road; // true = rail, false = road bool rail_or_road; // true = rail, false = road
} Ai_PathFinderInfo; } Ai_PathFinderInfo;
// The amount of memory reserved for the AI-special-vehicles // The amount of memory reserved for the AI-special-vehicles
@ -98,12 +98,12 @@ typedef struct PlayerAiNew {
uint tick; uint tick;
uint idle; uint idle;
int temp; // A value used in more than one function, but it just temporary int temp; // A value used in more than one function, but it just temporary
// The use is pretty simple: with this we can 'think' about stuff // The use is pretty simple: with this we can 'think' about stuff
// in more than one tick, and more than one AI. A static will not // in more than one tick, and more than one AI. A static will not
// do, because they are not saved. This way, the AI is almost human ;) // do, because they are not saved. This way, the AI is almost human ;)
int counter; // For the same reason as temp, we have counter. It can count how int counter; // For the same reason as temp, we have counter. It can count how
// long we are trying something, and just abort if it takes too long // long we are trying something, and just abort if it takes too long
// Pathfinder stuff // Pathfinder stuff
Ai_PathFinderInfo path_info; Ai_PathFinderInfo path_info;
@ -133,13 +133,13 @@ typedef struct PlayerAiNew {
TileIndex depot_tile; TileIndex depot_tile;
byte depot_direction; byte depot_direction;
byte amount_veh; // How many vehicles we are going to build in this route byte amount_veh; // How many vehicles we are going to build in this route
byte cur_veh; // How many vehicles did we bought? byte cur_veh; // How many vehicles did we bought?
VehicleID veh_id; // Used when bought a vehicle VehicleID veh_id; // Used when bought a vehicle
VehicleID veh_main_id; // The ID of the first vehicle, for shared copy VehicleID veh_main_id; // The ID of the first vehicle, for shared copy
int from_ic; // ic = industry/city. This is the ID of them int from_ic; // ic = industry/city. This is the ID of them
byte from_type; // AI_NO_TYPE/AI_CITY/AI_INDUSTRY byte from_type; // AI_NO_TYPE/AI_CITY/AI_INDUSTRY
int to_ic; int to_ic;
byte to_type; byte to_type;

View File

@ -103,46 +103,46 @@ static void DrawPlayerEconomyStats(const Player *p, byte mode)
} }
static const Widget _player_finances_widgets[] = { static const Widget _player_finances_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, 379, 0, 13, STR_700E_FINANCES, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_NONE, 14, 11, 379, 0, 13, STR_700E_FINANCES, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_IMGBTN, RESIZE_NONE, 14, 380, 394, 0, 13, 0x2AA, STR_7075_TOGGLE_LARGE_SMALL_WINDOW}, { WWT_IMGBTN, RESIZE_NONE, 14, 380, 394, 0, 13, 0x2AA, STR_7075_TOGGLE_LARGE_SMALL_WINDOW},
{ WWT_STICKYBOX, RESIZE_NONE, 14, 395, 406, 0, 13, 0x0, STR_STICKY_BUTTON}, { WWT_STICKYBOX, RESIZE_NONE, 14, 395, 406, 0, 13, 0x0, STR_STICKY_BUTTON},
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 406, 14, 169, 0x0, STR_NULL}, { WWT_IMGBTN, RESIZE_NONE, 14, 0, 406, 14, 169, 0x0, STR_NULL},
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 406, 170, 203, 0x0, STR_NULL}, { WWT_IMGBTN, RESIZE_NONE, 14, 0, 406, 170, 203, 0x0, STR_NULL},
{ WWT_PUSHTXTBTN, RESIZE_NONE, 14, 0, 202, 204, 215, STR_7029_BORROW, STR_7035_INCREASE_SIZE_OF_LOAN}, { WWT_PUSHTXTBTN, RESIZE_NONE, 14, 0, 202, 204, 215, STR_7029_BORROW, STR_7035_INCREASE_SIZE_OF_LOAN},
{ WWT_PUSHTXTBTN, RESIZE_NONE, 14, 203, 406, 204, 215, STR_702A_REPAY, STR_7036_REPAY_PART_OF_LOAN}, { WWT_PUSHTXTBTN, RESIZE_NONE, 14, 203, 406, 204, 215, STR_702A_REPAY, STR_7036_REPAY_PART_OF_LOAN},
{ WIDGETS_END}, { WIDGETS_END},
}; };
static const Widget _other_player_finances_widgets[] = { static const Widget _other_player_finances_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, 379, 0, 13, STR_700E_FINANCES, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_NONE, 14, 11, 379, 0, 13, STR_700E_FINANCES, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_IMGBTN, RESIZE_NONE, 14, 380, 394, 0, 13, 0x2AA, STR_7075_TOGGLE_LARGE_SMALL_WINDOW}, { WWT_IMGBTN, RESIZE_NONE, 14, 380, 394, 0, 13, 0x2AA, STR_7075_TOGGLE_LARGE_SMALL_WINDOW},
{ WWT_STICKYBOX, RESIZE_NONE, 14, 395, 406, 0, 13, 0x0, STR_STICKY_BUTTON}, { WWT_STICKYBOX, RESIZE_NONE, 14, 395, 406, 0, 13, 0x0, STR_STICKY_BUTTON},
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 406, 14, 169, 0x0, STR_NULL}, { WWT_IMGBTN, RESIZE_NONE, 14, 0, 406, 14, 169, 0x0, STR_NULL},
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 406, 170, 203, 0x0, STR_NULL}, { WWT_IMGBTN, RESIZE_NONE, 14, 0, 406, 170, 203, 0x0, STR_NULL},
{ WIDGETS_END}, { WIDGETS_END},
}; };
static const Widget _other_player_finances_small_widgets[] = { static const Widget _other_player_finances_small_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, 253, 0, 13, STR_700E_FINANCES, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_NONE, 14, 11, 253, 0, 13, STR_700E_FINANCES, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_IMGBTN, RESIZE_NONE, 14, 254, 267, 0, 13, 0x2AA, STR_7075_TOGGLE_LARGE_SMALL_WINDOW}, { WWT_IMGBTN, RESIZE_NONE, 14, 254, 267, 0, 13, 0x2AA, STR_7075_TOGGLE_LARGE_SMALL_WINDOW},
{ WWT_STICKYBOX, RESIZE_NONE, 14, 268, 279, 0, 13, 0x0, STR_STICKY_BUTTON}, { WWT_STICKYBOX, RESIZE_NONE, 14, 268, 279, 0, 13, 0x0, STR_STICKY_BUTTON},
{ WWT_EMPTY, RESIZE_NONE, 0, 0, 0, 0, 0, 0x0, STR_NULL}, { WWT_EMPTY, RESIZE_NONE, 0, 0, 0, 0, 0, 0x0, STR_NULL},
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 279, 14, 47, 0x0, STR_NULL}, { WWT_IMGBTN, RESIZE_NONE, 14, 0, 279, 14, 47, 0x0, STR_NULL},
{ WIDGETS_END}, { WIDGETS_END},
}; };
static const Widget _player_finances_small_widgets[] = { static const Widget _player_finances_small_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, 253, 0, 13, STR_700E_FINANCES, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_NONE, 14, 11, 253, 0, 13, STR_700E_FINANCES, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_IMGBTN, RESIZE_NONE, 14, 254, 267, 0, 13, 0x2AA, STR_7075_TOGGLE_LARGE_SMALL_WINDOW}, { WWT_IMGBTN, RESIZE_NONE, 14, 254, 267, 0, 13, 0x2AA, STR_7075_TOGGLE_LARGE_SMALL_WINDOW},
{ WWT_STICKYBOX, RESIZE_NONE, 14, 268, 279, 0, 13, 0x0, STR_STICKY_BUTTON}, { WWT_STICKYBOX, RESIZE_NONE, 14, 268, 279, 0, 13, 0x0, STR_STICKY_BUTTON},
{ WWT_EMPTY, RESIZE_NONE, 0, 0, 0, 0, 0, 0x0, STR_NULL}, { WWT_EMPTY, RESIZE_NONE, 0, 0, 0, 0, 0, 0x0, STR_NULL},
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 279, 14, 47, 0x0, STR_NULL}, { WWT_IMGBTN, RESIZE_NONE, 14, 0, 279, 14, 47, 0x0, STR_NULL},
{ WWT_PUSHTXTBTN, RESIZE_NONE, 14, 0, 139, 48, 59, STR_7029_BORROW, STR_7035_INCREASE_SIZE_OF_LOAN}, { WWT_PUSHTXTBTN, RESIZE_NONE, 14, 0, 139, 48, 59, STR_7029_BORROW, STR_7035_INCREASE_SIZE_OF_LOAN},
{ WWT_PUSHTXTBTN, RESIZE_NONE, 14, 140, 279, 48, 59, STR_702A_REPAY, STR_7036_REPAY_PART_OF_LOAN}, { WWT_PUSHTXTBTN, RESIZE_NONE, 14, 140, 279, 48, 59, STR_702A_REPAY, STR_7036_REPAY_PART_OF_LOAN},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -304,10 +304,10 @@ static void SelectPlayerColorWndProc(Window *w, WindowEvent *e)
} }
static const Widget _select_player_color_widgets[] = { static const Widget _select_player_color_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, 149, 0, 13, STR_7007_NEW_COLOR_SCHEME, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_NONE, 14, 11, 149, 0, 13, STR_7007_NEW_COLOR_SCHEME, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 137, 14, 127, 0x0, STR_7034_CLICK_ON_SELECTED_NEW_COLOR}, { WWT_IMGBTN, RESIZE_NONE, 14, 0, 137, 14, 127, 0x0, STR_7034_CLICK_ON_SELECTED_NEW_COLOR},
{ WWT_SCROLLBAR, RESIZE_NONE, 14, 138, 149, 14, 127, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST}, { WWT_SCROLLBAR, RESIZE_NONE, 14, 138, 149, 14, 127, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -352,14 +352,14 @@ static void SelectPlayerFaceWndProc(Window *w, WindowEvent *e)
} }
static const Widget _select_player_face_widgets[] = { static const Widget _select_player_face_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, 189, 0, 13, STR_7043_FACE_SELECTION, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_NONE, 14, 11, 189, 0, 13, STR_7043_FACE_SELECTION, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 189, 14, 136, 0x0, STR_NULL}, { WWT_IMGBTN, RESIZE_NONE, 14, 0, 189, 14, 136, 0x0, STR_NULL},
{ WWT_PUSHTXTBTN, RESIZE_NONE, 14, 0, 94, 137, 148, STR_012E_CANCEL, STR_7047_CANCEL_NEW_FACE_SELECTION}, { WWT_PUSHTXTBTN, RESIZE_NONE, 14, 0, 94, 137, 148, STR_012E_CANCEL, STR_7047_CANCEL_NEW_FACE_SELECTION},
{ WWT_PUSHTXTBTN, RESIZE_NONE, 14, 95, 189, 137, 148, STR_012F_OK, STR_7048_ACCEPT_NEW_FACE_SELECTION}, { WWT_PUSHTXTBTN, RESIZE_NONE, 14, 95, 189, 137, 148, STR_012F_OK, STR_7048_ACCEPT_NEW_FACE_SELECTION},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 95, 187, 25, 36, STR_7044_MALE, STR_7049_SELECT_MALE_FACES}, { WWT_TEXTBTN, RESIZE_NONE, 14, 95, 187, 25, 36, STR_7044_MALE, STR_7049_SELECT_MALE_FACES},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 95, 187, 37, 48, STR_7045_FEMALE, STR_704A_SELECT_FEMALE_FACES}, { WWT_TEXTBTN, RESIZE_NONE, 14, 95, 187, 37, 48, STR_7045_FEMALE, STR_704A_SELECT_FEMALE_FACES},
{ WWT_PUSHTXTBTN, RESIZE_NONE, 14, 95, 187, 79, 90, STR_7046_NEW_FACE, STR_704B_GENERATE_RANDOM_NEW_FACE}, { WWT_PUSHTXTBTN, RESIZE_NONE, 14, 95, 187, 79, 90, STR_7046_NEW_FACE, STR_704B_GENERATE_RANDOM_NEW_FACE},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -388,17 +388,17 @@ static const Widget _my_player_company_widgets[] = {
}; };
static const Widget _other_player_company_widgets[] = { static const Widget _other_player_company_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, 359, 0, 13, STR_7001, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_NONE, 14, 11, 359, 0, 13, STR_7001, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 359, 14, 157, 0x0, STR_NULL}, { WWT_IMGBTN, RESIZE_NONE, 14, 0, 359, 14, 157, 0x0, STR_NULL},
{ WWT_EMPTY, RESIZE_NONE, 0, 0, 0, 0, 0, 0x0, STR_NULL}, { WWT_EMPTY, RESIZE_NONE, 0, 0, 0, 0, 0, 0x0, STR_NULL},
{ WWT_EMPTY, RESIZE_NONE, 0, 0, 0, 0, 0, 0x0, STR_NULL}, { WWT_EMPTY, RESIZE_NONE, 0, 0, 0, 0, 0, 0x0, STR_NULL},
{ WWT_EMPTY, RESIZE_NONE, 0, 0, 0, 0, 0, 0x0, STR_NULL}, { WWT_EMPTY, RESIZE_NONE, 0, 0, 0, 0, 0, 0x0, STR_NULL},
{ WWT_EMPTY, RESIZE_NONE, 0, 0, 0, 0, 0, 0x0, STR_NULL}, { WWT_EMPTY, RESIZE_NONE, 0, 0, 0, 0, 0, 0x0, STR_NULL},
{ WWT_PUSHTXTBTN, RESIZE_NONE, 14, 266, 355, 18, 29, STR_7072_VIEW_HQ, STR_7070_BUILD_COMPANY_HEADQUARTERS}, { WWT_PUSHTXTBTN, RESIZE_NONE, 14, 266, 355, 18, 29, STR_7072_VIEW_HQ, STR_7070_BUILD_COMPANY_HEADQUARTERS},
{ WWT_EMPTY, RESIZE_NONE, 0, 0, 0, 0, 0, 0x0, STR_NULL}, { WWT_EMPTY, RESIZE_NONE, 0, 0, 0, 0, 0, 0x0, STR_NULL},
{ WWT_PUSHTXTBTN, RESIZE_NONE, 14, 0, 179, 158, 169, STR_7077_BUY_25_SHARE_IN_COMPANY, STR_7079_BUY_25_SHARE_IN_THIS_COMPANY}, { WWT_PUSHTXTBTN, RESIZE_NONE, 14, 0, 179, 158, 169, STR_7077_BUY_25_SHARE_IN_COMPANY, STR_7079_BUY_25_SHARE_IN_THIS_COMPANY},
{ WWT_PUSHTXTBTN, RESIZE_NONE, 14, 180, 359, 158, 169, STR_7078_SELL_25_SHARE_IN_COMPANY, STR_707A_SELL_25_SHARE_IN_THIS_COMPANY}, { WWT_PUSHTXTBTN, RESIZE_NONE, 14, 180, 359, 158, 169, STR_7078_SELL_25_SHARE_IN_COMPANY, STR_707A_SELL_25_SHARE_IN_THIS_COMPANY},
{ WIDGETS_END}, { WIDGETS_END},
}; };

170
players.c
View File

@ -1108,56 +1108,56 @@ void LoadFromHighScore(void)
// Save/load of players // Save/load of players
static const SaveLoad _player_desc[] = { static const SaveLoad _player_desc[] = {
SLE_VAR(Player,name_2, SLE_UINT32), SLE_VAR(Player, name_2, SLE_UINT32),
SLE_VAR(Player,name_1, SLE_STRINGID), SLE_VAR(Player, name_1, SLE_STRINGID),
SLE_VAR(Player,president_name_1,SLE_UINT16), SLE_VAR(Player, president_name_1,SLE_UINT16),
SLE_VAR(Player,president_name_2,SLE_UINT32), SLE_VAR(Player, president_name_2,SLE_UINT32),
SLE_VAR(Player,face, SLE_UINT32), SLE_VAR(Player, face, SLE_UINT32),
// money was changed to a 64 bit field in savegame version 1. // money was changed to a 64 bit field in savegame version 1.
SLE_CONDVAR(Player,money64, SLE_VAR_I64 | SLE_FILE_I32, 0, 0), SLE_CONDVAR(Player, money64, SLE_VAR_I64 | SLE_FILE_I32, 0, 0),
SLE_CONDVAR(Player,money64, SLE_INT64, 1, SL_MAX_VERSION), SLE_CONDVAR(Player, money64, SLE_INT64, 1, SL_MAX_VERSION),
SLE_VAR(Player,current_loan, SLE_INT32), SLE_VAR(Player, current_loan, SLE_INT32),
SLE_VAR(Player,player_color, SLE_UINT8), SLE_VAR(Player, player_color, SLE_UINT8),
SLE_VAR(Player,player_money_fraction,SLE_UINT8), SLE_VAR(Player, player_money_fraction, SLE_UINT8),
SLE_VAR(Player,avail_railtypes, SLE_UINT8), SLE_VAR(Player, avail_railtypes, SLE_UINT8),
SLE_VAR(Player,block_preview, SLE_UINT8), SLE_VAR(Player, block_preview, SLE_UINT8),
SLE_VAR(Player,cargo_types, SLE_UINT16), SLE_VAR(Player, cargo_types, SLE_UINT16),
SLE_CONDVAR(Player, location_of_house, SLE_FILE_U16 | SLE_VAR_U32, 0, 5), SLE_CONDVAR(Player, location_of_house, SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
SLE_CONDVAR(Player, location_of_house, SLE_UINT32, 6, SL_MAX_VERSION), SLE_CONDVAR(Player, location_of_house, SLE_UINT32, 6, SL_MAX_VERSION),
SLE_CONDVAR(Player, last_build_coordinate, SLE_FILE_U16 | SLE_VAR_U32, 0, 5), SLE_CONDVAR(Player, last_build_coordinate, SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
SLE_CONDVAR(Player, last_build_coordinate, SLE_UINT32, 6, SL_MAX_VERSION), SLE_CONDVAR(Player, last_build_coordinate, SLE_UINT32, 6, SL_MAX_VERSION),
SLE_CONDVAR(Player, inaugurated_year, SLE_FILE_U8 | SLE_VAR_I32, 0, 30), SLE_CONDVAR(Player, inaugurated_year, SLE_FILE_U8 | SLE_VAR_I32, 0, 30),
SLE_CONDVAR(Player, inaugurated_year, SLE_INT32, 31, SL_MAX_VERSION), SLE_CONDVAR(Player, inaugurated_year, SLE_INT32, 31, SL_MAX_VERSION),
SLE_ARR(Player,share_owners, SLE_UINT8, 4), SLE_ARR(Player, share_owners, SLE_UINT8, 4),
SLE_VAR(Player,num_valid_stat_ent,SLE_UINT8), SLE_VAR(Player, num_valid_stat_ent, SLE_UINT8),
SLE_VAR(Player,quarters_of_bankrupcy,SLE_UINT8), SLE_VAR(Player, quarters_of_bankrupcy, SLE_UINT8),
SLE_VAR(Player,bankrupt_asked, SLE_UINT8), SLE_VAR(Player, bankrupt_asked, SLE_UINT8),
SLE_VAR(Player,bankrupt_timeout,SLE_INT16), SLE_VAR(Player, bankrupt_timeout, SLE_INT16),
SLE_VAR(Player,bankrupt_value, SLE_INT32), SLE_VAR(Player, bankrupt_value, SLE_INT32),
// yearly expenses was changed to 64-bit in savegame version 2. // yearly expenses was changed to 64-bit in savegame version 2.
SLE_CONDARR(Player,yearly_expenses, SLE_FILE_I32|SLE_VAR_I64, 3*13, 0, 1), SLE_CONDARR(Player, yearly_expenses, SLE_FILE_I32 | SLE_VAR_I64, 3 * 13, 0, 1),
SLE_CONDARR(Player,yearly_expenses, SLE_INT64, 3*13, 2, SL_MAX_VERSION), SLE_CONDARR(Player, yearly_expenses, SLE_INT64, 3 * 13, 2, SL_MAX_VERSION),
SLE_CONDVAR(Player,is_ai, SLE_BOOL, 2, SL_MAX_VERSION), SLE_CONDVAR(Player, is_ai, SLE_BOOL, 2, SL_MAX_VERSION),
SLE_CONDVAR(Player,is_active, SLE_BOOL, 4, SL_MAX_VERSION), SLE_CONDVAR(Player, is_active, SLE_BOOL, 4, SL_MAX_VERSION),
// Engine renewal settings // Engine renewal settings
SLE_CONDNULL(512, 16, 18), SLE_CONDNULL(512, 16, 18),
SLE_CONDREF(Player,engine_renew_list, REF_ENGINE_RENEWS, 19, SL_MAX_VERSION), SLE_CONDREF(Player, engine_renew_list, REF_ENGINE_RENEWS, 19, SL_MAX_VERSION),
SLE_CONDVAR(Player,engine_renew, SLE_BOOL, 16, SL_MAX_VERSION), SLE_CONDVAR(Player, engine_renew, SLE_BOOL, 16, SL_MAX_VERSION),
SLE_CONDVAR(Player,engine_renew_months, SLE_INT16, 16, SL_MAX_VERSION), SLE_CONDVAR(Player, engine_renew_months, SLE_INT16, 16, SL_MAX_VERSION),
SLE_CONDVAR(Player,engine_renew_money, SLE_UINT32, 16, SL_MAX_VERSION), SLE_CONDVAR(Player, engine_renew_money, SLE_UINT32, 16, SL_MAX_VERSION),
SLE_CONDVAR(Player,renew_keep_length, SLE_BOOL, 2, SL_MAX_VERSION), // added with 16.1, but was blank since 2 SLE_CONDVAR(Player, renew_keep_length, SLE_BOOL, 2, SL_MAX_VERSION), // added with 16.1, but was blank since 2
// reserve extra space in savegame here. (currently 63 bytes) // reserve extra space in savegame here. (currently 63 bytes)
SLE_CONDNULL(63, 2, SL_MAX_VERSION), SLE_CONDNULL(63, 2, SL_MAX_VERSION),
@ -1167,76 +1167,76 @@ static const SaveLoad _player_desc[] = {
static const SaveLoad _player_economy_desc[] = { static const SaveLoad _player_economy_desc[] = {
// these were changed to 64-bit in savegame format 2 // these were changed to 64-bit in savegame format 2
SLE_CONDVAR(PlayerEconomyEntry,income, SLE_INT32, 0, 1), SLE_CONDVAR(PlayerEconomyEntry, income, SLE_INT32, 0, 1),
SLE_CONDVAR(PlayerEconomyEntry,expenses, SLE_INT32, 0, 1), SLE_CONDVAR(PlayerEconomyEntry, expenses, SLE_INT32, 0, 1),
SLE_CONDVAR(PlayerEconomyEntry,company_value, SLE_FILE_I32 | SLE_VAR_I64, 0, 1), SLE_CONDVAR(PlayerEconomyEntry, company_value, SLE_FILE_I32 | SLE_VAR_I64, 0, 1),
SLE_CONDVAR(PlayerEconomyEntry,income, SLE_FILE_I64 | SLE_VAR_I32, 2, SL_MAX_VERSION), SLE_CONDVAR(PlayerEconomyEntry, income, SLE_FILE_I64 | SLE_VAR_I32, 2, SL_MAX_VERSION),
SLE_CONDVAR(PlayerEconomyEntry,expenses,SLE_FILE_I64 | SLE_VAR_I32, 2, SL_MAX_VERSION), SLE_CONDVAR(PlayerEconomyEntry, expenses, SLE_FILE_I64 | SLE_VAR_I32, 2, SL_MAX_VERSION),
SLE_CONDVAR(PlayerEconomyEntry,company_value, SLE_INT64, 2, SL_MAX_VERSION), SLE_CONDVAR(PlayerEconomyEntry, company_value, SLE_INT64, 2, SL_MAX_VERSION),
SLE_VAR(PlayerEconomyEntry,delivered_cargo, SLE_INT32), SLE_VAR(PlayerEconomyEntry, delivered_cargo, SLE_INT32),
SLE_VAR(PlayerEconomyEntry,performance_history, SLE_INT32), SLE_VAR(PlayerEconomyEntry, performance_history, SLE_INT32),
SLE_END() SLE_END()
}; };
static const SaveLoad _player_ai_desc[] = { static const SaveLoad _player_ai_desc[] = {
SLE_VAR(PlayerAI,state, SLE_UINT8), SLE_VAR(PlayerAI, state, SLE_UINT8),
SLE_VAR(PlayerAI,tick, SLE_UINT8), SLE_VAR(PlayerAI, tick, SLE_UINT8),
SLE_CONDVAR(PlayerAI,state_counter, SLE_FILE_U16 | SLE_VAR_U32, 0, 12), SLE_CONDVAR(PlayerAI, state_counter, SLE_FILE_U16 | SLE_VAR_U32, 0, 12),
SLE_CONDVAR(PlayerAI,state_counter, SLE_UINT32, 13, SL_MAX_VERSION), SLE_CONDVAR(PlayerAI, state_counter, SLE_UINT32, 13, SL_MAX_VERSION),
SLE_VAR(PlayerAI,timeout_counter, SLE_UINT16), SLE_VAR(PlayerAI, timeout_counter, SLE_UINT16),
SLE_VAR(PlayerAI,state_mode, SLE_UINT8), SLE_VAR(PlayerAI, state_mode, SLE_UINT8),
SLE_VAR(PlayerAI,banned_tile_count, SLE_UINT8), SLE_VAR(PlayerAI, banned_tile_count, SLE_UINT8),
SLE_VAR(PlayerAI,railtype_to_use, SLE_UINT8), SLE_VAR(PlayerAI, railtype_to_use, SLE_UINT8),
SLE_VAR(PlayerAI,cargo_type, SLE_UINT8), SLE_VAR(PlayerAI, cargo_type, SLE_UINT8),
SLE_VAR(PlayerAI,num_wagons, SLE_UINT8), SLE_VAR(PlayerAI, num_wagons, SLE_UINT8),
SLE_VAR(PlayerAI,build_kind, SLE_UINT8), SLE_VAR(PlayerAI, build_kind, SLE_UINT8),
SLE_VAR(PlayerAI,num_build_rec, SLE_UINT8), SLE_VAR(PlayerAI, num_build_rec, SLE_UINT8),
SLE_VAR(PlayerAI,num_loco_to_build, SLE_UINT8), SLE_VAR(PlayerAI, num_loco_to_build, SLE_UINT8),
SLE_VAR(PlayerAI,num_want_fullload, SLE_UINT8), SLE_VAR(PlayerAI, num_want_fullload, SLE_UINT8),
SLE_VAR(PlayerAI,route_type_mask, SLE_UINT8), SLE_VAR(PlayerAI, route_type_mask, SLE_UINT8),
SLE_CONDVAR(PlayerAI, start_tile_a, SLE_FILE_U16 | SLE_VAR_U32, 0, 5), SLE_CONDVAR(PlayerAI, start_tile_a, SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
SLE_CONDVAR(PlayerAI, start_tile_a, SLE_UINT32, 6, SL_MAX_VERSION), SLE_CONDVAR(PlayerAI, start_tile_a, SLE_UINT32, 6, SL_MAX_VERSION),
SLE_CONDVAR(PlayerAI, cur_tile_a, SLE_FILE_U16 | SLE_VAR_U32, 0, 5), SLE_CONDVAR(PlayerAI, cur_tile_a, SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
SLE_CONDVAR(PlayerAI, cur_tile_a, SLE_UINT32, 6, SL_MAX_VERSION), SLE_CONDVAR(PlayerAI, cur_tile_a, SLE_UINT32, 6, SL_MAX_VERSION),
SLE_VAR(PlayerAI,start_dir_a, SLE_UINT8), SLE_VAR(PlayerAI, start_dir_a, SLE_UINT8),
SLE_VAR(PlayerAI,cur_dir_a, SLE_UINT8), SLE_VAR(PlayerAI, cur_dir_a, SLE_UINT8),
SLE_CONDVAR(PlayerAI, start_tile_b, SLE_FILE_U16 | SLE_VAR_U32, 0, 5), SLE_CONDVAR(PlayerAI, start_tile_b, SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
SLE_CONDVAR(PlayerAI, start_tile_b, SLE_UINT32, 6, SL_MAX_VERSION), SLE_CONDVAR(PlayerAI, start_tile_b, SLE_UINT32, 6, SL_MAX_VERSION),
SLE_CONDVAR(PlayerAI, cur_tile_b, SLE_FILE_U16 | SLE_VAR_U32, 0, 5), SLE_CONDVAR(PlayerAI, cur_tile_b, SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
SLE_CONDVAR(PlayerAI, cur_tile_b, SLE_UINT32, 6, SL_MAX_VERSION), SLE_CONDVAR(PlayerAI, cur_tile_b, SLE_UINT32, 6, SL_MAX_VERSION),
SLE_VAR(PlayerAI,start_dir_b, SLE_UINT8), SLE_VAR(PlayerAI, start_dir_b, SLE_UINT8),
SLE_VAR(PlayerAI,cur_dir_b, SLE_UINT8), SLE_VAR(PlayerAI, cur_dir_b, SLE_UINT8),
SLE_REF(PlayerAI,cur_veh, REF_VEHICLE), SLE_REF(PlayerAI, cur_veh, REF_VEHICLE),
SLE_ARR(PlayerAI,wagon_list, SLE_UINT16, 9), SLE_ARR(PlayerAI, wagon_list, SLE_UINT16, 9),
SLE_ARR(PlayerAI,order_list_blocks, SLE_UINT8, 20), SLE_ARR(PlayerAI, order_list_blocks, SLE_UINT8, 20),
SLE_ARR(PlayerAI,banned_tiles, SLE_UINT16, 16), SLE_ARR(PlayerAI, banned_tiles, SLE_UINT16, 16),
SLE_CONDNULL(64, 2, SL_MAX_VERSION), SLE_CONDNULL(64, 2, SL_MAX_VERSION),
SLE_END() SLE_END()
}; };
static const SaveLoad _player_ai_build_rec_desc[] = { static const SaveLoad _player_ai_build_rec_desc[] = {
SLE_CONDVAR(AiBuildRec,spec_tile, SLE_FILE_U16 | SLE_VAR_U32, 0, 5), SLE_CONDVAR(AiBuildRec, spec_tile, SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
SLE_CONDVAR(AiBuildRec,spec_tile, SLE_UINT32, 6, SL_MAX_VERSION), SLE_CONDVAR(AiBuildRec, spec_tile, SLE_UINT32, 6, SL_MAX_VERSION),
SLE_CONDVAR(AiBuildRec,use_tile, SLE_FILE_U16 | SLE_VAR_U32, 0, 5), SLE_CONDVAR(AiBuildRec, use_tile, SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
SLE_CONDVAR(AiBuildRec,use_tile, SLE_UINT32, 6, SL_MAX_VERSION), SLE_CONDVAR(AiBuildRec, use_tile, SLE_UINT32, 6, SL_MAX_VERSION),
SLE_VAR(AiBuildRec,rand_rng, SLE_UINT8), SLE_VAR(AiBuildRec, rand_rng, SLE_UINT8),
SLE_VAR(AiBuildRec,cur_building_rule,SLE_UINT8), SLE_VAR(AiBuildRec, cur_building_rule, SLE_UINT8),
SLE_VAR(AiBuildRec,unk6, SLE_UINT8), SLE_VAR(AiBuildRec, unk6, SLE_UINT8),
SLE_VAR(AiBuildRec,unk7, SLE_UINT8), SLE_VAR(AiBuildRec, unk7, SLE_UINT8),
SLE_VAR(AiBuildRec,buildcmd_a, SLE_UINT8), SLE_VAR(AiBuildRec, buildcmd_a, SLE_UINT8),
SLE_VAR(AiBuildRec,buildcmd_b, SLE_UINT8), SLE_VAR(AiBuildRec, buildcmd_b, SLE_UINT8),
SLE_VAR(AiBuildRec,direction, SLE_UINT8), SLE_VAR(AiBuildRec, direction, SLE_UINT8),
SLE_VAR(AiBuildRec,cargo, SLE_UINT8), SLE_VAR(AiBuildRec, cargo, SLE_UINT8),
SLE_END() SLE_END()
}; };

66
rail.h
View File

@ -14,7 +14,7 @@ typedef enum RailTypes {
RAILTYPE_MONO = 2, RAILTYPE_MONO = 2,
RAILTYPE_MAGLEV = 3, RAILTYPE_MAGLEV = 3,
RAILTYPE_END, RAILTYPE_END,
INVALID_RAILTYPE = 0xFF INVALID_RAILTYPE = 0xFF
} RailType; } RailType;
typedef byte RailTypeMask; typedef byte RailTypeMask;
@ -47,22 +47,22 @@ static inline Track AxisToTrack(Axis a)
/** Bitfield corresponding to Track */ /** Bitfield corresponding to Track */
typedef enum TrackBits { typedef enum TrackBits {
TRACK_BIT_NONE = 0U, TRACK_BIT_NONE = 0U,
TRACK_BIT_X = 1U << TRACK_X, TRACK_BIT_X = 1U << TRACK_X,
TRACK_BIT_Y = 1U << TRACK_Y, TRACK_BIT_Y = 1U << TRACK_Y,
TRACK_BIT_UPPER = 1U << TRACK_UPPER, TRACK_BIT_UPPER = 1U << TRACK_UPPER,
TRACK_BIT_LOWER = 1U << TRACK_LOWER, TRACK_BIT_LOWER = 1U << TRACK_LOWER,
TRACK_BIT_LEFT = 1U << TRACK_LEFT, TRACK_BIT_LEFT = 1U << TRACK_LEFT,
TRACK_BIT_RIGHT = 1U << TRACK_RIGHT, TRACK_BIT_RIGHT = 1U << TRACK_RIGHT,
TRACK_BIT_CROSS = TRACK_BIT_X | TRACK_BIT_Y, TRACK_BIT_CROSS = TRACK_BIT_X | TRACK_BIT_Y,
TRACK_BIT_HORZ = TRACK_BIT_UPPER | TRACK_BIT_LOWER, TRACK_BIT_HORZ = TRACK_BIT_UPPER | TRACK_BIT_LOWER,
TRACK_BIT_VERT = TRACK_BIT_LEFT | TRACK_BIT_RIGHT, TRACK_BIT_VERT = TRACK_BIT_LEFT | TRACK_BIT_RIGHT,
TRACK_BIT_3WAY_NE = TRACK_BIT_X | TRACK_BIT_UPPER | TRACK_BIT_RIGHT, TRACK_BIT_3WAY_NE = TRACK_BIT_X | TRACK_BIT_UPPER | TRACK_BIT_RIGHT,
TRACK_BIT_3WAY_SE = TRACK_BIT_Y | TRACK_BIT_LOWER | TRACK_BIT_RIGHT, TRACK_BIT_3WAY_SE = TRACK_BIT_Y | TRACK_BIT_LOWER | TRACK_BIT_RIGHT,
TRACK_BIT_3WAY_SW = TRACK_BIT_X | TRACK_BIT_LOWER | TRACK_BIT_LEFT, TRACK_BIT_3WAY_SW = TRACK_BIT_X | TRACK_BIT_LOWER | TRACK_BIT_LEFT,
TRACK_BIT_3WAY_NW = TRACK_BIT_Y | TRACK_BIT_UPPER | TRACK_BIT_LEFT, TRACK_BIT_3WAY_NW = TRACK_BIT_Y | TRACK_BIT_UPPER | TRACK_BIT_LEFT,
TRACK_BIT_ALL = TRACK_BIT_CROSS | TRACK_BIT_HORZ | TRACK_BIT_VERT, TRACK_BIT_ALL = TRACK_BIT_CROSS | TRACK_BIT_HORZ | TRACK_BIT_VERT,
TRACK_BIT_MASK = 0x3FU TRACK_BIT_MASK = 0x3FU
} TrackBits; } TrackBits;
@ -84,16 +84,16 @@ static inline TrackBits AxisToTrackBits(Axis a)
/** These are a combination of tracks and directions. Values are 0-5 in one /** These are a combination of tracks and directions. Values are 0-5 in one
direction (corresponding to the Track enum) and 8-13 in the other direction. */ direction (corresponding to the Track enum) and 8-13 in the other direction. */
typedef enum Trackdirs { typedef enum Trackdirs {
TRACKDIR_X_NE = 0, TRACKDIR_X_NE = 0,
TRACKDIR_Y_SE = 1, TRACKDIR_Y_SE = 1,
TRACKDIR_UPPER_E = 2, TRACKDIR_UPPER_E = 2,
TRACKDIR_LOWER_E = 3, TRACKDIR_LOWER_E = 3,
TRACKDIR_LEFT_S = 4, TRACKDIR_LEFT_S = 4,
TRACKDIR_RIGHT_S = 5, TRACKDIR_RIGHT_S = 5,
/* Note the two missing values here. This enables trackdir -> track /* Note the two missing values here. This enables trackdir -> track
* conversion by doing (trackdir & 7) */ * conversion by doing (trackdir & 7) */
TRACKDIR_X_SW = 8, TRACKDIR_X_SW = 8,
TRACKDIR_Y_NW = 9, TRACKDIR_Y_NW = 9,
TRACKDIR_UPPER_W = 10, TRACKDIR_UPPER_W = 10,
TRACKDIR_LOWER_W = 11, TRACKDIR_LOWER_W = 11,
TRACKDIR_LEFT_N = 12, TRACKDIR_LEFT_N = 12,
@ -105,13 +105,13 @@ typedef enum Trackdirs {
/** These are a combination of tracks and directions. Values are 0-5 in one /** These are a combination of tracks and directions. Values are 0-5 in one
direction (corresponding to the Track enum) and 8-13 in the other direction. */ direction (corresponding to the Track enum) and 8-13 in the other direction. */
typedef enum TrackdirBits { typedef enum TrackdirBits {
TRACKDIR_BIT_NONE = 0x0, TRACKDIR_BIT_NONE = 0x0000,
TRACKDIR_BIT_X_NE = 0x1, TRACKDIR_BIT_X_NE = 0x0001,
TRACKDIR_BIT_Y_SE = 0x2, TRACKDIR_BIT_Y_SE = 0x0002,
TRACKDIR_BIT_UPPER_E = 0x4, TRACKDIR_BIT_UPPER_E = 0x0004,
TRACKDIR_BIT_LOWER_E = 0x8, TRACKDIR_BIT_LOWER_E = 0x0008,
TRACKDIR_BIT_LEFT_S = 0x10, TRACKDIR_BIT_LEFT_S = 0x0010,
TRACKDIR_BIT_RIGHT_S = 0x20, TRACKDIR_BIT_RIGHT_S = 0x0020,
/* Again, note the two missing values here. This enables trackdir -> track conversion by doing (trackdir & 0xFF) */ /* Again, note the two missing values here. This enables trackdir -> track conversion by doing (trackdir & 0xFF) */
TRACKDIR_BIT_X_SW = 0x0100, TRACKDIR_BIT_X_SW = 0x0100,
TRACKDIR_BIT_Y_NW = 0x0200, TRACKDIR_BIT_Y_NW = 0x0200,
@ -205,7 +205,7 @@ extern RailtypeInfo _railtypes[RAILTYPE_END];
// these are the maximums used for updating signal blocks, and checking if a depot is in a pbs block // these are the maximums used for updating signal blocks, and checking if a depot is in a pbs block
enum { enum {
NUM_SSD_ENTRY = 256, // max amount of blocks NUM_SSD_ENTRY = 256, // max amount of blocks
NUM_SSD_STACK = 32 ,// max amount of blocks to check recursively NUM_SSD_STACK = 32, // max amount of blocks to check recursively
}; };
/** /**

View File

@ -2023,17 +2023,17 @@ static uint32 VehicleEnter_Track(Vehicle *v, TileIndex tile, int x, int y)
const TileTypeProcs _tile_type_rail_procs = { const TileTypeProcs _tile_type_rail_procs = {
DrawTile_Track, /* draw_tile_proc */ DrawTile_Track, /* draw_tile_proc */
GetSlopeZ_Track, /* get_slope_z_proc */ GetSlopeZ_Track, /* get_slope_z_proc */
ClearTile_Track, /* clear_tile_proc */ ClearTile_Track, /* clear_tile_proc */
GetAcceptedCargo_Track, /* get_accepted_cargo_proc */ GetAcceptedCargo_Track, /* get_accepted_cargo_proc */
GetTileDesc_Track, /* get_tile_desc_proc */ GetTileDesc_Track, /* get_tile_desc_proc */
GetTileTrackStatus_Track, /* get_tile_track_status_proc */ GetTileTrackStatus_Track, /* get_tile_track_status_proc */
ClickTile_Track, /* click_tile_proc */ ClickTile_Track, /* click_tile_proc */
AnimateTile_Track, /* animate_tile_proc */ AnimateTile_Track, /* animate_tile_proc */
TileLoop_Track, /* tile_loop_clear */ TileLoop_Track, /* tile_loop_clear */
ChangeTileOwner_Track, /* change_tile_owner_clear */ ChangeTileOwner_Track, /* change_tile_owner_clear */
NULL, /* get_produced_cargo_proc */ NULL, /* get_produced_cargo_proc */
VehicleEnter_Track, /* vehicle_enter_tile_proc */ VehicleEnter_Track, /* vehicle_enter_tile_proc */
GetSlopeTileh_Track, /* get_slope_tileh_proc */ GetSlopeTileh_Track, /* get_slope_tileh_proc */
}; };

View File

@ -97,9 +97,9 @@ static void PlaceExtraDepotRail(TileIndex tile, uint16 extra)
} }
static const uint16 _place_depot_extra[12] = { static const uint16 _place_depot_extra[12] = {
0x604, 0x2102, 0x1202, 0x505, 0x0604, 0x2102, 0x1202, 0x0505,
0x2400, 0x2801, 0x1800, 0x1401, 0x2400, 0x2801, 0x1800, 0x1401,
0x2203, 0x904, 0x0A05, 0x1103, 0x2203, 0x0904, 0x0A05, 0x1103,
}; };
@ -501,30 +501,30 @@ static void BuildRailToolbWndProc(Window *w, WindowEvent *e)
static const Widget _build_rail_widgets[] = { static const Widget _build_rail_widgets[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5,STR_018B_CLOSE_WINDOW}, { WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
{ WWT_CAPTION, RESIZE_NONE, 7, 11, 359, 0, 13, STR_100A_RAILROAD_CONSTRUCTION, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_NONE, 7, 11, 359, 0, 13, STR_100A_RAILROAD_CONSTRUCTION, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_STICKYBOX, RESIZE_NONE, 7, 360, 371, 0, 13, 0x0, STR_STICKY_BUTTON}, { WWT_STICKYBOX, RESIZE_NONE, 7, 360, 371, 0, 13, 0x0, STR_STICKY_BUTTON},
{ WWT_PANEL, RESIZE_NONE, 7, 110, 113, 14, 35, 0x0, STR_NULL}, { WWT_PANEL, RESIZE_NONE, 7, 110, 113, 14, 35, 0x0, STR_NULL},
{ WWT_PANEL, RESIZE_NONE, 7, 0, 21, 14, 35, 0x4E3, STR_1018_BUILD_RAILROAD_TRACK}, { WWT_PANEL, RESIZE_NONE, 7, 0, 21, 14, 35, 0x4E3, STR_1018_BUILD_RAILROAD_TRACK},
{ WWT_PANEL, RESIZE_NONE, 7, 22, 43, 14, 35, 0x4E4, STR_1018_BUILD_RAILROAD_TRACK}, { WWT_PANEL, RESIZE_NONE, 7, 22, 43, 14, 35, 0x4E4, STR_1018_BUILD_RAILROAD_TRACK},
{ WWT_PANEL, RESIZE_NONE, 7, 44, 65, 14, 35, 0x4E5, STR_1018_BUILD_RAILROAD_TRACK}, { WWT_PANEL, RESIZE_NONE, 7, 44, 65, 14, 35, 0x4E5, STR_1018_BUILD_RAILROAD_TRACK},
{ WWT_PANEL, RESIZE_NONE, 7, 66, 87, 14, 35, 0x4E6, STR_1018_BUILD_RAILROAD_TRACK}, { WWT_PANEL, RESIZE_NONE, 7, 66, 87, 14, 35, 0x4E6, STR_1018_BUILD_RAILROAD_TRACK},
{ WWT_PANEL, RESIZE_NONE, 7, 88, 109, 14, 35, SPR_IMG_AUTORAIL, STR_BUILD_AUTORAIL_TIP}, { WWT_PANEL, RESIZE_NONE, 7, 88, 109, 14, 35, SPR_IMG_AUTORAIL, STR_BUILD_AUTORAIL_TIP},
{ WWT_PANEL, RESIZE_NONE, 7, 114, 135, 14, 35, 0x2BF, STR_018D_DEMOLISH_BUILDINGS_ETC}, { WWT_PANEL, RESIZE_NONE, 7, 114, 135, 14, 35, 0x2BF, STR_018D_DEMOLISH_BUILDINGS_ETC},
{ WWT_PANEL, RESIZE_NONE, 7, 136, 157, 14, 35, 0x50E, STR_1019_BUILD_TRAIN_DEPOT_FOR_BUILDING}, { WWT_PANEL, RESIZE_NONE, 7, 136, 157, 14, 35, 0x50E, STR_1019_BUILD_TRAIN_DEPOT_FOR_BUILDING},
{ WWT_PANEL, RESIZE_NONE, 7, 158, 179, 14, 35, SPR_IMG_WAYPOINT, STR_CONVERT_RAIL_TO_WAYPOINT_TIP}, { WWT_PANEL, RESIZE_NONE, 7, 158, 179, 14, 35, SPR_IMG_WAYPOINT, STR_CONVERT_RAIL_TO_WAYPOINT_TIP},
{ WWT_PANEL, RESIZE_NONE, 7, 180, 221, 14, 35, 0x512, STR_101A_BUILD_RAILROAD_STATION}, { WWT_PANEL, RESIZE_NONE, 7, 180, 221, 14, 35, 0x512, STR_101A_BUILD_RAILROAD_STATION},
{ WWT_PANEL, RESIZE_NONE, 7, 222, 243, 14, 35, 0x50B, STR_101B_BUILD_RAILROAD_SIGNALS}, { WWT_PANEL, RESIZE_NONE, 7, 222, 243, 14, 35, 0x50B, STR_101B_BUILD_RAILROAD_SIGNALS},
{ WWT_PANEL, RESIZE_NONE, 7, 244, 285, 14, 35, 0xA22, STR_101C_BUILD_RAILROAD_BRIDGE}, { WWT_PANEL, RESIZE_NONE, 7, 244, 285, 14, 35, 0xA22, STR_101C_BUILD_RAILROAD_BRIDGE},
{ WWT_PANEL, RESIZE_NONE, 7, 286, 305, 14, 35, SPR_IMG_TUNNEL_RAIL, STR_101D_BUILD_RAILROAD_TUNNEL}, { WWT_PANEL, RESIZE_NONE, 7, 286, 305, 14, 35, SPR_IMG_TUNNEL_RAIL, STR_101D_BUILD_RAILROAD_TUNNEL},
{ WWT_PANEL, RESIZE_NONE, 7, 306, 327, 14, 35, 0x2CA, STR_101E_TOGGLE_BUILD_REMOVE_FOR}, { WWT_PANEL, RESIZE_NONE, 7, 306, 327, 14, 35, 0x2CA, STR_101E_TOGGLE_BUILD_REMOVE_FOR},
{ WWT_PANEL, RESIZE_NONE, 7, 328, 349, 14, 35, SPR_IMG_CONVERT_RAIL, STR_CONVERT_RAIL_TIP}, { WWT_PANEL, RESIZE_NONE, 7, 328, 349, 14, 35, SPR_IMG_CONVERT_RAIL, STR_CONVERT_RAIL_TIP},
{ WWT_PANEL, RESIZE_NONE, 7, 350, 371, 14, 35, SPR_IMG_LANDSCAPING, STR_LANDSCAPING_TOOLBAR_TIP}, { WWT_PANEL, RESIZE_NONE, 7, 350, 371, 14, 35, SPR_IMG_LANDSCAPING, STR_LANDSCAPING_TOOLBAR_TIP},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -826,66 +826,66 @@ static void StationBuildWndProc(Window *w, WindowEvent *e)
} }
static const Widget _station_builder_widgets[] = { static const Widget _station_builder_widgets[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, { 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_3000_RAIL_STATION_SELECTION, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_NONE, 7, 11, 147, 0, 13, STR_3000_RAIL_STATION_SELECTION, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_PANEL, RESIZE_NONE, 7, 0, 147, 14, 199, 0x0, STR_NULL}, { WWT_PANEL, RESIZE_NONE, 7, 0, 147, 14, 199, 0x0, STR_NULL},
{ WWT_PANEL, RESIZE_NONE, 14, 7, 72, 26, 73, 0x0, STR_304E_SELECT_RAILROAD_STATION}, { WWT_PANEL, RESIZE_NONE, 14, 7, 72, 26, 73, 0x0, STR_304E_SELECT_RAILROAD_STATION},
{ WWT_PANEL, RESIZE_NONE, 14, 75, 140, 26, 73, 0x0, STR_304E_SELECT_RAILROAD_STATION}, { WWT_PANEL, RESIZE_NONE, 14, 75, 140, 26, 73, 0x0, STR_304E_SELECT_RAILROAD_STATION},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 22, 36, 87, 98, STR_00CB_1, STR_304F_SELECT_NUMBER_OF_PLATFORMS}, { WWT_TEXTBTN, RESIZE_NONE, 14, 22, 36, 87, 98, STR_00CB_1, STR_304F_SELECT_NUMBER_OF_PLATFORMS},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 37, 51, 87, 98, STR_00CC_2, STR_304F_SELECT_NUMBER_OF_PLATFORMS}, { WWT_TEXTBTN, RESIZE_NONE, 14, 37, 51, 87, 98, STR_00CC_2, STR_304F_SELECT_NUMBER_OF_PLATFORMS},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 52, 66, 87, 98, STR_00CD_3, STR_304F_SELECT_NUMBER_OF_PLATFORMS}, { WWT_TEXTBTN, RESIZE_NONE, 14, 52, 66, 87, 98, STR_00CD_3, STR_304F_SELECT_NUMBER_OF_PLATFORMS},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 67, 81, 87, 98, STR_00CE_4, STR_304F_SELECT_NUMBER_OF_PLATFORMS}, { WWT_TEXTBTN, RESIZE_NONE, 14, 67, 81, 87, 98, STR_00CE_4, STR_304F_SELECT_NUMBER_OF_PLATFORMS},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 82, 96, 87, 98, STR_00CF_5, STR_304F_SELECT_NUMBER_OF_PLATFORMS}, { WWT_TEXTBTN, RESIZE_NONE, 14, 82, 96, 87, 98, STR_00CF_5, STR_304F_SELECT_NUMBER_OF_PLATFORMS},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 97, 111, 87, 98, STR_0335_6, STR_304F_SELECT_NUMBER_OF_PLATFORMS}, { WWT_TEXTBTN, RESIZE_NONE, 14, 97, 111, 87, 98, STR_0335_6, STR_304F_SELECT_NUMBER_OF_PLATFORMS},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 112, 126, 87, 98, STR_0336_7, STR_304F_SELECT_NUMBER_OF_PLATFORMS}, { WWT_TEXTBTN, RESIZE_NONE, 14, 112, 126, 87, 98, STR_0336_7, STR_304F_SELECT_NUMBER_OF_PLATFORMS},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 22, 36, 112, 123, STR_00CB_1, STR_3050_SELECT_LENGTH_OF_RAILROAD}, { WWT_TEXTBTN, RESIZE_NONE, 14, 22, 36, 112, 123, STR_00CB_1, STR_3050_SELECT_LENGTH_OF_RAILROAD},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 37, 51, 112, 123, STR_00CC_2, STR_3050_SELECT_LENGTH_OF_RAILROAD}, { WWT_TEXTBTN, RESIZE_NONE, 14, 37, 51, 112, 123, STR_00CC_2, STR_3050_SELECT_LENGTH_OF_RAILROAD},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 52, 66, 112, 123, STR_00CD_3, STR_3050_SELECT_LENGTH_OF_RAILROAD}, { WWT_TEXTBTN, RESIZE_NONE, 14, 52, 66, 112, 123, STR_00CD_3, STR_3050_SELECT_LENGTH_OF_RAILROAD},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 67, 81, 112, 123, STR_00CE_4, STR_3050_SELECT_LENGTH_OF_RAILROAD}, { WWT_TEXTBTN, RESIZE_NONE, 14, 67, 81, 112, 123, STR_00CE_4, STR_3050_SELECT_LENGTH_OF_RAILROAD},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 82, 96, 112, 123, STR_00CF_5, STR_3050_SELECT_LENGTH_OF_RAILROAD}, { WWT_TEXTBTN, RESIZE_NONE, 14, 82, 96, 112, 123, STR_00CF_5, STR_3050_SELECT_LENGTH_OF_RAILROAD},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 97, 111, 112, 123, STR_0335_6, STR_3050_SELECT_LENGTH_OF_RAILROAD}, { WWT_TEXTBTN, RESIZE_NONE, 14, 97, 111, 112, 123, STR_0335_6, STR_3050_SELECT_LENGTH_OF_RAILROAD},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 112, 126, 112, 123, STR_0336_7, STR_3050_SELECT_LENGTH_OF_RAILROAD}, { WWT_TEXTBTN, RESIZE_NONE, 14, 112, 126, 112, 123, STR_0336_7, STR_3050_SELECT_LENGTH_OF_RAILROAD},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 37, 111, 126, 137, STR_DRAG_DROP, STR_STATION_DRAG_DROP}, { WWT_TEXTBTN, RESIZE_NONE, 14, 37, 111, 126, 137, STR_DRAG_DROP, STR_STATION_DRAG_DROP},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 14, 73, 152, 163, STR_02DB_OFF, STR_3065_DON_T_HIGHLIGHT_COVERAGE}, { WWT_TEXTBTN, RESIZE_NONE, 14, 14, 73, 152, 163, STR_02DB_OFF, STR_3065_DON_T_HIGHLIGHT_COVERAGE},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 74, 133, 152, 163, STR_02DA_ON, STR_3064_HIGHLIGHT_COVERAGE_AREA}, { WWT_TEXTBTN, RESIZE_NONE, 14, 74, 133, 152, 163, STR_02DA_ON, STR_3064_HIGHLIGHT_COVERAGE_AREA},
{ WIDGETS_END}, { WIDGETS_END},
}; };
static const Widget _newstation_builder_widgets[] = { static const Widget _newstation_builder_widgets[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, { 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_3000_RAIL_STATION_SELECTION, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_NONE, 7, 11, 147, 0, 13, STR_3000_RAIL_STATION_SELECTION, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_PANEL, RESIZE_NONE, 7, 0, 147, 14, 289, 0x0, STR_NULL}, { WWT_PANEL, RESIZE_NONE, 7, 0, 147, 14, 289, 0x0, STR_NULL},
{ WWT_PANEL, RESIZE_NONE, 14, 7, 72, 116, 163, 0x0, STR_304E_SELECT_RAILROAD_STATION}, { WWT_PANEL, RESIZE_NONE, 14, 7, 72, 116, 163, 0x0, STR_304E_SELECT_RAILROAD_STATION},
{ WWT_PANEL, RESIZE_NONE, 14, 75, 140, 116, 163, 0x0, STR_304E_SELECT_RAILROAD_STATION}, { WWT_PANEL, RESIZE_NONE, 14, 75, 140, 116, 163, 0x0, STR_304E_SELECT_RAILROAD_STATION},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 22, 36, 177, 188, STR_00CB_1, STR_304F_SELECT_NUMBER_OF_PLATFORMS}, { WWT_TEXTBTN, RESIZE_NONE, 14, 22, 36, 177, 188, STR_00CB_1, STR_304F_SELECT_NUMBER_OF_PLATFORMS},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 37, 51, 177, 188, STR_00CC_2, STR_304F_SELECT_NUMBER_OF_PLATFORMS}, { WWT_TEXTBTN, RESIZE_NONE, 14, 37, 51, 177, 188, STR_00CC_2, STR_304F_SELECT_NUMBER_OF_PLATFORMS},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 52, 66, 177, 188, STR_00CD_3, STR_304F_SELECT_NUMBER_OF_PLATFORMS}, { WWT_TEXTBTN, RESIZE_NONE, 14, 52, 66, 177, 188, STR_00CD_3, STR_304F_SELECT_NUMBER_OF_PLATFORMS},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 67, 81, 177, 188, STR_00CE_4, STR_304F_SELECT_NUMBER_OF_PLATFORMS}, { WWT_TEXTBTN, RESIZE_NONE, 14, 67, 81, 177, 188, STR_00CE_4, STR_304F_SELECT_NUMBER_OF_PLATFORMS},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 82, 96, 177, 188, STR_00CF_5, STR_304F_SELECT_NUMBER_OF_PLATFORMS}, { WWT_TEXTBTN, RESIZE_NONE, 14, 82, 96, 177, 188, STR_00CF_5, STR_304F_SELECT_NUMBER_OF_PLATFORMS},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 97, 111, 177, 188, STR_0335_6, STR_304F_SELECT_NUMBER_OF_PLATFORMS}, { WWT_TEXTBTN, RESIZE_NONE, 14, 97, 111, 177, 188, STR_0335_6, STR_304F_SELECT_NUMBER_OF_PLATFORMS},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 112, 126, 177, 188, STR_0336_7, STR_304F_SELECT_NUMBER_OF_PLATFORMS}, { WWT_TEXTBTN, RESIZE_NONE, 14, 112, 126, 177, 188, STR_0336_7, STR_304F_SELECT_NUMBER_OF_PLATFORMS},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 22, 36, 202, 213, STR_00CB_1, STR_3050_SELECT_LENGTH_OF_RAILROAD}, { WWT_TEXTBTN, RESIZE_NONE, 14, 22, 36, 202, 213, STR_00CB_1, STR_3050_SELECT_LENGTH_OF_RAILROAD},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 37, 51, 202, 213, STR_00CC_2, STR_3050_SELECT_LENGTH_OF_RAILROAD}, { WWT_TEXTBTN, RESIZE_NONE, 14, 37, 51, 202, 213, STR_00CC_2, STR_3050_SELECT_LENGTH_OF_RAILROAD},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 52, 66, 202, 213, STR_00CD_3, STR_3050_SELECT_LENGTH_OF_RAILROAD}, { WWT_TEXTBTN, RESIZE_NONE, 14, 52, 66, 202, 213, STR_00CD_3, STR_3050_SELECT_LENGTH_OF_RAILROAD},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 67, 81, 202, 213, STR_00CE_4, STR_3050_SELECT_LENGTH_OF_RAILROAD}, { WWT_TEXTBTN, RESIZE_NONE, 14, 67, 81, 202, 213, STR_00CE_4, STR_3050_SELECT_LENGTH_OF_RAILROAD},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 82, 96, 202, 213, STR_00CF_5, STR_3050_SELECT_LENGTH_OF_RAILROAD}, { WWT_TEXTBTN, RESIZE_NONE, 14, 82, 96, 202, 213, STR_00CF_5, STR_3050_SELECT_LENGTH_OF_RAILROAD},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 97, 111, 202, 213, STR_0335_6, STR_3050_SELECT_LENGTH_OF_RAILROAD}, { WWT_TEXTBTN, RESIZE_NONE, 14, 97, 111, 202, 213, STR_0335_6, STR_3050_SELECT_LENGTH_OF_RAILROAD},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 112, 126, 202, 213, STR_0336_7, STR_3050_SELECT_LENGTH_OF_RAILROAD}, { WWT_TEXTBTN, RESIZE_NONE, 14, 112, 126, 202, 213, STR_0336_7, STR_3050_SELECT_LENGTH_OF_RAILROAD},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 37, 111, 216, 227, STR_DRAG_DROP, STR_STATION_DRAG_DROP}, { WWT_TEXTBTN, RESIZE_NONE, 14, 37, 111, 216, 227, STR_DRAG_DROP, STR_STATION_DRAG_DROP},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 14, 73, 242, 253, STR_02DB_OFF, STR_3065_DON_T_HIGHLIGHT_COVERAGE}, { WWT_TEXTBTN, RESIZE_NONE, 14, 14, 73, 242, 253, STR_02DB_OFF, STR_3065_DON_T_HIGHLIGHT_COVERAGE},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 74, 133, 242, 253, STR_02DA_ON, STR_3064_HIGHLIGHT_COVERAGE_AREA}, { WWT_TEXTBTN, RESIZE_NONE, 14, 74, 133, 242, 253, STR_02DA_ON, STR_3064_HIGHLIGHT_COVERAGE_AREA},
/* newstations gui additions */ /* newstations gui additions */
{ WWT_6, RESIZE_NONE, 14, 7, 140, 17, 28, STR_02BD, STR_SELECT_STATION_CLASS_TIP}, { WWT_6, RESIZE_NONE, 14, 7, 140, 17, 28, STR_02BD, STR_SELECT_STATION_CLASS_TIP},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 129, 139, 18, 27, STR_0225, STR_SELECT_STATION_CLASS_TIP}, { WWT_TEXTBTN, RESIZE_NONE, 14, 129, 139, 18, 27, STR_0225, STR_SELECT_STATION_CLASS_TIP},
{ WWT_MATRIX, RESIZE_NONE, 14, 7, 128, 32, 102, 0x501, STR_SELECT_STATION_TYPE_TIP}, { WWT_MATRIX, RESIZE_NONE, 14, 7, 128, 32, 102, 0x501, STR_SELECT_STATION_TYPE_TIP},
{ WWT_SCROLLBAR, RESIZE_NONE, 14, 129, 140, 32, 102, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST}, { WWT_SCROLLBAR, RESIZE_NONE, 14, 129, 140, 32, 102, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -963,13 +963,13 @@ static void BuildTrainDepotWndProc(Window *w, WindowEvent *e)
} }
static const Widget _build_depot_widgets[] = { static const Widget _build_depot_widgets[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5,STR_018B_CLOSE_WINDOW}, { WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
{ WWT_CAPTION, RESIZE_NONE, 7, 11, 139, 0, 13, STR_1014_TRAIN_DEPOT_ORIENTATION, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_NONE, 7, 11, 139, 0, 13, STR_1014_TRAIN_DEPOT_ORIENTATION, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_PANEL, RESIZE_NONE, 7, 0, 139, 14, 121, 0x0, STR_NULL}, { WWT_PANEL, RESIZE_NONE, 7, 0, 139, 14, 121, 0x0, STR_NULL},
{ WWT_PANEL, RESIZE_NONE, 14, 71, 136, 17, 66, 0x0, STR_1020_SELECT_RAILROAD_DEPOT_ORIENTATIO}, { WWT_PANEL, RESIZE_NONE, 14, 71, 136, 17, 66, 0x0, STR_1020_SELECT_RAILROAD_DEPOT_ORIENTATIO},
{ WWT_PANEL, RESIZE_NONE, 14, 71, 136, 69, 118, 0x0, STR_1020_SELECT_RAILROAD_DEPOT_ORIENTATIO}, { WWT_PANEL, RESIZE_NONE, 14, 71, 136, 69, 118, 0x0, STR_1020_SELECT_RAILROAD_DEPOT_ORIENTATIO},
{ WWT_PANEL, RESIZE_NONE, 14, 3, 68, 69, 118, 0x0, STR_1020_SELECT_RAILROAD_DEPOT_ORIENTATIO}, { WWT_PANEL, RESIZE_NONE, 14, 3, 68, 69, 118, 0x0, STR_1020_SELECT_RAILROAD_DEPOT_ORIENTATIO},
{ WWT_PANEL, RESIZE_NONE, 14, 3, 68, 17, 66, 0x0, STR_1020_SELECT_RAILROAD_DEPOT_ORIENTATIO}, { WWT_PANEL, RESIZE_NONE, 14, 3, 68, 17, 66, 0x0, STR_1020_SELECT_RAILROAD_DEPOT_ORIENTATIO},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -1042,17 +1042,17 @@ static void BuildWaypointWndProc(Window *w, WindowEvent *e)
} }
static const Widget _build_waypoint_widgets[] = { static const Widget _build_waypoint_widgets[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, { WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
{ WWT_CAPTION, RESIZE_NONE, 7, 11, 343, 0, 13, STR_WAYPOINT,STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_NONE, 7, 11, 343, 0, 13, STR_WAYPOINT, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_PANEL, RESIZE_NONE, 7, 0, 343, 14, 91, 0x0, 0}, { WWT_PANEL, RESIZE_NONE, 7, 0, 343, 14, 91, 0x0, 0},
{ WWT_PANEL, RESIZE_NONE, 7, 3, 68, 17, 76, 0x0, STR_WAYPOINT_GRAPHICS_TIP}, { WWT_PANEL, RESIZE_NONE, 7, 3, 68, 17, 76, 0x0, STR_WAYPOINT_GRAPHICS_TIP},
{ WWT_PANEL, RESIZE_NONE, 7, 71, 136, 17, 76, 0x0, STR_WAYPOINT_GRAPHICS_TIP}, { WWT_PANEL, RESIZE_NONE, 7, 71, 136, 17, 76, 0x0, STR_WAYPOINT_GRAPHICS_TIP},
{ WWT_PANEL, RESIZE_NONE, 7, 139, 204, 17, 76, 0x0, STR_WAYPOINT_GRAPHICS_TIP}, { WWT_PANEL, RESIZE_NONE, 7, 139, 204, 17, 76, 0x0, STR_WAYPOINT_GRAPHICS_TIP},
{ WWT_PANEL, RESIZE_NONE, 7, 207, 272, 17, 76, 0x0, STR_WAYPOINT_GRAPHICS_TIP}, { WWT_PANEL, RESIZE_NONE, 7, 207, 272, 17, 76, 0x0, STR_WAYPOINT_GRAPHICS_TIP},
{ WWT_PANEL, RESIZE_NONE, 7, 275, 340, 17, 76, 0x0, STR_WAYPOINT_GRAPHICS_TIP}, { WWT_PANEL, RESIZE_NONE, 7, 275, 340, 17, 76, 0x0, STR_WAYPOINT_GRAPHICS_TIP},
{ WWT_HSCROLLBAR, RESIZE_NONE, 7, 1, 343, 80, 91, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST}, { WWT_HSCROLLBAR, RESIZE_NONE, 7, 1, 343, 80, 91, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST},
{ WIDGETS_END}, { WIDGETS_END},
}; };

View File

@ -217,7 +217,7 @@ static inline bool IsSignalPresent(TileIndex t, byte signalbit)
* normal boolean evaluation, since that will make future additions easier. * normal boolean evaluation, since that will make future additions easier.
*/ */
typedef enum SignalStates { typedef enum SignalStates {
SIGNAL_STATE_RED = 0, SIGNAL_STATE_RED = 0,
SIGNAL_STATE_GREEN = 1, SIGNAL_STATE_GREEN = 1,
} SignalState; } SignalState;
@ -280,19 +280,19 @@ RailType GetTileRailType(TileIndex tile, Trackdir trackdir);
typedef enum RailGroundType { typedef enum RailGroundType {
RAIL_GROUND_BARREN = 0, RAIL_GROUND_BARREN = 0,
RAIL_GROUND_GRASS = 1, RAIL_GROUND_GRASS = 1,
RAIL_GROUND_FENCE_NW = 2, RAIL_GROUND_FENCE_NW = 2,
RAIL_GROUND_FENCE_SE = 3, RAIL_GROUND_FENCE_SE = 3,
RAIL_GROUND_FENCE_SENW = 4, RAIL_GROUND_FENCE_SENW = 4,
RAIL_GROUND_FENCE_NE = 5, RAIL_GROUND_FENCE_NE = 5,
RAIL_GROUND_FENCE_SW = 6, RAIL_GROUND_FENCE_SW = 6,
RAIL_GROUND_FENCE_NESW = 7, RAIL_GROUND_FENCE_NESW = 7,
RAIL_GROUND_FENCE_VERT1 = 8, RAIL_GROUND_FENCE_VERT1 = 8,
RAIL_GROUND_FENCE_VERT2 = 9, RAIL_GROUND_FENCE_VERT2 = 9,
RAIL_GROUND_FENCE_HORIZ1 = 10, RAIL_GROUND_FENCE_HORIZ1 = 10,
RAIL_GROUND_FENCE_HORIZ2 = 11, RAIL_GROUND_FENCE_HORIZ2 = 11,
RAIL_GROUND_ICE_DESERT = 12, RAIL_GROUND_ICE_DESERT = 12,
} RailGroundType; } RailGroundType;
static inline void SetRailGroundType(TileIndex t, RailGroundType rgt) static inline void SetRailGroundType(TileIndex t, RailGroundType rgt)

View File

@ -1100,17 +1100,17 @@ static void ChangeTileOwner_Road(TileIndex tile, PlayerID old_player, PlayerID n
const TileTypeProcs _tile_type_road_procs = { const TileTypeProcs _tile_type_road_procs = {
DrawTile_Road, /* draw_tile_proc */ DrawTile_Road, /* draw_tile_proc */
GetSlopeZ_Road, /* get_slope_z_proc */ GetSlopeZ_Road, /* get_slope_z_proc */
ClearTile_Road, /* clear_tile_proc */ ClearTile_Road, /* clear_tile_proc */
GetAcceptedCargo_Road, /* get_accepted_cargo_proc */ GetAcceptedCargo_Road, /* get_accepted_cargo_proc */
GetTileDesc_Road, /* get_tile_desc_proc */ GetTileDesc_Road, /* get_tile_desc_proc */
GetTileTrackStatus_Road, /* get_tile_track_status_proc */ GetTileTrackStatus_Road, /* get_tile_track_status_proc */
ClickTile_Road, /* click_tile_proc */ ClickTile_Road, /* click_tile_proc */
AnimateTile_Road, /* animate_tile_proc */ AnimateTile_Road, /* animate_tile_proc */
TileLoop_Road, /* tile_loop_clear */ TileLoop_Road, /* tile_loop_clear */
ChangeTileOwner_Road, /* change_tile_owner_clear */ ChangeTileOwner_Road, /* change_tile_owner_clear */
NULL, /* get_produced_cargo_proc */ NULL, /* get_produced_cargo_proc */
VehicleEnter_Road, /* vehicle_enter_tile_proc */ VehicleEnter_Road, /* vehicle_enter_tile_proc */
GetSlopeTileh_Road, /* get_slope_tileh_proc */ GetSlopeTileh_Road, /* get_slope_tileh_proc */
}; };

View File

@ -283,20 +283,20 @@ static void BuildRoadToolbWndProc(Window *w, WindowEvent *e)
} }
static const Widget _build_road_widgets[] = { static const Widget _build_road_widgets[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, { WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
{ WWT_CAPTION, RESIZE_NONE, 7, 11, 227, 0, 13, STR_1802_ROAD_CONSTRUCTION, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_NONE, 7, 11, 227, 0, 13, STR_1802_ROAD_CONSTRUCTION, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_STICKYBOX, RESIZE_NONE, 7, 228, 239, 0, 13, 0x0, STR_STICKY_BUTTON}, { WWT_STICKYBOX, RESIZE_NONE, 7, 228, 239, 0, 13, 0x0, STR_STICKY_BUTTON},
{ WWT_PANEL, RESIZE_NONE, 7, 0, 21, 14, 35, SPR_IMG_ROAD_NW, STR_180B_BUILD_ROAD_SECTION}, { WWT_PANEL, RESIZE_NONE, 7, 0, 21, 14, 35, SPR_IMG_ROAD_NW, STR_180B_BUILD_ROAD_SECTION},
{ WWT_PANEL, RESIZE_NONE, 7, 22, 43, 14, 35, SPR_IMG_ROAD_NE, STR_180B_BUILD_ROAD_SECTION}, { WWT_PANEL, RESIZE_NONE, 7, 22, 43, 14, 35, SPR_IMG_ROAD_NE, STR_180B_BUILD_ROAD_SECTION},
{ WWT_PANEL, RESIZE_NONE, 7, 44, 65, 14, 35, SPR_IMG_DYNAMITE, STR_018D_DEMOLISH_BUILDINGS_ETC}, { WWT_PANEL, RESIZE_NONE, 7, 44, 65, 14, 35, SPR_IMG_DYNAMITE, STR_018D_DEMOLISH_BUILDINGS_ETC},
{ WWT_PANEL, RESIZE_NONE, 7, 66, 87, 14, 35, SPR_IMG_ROAD_DEPOT, STR_180C_BUILD_ROAD_VEHICLE_DEPOT}, { WWT_PANEL, RESIZE_NONE, 7, 66, 87, 14, 35, SPR_IMG_ROAD_DEPOT, STR_180C_BUILD_ROAD_VEHICLE_DEPOT},
{ WWT_PANEL, RESIZE_NONE, 7, 88, 109, 14, 35, SPR_IMG_BUS_STATION, STR_180D_BUILD_BUS_STATION}, { WWT_PANEL, RESIZE_NONE, 7, 88, 109, 14, 35, SPR_IMG_BUS_STATION, STR_180D_BUILD_BUS_STATION},
{ WWT_PANEL, RESIZE_NONE, 7, 110, 131, 14, 35, SPR_IMG_TRUCK_BAY, STR_180E_BUILD_TRUCK_LOADING_BAY}, { WWT_PANEL, RESIZE_NONE, 7, 110, 131, 14, 35, SPR_IMG_TRUCK_BAY, STR_180E_BUILD_TRUCK_LOADING_BAY},
{ WWT_PANEL, RESIZE_NONE, 7, 132, 173, 14, 35, SPR_IMG_BRIDGE, STR_180F_BUILD_ROAD_BRIDGE}, { WWT_PANEL, RESIZE_NONE, 7, 132, 173, 14, 35, SPR_IMG_BRIDGE, STR_180F_BUILD_ROAD_BRIDGE},
{ WWT_PANEL, RESIZE_NONE, 7, 174, 195, 14, 35, SPR_IMG_ROAD_TUNNEL, STR_1810_BUILD_ROAD_TUNNEL}, { WWT_PANEL, RESIZE_NONE, 7, 174, 195, 14, 35, SPR_IMG_ROAD_TUNNEL, STR_1810_BUILD_ROAD_TUNNEL},
{ WWT_PANEL, RESIZE_NONE, 7, 196, 217, 14, 35, SPR_IMG_REMOVE, STR_1811_TOGGLE_BUILD_REMOVE_FOR}, { WWT_PANEL, RESIZE_NONE, 7, 196, 217, 14, 35, SPR_IMG_REMOVE, STR_1811_TOGGLE_BUILD_REMOVE_FOR},
{ WWT_PANEL, RESIZE_NONE, 7, 218, 239, 14, 35, SPR_IMG_LANDSCAPING, STR_LANDSCAPING_TOOLBAR_TIP}, { WWT_PANEL, RESIZE_NONE, 7, 218, 239, 14, 35, SPR_IMG_LANDSCAPING, STR_LANDSCAPING_TOOLBAR_TIP},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -317,20 +317,20 @@ void ShowBuildRoadToolbar(void)
} }
static const Widget _build_road_scen_widgets[] = { static const Widget _build_road_scen_widgets[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, { WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
{ WWT_CAPTION, RESIZE_NONE, 7, 11, 161, 0, 13, STR_1802_ROAD_CONSTRUCTION, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_NONE, 7, 11, 161, 0, 13, STR_1802_ROAD_CONSTRUCTION, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_STICKYBOX, RESIZE_NONE, 7, 162, 173, 0, 13, 0x0, STR_STICKY_BUTTON}, { WWT_STICKYBOX, RESIZE_NONE, 7, 162, 173, 0, 13, 0x0, STR_STICKY_BUTTON},
{ WWT_IMGBTN, RESIZE_NONE, 7, 0, 21, 14, 35, 0x51D, STR_180B_BUILD_ROAD_SECTION}, { WWT_IMGBTN, RESIZE_NONE, 7, 0, 21, 14, 35, 0x51D, STR_180B_BUILD_ROAD_SECTION},
{ WWT_IMGBTN, RESIZE_NONE, 7, 22, 43, 14, 35, 0x51E, STR_180B_BUILD_ROAD_SECTION}, { WWT_IMGBTN, RESIZE_NONE, 7, 22, 43, 14, 35, 0x51E, STR_180B_BUILD_ROAD_SECTION},
{ WWT_IMGBTN, RESIZE_NONE, 7, 44, 65, 14, 35, 0x2BF, STR_018D_DEMOLISH_BUILDINGS_ETC}, { WWT_IMGBTN, RESIZE_NONE, 7, 44, 65, 14, 35, 0x2BF, STR_018D_DEMOLISH_BUILDINGS_ETC},
{ WWT_EMPTY, RESIZE_NONE, 0, 0, 0, 0, 0, 0x0, STR_NULL}, { WWT_EMPTY, RESIZE_NONE, 0, 0, 0, 0, 0, 0x0, STR_NULL},
{ WWT_EMPTY, RESIZE_NONE, 0, 0, 0, 0, 0, 0x0, STR_NULL}, { WWT_EMPTY, RESIZE_NONE, 0, 0, 0, 0, 0, 0x0, STR_NULL},
{ WWT_EMPTY, RESIZE_NONE, 0, 0, 0, 0, 0, 0x0, STR_NULL}, { WWT_EMPTY, RESIZE_NONE, 0, 0, 0, 0, 0, 0x0, STR_NULL},
{ WWT_IMGBTN, RESIZE_NONE, 7, 66, 107, 14, 35, 0xA22, STR_180F_BUILD_ROAD_BRIDGE}, { WWT_IMGBTN, RESIZE_NONE, 7, 66, 107, 14, 35, 0xA22, STR_180F_BUILD_ROAD_BRIDGE},
{ WWT_IMGBTN, RESIZE_NONE, 7, 108, 129, 14, 35, 0x97D, STR_1810_BUILD_ROAD_TUNNEL}, { WWT_IMGBTN, RESIZE_NONE, 7, 108, 129, 14, 35, 0x97D, STR_1810_BUILD_ROAD_TUNNEL},
{ WWT_IMGBTN, RESIZE_NONE, 7, 130, 151, 14, 35, 0x2CA, STR_1811_TOGGLE_BUILD_REMOVE_FOR}, { WWT_IMGBTN, RESIZE_NONE, 7, 130, 151, 14, 35, 0x2CA, STR_1811_TOGGLE_BUILD_REMOVE_FOR},
{ WWT_PANEL, RESIZE_NONE, 7, 152, 173, 14, 35, SPR_IMG_LANDSCAPING, STR_LANDSCAPING_TOOLBAR_TIP}, { WWT_PANEL, RESIZE_NONE, 7, 152, 173, 14, 35, SPR_IMG_LANDSCAPING, STR_LANDSCAPING_TOOLBAR_TIP},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -381,13 +381,13 @@ static void BuildRoadDepotWndProc(Window *w, WindowEvent *e)
} }
static const Widget _build_road_depot_widgets[] = { static const Widget _build_road_depot_widgets[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5,STR_018B_CLOSE_WINDOW}, { WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
{ WWT_CAPTION, RESIZE_NONE, 7, 11, 139, 0, 13, STR_1806_ROAD_DEPOT_ORIENTATION, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_NONE, 7, 11, 139, 0, 13, STR_1806_ROAD_DEPOT_ORIENTATION, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_PANEL, RESIZE_NONE, 7, 0, 139, 14, 121, 0x0, STR_NULL}, { WWT_PANEL, RESIZE_NONE, 7, 0, 139, 14, 121, 0x0, STR_NULL},
{ WWT_PANEL, RESIZE_NONE, 14, 71, 136, 17, 66, 0x0, STR_1813_SELECT_ROAD_VEHICLE_DEPOT}, { WWT_PANEL, RESIZE_NONE, 14, 71, 136, 17, 66, 0x0, STR_1813_SELECT_ROAD_VEHICLE_DEPOT},
{ WWT_PANEL, RESIZE_NONE, 14, 71, 136, 69, 118, 0x0, STR_1813_SELECT_ROAD_VEHICLE_DEPOT}, { WWT_PANEL, RESIZE_NONE, 14, 71, 136, 69, 118, 0x0, STR_1813_SELECT_ROAD_VEHICLE_DEPOT},
{ WWT_PANEL, RESIZE_NONE, 14, 3, 68, 69, 118, 0x0, STR_1813_SELECT_ROAD_VEHICLE_DEPOT}, { WWT_PANEL, RESIZE_NONE, 14, 3, 68, 69, 118, 0x0, STR_1813_SELECT_ROAD_VEHICLE_DEPOT},
{ WWT_PANEL, RESIZE_NONE, 14, 3, 68, 17, 66, 0x0, STR_1813_SELECT_ROAD_VEHICLE_DEPOT}, { WWT_PANEL, RESIZE_NONE, 14, 3, 68, 17, 66, 0x0, STR_1813_SELECT_ROAD_VEHICLE_DEPOT},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -468,15 +468,15 @@ static void RoadStationPickerWndProc(Window *w, WindowEvent *e)
} }
static const Widget _bus_station_picker_widgets[] = { static const Widget _bus_station_picker_widgets[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, { WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
{ WWT_CAPTION, RESIZE_NONE, 7, 11, 139, 0, 13, STR_3042_BUS_STATION_ORIENTATION, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_NONE, 7, 11, 139, 0, 13, STR_3042_BUS_STATION_ORIENTATION, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_PANEL, RESIZE_NONE, 7, 0, 139, 14, 176, 0x0, STR_NULL}, { WWT_PANEL, RESIZE_NONE, 7, 0, 139, 14, 176, 0x0, STR_NULL},
{ WWT_PANEL, RESIZE_NONE, 14, 71, 136, 17, 66, 0x0, STR_3051_SELECT_BUS_STATION_ORIENTATION}, { WWT_PANEL, RESIZE_NONE, 14, 71, 136, 17, 66, 0x0, STR_3051_SELECT_BUS_STATION_ORIENTATION},
{ WWT_PANEL, RESIZE_NONE, 14, 71, 136, 69, 118, 0x0, STR_3051_SELECT_BUS_STATION_ORIENTATION}, { WWT_PANEL, RESIZE_NONE, 14, 71, 136, 69, 118, 0x0, STR_3051_SELECT_BUS_STATION_ORIENTATION},
{ WWT_PANEL, RESIZE_NONE, 14, 3, 68, 69, 118, 0x0, STR_3051_SELECT_BUS_STATION_ORIENTATION}, { WWT_PANEL, RESIZE_NONE, 14, 3, 68, 69, 118, 0x0, STR_3051_SELECT_BUS_STATION_ORIENTATION},
{ WWT_PANEL, RESIZE_NONE, 14, 3, 68, 17, 66, 0x0, STR_3051_SELECT_BUS_STATION_ORIENTATION}, { WWT_PANEL, RESIZE_NONE, 14, 3, 68, 17, 66, 0x0, STR_3051_SELECT_BUS_STATION_ORIENTATION},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 10, 69, 133, 144, STR_02DB_OFF,STR_3065_DON_T_HIGHLIGHT_COVERAGE}, { WWT_TEXTBTN, RESIZE_NONE, 14, 10, 69, 133, 144, STR_02DB_OFF, STR_3065_DON_T_HIGHLIGHT_COVERAGE},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 70, 129, 133, 144, STR_02DA_ON, STR_3064_HIGHLIGHT_COVERAGE_AREA}, { WWT_TEXTBTN, RESIZE_NONE, 14, 70, 129, 133, 144, STR_02DA_ON, STR_3064_HIGHLIGHT_COVERAGE_AREA},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -494,15 +494,15 @@ static void ShowBusStationPicker(void)
} }
static const Widget _truck_station_picker_widgets[] = { static const Widget _truck_station_picker_widgets[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, { WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
{ WWT_CAPTION, RESIZE_NONE, 7, 11, 139, 0, 13, STR_3043_TRUCK_STATION_ORIENT, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_NONE, 7, 11, 139, 0, 13, STR_3043_TRUCK_STATION_ORIENT, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_PANEL, RESIZE_NONE, 7, 0, 139, 14, 176, 0x0, STR_NULL}, { WWT_PANEL, RESIZE_NONE, 7, 0, 139, 14, 176, 0x0, STR_NULL},
{ WWT_PANEL, RESIZE_NONE, 14, 71, 136, 17, 66, 0x0, STR_3052_SELECT_TRUCK_LOADING_BAY}, { WWT_PANEL, RESIZE_NONE, 14, 71, 136, 17, 66, 0x0, STR_3052_SELECT_TRUCK_LOADING_BAY},
{ WWT_PANEL, RESIZE_NONE, 14, 71, 136, 69, 118, 0x0, STR_3052_SELECT_TRUCK_LOADING_BAY}, { WWT_PANEL, RESIZE_NONE, 14, 71, 136, 69, 118, 0x0, STR_3052_SELECT_TRUCK_LOADING_BAY},
{ WWT_PANEL, RESIZE_NONE, 14, 3, 68, 69, 118, 0x0, STR_3052_SELECT_TRUCK_LOADING_BAY}, { WWT_PANEL, RESIZE_NONE, 14, 3, 68, 69, 118, 0x0, STR_3052_SELECT_TRUCK_LOADING_BAY},
{ WWT_PANEL, RESIZE_NONE, 14, 3, 68, 17, 66, 0x0, STR_3052_SELECT_TRUCK_LOADING_BAY}, { WWT_PANEL, RESIZE_NONE, 14, 3, 68, 17, 66, 0x0, STR_3052_SELECT_TRUCK_LOADING_BAY},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 10, 69, 133, 144, STR_02DB_OFF, STR_3065_DON_T_HIGHLIGHT_COVERAGE}, { WWT_TEXTBTN, RESIZE_NONE, 14, 10, 69, 133, 144, STR_02DB_OFF, STR_3065_DON_T_HIGHLIGHT_COVERAGE},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 70, 129, 133, 144, STR_02DA_ON, STR_3064_HIGHLIGHT_COVERAGE_AREA}, { WWT_TEXTBTN, RESIZE_NONE, 14, 70, 129, 133, 144, STR_02DA_ON, STR_3064_HIGHLIGHT_COVERAGE_AREA},
{ WIDGETS_END}, { WIDGETS_END},
}; };

View File

@ -1204,7 +1204,7 @@ static const byte _road_veh_data_1[] = {
15, 15, 11, 11 15, 15, 11, 11
}; };
static const byte _roadveh_data_2[4] = { 0,1,8,9 }; static const byte _roadveh_data_2[4] = { 0, 1, 8, 9 };
static void RoadVehController(Vehicle *v) static void RoadVehController(Vehicle *v)
{ {

View File

@ -272,14 +272,14 @@ do_change_service_int:
} }
static const Widget _roadveh_details_widgets[] = { static const Widget _roadveh_details_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, 339, 0, 13, STR_900C_DETAILS,STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_NONE, 14, 11, 339, 0, 13, STR_900C_DETAILS, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_PUSHTXTBTN, RESIZE_NONE, 14, 340, 379, 0, 13, STR_01AA_NAME, STR_902E_NAME_ROAD_VEHICLE}, { WWT_PUSHTXTBTN, RESIZE_NONE, 14, 340, 379, 0, 13, STR_01AA_NAME, STR_902E_NAME_ROAD_VEHICLE},
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 379, 14, 55, 0x0, STR_NULL}, { WWT_IMGBTN, RESIZE_NONE, 14, 0, 379, 14, 55, 0x0, STR_NULL},
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 379, 56, 88, 0x0, STR_NULL}, { WWT_IMGBTN, RESIZE_NONE, 14, 0, 379, 56, 88, 0x0, STR_NULL},
{ WWT_PUSHTXTBTN, RESIZE_NONE, 14, 0, 10, 89, 94, STR_0188, STR_884D_INCREASE_SERVICING_INTERVAL}, { WWT_PUSHTXTBTN, RESIZE_NONE, 14, 0, 10, 89, 94, STR_0188, STR_884D_INCREASE_SERVICING_INTERVAL},
{ WWT_PUSHTXTBTN, RESIZE_NONE, 14, 0, 10, 95, 100, STR_0189, STR_884E_DECREASE_SERVICING_INTERVAL}, { WWT_PUSHTXTBTN, RESIZE_NONE, 14, 0, 10, 95, 100, STR_0189, STR_884E_DECREASE_SERVICING_INTERVAL},
{ WWT_IMGBTN, RESIZE_NONE, 14, 11, 379, 89, 100, 0x0, STR_NULL}, { WWT_IMGBTN, RESIZE_NONE, 14, 11, 379, 89, 100, 0x0, STR_NULL},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -427,21 +427,21 @@ static void RoadVehViewWndProc(Window *w, WindowEvent *e)
} }
static const Widget _roadveh_view_widgets[] = { static const Widget _roadveh_view_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_RIGHT, 14, 11, 237, 0, 13, STR_9002, STR_018C_WINDOW_TITLE_DRAG_THIS }, { WWT_CAPTION, RESIZE_RIGHT, 14, 11, 237, 0, 13, STR_9002, STR_018C_WINDOW_TITLE_DRAG_THIS },
{ WWT_STICKYBOX, RESIZE_LR, 14, 238, 249, 0, 13, 0x0, STR_STICKY_BUTTON }, { 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_IMGBTN, RESIZE_RB, 14, 0, 231, 14, 103, 0x0, STR_NULL },
{ WWT_6, RESIZE_RB, 14, 2, 229, 16, 101, 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_901C_CURRENT_VEHICLE_ACTION }, { WWT_PUSHIMGBTN, RESIZE_RTB, 14, 0, 237, 104, 115, 0x0, STR_901C_CURRENT_VEHICLE_ACTION },
{ WWT_PUSHIMGBTN, RESIZE_LR, 14, 232, 249, 14, 31, 0x2AB, STR_901E_CENTER_MAIN_VIEW_ON_VEHICLE }, { WWT_PUSHIMGBTN, RESIZE_LR, 14, 232, 249, 14, 31, 0x2AB, STR_901E_CENTER_MAIN_VIEW_ON_VEHICLE },
{ WWT_PUSHIMGBTN, RESIZE_LR, 14, 232, 249, 32, 49, 0x2AE, STR_901F_SEND_VEHICLE_TO_DEPOT }, { WWT_PUSHIMGBTN, RESIZE_LR, 14, 232, 249, 32, 49, 0x2AE, STR_901F_SEND_VEHICLE_TO_DEPOT },
{ WWT_PUSHIMGBTN, RESIZE_LR, 14, 232, 249, 50, 67, 0x2CB, STR_9020_FORCE_VEHICLE_TO_TURN_AROUND }, { WWT_PUSHIMGBTN, RESIZE_LR, 14, 232, 249, 50, 67, 0x2CB, STR_9020_FORCE_VEHICLE_TO_TURN_AROUND },
{ WWT_PUSHIMGBTN, RESIZE_LR, 14, 232, 249, 68, 85, 0x2B2, STR_901D_SHOW_VEHICLE_S_ORDERS }, { WWT_PUSHIMGBTN, RESIZE_LR, 14, 232, 249, 68, 85, 0x2B2, STR_901D_SHOW_VEHICLE_S_ORDERS },
{ WWT_PUSHIMGBTN, RESIZE_LR, 14, 232, 249, 86, 103, 0x2B3, STR_9021_SHOW_ROAD_VEHICLE_DETAILS }, { WWT_PUSHIMGBTN, RESIZE_LR, 14, 232, 249, 86, 103, 0x2B3, STR_9021_SHOW_ROAD_VEHICLE_DETAILS },
{ WWT_PUSHIMGBTN, RESIZE_LR, 14, 232, 249, 32, 49, SPR_CLONE_ROADVEH, STR_CLONE_ROAD_VEHICLE_INFO }, { WWT_PUSHIMGBTN, RESIZE_LR, 14, 232, 249, 32, 49, SPR_CLONE_ROADVEH, STR_CLONE_ROAD_VEHICLE_INFO },
{ WWT_PUSHIMGBTN, RESIZE_LR, 14, 232, 249, 50, 67, 0x2B4, STR_REFIT_ROAD_VEHICLE_TO_CARRY }, { WWT_PUSHIMGBTN, RESIZE_LR, 14, 232, 249, 50, 67, 0x2B4, STR_REFIT_ROAD_VEHICLE_TO_CARRY },
{ WWT_PANEL, RESIZE_LRB, 14, 232, 249, 104, 103, 0x0, STR_NULL }, { WWT_PANEL, RESIZE_LRB, 14, 232, 249, 104, 103, 0x0, STR_NULL },
{ WWT_RESIZEBOX, RESIZE_LRTB, 14, 238, 249, 104, 115, 0x0, STR_NULL }, { WWT_RESIZEBOX, RESIZE_LRTB, 14, 238, 249, 104, 115, 0x0, STR_NULL },
{ WIDGETS_END } { WIDGETS_END }
}; };
@ -580,14 +580,14 @@ static void NewRoadVehWndProc(Window *w, WindowEvent *e)
} }
static const Widget _new_road_veh_widgets[] = { static const Widget _new_road_veh_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, 247, 0, 13, STR_9006_NEW_ROAD_VEHICLES, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_NONE, 14, 11, 247, 0, 13, STR_9006_NEW_ROAD_VEHICLES, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_MATRIX, RESIZE_BOTTOM, 14, 0, 235, 14, 125, 0x801, STR_9026_ROAD_VEHICLE_SELECTION}, { WWT_MATRIX, RESIZE_BOTTOM, 14, 0, 235, 14, 125, 0x801, STR_9026_ROAD_VEHICLE_SELECTION},
{ WWT_SCROLLBAR, RESIZE_BOTTOM, 14, 236, 247, 14, 125, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST}, { WWT_SCROLLBAR, RESIZE_BOTTOM, 14, 236, 247, 14, 125, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST},
{ WWT_IMGBTN, RESIZE_TB, 14, 0, 247, 126, 197, 0x0, STR_NULL}, { WWT_IMGBTN, RESIZE_TB, 14, 0, 247, 126, 197, 0x0, STR_NULL},
{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 0, 117, 198, 209, STR_9007_BUILD_VEHICLE,STR_9027_BUILD_THE_HIGHLIGHTED_ROAD}, { WWT_PUSHTXTBTN, RESIZE_TB, 14, 0, 117, 198, 209, STR_9007_BUILD_VEHICLE, STR_9027_BUILD_THE_HIGHLIGHTED_ROAD},
{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 118, 235, 198, 209, STR_9034_RENAME, STR_9035_RENAME_ROAD_VEHICLE_TYPE}, { WWT_PUSHTXTBTN, RESIZE_TB, 14, 118, 235, 198, 209, STR_9034_RENAME, STR_9035_RENAME_ROAD_VEHICLE_TYPE},
{ WWT_RESIZEBOX, RESIZE_TB, 14, 236, 247, 198, 209, 0x0, STR_RESIZE_BUTTON}, { WWT_RESIZEBOX, RESIZE_TB, 14, 236, 247, 198, 209, 0x0, STR_RESIZE_BUTTON},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -870,19 +870,19 @@ static void RoadDepotWndProc(Window *w, WindowEvent *e)
} }
static const Widget _road_depot_widgets[] = { static const Widget _road_depot_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_RIGHT, 14, 11, 302, 0, 13, STR_9003_ROAD_VEHICLE_DEPOT, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_RIGHT, 14, 11, 302, 0, 13, STR_9003_ROAD_VEHICLE_DEPOT, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_STICKYBOX, RESIZE_LR, 14, 303, 314, 0, 13, 0x0, STR_STICKY_BUTTON}, { WWT_STICKYBOX, RESIZE_LR, 14, 303, 314, 0, 13, 0x0, STR_STICKY_BUTTON},
{ WWT_PANEL, RESIZE_LRB, 14, 280, 302, 14, 13, 0x0, STR_NULL}, { WWT_PANEL, RESIZE_LRB, 14, 280, 302, 14, 13, 0x0, STR_NULL},
{ WWT_IMGBTN, RESIZE_LRTB, 14, 280, 302, 14, 55, 0x2A9, STR_9024_DRAG_ROAD_VEHICLE_TO_HERE}, { WWT_IMGBTN, RESIZE_LRTB, 14, 280, 302, 14, 55, 0x2A9, STR_9024_DRAG_ROAD_VEHICLE_TO_HERE},
{ WWT_MATRIX, RESIZE_RB, 14, 0, 279, 14, 55, 0x305, STR_9022_VEHICLES_CLICK_ON_VEHICLE}, { WWT_MATRIX, RESIZE_RB, 14, 0, 279, 14, 55, 0x305, STR_9022_VEHICLES_CLICK_ON_VEHICLE},
{ WWT_SCROLLBAR, RESIZE_LRB, 14, 303, 314, 14, 55, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST}, { WWT_SCROLLBAR, RESIZE_LRB, 14, 303, 314, 14, 55, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST},
{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 0, 100, 56, 67, STR_9004_NEW_VEHICLES, STR_9023_BUILD_NEW_ROAD_VEHICLE}, { WWT_PUSHTXTBTN, RESIZE_TB, 14, 0, 100, 56, 67, STR_9004_NEW_VEHICLES, STR_9023_BUILD_NEW_ROAD_VEHICLE},
{WWT_NODISTXTBTN, RESIZE_TB, 14, 101, 200, 56, 67, STR_CLONE_ROAD_VEHICLE, STR_CLONE_ROAD_VEHICLE_DEPOT_INFO}, {WWT_NODISTXTBTN, RESIZE_TB, 14, 101, 200, 56, 67, STR_CLONE_ROAD_VEHICLE, STR_CLONE_ROAD_VEHICLE_DEPOT_INFO},
{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 201, 302, 56, 67, STR_00E4_LOCATION, STR_9025_CENTER_MAIN_VIEW_ON_ROAD}, { WWT_PUSHTXTBTN, RESIZE_TB, 14, 201, 302, 56, 67, STR_00E4_LOCATION, STR_9025_CENTER_MAIN_VIEW_ON_ROAD},
{ WWT_PANEL, RESIZE_RTB, 14, 303, 302, 56, 67, 0x0, STR_NULL}, { WWT_PANEL, RESIZE_RTB, 14, 303, 302, 56, 67, 0x0, STR_NULL},
{ WWT_RESIZEBOX, RESIZE_LRTB, 14, 303, 314, 56, 67, 0x0, STR_RESIZE_BUTTON}, { WWT_RESIZEBOX, RESIZE_LRTB, 14, 303, 314, 56, 67, 0x0, STR_RESIZE_BUTTON},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -910,35 +910,35 @@ void ShowRoadDepotWindow(TileIndex tile)
} }
static const Widget _player_roadveh_widgets[] = { static const Widget _player_roadveh_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_RIGHT, 14, 11, 247, 0, 13, STR_9001_ROAD_VEHICLES, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_RIGHT, 14, 11, 247, 0, 13, STR_9001_ROAD_VEHICLES, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_STICKYBOX, RESIZE_LR, 14, 248, 259, 0, 13, 0x0, STR_STICKY_BUTTON}, { 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_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_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_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_PANEL, RESIZE_RIGHT, 14, 248, 259, 14, 25, 0x0, STR_NULL},
{ WWT_MATRIX, RESIZE_RB, 14, 0, 247, 26, 207, 0x701, STR_901A_ROAD_VEHICLES_CLICK_ON}, { WWT_MATRIX, RESIZE_RB, 14, 0, 247, 26, 207, 0x701, STR_901A_ROAD_VEHICLES_CLICK_ON},
{ WWT_SCROLLBAR, RESIZE_LRB, 14, 248, 259, 26, 207, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST}, { WWT_SCROLLBAR, RESIZE_LRB, 14, 248, 259, 26, 207, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST},
/* only for our road list, a 'Build Vehicle' button that opens the depot of the last built depot */ /* only for our road list, a 'Build Vehicle' button that opens the depot of the last built depot */
{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 0, 124, 208, 219, STR_8815_NEW_VEHICLES, STR_901B_BUILD_NEW_ROAD_VEHICLES}, { WWT_PUSHTXTBTN, RESIZE_TB, 14, 0, 124, 208, 219, STR_8815_NEW_VEHICLES, STR_901B_BUILD_NEW_ROAD_VEHICLES},
{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 125, 247, 208, 219, STR_REPLACE_VEHICLES, STR_REPLACE_HELP}, { WWT_PUSHTXTBTN, RESIZE_TB, 14, 125, 247, 208, 219, STR_REPLACE_VEHICLES, STR_REPLACE_HELP},
{ WWT_PANEL, RESIZE_RTB, 14, 248, 247, 208, 219, 0x0, STR_NULL}, { WWT_PANEL, RESIZE_RTB, 14, 248, 247, 208, 219, 0x0, STR_NULL},
{ WWT_RESIZEBOX, RESIZE_LRTB, 14, 248, 259, 208, 219, 0x0, STR_RESIZE_BUTTON}, { WWT_RESIZEBOX, RESIZE_LRTB, 14, 248, 259, 208, 219, 0x0, STR_RESIZE_BUTTON},
{ WIDGETS_END}, { WIDGETS_END},
}; };
static const Widget _other_player_roadveh_widgets[] = { static const Widget _other_player_roadveh_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_RIGHT, 14, 11, 247, 0, 13, STR_9001_ROAD_VEHICLES, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_RIGHT, 14, 11, 247, 0, 13, STR_9001_ROAD_VEHICLES, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_STICKYBOX, RESIZE_LR, 14, 248, 259, 0, 13, 0x0, STR_STICKY_BUTTON}, { 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_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_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_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_PANEL, RESIZE_RIGHT, 14, 248, 259, 14, 25, 0x0, STR_NULL},
{ WWT_MATRIX, RESIZE_RB, 14, 0, 247, 26, 207, 0x701, STR_901A_ROAD_VEHICLES_CLICK_ON}, { WWT_MATRIX, RESIZE_RB, 14, 0, 247, 26, 207, 0x701, STR_901A_ROAD_VEHICLES_CLICK_ON},
{ WWT_SCROLLBAR, RESIZE_LRB, 14, 248, 259, 26, 207, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST}, { WWT_SCROLLBAR, RESIZE_LRB, 14, 248, 259, 26, 207, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST},
{ WWT_PANEL, RESIZE_RTB, 14, 0, 247, 208, 219, 0x0, STR_NULL}, { WWT_PANEL, RESIZE_RTB, 14, 0, 247, 208, 219, 0x0, STR_NULL},
{ WWT_RESIZEBOX, RESIZE_LRTB, 14, 248, 259, 208, 219, 0x0, STR_RESIZE_BUTTON}, { WWT_RESIZEBOX, RESIZE_LRTB, 14, 248, 259, 208, 219, 0x0, STR_RESIZE_BUTTON},
{ WIDGETS_END}, { WIDGETS_END},
}; };

View File

@ -37,12 +37,12 @@ typedef struct {
} NullStruct; } NullStruct;
typedef enum SLRefType { typedef enum SLRefType {
REF_ORDER = 0, REF_ORDER = 0,
REF_VEHICLE = 1, REF_VEHICLE = 1,
REF_STATION = 2, REF_STATION = 2,
REF_TOWN = 3, REF_TOWN = 3,
REF_VEHICLE_OLD = 4, REF_VEHICLE_OLD = 4,
REF_ROADSTOPS = 5, REF_ROADSTOPS = 5,
REF_ENGINE_RENEWS = 6, REF_ENGINE_RENEWS = 6,
} SLRefType; } SLRefType;
@ -53,11 +53,11 @@ enum {
}; };
enum { enum {
CH_RIFF = 0, CH_RIFF = 0,
CH_ARRAY = 1, CH_ARRAY = 1,
CH_SPARSE_ARRAY = 2, CH_SPARSE_ARRAY = 2,
CH_TYPE_MASK = 3, CH_TYPE_MASK = 3,
CH_LAST = 8, CH_LAST = 8,
CH_AUTO_LENGTH = 16, CH_AUTO_LENGTH = 16,
CH_PRI_0 = 0 << 4, CH_PRI_0 = 0 << 4,
@ -89,20 +89,20 @@ enum VarTypes {
/* 6 more possible file-primitives */ /* 6 more possible file-primitives */
/* 4 bytes allocated a maximum of 16 types for NumberType */ /* 4 bytes allocated a maximum of 16 types for NumberType */
SLE_VAR_BL = 0 << 4, SLE_VAR_BL = 0 << 4,
SLE_VAR_I8 = 1 << 4, SLE_VAR_I8 = 1 << 4,
SLE_VAR_U8 = 2 << 4, SLE_VAR_U8 = 2 << 4,
SLE_VAR_I16 = 3 << 4, SLE_VAR_I16 = 3 << 4,
SLE_VAR_U16 = 4 << 4, SLE_VAR_U16 = 4 << 4,
SLE_VAR_I32 = 5 << 4, SLE_VAR_I32 = 5 << 4,
SLE_VAR_U32 = 6 << 4, SLE_VAR_U32 = 6 << 4,
SLE_VAR_I64 = 7 << 4, SLE_VAR_I64 = 7 << 4,
SLE_VAR_U64 = 8 << 4, SLE_VAR_U64 = 8 << 4,
SLE_VAR_NULL = 9 << 4, ///< useful to write zeros in savegame. SLE_VAR_NULL = 9 << 4, ///< useful to write zeros in savegame.
SLE_VAR_STRB = 10 << 4, ///< normal string (with pre-allocated buffer) SLE_VAR_STRB = 10 << 4, ///< normal string (with pre-allocated buffer)
SLE_VAR_STRBQ= 11 << 4, ///< string enclosed in quotes (with pre-allocated buffer) SLE_VAR_STRBQ = 11 << 4, ///< string enclosed in quotes (with pre-allocated buffer)
SLE_VAR_STR = 12 << 4, ///< string pointer SLE_VAR_STR = 12 << 4, ///< string pointer
SLE_VAR_STRQ = 13 << 4, ///< string enclosed in quotes SLE_VAR_STRQ = 13 << 4, ///< string enclosed in quotes
/* 2 more possible memory-primitives */ /* 2 more possible memory-primitives */
/* Shortcut values */ /* Shortcut values */
@ -111,29 +111,29 @@ enum VarTypes {
/* Default combinations of variables. As savegames change, so can variables /* Default combinations of variables. As savegames change, so can variables
* and thus it is possible that the saved value and internal size do not * and thus it is possible that the saved value and internal size do not
* match and you need to specify custom combo. The defaults are listed here */ * match and you need to specify custom combo. The defaults are listed here */
SLE_BOOL = SLE_FILE_I8 | SLE_VAR_BL, SLE_BOOL = SLE_FILE_I8 | SLE_VAR_BL,
SLE_INT8 = SLE_FILE_I8 | SLE_VAR_I8, SLE_INT8 = SLE_FILE_I8 | SLE_VAR_I8,
SLE_UINT8 = SLE_FILE_U8 | SLE_VAR_U8, SLE_UINT8 = SLE_FILE_U8 | SLE_VAR_U8,
SLE_INT16 = SLE_FILE_I16 | SLE_VAR_I16, SLE_INT16 = SLE_FILE_I16 | SLE_VAR_I16,
SLE_UINT16 = SLE_FILE_U16 | SLE_VAR_U16, SLE_UINT16 = SLE_FILE_U16 | SLE_VAR_U16,
SLE_INT32 = SLE_FILE_I32 | SLE_VAR_I32, SLE_INT32 = SLE_FILE_I32 | SLE_VAR_I32,
SLE_UINT32 = SLE_FILE_U32 | SLE_VAR_U32, SLE_UINT32 = SLE_FILE_U32 | SLE_VAR_U32,
SLE_INT64 = SLE_FILE_I64 | SLE_VAR_I64, SLE_INT64 = SLE_FILE_I64 | SLE_VAR_I64,
SLE_UINT64 = SLE_FILE_U64 | SLE_VAR_U64, SLE_UINT64 = SLE_FILE_U64 | SLE_VAR_U64,
SLE_CHAR = SLE_FILE_I8 | SLE_VAR_CHAR, SLE_CHAR = SLE_FILE_I8 | SLE_VAR_CHAR,
SLE_STRINGID = SLE_FILE_STRINGID | SLE_VAR_U16, SLE_STRINGID = SLE_FILE_STRINGID | SLE_VAR_U16,
SLE_STRINGBUF = SLE_FILE_STRING | SLE_VAR_STRB, SLE_STRINGBUF = SLE_FILE_STRING | SLE_VAR_STRB,
SLE_STRINGBQUOTE= SLE_FILE_STRING | SLE_VAR_STRBQ, SLE_STRINGBQUOTE = SLE_FILE_STRING | SLE_VAR_STRBQ,
SLE_STRING = SLE_FILE_STRING | SLE_VAR_STR, SLE_STRING = SLE_FILE_STRING | SLE_VAR_STR,
SLE_STRINGQUOTE = SLE_FILE_STRING | SLE_VAR_STRQ, SLE_STRINGQUOTE = SLE_FILE_STRING | SLE_VAR_STRQ,
/* Shortcut values */ /* Shortcut values */
SLE_UINT = SLE_UINT32, SLE_UINT = SLE_UINT32,
SLE_INT = SLE_INT32, SLE_INT = SLE_INT32,
SLE_STRB = SLE_STRINGBUF, SLE_STRB = SLE_STRINGBUF,
SLE_STRBQ= SLE_STRINGBQUOTE, SLE_STRBQ = SLE_STRINGBQUOTE,
SLE_STR = SLE_STRING, SLE_STR = SLE_STRING,
SLE_STRQ = SLE_STRINGQUOTE, SLE_STRQ = SLE_STRINGQUOTE,
/* 8 bytes allocated for a maximum of 8 flags /* 8 bytes allocated for a maximum of 8 flags
* Flags directing saving/loading of a variable */ * Flags directing saving/loading of a variable */
@ -146,13 +146,13 @@ enum VarTypes {
typedef uint32 VarType; typedef uint32 VarType;
enum SaveLoadTypes { enum SaveLoadTypes {
SL_VAR = 0, SL_VAR = 0,
SL_REF = 1, SL_REF = 1,
SL_ARR = 2, SL_ARR = 2,
SL_STR = 3, SL_STR = 3,
// non-normal save-load types // non-normal save-load types
SL_WRITEBYTE = 8, SL_WRITEBYTE = 8,
SL_INCLUDE = 9, SL_INCLUDE = 9,
SL_END = 15 SL_END = 15
}; };

View File

@ -1146,14 +1146,14 @@ static int32 EngineRenewMoneyUpdate(int32 p1)
#endif #endif
static const SettingDesc _music_settings[] = { static const SettingDesc _music_settings[] = {
SDT_VAR(MusicFileSettings, playlist, SLE_UINT8, S, 0, 0, 0, 5, STR_NULL, NULL), SDT_VAR(MusicFileSettings, playlist, SLE_UINT8, S, 0, 0, 0, 5, STR_NULL, NULL),
SDT_VAR(MusicFileSettings, music_vol, SLE_UINT8, S, 0, 128, 0, 100, STR_NULL, NULL), SDT_VAR(MusicFileSettings, music_vol, SLE_UINT8, S, 0, 128, 0, 100, STR_NULL, NULL),
SDT_VAR(MusicFileSettings, effect_vol,SLE_UINT8, S, 0, 128, 0, 100, STR_NULL, NULL), SDT_VAR(MusicFileSettings, effect_vol, SLE_UINT8, S, 0, 128, 0, 100, STR_NULL, NULL),
SDT_LIST(MusicFileSettings, custom_1, SLE_UINT8, S, 0, NULL, STR_NULL, NULL), SDT_LIST(MusicFileSettings, custom_1, SLE_UINT8, S, 0, NULL, STR_NULL, NULL),
SDT_LIST(MusicFileSettings, custom_2, SLE_UINT8, S, 0, NULL, STR_NULL, NULL), SDT_LIST(MusicFileSettings, custom_2, SLE_UINT8, S, 0, NULL, STR_NULL, NULL),
SDT_BOOL(MusicFileSettings, playing, S, 0, true, STR_NULL, NULL), SDT_BOOL(MusicFileSettings, playing, S, 0, true, STR_NULL, NULL),
SDT_BOOL(MusicFileSettings, shuffle, S, 0,false, STR_NULL, NULL), SDT_BOOL(MusicFileSettings, shuffle, S, 0, false, STR_NULL, NULL),
SDT_STR(MusicFileSettings, extmidi, SLE_STRB, S, 0, EXTERNAL_PLAYER,STR_NULL, NULL), SDT_STR(MusicFileSettings, extmidi, SLE_STRB, S, 0, EXTERNAL_PLAYER, STR_NULL, NULL),
SDT_END() SDT_END()
}; };

View File

@ -62,7 +62,7 @@ typedef SettingDesc SettingDescGlobVarList;
typedef enum { typedef enum {
IGT_VARIABLES = 0, ///< values of the form "landscape = hilly" IGT_VARIABLES = 0, ///< values of the form "landscape = hilly"
IGT_LIST = 1, ///< a list of values, seperated by \n and terminated by the next group block IGT_LIST = 1, ///< a list of values, seperated by \n and terminated by the next group block
} IniGroupType; } IniGroupType;
/** Get the address of the variable. Which one to pick depends on the object /** Get the address of the variable. Which one to pick depends on the object

View File

@ -237,42 +237,42 @@ int32 CmdSetRoadDriveSide(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
} }
static const Widget _game_options_widgets[] = { static const Widget _game_options_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, 369, 0, 13, STR_00B1_GAME_OPTIONS, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_NONE, 14, 11, 369, 0, 13, STR_00B1_GAME_OPTIONS, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_PANEL, RESIZE_NONE, 14, 0, 369, 14, 238, 0x0, STR_NULL}, { WWT_PANEL, RESIZE_NONE, 14, 0, 369, 14, 238, 0x0, STR_NULL},
{ WWT_FRAME, RESIZE_NONE, 14, 10, 179, 20, 55, STR_02E0_CURRENCY_UNITS, STR_NULL}, { WWT_FRAME, RESIZE_NONE, 14, 10, 179, 20, 55, STR_02E0_CURRENCY_UNITS, STR_NULL},
{ WWT_6, RESIZE_NONE, 14, 20, 169, 34, 45, STR_02E1, STR_02E2_CURRENCY_UNITS_SELECTION}, { WWT_6, RESIZE_NONE, 14, 20, 169, 34, 45, STR_02E1, STR_02E2_CURRENCY_UNITS_SELECTION},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 158, 168, 35, 44, STR_0225, STR_02E2_CURRENCY_UNITS_SELECTION}, { WWT_TEXTBTN, RESIZE_NONE, 14, 158, 168, 35, 44, STR_0225, STR_02E2_CURRENCY_UNITS_SELECTION},
{ WWT_FRAME, RESIZE_NONE, 14, 190, 359, 20, 55, STR_MEASURING_UNITS, STR_NULL}, { WWT_FRAME, RESIZE_NONE, 14, 190, 359, 20, 55, STR_MEASURING_UNITS, STR_NULL},
{ WWT_6, RESIZE_NONE, 14, 200, 349, 34, 45, STR_02E4, STR_MEASURING_UNITS_SELECTION}, { WWT_6, RESIZE_NONE, 14, 200, 349, 34, 45, STR_02E4, STR_MEASURING_UNITS_SELECTION},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 338, 348, 35, 44, STR_0225, STR_MEASURING_UNITS_SELECTION}, { WWT_TEXTBTN, RESIZE_NONE, 14, 338, 348, 35, 44, STR_0225, STR_MEASURING_UNITS_SELECTION},
{ WWT_FRAME, RESIZE_NONE, 14, 10, 179, 62, 97, STR_02E6_ROAD_VEHICLES, STR_NULL}, { WWT_FRAME, RESIZE_NONE, 14, 10, 179, 62, 97, STR_02E6_ROAD_VEHICLES, STR_NULL},
{ WWT_6, RESIZE_NONE, 14, 20, 169, 76, 87, STR_02E7, STR_02E8_SELECT_SIDE_OF_ROAD_FOR}, { WWT_6, RESIZE_NONE, 14, 20, 169, 76, 87, STR_02E7, STR_02E8_SELECT_SIDE_OF_ROAD_FOR},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 158, 168, 77, 86, STR_0225, STR_02E8_SELECT_SIDE_OF_ROAD_FOR}, { WWT_TEXTBTN, RESIZE_NONE, 14, 158, 168, 77, 86, STR_0225, STR_02E8_SELECT_SIDE_OF_ROAD_FOR},
{ WWT_FRAME, RESIZE_NONE, 14, 190, 359, 62, 97, STR_02EB_TOWN_NAMES, STR_NULL}, { WWT_FRAME, RESIZE_NONE, 14, 190, 359, 62, 97, STR_02EB_TOWN_NAMES, STR_NULL},
{ WWT_6, RESIZE_NONE, 14, 200, 349, 76, 87, STR_02EC, STR_02ED_SELECT_STYLE_OF_TOWN_NAMES}, { WWT_6, RESIZE_NONE, 14, 200, 349, 76, 87, STR_02EC, STR_02ED_SELECT_STYLE_OF_TOWN_NAMES},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 338, 348, 77, 86, STR_0225, STR_02ED_SELECT_STYLE_OF_TOWN_NAMES}, { WWT_TEXTBTN, RESIZE_NONE, 14, 338, 348, 77, 86, STR_0225, STR_02ED_SELECT_STYLE_OF_TOWN_NAMES},
{ WWT_FRAME, RESIZE_NONE, 14, 10, 179, 104, 139, STR_02F4_AUTOSAVE, STR_NULL}, { WWT_FRAME, RESIZE_NONE, 14, 10, 179, 104, 139, STR_02F4_AUTOSAVE, STR_NULL},
{ WWT_6, RESIZE_NONE, 14, 20, 169, 118, 129, STR_02F5, STR_02F6_SELECT_INTERVAL_BETWEEN}, { WWT_6, RESIZE_NONE, 14, 20, 169, 118, 129, STR_02F5, STR_02F6_SELECT_INTERVAL_BETWEEN},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 158, 168, 119, 128, STR_0225, STR_02F6_SELECT_INTERVAL_BETWEEN}, { WWT_TEXTBTN, RESIZE_NONE, 14, 158, 168, 119, 128, STR_0225, STR_02F6_SELECT_INTERVAL_BETWEEN},
{ WWT_FRAME, RESIZE_NONE, 14, 10, 359, 194, 228, STR_02BC_VEHICLE_DESIGN_NAMES, STR_NULL}, { WWT_FRAME, RESIZE_NONE, 14, 10, 359, 194, 228, STR_02BC_VEHICLE_DESIGN_NAMES, STR_NULL},
{ WWT_6, RESIZE_NONE, 14, 20, 119, 207, 218, STR_02BD, STR_02C1_VEHICLE_DESIGN_NAMES_SELECTION}, { WWT_6, RESIZE_NONE, 14, 20, 119, 207, 218, STR_02BD, STR_02C1_VEHICLE_DESIGN_NAMES_SELECTION},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 108, 118, 208, 217, STR_0225, STR_02C1_VEHICLE_DESIGN_NAMES_SELECTION}, { WWT_TEXTBTN, RESIZE_NONE, 14, 108, 118, 208, 217, STR_0225, STR_02C1_VEHICLE_DESIGN_NAMES_SELECTION},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 130, 349, 207, 218, STR_02C0_SAVE_CUSTOM_NAMES, STR_02C2_SAVE_CUSTOMIZED_VEHICLE}, { WWT_TEXTBTN, RESIZE_NONE, 14, 130, 349, 207, 218, STR_02C0_SAVE_CUSTOM_NAMES, STR_02C2_SAVE_CUSTOMIZED_VEHICLE},
{ WWT_FRAME, RESIZE_NONE, 14, 190, 359, 104, 139, STR_OPTIONS_LANG, STR_NULL}, { WWT_FRAME, RESIZE_NONE, 14, 190, 359, 104, 139, STR_OPTIONS_LANG, STR_NULL},
{ WWT_6, RESIZE_NONE, 14, 200, 349, 118, 129, STR_OPTIONS_LANG_CBO, STR_OPTIONS_LANG_TIP}, { WWT_6, RESIZE_NONE, 14, 200, 349, 118, 129, STR_OPTIONS_LANG_CBO, STR_OPTIONS_LANG_TIP},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 338, 348, 119, 128, STR_0225, STR_OPTIONS_LANG_TIP}, { WWT_TEXTBTN, RESIZE_NONE, 14, 338, 348, 119, 128, STR_0225, STR_OPTIONS_LANG_TIP},
{ WWT_FRAME, RESIZE_NONE, 14, 10, 179, 146, 190, STR_OPTIONS_RES, STR_NULL}, { WWT_FRAME, RESIZE_NONE, 14, 10, 179, 146, 190, STR_OPTIONS_RES, STR_NULL},
{ WWT_6, RESIZE_NONE, 14, 20, 169, 160, 171, STR_OPTIONS_RES_CBO, STR_OPTIONS_RES_TIP}, { WWT_6, RESIZE_NONE, 14, 20, 169, 160, 171, STR_OPTIONS_RES_CBO, STR_OPTIONS_RES_TIP},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 158, 168, 161, 170, STR_0225, STR_OPTIONS_RES_TIP}, { WWT_TEXTBTN, RESIZE_NONE, 14, 158, 168, 161, 170, STR_0225, STR_OPTIONS_RES_TIP},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 149, 169, 176, 184, STR_EMPTY, STR_OPTIONS_FULLSCREEN_TIP}, { WWT_TEXTBTN, RESIZE_NONE, 14, 149, 169, 176, 184, STR_EMPTY, STR_OPTIONS_FULLSCREEN_TIP},
{ WWT_FRAME, RESIZE_NONE, 14, 190, 359, 146, 190, STR_OPTIONS_SCREENSHOT_FORMAT, STR_NULL}, { WWT_FRAME, RESIZE_NONE, 14, 190, 359, 146, 190, STR_OPTIONS_SCREENSHOT_FORMAT, STR_NULL},
{ WWT_6, RESIZE_NONE, 14, 200, 349, 160, 171, STR_OPTIONS_SCREENSHOT_FORMAT_CBO, STR_OPTIONS_SCREENSHOT_FORMAT_TIP}, { WWT_6, RESIZE_NONE, 14, 200, 349, 160, 171, STR_OPTIONS_SCREENSHOT_FORMAT_CBO, STR_OPTIONS_SCREENSHOT_FORMAT_TIP},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 338, 348, 161, 170, STR_0225, STR_OPTIONS_SCREENSHOT_FORMAT_TIP}, { WWT_TEXTBTN, RESIZE_NONE, 14, 338, 348, 161, 170, STR_0225, STR_OPTIONS_SCREENSHOT_FORMAT_TIP},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -349,9 +349,9 @@ static inline bool GetBitAndShift(uint32 *b)
*/ */
static const int16 _default_game_diff[3][GAME_DIFFICULTY_NUM] = { /* static const int16 _default_game_diff[3][GAME_DIFFICULTY_NUM] = { /*
A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R*/ A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R*/
{2, 2, 1, 3, 300, 2, 0, 2, 0, 1, 2, 0, 1, 0, 0, 0, 0, 0}, //easy {2, 2, 1, 3, 300, 2, 0, 2, 0, 1, 2, 0, 1, 0, 0, 0, 0, 0}, //easy
{4, 1, 1, 2, 150, 3, 1, 3, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1}, //medium {4, 1, 1, 2, 150, 3, 1, 3, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1}, //medium
{7, 0, 2, 2, 100, 4, 1, 3, 2, 2, 0, 2, 3, 2, 1, 1, 1, 2}, //hard {7, 0, 2, 2, 100, 4, 1, 3, 2, 2, 0, 2, 3, 2, 1, 1, 1, 2}, //hard
}; };
void SetDifficultyLevel(int mode, GameOptions *gm_opt) void SetDifficultyLevel(int mode, GameOptions *gm_opt)
@ -525,18 +525,18 @@ static void GameDifficultyWndProc(Window *w, WindowEvent *e)
#undef DIFF_INGAME_DISABLED_BUTTONS #undef DIFF_INGAME_DISABLED_BUTTONS
static const Widget _game_difficulty_widgets[] = { static const Widget _game_difficulty_widgets[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, 10, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, { WWT_CLOSEBOX, RESIZE_NONE, 10, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
{ WWT_CAPTION, RESIZE_NONE, 10, 11, 369, 0, 13, STR_6800_DIFFICULTY_LEVEL, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_NONE, 10, 11, 369, 0, 13, STR_6800_DIFFICULTY_LEVEL, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_PANEL, RESIZE_NONE, 10, 0, 369, 14, 29, 0x0, STR_NULL}, { WWT_PANEL, RESIZE_NONE, 10, 0, 369, 14, 29, 0x0, STR_NULL},
{ WWT_PUSHTXTBTN, RESIZE_NONE, 3, 10, 96, 16, 27, STR_6801_EASY, STR_NULL}, { WWT_PUSHTXTBTN, RESIZE_NONE, 3, 10, 96, 16, 27, STR_6801_EASY, STR_NULL},
{ WWT_PUSHTXTBTN, RESIZE_NONE, 3, 97, 183, 16, 27, STR_6802_MEDIUM, STR_NULL}, { WWT_PUSHTXTBTN, RESIZE_NONE, 3, 97, 183, 16, 27, STR_6802_MEDIUM, STR_NULL},
{ WWT_PUSHTXTBTN, RESIZE_NONE, 3, 184, 270, 16, 27, STR_6803_HARD, STR_NULL}, { WWT_PUSHTXTBTN, RESIZE_NONE, 3, 184, 270, 16, 27, STR_6803_HARD, STR_NULL},
{ WWT_PUSHTXTBTN, RESIZE_NONE, 3, 271, 357, 16, 27, STR_6804_CUSTOM, STR_NULL}, { WWT_PUSHTXTBTN, RESIZE_NONE, 3, 271, 357, 16, 27, STR_6804_CUSTOM, STR_NULL},
{ WWT_TEXTBTN, RESIZE_NONE, 10, 0, 369, 30, 41, STR_6838_SHOW_HI_SCORE_CHART,STR_NULL}, { WWT_TEXTBTN, RESIZE_NONE, 10, 0, 369, 30, 41, STR_6838_SHOW_HI_SCORE_CHART, STR_NULL},
{ WWT_PANEL, RESIZE_NONE, 10, 0, 369, 42, 262, 0x0, STR_NULL}, { WWT_PANEL, RESIZE_NONE, 10, 0, 369, 42, 262, 0x0, STR_NULL},
{ WWT_PANEL, RESIZE_NONE, 10, 0, 369, 263, 278, 0x0, STR_NULL}, { WWT_PANEL, RESIZE_NONE, 10, 0, 369, 263, 278, 0x0, STR_NULL},
{ WWT_PUSHTXTBTN, RESIZE_NONE, 3, 105, 185, 265, 276, STR_OPTIONS_SAVE_CHANGES, STR_NULL}, { WWT_PUSHTXTBTN, RESIZE_NONE, 3, 105, 185, 265, 276, STR_OPTIONS_SAVE_CHANGES, STR_NULL},
{ WWT_PUSHTXTBTN, RESIZE_NONE, 3, 186, 266, 265, 276, STR_012E_CANCEL, STR_NULL}, { WWT_PUSHTXTBTN, RESIZE_NONE, 3, 186, 266, 265, 276, STR_012E_CANCEL, STR_NULL},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -882,17 +882,17 @@ static void PatchesSelectionWndProc(Window *w, WindowEvent *e)
} }
static const Widget _patches_selection_widgets[] = { static const Widget _patches_selection_widgets[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, 10, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, { WWT_CLOSEBOX, RESIZE_NONE, 10, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
{ WWT_CAPTION, RESIZE_NONE, 10, 11, 369, 0, 13, STR_CONFIG_PATCHES_CAPTION, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_NONE, 10, 11, 369, 0, 13, STR_CONFIG_PATCHES_CAPTION, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_PANEL, RESIZE_NONE, 10, 0, 369, 14, 41, 0x0, STR_NULL}, { WWT_PANEL, RESIZE_NONE, 10, 0, 369, 14, 41, 0x0, STR_NULL},
{ WWT_PANEL, RESIZE_NONE, 10, 0, 369, 42, 360, 0x0, STR_NULL}, { WWT_PANEL, RESIZE_NONE, 10, 0, 369, 42, 360, 0x0, STR_NULL},
{ WWT_TEXTBTN, RESIZE_NONE, 3, 10, 96, 16, 27, STR_CONFIG_PATCHES_GUI, STR_NULL}, { WWT_TEXTBTN, RESIZE_NONE, 3, 10, 96, 16, 27, STR_CONFIG_PATCHES_GUI, STR_NULL},
{ WWT_TEXTBTN, RESIZE_NONE, 3, 97, 183, 16, 27, STR_CONFIG_PATCHES_CONSTRUCTION, STR_NULL}, { WWT_TEXTBTN, RESIZE_NONE, 3, 97, 183, 16, 27, STR_CONFIG_PATCHES_CONSTRUCTION, STR_NULL},
{ WWT_TEXTBTN, RESIZE_NONE, 3, 184, 270, 16, 27, STR_CONFIG_PATCHES_VEHICLES, STR_NULL}, { WWT_TEXTBTN, RESIZE_NONE, 3, 184, 270, 16, 27, STR_CONFIG_PATCHES_VEHICLES, STR_NULL},
{ WWT_TEXTBTN, RESIZE_NONE, 3, 271, 357, 16, 27, STR_CONFIG_PATCHES_STATIONS, STR_NULL}, { WWT_TEXTBTN, RESIZE_NONE, 3, 271, 357, 16, 27, STR_CONFIG_PATCHES_STATIONS, STR_NULL},
{ WWT_TEXTBTN, RESIZE_NONE, 3, 10, 96, 28, 39, STR_CONFIG_PATCHES_ECONOMY, STR_NULL}, { WWT_TEXTBTN, RESIZE_NONE, 3, 10, 96, 28, 39, STR_CONFIG_PATCHES_ECONOMY, STR_NULL},
{ WWT_TEXTBTN, RESIZE_NONE, 3, 97, 183, 28, 39, STR_CONFIG_PATCHES_AI, STR_NULL}, { WWT_TEXTBTN, RESIZE_NONE, 3, 97, 183, 28, 39, STR_CONFIG_PATCHES_AI, STR_NULL},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -1006,19 +1006,19 @@ static void NewgrfWndProc(Window *w, WindowEvent *e)
} }
static const Widget _newgrf_widgets[] = { static const Widget _newgrf_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, 279, 0, 13, STR_NEWGRF_SETTINGS_CAPTION, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_NONE, 14, 11, 279, 0, 13, STR_NEWGRF_SETTINGS_CAPTION, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_PANEL, RESIZE_NONE, 14, 0, 279, 183, 276, 0x0, STR_NULL}, { WWT_PANEL, RESIZE_NONE, 14, 0, 279, 183, 276, 0x0, STR_NULL},
{ WWT_MATRIX, RESIZE_NONE, 14, 0, 267, 14, 182, 0xC01,/*small rows*/ STR_NEWGRF_TIP}, { WWT_MATRIX, RESIZE_NONE, 14, 0, 267, 14, 182, 0xC01, /*small rows*/ STR_NEWGRF_TIP},
{ WWT_SCROLLBAR, RESIZE_NONE, 14, 268, 279, 14, 182, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST}, { WWT_SCROLLBAR, RESIZE_NONE, 14, 268, 279, 14, 182, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 147, 158, 244, 255, STR_0188, STR_NULL}, { WWT_TEXTBTN, RESIZE_NONE, 14, 147, 158, 244, 255, STR_0188, STR_NULL},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 159, 170, 244, 255, STR_0189, STR_NULL}, { WWT_TEXTBTN, RESIZE_NONE, 14, 159, 170, 244, 255, STR_0189, STR_NULL},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 175, 274, 244, 255, STR_NEWGRF_SET_PARAMETERS, STR_NULL}, { WWT_TEXTBTN, RESIZE_NONE, 14, 175, 274, 244, 255, STR_NEWGRF_SET_PARAMETERS, STR_NULL},
{ WWT_PUSHTXTBTN, RESIZE_NONE, 3, 5, 138, 261, 272, STR_NEWGRF_APPLY_CHANGES, STR_NULL}, { WWT_PUSHTXTBTN, RESIZE_NONE, 3, 5, 138, 261, 272, STR_NEWGRF_APPLY_CHANGES, STR_NULL},
{ WWT_PUSHTXTBTN, RESIZE_NONE, 3, 142, 274, 261, 272, STR_012E_CANCEL, STR_NULL}, { WWT_PUSHTXTBTN, RESIZE_NONE, 3, 142, 274, 261, 272, STR_012E_CANCEL, STR_NULL},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -1261,9 +1261,9 @@ static void CustCurrencyWndProc(Window *w, WindowEvent *e)
} }
static const Widget _cust_currency_widgets[] = { static const Widget _cust_currency_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, 229, 0, 13, STR_CURRENCY_WINDOW, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_NONE, 14, 11, 229, 0, 13, STR_CURRENCY_WINDOW, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_PANEL, RESIZE_NONE, 14, 0, 229, 14, 119, 0x0, STR_NULL}, { WWT_PANEL, RESIZE_NONE, 14, 0, 229, 14, 119, 0x0, STR_NULL},
{ WIDGETS_END}, { WIDGETS_END},
}; };

View File

@ -287,14 +287,14 @@ static void UpdateShipDeltaXY(Vehicle *v, int dir)
{ {
#define MKIT(d,c,b,a) ((a&0xFF)<<24) | ((b&0xFF)<<16) | ((c&0xFF)<<8) | ((d&0xFF)<<0) #define MKIT(d,c,b,a) ((a&0xFF)<<24) | ((b&0xFF)<<16) | ((c&0xFF)<<8) | ((d&0xFF)<<0)
static const uint32 _delta_xy_table[8] = { static const uint32 _delta_xy_table[8] = {
MKIT( -3, -3, 6, 6), MKIT( -3, -3, 6, 6),
MKIT(-16, -3, 32, 6), MKIT(-16, -3, 32, 6),
MKIT( -3, -3, 6, 6), MKIT( -3, -3, 6, 6),
MKIT( -3,-16, 6, 32), MKIT( -3, -16, 6, 32),
MKIT( -3, -3, 6, 6), MKIT( -3, -3, 6, 6),
MKIT(-16, -3, 32, 6), MKIT(-16, -3, 32, 6),
MKIT( -3, -3, 6, 6), MKIT( -3, -3, 6, 6),
MKIT( -3,-16, 6, 32), MKIT( -3, -16, 6, 32),
}; };
#undef MKIT #undef MKIT
uint32 x = _delta_xy_table[dir]; uint32 x = _delta_xy_table[dir];

View File

@ -127,11 +127,11 @@ static void ShipRefitWndProc(Window *w, WindowEvent *e)
static const Widget _ship_refit_widgets[] = { static const Widget _ship_refit_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, 239, 0, 13, STR_983B_REFIT, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_NONE, 14, 11, 239, 0, 13, STR_983B_REFIT, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 239, 14, 135, 0x0, STR_983D_SELECT_TYPE_OF_CARGO_FOR}, { WWT_IMGBTN, RESIZE_NONE, 14, 0, 239, 14, 135, 0x0, STR_983D_SELECT_TYPE_OF_CARGO_FOR},
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 239, 136, 157, 0x0, STR_NULL}, { WWT_IMGBTN, RESIZE_NONE, 14, 0, 239, 136, 157, 0x0, STR_NULL},
{ WWT_PUSHTXTBTN, RESIZE_NONE, 14, 0, 239, 158, 169, STR_983C_REFIT_SHIP, STR_983E_REFIT_SHIP_TO_CARRY_HIGHLIGHTED}, { WWT_PUSHTXTBTN, RESIZE_NONE, 14, 0, 239, 158, 169, STR_983C_REFIT_SHIP, STR_983E_REFIT_SHIP_TO_CARRY_HIGHLIGHTED},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -268,14 +268,14 @@ do_change_service_int:
static const Widget _ship_details_widgets[] = { static const Widget _ship_details_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, 364, 0, 13, STR_9811_DETAILS,STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_NONE, 14, 11, 364, 0, 13, STR_9811_DETAILS, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_PUSHTXTBTN, RESIZE_NONE, 14, 365, 404, 0, 13, STR_01AA_NAME, STR_982F_NAME_SHIP}, { WWT_PUSHTXTBTN, RESIZE_NONE, 14, 365, 404, 0, 13, STR_01AA_NAME, STR_982F_NAME_SHIP},
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 404, 14, 55, 0x0, STR_NULL}, { WWT_IMGBTN, RESIZE_NONE, 14, 0, 404, 14, 55, 0x0, STR_NULL},
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 404, 56, 88, 0x0, STR_NULL}, { WWT_IMGBTN, RESIZE_NONE, 14, 0, 404, 56, 88, 0x0, STR_NULL},
{ WWT_PUSHTXTBTN, RESIZE_NONE, 14, 0, 10, 89, 94, STR_0188, STR_884D_INCREASE_SERVICING_INTERVAL}, { WWT_PUSHTXTBTN, RESIZE_NONE, 14, 0, 10, 89, 94, STR_0188, STR_884D_INCREASE_SERVICING_INTERVAL},
{ WWT_PUSHTXTBTN, RESIZE_NONE, 14, 0, 10, 95, 100, STR_0189, STR_884E_DECREASE_SERVICING_INTERVAL}, { WWT_PUSHTXTBTN, RESIZE_NONE, 14, 0, 10, 95, 100, STR_0189, STR_884E_DECREASE_SERVICING_INTERVAL},
{ WWT_IMGBTN, RESIZE_NONE, 14, 11, 404, 89, 100, 0x0, STR_NULL}, { WWT_IMGBTN, RESIZE_NONE, 14, 11, 404, 89, 100, 0x0, STR_NULL},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -411,14 +411,14 @@ static void NewShipWndProc(Window *w, WindowEvent *e)
} }
static const Widget _new_ship_widgets[] = { static const Widget _new_ship_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, 254, 0, 13, STR_9808_NEW_SHIPS, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_NONE, 14, 11, 254, 0, 13, STR_9808_NEW_SHIPS, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_MATRIX, RESIZE_BOTTOM, 14, 0, 242, 14, 109, 0x401, STR_9825_SHIP_SELECTION_LIST_CLICK}, { WWT_MATRIX, RESIZE_BOTTOM, 14, 0, 242, 14, 109, 0x401, STR_9825_SHIP_SELECTION_LIST_CLICK},
{ WWT_SCROLLBAR, RESIZE_BOTTOM, 14, 243, 254, 14, 109, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST}, { WWT_SCROLLBAR, RESIZE_BOTTOM, 14, 243, 254, 14, 109, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST},
{ WWT_IMGBTN, RESIZE_TB, 14, 0, 254, 110, 161, 0x0, STR_NULL}, { WWT_IMGBTN, RESIZE_TB, 14, 0, 254, 110, 161, 0x0, STR_NULL},
{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 0, 121, 162, 173, STR_9809_BUILD_SHIP, STR_9826_BUILD_THE_HIGHLIGHTED_SHIP}, { WWT_PUSHTXTBTN, RESIZE_TB, 14, 0, 121, 162, 173, STR_9809_BUILD_SHIP, STR_9826_BUILD_THE_HIGHLIGHTED_SHIP},
{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 122, 242, 162, 173, STR_9836_RENAME, STR_9837_RENAME_SHIP_TYPE}, { WWT_PUSHTXTBTN, RESIZE_TB, 14, 122, 242, 162, 173, STR_9836_RENAME, STR_9837_RENAME_SHIP_TYPE},
{ WWT_RESIZEBOX, RESIZE_TB, 14, 243, 254, 162, 173, 0x0, STR_RESIZE_BUTTON}, { WWT_RESIZEBOX, RESIZE_TB, 14, 243, 254, 162, 173, 0x0, STR_RESIZE_BUTTON},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -571,20 +571,20 @@ static void ShipViewWndProc(Window *w, WindowEvent *e)
} }
static const Widget _ship_view_widgets[] = { static const Widget _ship_view_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_RIGHT, 14, 11, 237, 0, 13, STR_980F, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_RIGHT, 14, 11, 237, 0, 13, STR_980F, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_STICKYBOX, RESIZE_LR, 14, 238, 249, 0, 13, 0x0, STR_STICKY_BUTTON}, { 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_IMGBTN, RESIZE_RB, 14, 0, 231, 14, 103, 0x0, STR_NULL},
{ WWT_6, RESIZE_RB, 14, 2, 229, 16, 101, 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_9827_CURRENT_SHIP_ACTION_CLICK}, { WWT_PUSHIMGBTN, RESIZE_RTB, 14, 0, 237, 104, 115, 0x0, STR_9827_CURRENT_SHIP_ACTION_CLICK},
{ WWT_PUSHIMGBTN, RESIZE_LR, 14, 232, 249, 14, 31, 0x2AB, STR_9829_CENTER_MAIN_VIEW_ON_SHIP}, { WWT_PUSHIMGBTN, RESIZE_LR, 14, 232, 249, 14, 31, 0x2AB, STR_9829_CENTER_MAIN_VIEW_ON_SHIP},
{ WWT_PUSHIMGBTN, RESIZE_LR, 14, 232, 249, 32, 49, 0x2B0, STR_982A_SEND_SHIP_TO_DEPOT}, { WWT_PUSHIMGBTN, RESIZE_LR, 14, 232, 249, 32, 49, 0x2B0, STR_982A_SEND_SHIP_TO_DEPOT},
{ WWT_PUSHIMGBTN, RESIZE_LR, 14, 232, 249, 50, 67, 0x2B4, STR_983A_REFIT_CARGO_SHIP_TO_CARRY}, { WWT_PUSHIMGBTN, RESIZE_LR, 14, 232, 249, 50, 67, 0x2B4, STR_983A_REFIT_CARGO_SHIP_TO_CARRY},
{ WWT_PUSHIMGBTN, RESIZE_LR, 14, 232, 249, 68, 85, 0x2B2, STR_9828_SHOW_SHIP_S_ORDERS}, { WWT_PUSHIMGBTN, RESIZE_LR, 14, 232, 249, 68, 85, 0x2B2, STR_9828_SHOW_SHIP_S_ORDERS},
{ WWT_PUSHIMGBTN, RESIZE_LR, 14, 232, 249, 86, 103, 0x2B3, STR_982B_SHOW_SHIP_DETAILS}, { WWT_PUSHIMGBTN, RESIZE_LR, 14, 232, 249, 86, 103, 0x2B3, STR_982B_SHOW_SHIP_DETAILS},
{ WWT_PUSHIMGBTN, RESIZE_LR, 14, 232, 249, 32, 49, SPR_CLONE_SHIP, STR_CLONE_SHIP_INFO}, { WWT_PUSHIMGBTN, RESIZE_LR, 14, 232, 249, 32, 49, SPR_CLONE_SHIP, STR_CLONE_SHIP_INFO},
{ WWT_PANEL, RESIZE_LRB, 14, 232, 249, 104, 103, 0x0, STR_NULL }, { WWT_PANEL, RESIZE_LRB, 14, 232, 249, 104, 103, 0x0, STR_NULL },
{ WWT_RESIZEBOX, RESIZE_LRTB, 14, 238, 249, 104, 115, 0x0, STR_NULL }, { WWT_RESIZEBOX, RESIZE_LRTB, 14, 238, 249, 104, 115, 0x0, STR_NULL },
{ WIDGETS_END } { WIDGETS_END }
}; };
@ -854,19 +854,19 @@ static void ShipDepotWndProc(Window *w, WindowEvent *e)
} }
static const Widget _ship_depot_widgets[] = { static const Widget _ship_depot_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_RIGHT, 14, 11, 292, 0, 13, STR_9803_SHIP_DEPOT, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_RIGHT, 14, 11, 292, 0, 13, STR_9803_SHIP_DEPOT, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_STICKYBOX, RESIZE_LR, 14, 293, 304, 0, 13, 0x0, STR_STICKY_BUTTON}, { WWT_STICKYBOX, RESIZE_LR, 14, 293, 304, 0, 13, 0x0, STR_STICKY_BUTTON},
{ WWT_PANEL, RESIZE_LRB, 14, 270, 292, 14, 13, 0x0, STR_NULL}, { WWT_PANEL, RESIZE_LRB, 14, 270, 292, 14, 13, 0x0, STR_NULL},
{ WWT_IMGBTN, RESIZE_LRTB, 14, 270, 292, 14, 61, 0x2A9, STR_9821_DRAG_SHIP_TO_HERE_TO_SELL}, { WWT_IMGBTN, RESIZE_LRTB, 14, 270, 292, 14, 61, 0x2A9, STR_9821_DRAG_SHIP_TO_HERE_TO_SELL},
{ WWT_MATRIX, RESIZE_RB, 14, 0, 269, 14, 61, 0x203, STR_981F_SHIPS_CLICK_ON_SHIP_FOR}, { WWT_MATRIX, RESIZE_RB, 14, 0, 269, 14, 61, 0x203, STR_981F_SHIPS_CLICK_ON_SHIP_FOR},
{ WWT_SCROLLBAR, RESIZE_LRB, 14, 293, 304, 14, 61, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST}, { WWT_SCROLLBAR, RESIZE_LRB, 14, 293, 304, 14, 61, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST},
{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 0, 96, 62, 73, STR_9804_NEW_SHIPS, STR_9820_BUILD_NEW_SHIP}, { WWT_PUSHTXTBTN, RESIZE_TB, 14, 0, 96, 62, 73, STR_9804_NEW_SHIPS, STR_9820_BUILD_NEW_SHIP},
{WWT_NODISTXTBTN, RESIZE_TB, 14, 97, 194, 62, 73, STR_CLONE_SHIP, STR_CLONE_SHIP_DEPOT_INFO}, {WWT_NODISTXTBTN, RESIZE_TB, 14, 97, 194, 62, 73, STR_CLONE_SHIP, STR_CLONE_SHIP_DEPOT_INFO},
{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 195, 292, 62, 73, STR_00E4_LOCATION, STR_9822_CENTER_MAIN_VIEW_ON_SHIP}, { WWT_PUSHTXTBTN, RESIZE_TB, 14, 195, 292, 62, 73, STR_00E4_LOCATION, STR_9822_CENTER_MAIN_VIEW_ON_SHIP},
{ WWT_PANEL, RESIZE_RTB, 14, 293, 292, 62, 73, 0x0, STR_NULL}, { WWT_PANEL, RESIZE_RTB, 14, 293, 292, 62, 73, 0x0, STR_NULL},
{ WWT_RESIZEBOX, RESIZE_LRTB, 14, 293, 304, 62, 73, 0x0, STR_RESIZE_BUTTON}, { WWT_RESIZEBOX, RESIZE_LRTB, 14, 293, 304, 62, 73, 0x0, STR_RESIZE_BUTTON},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -919,34 +919,34 @@ static void DrawSmallOrderList(const Vehicle *v, int x, int y)
static const Widget _player_ships_widgets[] = { static const Widget _player_ships_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_RIGHT, 14, 11, 247, 0, 13, STR_9805_SHIPS, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_RIGHT, 14, 11, 247, 0, 13, STR_9805_SHIPS, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_STICKYBOX, RESIZE_LR, 14, 248, 259, 0, 13, 0x0, STR_STICKY_BUTTON}, { 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_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_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_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_PANEL, RESIZE_RIGHT, 14, 248, 259, 14, 25, 0x0, STR_NULL},
{ WWT_MATRIX, RESIZE_RB, 14, 0, 247, 26, 169, 0x401, STR_9823_SHIPS_CLICK_ON_SHIP_FOR}, { WWT_MATRIX, RESIZE_RB, 14, 0, 247, 26, 169, 0x401, STR_9823_SHIPS_CLICK_ON_SHIP_FOR},
{ WWT_SCROLLBAR, RESIZE_LRB, 14, 248, 259, 26, 169, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST}, { 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_9804_NEW_SHIPS, STR_9824_BUILD_NEW_SHIPS_REQUIRES}, { WWT_PUSHTXTBTN, RESIZE_TB, 14, 0, 124, 170, 181, STR_9804_NEW_SHIPS, STR_9824_BUILD_NEW_SHIPS_REQUIRES},
{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 125, 247, 170, 181, STR_REPLACE_VEHICLES, STR_REPLACE_HELP}, { 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_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_RESIZEBOX, RESIZE_LRTB, 14, 248, 259, 170, 181, 0x0, STR_RESIZE_BUTTON},
{ WIDGETS_END}, { WIDGETS_END},
}; };
static const Widget _other_player_ships_widgets[] = { static const Widget _other_player_ships_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_RIGHT, 14, 11, 247, 0, 13, STR_9805_SHIPS, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_RIGHT, 14, 11, 247, 0, 13, STR_9805_SHIPS, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_STICKYBOX, RESIZE_LR, 14, 248, 259, 0, 13, 0x0, STR_STICKY_BUTTON}, { 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_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_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_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_PANEL, RESIZE_RIGHT, 14, 248, 259, 14, 25, 0x0, STR_NULL},
{ WWT_MATRIX, RESIZE_RB, 14, 0, 247, 26, 169, 0x401, STR_9823_SHIPS_CLICK_ON_SHIP_FOR}, { WWT_MATRIX, RESIZE_RB, 14, 0, 247, 26, 169, 0x401, STR_9823_SHIPS_CLICK_ON_SHIP_FOR},
{ WWT_SCROLLBAR, RESIZE_LRB, 14, 248, 259, 26, 169, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST}, { 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_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_RESIZEBOX, RESIZE_LRTB, 14, 248, 259, 170, 181, 0x0, STR_RESIZE_BUTTON},
{ WIDGETS_END}, { WIDGETS_END},
}; };

14
signs.c
View File

@ -226,13 +226,13 @@ void InitializeSigns(void)
} }
static const SaveLoad _sign_desc[] = { static const SaveLoad _sign_desc[] = {
SLE_VAR(SignStruct,str, SLE_UINT16), SLE_VAR(SignStruct, str, SLE_UINT16),
SLE_CONDVAR(SignStruct,x, SLE_FILE_I16 | SLE_VAR_I32, 0, 4), SLE_CONDVAR(SignStruct, x, SLE_FILE_I16 | SLE_VAR_I32, 0, 4),
SLE_CONDVAR(SignStruct,y, SLE_FILE_I16 | SLE_VAR_I32, 0, 4), SLE_CONDVAR(SignStruct, y, SLE_FILE_I16 | SLE_VAR_I32, 0, 4),
SLE_CONDVAR(SignStruct,x, SLE_INT32, 5, SL_MAX_VERSION), SLE_CONDVAR(SignStruct, x, SLE_INT32, 5, SL_MAX_VERSION),
SLE_CONDVAR(SignStruct,y, SLE_INT32, 5, SL_MAX_VERSION), SLE_CONDVAR(SignStruct, y, SLE_INT32, 5, SL_MAX_VERSION),
SLE_CONDVAR(SignStruct,owner, SLE_UINT8, 6, SL_MAX_VERSION), SLE_CONDVAR(SignStruct, owner, SLE_UINT8, 6, SL_MAX_VERSION),
SLE_VAR(SignStruct,z, SLE_UINT8), SLE_VAR(SignStruct, z, SLE_UINT8),
SLE_END() SLE_END()
}; };

40
slope.h
View File

@ -4,27 +4,27 @@
#define SLOPE_H #define SLOPE_H
typedef enum Slope { typedef enum Slope {
SLOPE_FLAT = 0x00, SLOPE_FLAT = 0x00,
SLOPE_W = 0x01, SLOPE_W = 0x01,
SLOPE_S = 0x02, SLOPE_S = 0x02,
SLOPE_E = 0x04, SLOPE_E = 0x04,
SLOPE_N = 0x08, SLOPE_N = 0x08,
SLOPE_STEEP = 0x10, SLOPE_STEEP = 0x10,
SLOPE_NW = SLOPE_N | SLOPE_W, SLOPE_NW = SLOPE_N | SLOPE_W,
SLOPE_SW = SLOPE_S | SLOPE_W, SLOPE_SW = SLOPE_S | SLOPE_W,
SLOPE_SE = SLOPE_S | SLOPE_E, SLOPE_SE = SLOPE_S | SLOPE_E,
SLOPE_NE = SLOPE_N | SLOPE_E, SLOPE_NE = SLOPE_N | SLOPE_E,
SLOPE_EW = SLOPE_E | SLOPE_W, SLOPE_EW = SLOPE_E | SLOPE_W,
SLOPE_NS = SLOPE_N | SLOPE_S, SLOPE_NS = SLOPE_N | SLOPE_S,
SLOPE_ELEVATED = SLOPE_N | SLOPE_E | SLOPE_S | SLOPE_W, SLOPE_ELEVATED = SLOPE_N | SLOPE_E | SLOPE_S | SLOPE_W,
SLOPE_NWS = SLOPE_N | SLOPE_W | SLOPE_S, SLOPE_NWS = SLOPE_N | SLOPE_W | SLOPE_S,
SLOPE_WSE = SLOPE_W | SLOPE_S | SLOPE_E, SLOPE_WSE = SLOPE_W | SLOPE_S | SLOPE_E,
SLOPE_SEN = SLOPE_S | SLOPE_E | SLOPE_N, SLOPE_SEN = SLOPE_S | SLOPE_E | SLOPE_N,
SLOPE_ENW = SLOPE_E | SLOPE_N | SLOPE_W, SLOPE_ENW = SLOPE_E | SLOPE_N | SLOPE_W,
SLOPE_STEEP_W = SLOPE_STEEP | SLOPE_NWS, SLOPE_STEEP_W = SLOPE_STEEP | SLOPE_NWS,
SLOPE_STEEP_S = SLOPE_STEEP | SLOPE_WSE, SLOPE_STEEP_S = SLOPE_STEEP | SLOPE_WSE,
SLOPE_STEEP_E = SLOPE_STEEP | SLOPE_SEN, SLOPE_STEEP_E = SLOPE_STEEP | SLOPE_SEN,
SLOPE_STEEP_N = SLOPE_STEEP | SLOPE_ENW SLOPE_STEEP_N = SLOPE_STEEP | SLOPE_ENW
} Slope; } Slope;
static inline bool IsSteepSlope(Slope s) static inline bool IsSteepSlope(Slope s)

View File

@ -53,130 +53,130 @@ static bool _smallmap_show_towns = true;
/* Legend text giving the colours to look for on the minimap */ /* Legend text giving the colours to look for on the minimap */
static const uint16 _legend_land_contours[] = { static const uint16 _legend_land_contours[] = {
MK(0x5A,STR_00F0_100M), MK(0x5A, STR_00F0_100M),
MK(0x5C,STR_00F1_200M), MK(0x5C, STR_00F1_200M),
MK(0x5E,STR_00F2_300M), MK(0x5E, STR_00F2_300M),
MK(0x1F,STR_00F3_400M), MK(0x1F, STR_00F3_400M),
MK(0x27,STR_00F4_500M), MK(0x27, STR_00F4_500M),
MS(0xD7,STR_00EB_ROADS), MS(0xD7, STR_00EB_ROADS),
MK(0x0A,STR_00EC_RAILROADS), MK(0x0A, STR_00EC_RAILROADS),
MK(0x98,STR_00ED_STATIONS_AIRPORTS_DOCKS), MK(0x98, STR_00ED_STATIONS_AIRPORTS_DOCKS),
MK(0xB5,STR_00EE_BUILDINGS_INDUSTRIES), MK(0xB5, STR_00EE_BUILDINGS_INDUSTRIES),
MK(0x0F,STR_00EF_VEHICLES), MK(0x0F, STR_00EF_VEHICLES),
MKEND() MKEND()
}; };
static const uint16 _legend_vehicles[] = { static const uint16 _legend_vehicles[] = {
MK(0xB8,STR_00F5_TRAINS), MK(0xB8, STR_00F5_TRAINS),
MK(0xBF,STR_00F6_ROAD_VEHICLES), MK(0xBF, STR_00F6_ROAD_VEHICLES),
MK(0x98,STR_00F7_SHIPS), MK(0x98, STR_00F7_SHIPS),
MK(0x0F,STR_00F8_AIRCRAFT), MK(0x0F, STR_00F8_AIRCRAFT),
MS(0xD7,STR_00F9_TRANSPORT_ROUTES), MS(0xD7, STR_00F9_TRANSPORT_ROUTES),
MK(0xB5,STR_00EE_BUILDINGS_INDUSTRIES), MK(0xB5, STR_00EE_BUILDINGS_INDUSTRIES),
MKEND() MKEND()
}; };
static const uint16 _legend_industries_normal[] = { static const uint16 _legend_industries_normal[] = {
MK(0xD7,STR_00FA_COAL_MINE), MK(0xD7, STR_00FA_COAL_MINE),
MK(0xB8,STR_00FB_POWER_STATION), MK(0xB8, STR_00FB_POWER_STATION),
MK(0x56,STR_00FC_FOREST), MK(0x56, STR_00FC_FOREST),
MK(0xC2,STR_00FD_SAWMILL), MK(0xC2, STR_00FD_SAWMILL),
MK(0xBF,STR_00FE_OIL_REFINERY), MK(0xBF, STR_00FE_OIL_REFINERY),
MK(0x0F,STR_0105_BANK), MK(0x0F, STR_0105_BANK),
MS(0x30,STR_00FF_FARM), MS(0x30, STR_00FF_FARM),
MK(0xAE,STR_0100_FACTORY), MK(0xAE, STR_0100_FACTORY),
MK(0x98,STR_0102_OIL_WELLS), MK(0x98, STR_0102_OIL_WELLS),
MK(0x37,STR_0103_IRON_ORE_MINE), MK(0x37, STR_0103_IRON_ORE_MINE),
MK(0x0A,STR_0104_STEEL_MILL), MK(0x0A, STR_0104_STEEL_MILL),
MKEND() MKEND()
}; };
static const uint16 _legend_industries_hilly[] = { static const uint16 _legend_industries_hilly[] = {
MK(0xD7,STR_00FA_COAL_MINE), MK(0xD7, STR_00FA_COAL_MINE),
MK(0xB8,STR_00FB_POWER_STATION), MK(0xB8, STR_00FB_POWER_STATION),
MK(0x56,STR_00FC_FOREST), MK(0x56, STR_00FC_FOREST),
MK(0x0A,STR_0106_PAPER_MILL), MK(0x0A, STR_0106_PAPER_MILL),
MK(0xBF,STR_00FE_OIL_REFINERY), MK(0xBF, STR_00FE_OIL_REFINERY),
MK(0x37,STR_0108_FOOD_PROCESSING_PLANT), MK(0x37, STR_0108_FOOD_PROCESSING_PLANT),
MS(0x30,STR_00FF_FARM), MS(0x30, STR_00FF_FARM),
MK(0xAE,STR_0101_PRINTING_WORKS), MK(0xAE, STR_0101_PRINTING_WORKS),
MK(0x98,STR_0102_OIL_WELLS), MK(0x98, STR_0102_OIL_WELLS),
MK(0xC2,STR_0107_GOLD_MINE), MK(0xC2, STR_0107_GOLD_MINE),
MK(0x0F,STR_0105_BANK), MK(0x0F, STR_0105_BANK),
MKEND() MKEND()
}; };
static const uint16 _legend_industries_desert[] = { static const uint16 _legend_industries_desert[] = {
MK(0xBF,STR_00FE_OIL_REFINERY), MK(0xBF, STR_00FE_OIL_REFINERY),
MK(0x98,STR_0102_OIL_WELLS), MK(0x98, STR_0102_OIL_WELLS),
MK(0x0F,STR_0105_BANK), MK(0x0F, STR_0105_BANK),
MK(0xB8,STR_0109_DIAMOND_MINE), MK(0xB8, STR_0109_DIAMOND_MINE),
MK(0x37,STR_0108_FOOD_PROCESSING_PLANT), MK(0x37, STR_0108_FOOD_PROCESSING_PLANT),
MK(0x0A,STR_010A_COPPER_ORE_MINE), MK(0x0A, STR_010A_COPPER_ORE_MINE),
MK(0x30,STR_00FF_FARM), MK(0x30, STR_00FF_FARM),
MS(0x56,STR_010B_FRUIT_PLANTATION), MS(0x56, STR_010B_FRUIT_PLANTATION),
MK(0x27,STR_010C_RUBBER_PLANTATION), MK(0x27, STR_010C_RUBBER_PLANTATION),
MK(0x25,STR_010D_WATER_SUPPLY), MK(0x25, STR_010D_WATER_SUPPLY),
MK(0xD0,STR_010E_WATER_TOWER), MK(0xD0, STR_010E_WATER_TOWER),
MK(0xAE,STR_0100_FACTORY), MK(0xAE, STR_0100_FACTORY),
MK(0xC2,STR_010F_LUMBER_MILL), MK(0xC2, STR_010F_LUMBER_MILL),
MKEND() MKEND()
}; };
static const uint16 _legend_industries_candy[] = { static const uint16 _legend_industries_candy[] = {
MK(0x30,STR_0110_COTTON_CANDY_FOREST), MK(0x30, STR_0110_COTTON_CANDY_FOREST),
MK(0xAE,STR_0111_CANDY_FACTORY), MK(0xAE, STR_0111_CANDY_FACTORY),
MK(0x27,STR_0112_BATTERY_FARM), MK(0x27, STR_0112_BATTERY_FARM),
MK(0x37,STR_0113_COLA_WELLS), MK(0x37, STR_0113_COLA_WELLS),
MK(0xD0,STR_0114_TOY_SHOP), MK(0xD0, STR_0114_TOY_SHOP),
MK(0x0A,STR_0115_TOY_FACTORY), MK(0x0A, STR_0115_TOY_FACTORY),
MS(0x25,STR_0116_PLASTIC_FOUNTAINS), MS(0x25, STR_0116_PLASTIC_FOUNTAINS),
MK(0xB8,STR_0117_FIZZY_DRINK_FACTORY), MK(0xB8, STR_0117_FIZZY_DRINK_FACTORY),
MK(0x98,STR_0118_BUBBLE_GENERATOR), MK(0x98, STR_0118_BUBBLE_GENERATOR),
MK(0xC2,STR_0119_TOFFEE_QUARRY), MK(0xC2, STR_0119_TOFFEE_QUARRY),
MK(0x0F,STR_011A_SUGAR_MINE), MK(0x0F, STR_011A_SUGAR_MINE),
MKEND() MKEND()
}; };
static const uint16 _legend_routes[] = { static const uint16 _legend_routes[] = {
MK(0xD7,STR_00EB_ROADS), MK(0xD7, STR_00EB_ROADS),
MK(0x0A,STR_00EC_RAILROADS), MK(0x0A, STR_00EC_RAILROADS),
MK(0xB5,STR_00EE_BUILDINGS_INDUSTRIES), MK(0xB5, STR_00EE_BUILDINGS_INDUSTRIES),
MS(0x56,STR_011B_RAILROAD_STATION), MS(0x56, STR_011B_RAILROAD_STATION),
MK(0xC2,STR_011C_TRUCK_LOADING_BAY), MK(0xC2, STR_011C_TRUCK_LOADING_BAY),
MK(0xBF,STR_011D_BUS_STATION), MK(0xBF, STR_011D_BUS_STATION),
MK(0xB8,STR_011E_AIRPORT_HELIPORT), MK(0xB8, STR_011E_AIRPORT_HELIPORT),
MK(0x98,STR_011F_DOCK), MK(0x98, STR_011F_DOCK),
MKEND() MKEND()
}; };
static const uint16 _legend_vegetation[] = { static const uint16 _legend_vegetation[] = {
MK(0x52,STR_0120_ROUGH_LAND), MK(0x52, STR_0120_ROUGH_LAND),
MK(0x54,STR_0121_GRASS_LAND), MK(0x54, STR_0121_GRASS_LAND),
MK(0x37,STR_0122_BARE_LAND), MK(0x37, STR_0122_BARE_LAND),
MK(0x25,STR_0123_FIELDS), MK(0x25, STR_0123_FIELDS),
MK(0x57,STR_0124_TREES), MK(0x57, STR_0124_TREES),
MK(0xD0,STR_00FC_FOREST), MK(0xD0, STR_00FC_FOREST),
MS(0x0A,STR_0125_ROCKS), MS(0x0A, STR_0125_ROCKS),
MK(0xC2,STR_012A_DESERT), MK(0xC2, STR_012A_DESERT),
MK(0x98,STR_012B_SNOW), MK(0x98, STR_012B_SNOW),
MK(0xD7,STR_00F9_TRANSPORT_ROUTES), MK(0xD7, STR_00F9_TRANSPORT_ROUTES),
MK(0xB5,STR_00EE_BUILDINGS_INDUSTRIES), MK(0xB5, STR_00EE_BUILDINGS_INDUSTRIES),
MKEND() MKEND()
}; };
static const uint16 _legend_land_owners[] = { static const uint16 _legend_land_owners[] = {
MK(0xCA,STR_0126_WATER), MK(0xCA, STR_0126_WATER),
MK(0x54,STR_0127_NO_OWNER), MK(0x54, STR_0127_NO_OWNER),
MK(0xB4,STR_0128_TOWNS), MK(0xB4, STR_0128_TOWNS),
MK(0x20,STR_0129_INDUSTRIES), MK(0x20, STR_0129_INDUSTRIES),
MKEND() MKEND()
}; };
#undef MK #undef MK
@ -269,48 +269,48 @@ static inline uint32 ApplyMask(uint32 colour, const AndOr *mask)
static const AndOr _smallmap_contours_andor[] = { static const AndOr _smallmap_contours_andor[] = {
{MKCOLOR(0x00000000),MKCOLOR(0xFFFFFFFF)}, {MKCOLOR(0x00000000), MKCOLOR(0xFFFFFFFF)},
{MKCOLOR(0x000A0A00),MKCOLOR(0xFF0000FF)}, {MKCOLOR(0x000A0A00), MKCOLOR(0xFF0000FF)},
{MKCOLOR(0x00D7D700),MKCOLOR(0xFF0000FF)}, {MKCOLOR(0x00D7D700), MKCOLOR(0xFF0000FF)},
{MKCOLOR(0x00B5B500),MKCOLOR(0xFF0000FF)}, {MKCOLOR(0x00B5B500), MKCOLOR(0xFF0000FF)},
{MKCOLOR(0x00000000),MKCOLOR(0xFFFFFFFF)}, {MKCOLOR(0x00000000), MKCOLOR(0xFFFFFFFF)},
{MKCOLOR(0x98989898),MKCOLOR(0x00000000)}, {MKCOLOR(0x98989898), MKCOLOR(0x00000000)},
{MKCOLOR(0xCACACACA),MKCOLOR(0x00000000)}, {MKCOLOR(0xCACACACA), MKCOLOR(0x00000000)},
{MKCOLOR(0x00000000),MKCOLOR(0xFFFFFFFF)}, {MKCOLOR(0x00000000), MKCOLOR(0xFFFFFFFF)},
{MKCOLOR(0xB5B5B5B5),MKCOLOR(0x00000000)}, {MKCOLOR(0xB5B5B5B5), MKCOLOR(0x00000000)},
{MKCOLOR(0x00000000),MKCOLOR(0xFFFFFFFF)}, {MKCOLOR(0x00000000), MKCOLOR(0xFFFFFFFF)},
{MKCOLOR(0x00B5B500),MKCOLOR(0xFF0000FF)}, {MKCOLOR(0x00B5B500), MKCOLOR(0xFF0000FF)},
{MKCOLOR(0x000A0A00),MKCOLOR(0xFF0000FF)}, {MKCOLOR(0x000A0A00), MKCOLOR(0xFF0000FF)},
}; };
static const AndOr _smallmap_vehicles_andor[] = { static const AndOr _smallmap_vehicles_andor[] = {
{MKCOLOR(0x00000000),MKCOLOR(0xFFFFFFFF)}, {MKCOLOR(0x00000000), MKCOLOR(0xFFFFFFFF)},
{MKCOLOR(0x00D7D700),MKCOLOR(0xFF0000FF)}, {MKCOLOR(0x00D7D700), MKCOLOR(0xFF0000FF)},
{MKCOLOR(0x00D7D700),MKCOLOR(0xFF0000FF)}, {MKCOLOR(0x00D7D700), MKCOLOR(0xFF0000FF)},
{MKCOLOR(0x00B5B500),MKCOLOR(0xFF0000FF)}, {MKCOLOR(0x00B5B500), MKCOLOR(0xFF0000FF)},
{MKCOLOR(0x00000000),MKCOLOR(0xFFFFFFFF)}, {MKCOLOR(0x00000000), MKCOLOR(0xFFFFFFFF)},
{MKCOLOR(0x00D7D700),MKCOLOR(0xFF0000FF)}, {MKCOLOR(0x00D7D700), MKCOLOR(0xFF0000FF)},
{MKCOLOR(0xCACACACA),MKCOLOR(0x00000000)}, {MKCOLOR(0xCACACACA), MKCOLOR(0x00000000)},
{MKCOLOR(0x00000000),MKCOLOR(0xFFFFFFFF)}, {MKCOLOR(0x00000000), MKCOLOR(0xFFFFFFFF)},
{MKCOLOR(0xB5B5B5B5),MKCOLOR(0x00000000)}, {MKCOLOR(0xB5B5B5B5), MKCOLOR(0x00000000)},
{MKCOLOR(0x00000000),MKCOLOR(0xFFFFFFFF)}, {MKCOLOR(0x00000000), MKCOLOR(0xFFFFFFFF)},
{MKCOLOR(0x00B5B500),MKCOLOR(0xFF0000FF)}, {MKCOLOR(0x00B5B500), MKCOLOR(0xFF0000FF)},
{MKCOLOR(0x00D7D700),MKCOLOR(0xFF0000FF)}, {MKCOLOR(0x00D7D700), MKCOLOR(0xFF0000FF)},
}; };
static const AndOr _smallmap_vegetation_andor[] = { static const AndOr _smallmap_vegetation_andor[] = {
{MKCOLOR(0x00000000),MKCOLOR(0xFFFFFFFF)}, {MKCOLOR(0x00000000), MKCOLOR(0xFFFFFFFF)},
{MKCOLOR(0x00D7D700),MKCOLOR(0xFF0000FF)}, {MKCOLOR(0x00D7D700), MKCOLOR(0xFF0000FF)},
{MKCOLOR(0x00D7D700),MKCOLOR(0xFF0000FF)}, {MKCOLOR(0x00D7D700), MKCOLOR(0xFF0000FF)},
{MKCOLOR(0x00B5B500),MKCOLOR(0xFF0000FF)}, {MKCOLOR(0x00B5B500), MKCOLOR(0xFF0000FF)},
{MKCOLOR(0x00575700),MKCOLOR(0xFF0000FF)}, {MKCOLOR(0x00575700), MKCOLOR(0xFF0000FF)},
{MKCOLOR(0x00D7D700),MKCOLOR(0xFF0000FF)}, {MKCOLOR(0x00D7D700), MKCOLOR(0xFF0000FF)},
{MKCOLOR(0xCACACACA),MKCOLOR(0x00000000)}, {MKCOLOR(0xCACACACA), MKCOLOR(0x00000000)},
{MKCOLOR(0x00000000),MKCOLOR(0xFFFFFFFF)}, {MKCOLOR(0x00000000), MKCOLOR(0xFFFFFFFF)},
{MKCOLOR(0xB5B5B5B5),MKCOLOR(0x00000000)}, {MKCOLOR(0xB5B5B5B5), MKCOLOR(0x00000000)},
{MKCOLOR(0x00000000),MKCOLOR(0xFFFFFFFF)}, {MKCOLOR(0x00000000), MKCOLOR(0xFFFFFFFF)},
{MKCOLOR(0x00B5B500),MKCOLOR(0xFF0000FF)}, {MKCOLOR(0x00B5B500), MKCOLOR(0xFF0000FF)},
{MKCOLOR(0x00D7D700),MKCOLOR(0xFF0000FF)}, {MKCOLOR(0x00D7D700), MKCOLOR(0xFF0000FF)},
}; };
typedef uint32 GetSmallMapPixels(TileIndex tile); // typedef callthrough function typedef uint32 GetSmallMapPixels(TileIndex tile); // typedef callthrough function
@ -393,28 +393,28 @@ static inline uint32 GetSmallMapVehiclesPixels(TileIndex tile)
/* Industry colours... a total of 175 gfx - XXX - increase if more industries */ /* Industry colours... a total of 175 gfx - XXX - increase if more industries */
static const byte _industry_smallmap_colors[175] = { static const byte _industry_smallmap_colors[175] = {
215,215,215,215,215,215,215,184, 215, 215, 215, 215, 215, 215, 215, 184,
184,184,184,194,194,194,194,194, 184, 184, 184, 194, 194, 194, 194, 194,
86, 86,191,191,191,191,191,191, 86, 86, 191, 191, 191, 191, 191, 191,
152,152,152,152,152,152,152,152, 152, 152, 152, 152, 152, 152, 152, 152,
152, 48, 48, 48, 48, 48, 48,174, 152, 48, 48, 48, 48, 48, 48, 174,
174,174,174,174,174,174,174, 10, 174, 174, 174, 174, 174, 174, 174, 10,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
10, 10, 15, 15, 55, 55, 55, 55, 10, 10, 15, 15, 55, 55, 55, 55,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
194,194,194,194,194,194,194,194, 194, 194, 194, 194, 194, 194, 194, 194,
194,194,194,194,194,194,194,194, 194, 194, 194, 194, 194, 194, 194, 194,
194, 15, 15,184,184,184,184,184, 194, 15, 15, 184, 184, 184, 184, 184,
184,184,184,184, 55, 55, 55, 55, 184, 184, 184, 184, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 86, 39, 37, 37, 55, 55, 55, 55, 86, 39, 37, 37,
208,174,174,174,174,194,194,194, 208, 174, 174, 174, 174, 194, 194, 194,
194, 48, 48,174,174,174,174, 39, 194, 48, 48, 174, 174, 174, 174, 39,
39, 55,208,208,208,208, 10, 10, 39, 55, 208, 208, 208, 208, 10, 10,
10, 10, 10, 10, 37, 37, 37, 37, 10, 10, 10, 10, 37, 37, 37, 37,
37, 37, 37, 37,184,184,184,184, 37, 37, 37, 37, 184, 184, 184, 184,
152,152,152,152,194,194,194, 15, 152, 152, 152, 152, 194, 194, 194, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
}; };
/** /**
@ -998,18 +998,18 @@ void ShowSmallMap(void)
/* Extra ViewPort Window Stuff */ /* Extra ViewPort Window Stuff */
static const Widget _extra_view_port_widgets[] = { static const Widget _extra_view_port_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_RIGHT, 14, 11, 287, 0, 13, STR_EXTRA_VIEW_PORT_TITLE, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_RIGHT, 14, 11, 287, 0, 13, STR_EXTRA_VIEW_PORT_TITLE, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_STICKYBOX, RESIZE_LR, 14, 288, 299, 0, 13, 0x0, STR_STICKY_BUTTON}, { WWT_STICKYBOX, RESIZE_LR, 14, 288, 299, 0, 13, 0x0, STR_STICKY_BUTTON},
{ WWT_PANEL, RESIZE_RB, 14, 0, 299, 14, 233, 0x0, STR_NULL}, { WWT_PANEL, RESIZE_RB, 14, 0, 299, 14, 233, 0x0, STR_NULL},
{ WWT_6, RESIZE_RB, 14, 2, 297, 16, 231, 0x0, STR_NULL}, { WWT_6, RESIZE_RB, 14, 2, 297, 16, 231, 0x0, STR_NULL},
{ WWT_PANEL, RESIZE_TB, 14, 0, 21, 234, 255, 0x2DF, STR_017F_ZOOM_THE_VIEW_IN}, { WWT_PANEL, RESIZE_TB, 14, 0, 21, 234, 255, 0x2DF, STR_017F_ZOOM_THE_VIEW_IN},
{ WWT_PANEL, RESIZE_TB, 14, 22, 43, 234, 255, 0x2E0, STR_0180_ZOOM_THE_VIEW_OUT}, { WWT_PANEL, RESIZE_TB, 14, 22, 43, 234, 255, 0x2E0, STR_0180_ZOOM_THE_VIEW_OUT},
{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 44, 171, 234, 255, STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW,STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW_TT}, { WWT_PUSHTXTBTN, RESIZE_TB, 14, 44, 171, 234, 255, STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW, STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW_TT},
{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 172, 298, 234, 255, STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN,STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN_TT}, { WWT_PUSHTXTBTN, RESIZE_TB, 14, 172, 298, 234, 255, STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN, STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN_TT},
{ WWT_PANEL, RESIZE_RTB, 14, 299, 299, 234, 255, 0x0, STR_NULL}, { WWT_PANEL, RESIZE_RTB, 14, 299, 299, 234, 255, 0x0, STR_NULL},
{ WWT_PANEL, RESIZE_RTB, 14, 0, 287, 256, 267, 0x0, STR_NULL}, { WWT_PANEL, RESIZE_RTB, 14, 0, 287, 256, 267, 0x0, STR_NULL},
{ WWT_RESIZEBOX, RESIZE_LRTB, 14, 288, 299, 256, 267, 0x0, STR_RESIZE_BUTTON}, { WWT_RESIZEBOX, RESIZE_LRTB, 14, 288, 299, 256, 267, 0x0, STR_RESIZE_BUTTON},
{ WIDGETS_END}, { WIDGETS_END},
}; };

View File

@ -385,7 +385,7 @@ static void* AllocSprite(size_t mem_req)
static uint RotateSprite(uint s) static uint RotateSprite(uint s)
{ {
static const byte _rotate_tile_sprite[19] = { 0,2,4,6,8,10,12,14,1,3,5,7,9,11,13,17,18,16,15 }; static const byte _rotate_tile_sprite[19] = { 0, 2, 4, 6, 8, 10, 12, 14, 1, 3, 5, 7, 9, 11, 13, 17, 18, 16, 15 };
static const byte _coast_map[9] = {0, 4, 3, 1, 2, 6, 8, 5, 7}; static const byte _coast_map[9] = {0, 4, 3, 1, 2, 6, 8, 5, 7};
static const byte _fence_map[6] = {1, 0, 5, 4, 3, 2}; static const byte _fence_map[6] = {1, 0, 5, 4, 3, 2};
@ -399,7 +399,7 @@ static uint RotateSprite(uint s)
X19(4000) X19(4000)
X19(4023) X19(4023)
X19(4042) X19(4042)
MAP(4061,4069,_coast_map) MAP(4061, 4069, _coast_map)
X19(4126) X19(4126)
X19(4145) X19(4145)
X19(4164) X19(4164)

View File

@ -98,15 +98,15 @@ struct Station {
}; };
enum { enum {
FACIL_TRAIN = 1, FACIL_TRAIN = 0x01,
FACIL_TRUCK_STOP = 2, FACIL_TRUCK_STOP = 0x02,
FACIL_BUS_STOP = 4, FACIL_BUS_STOP = 0x04,
FACIL_AIRPORT = 8, FACIL_AIRPORT = 0x08,
FACIL_DOCK = 0x10, FACIL_DOCK = 0x10,
}; };
enum { enum {
// HVOT_PENDING_DELETE = 1<<0, // not needed anymore // HVOT_PENDING_DELETE = 1 << 0, // not needed anymore
HVOT_TRAIN = 1 << 1, HVOT_TRAIN = 1 << 1,
HVOT_BUS = 1 << 2, HVOT_BUS = 1 << 2,
HVOT_TRUCK = 1 << 3, HVOT_TRUCK = 1 << 3,
@ -118,20 +118,20 @@ enum {
}; };
enum { enum {
CA_BUS = 3, CA_BUS = 3,
CA_TRUCK = 3, CA_TRUCK = 3,
CA_AIR_OILPAD = 3, CA_AIR_OILPAD = 3,
CA_TRAIN = 4, CA_TRAIN = 4,
CA_AIR_HELIPORT = 4, CA_AIR_HELIPORT = 4,
CA_AIR_SMALL = 4, CA_AIR_SMALL = 4,
CA_AIR_LARGE = 5, CA_AIR_LARGE = 5,
CA_DOCK = 5, CA_DOCK = 5,
CA_AIR_METRO = 6, CA_AIR_METRO = 6,
CA_AIR_INTER = 8, CA_AIR_INTER = 8,
CA_AIR_COMMUTER = 4, CA_AIR_COMMUTER = 4,
CA_AIR_HELIDEPOT = 4, CA_AIR_HELIDEPOT = 4,
CA_AIR_INTERCON = 10, CA_AIR_INTERCON = 10,
CA_AIR_HELISTATION = 4, CA_AIR_HELISTATION = 4,
}; };
void ModifyStationRatingAround(TileIndex tile, PlayerID owner, int amount, uint radius); void ModifyStationRatingAround(TileIndex tile, PlayerID owner, int amount, uint radius);

View File

@ -1901,8 +1901,8 @@ static const TileIndexDiffC _dock_tileoffs_chkaround[] = {
{ 0, 0}, { 0, 0},
{ 0, -1} { 0, -1}
}; };
static const byte _dock_w_chk[4] = { 2,1,2,1 }; static const byte _dock_w_chk[4] = { 2, 1, 2, 1 };
static const byte _dock_h_chk[4] = { 1,2,1,2 }; static const byte _dock_h_chk[4] = { 1, 2, 1, 2 };
/** Build a dock/haven. /** Build a dock/haven.
* @param tile tile where dock will be built * @param tile tile where dock will be built
@ -2961,58 +2961,58 @@ static const SaveLoad _roadstop_desc[] = {
}; };
static const SaveLoad _station_desc[] = { static const SaveLoad _station_desc[] = {
SLE_CONDVAR(Station, xy, SLE_FILE_U16 | SLE_VAR_U32, 0, 5), SLE_CONDVAR(Station, xy, SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
SLE_CONDVAR(Station, xy, SLE_UINT32, 6, SL_MAX_VERSION), SLE_CONDVAR(Station, xy, SLE_UINT32, 6, SL_MAX_VERSION),
SLE_CONDVAR(Station, bus_tile_obsolete, SLE_FILE_U16 | SLE_VAR_U32, 0, 5), SLE_CONDVAR(Station, bus_tile_obsolete, SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
SLE_CONDVAR(Station, lorry_tile_obsolete, SLE_FILE_U16 | SLE_VAR_U32, 0, 5), SLE_CONDVAR(Station, lorry_tile_obsolete, SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
SLE_CONDVAR(Station, train_tile, SLE_FILE_U16 | SLE_VAR_U32, 0, 5), SLE_CONDVAR(Station, train_tile, SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
SLE_CONDVAR(Station, train_tile, SLE_UINT32, 6, SL_MAX_VERSION), SLE_CONDVAR(Station, train_tile, SLE_UINT32, 6, SL_MAX_VERSION),
SLE_CONDVAR(Station, airport_tile, SLE_FILE_U16 | SLE_VAR_U32, 0, 5), SLE_CONDVAR(Station, airport_tile, SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
SLE_CONDVAR(Station, airport_tile, SLE_UINT32, 6, SL_MAX_VERSION), SLE_CONDVAR(Station, airport_tile, SLE_UINT32, 6, SL_MAX_VERSION),
SLE_CONDVAR(Station, dock_tile, SLE_FILE_U16 | SLE_VAR_U32, 0, 5), SLE_CONDVAR(Station, dock_tile, SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
SLE_CONDVAR(Station, dock_tile, SLE_UINT32, 6, SL_MAX_VERSION), SLE_CONDVAR(Station, dock_tile, SLE_UINT32, 6, SL_MAX_VERSION),
SLE_REF(Station, town, REF_TOWN), SLE_REF(Station, town, REF_TOWN),
SLE_VAR(Station, trainst_w, SLE_UINT8), SLE_VAR(Station, trainst_w, SLE_UINT8),
SLE_CONDVAR(Station, trainst_h, SLE_UINT8, 2, SL_MAX_VERSION), SLE_CONDVAR(Station, trainst_h, SLE_UINT8, 2, SL_MAX_VERSION),
// alpha_order was stored here in savegame format 0 - 3 // alpha_order was stored here in savegame format 0 - 3
SLE_CONDNULL(1, 0, 3), SLE_CONDNULL(1, 0, 3),
SLE_VAR(Station,string_id, SLE_STRINGID), SLE_VAR(Station, string_id, SLE_STRINGID),
SLE_VAR(Station,had_vehicle_of_type,SLE_UINT16), SLE_VAR(Station, had_vehicle_of_type, SLE_UINT16),
SLE_VAR(Station,time_since_load, SLE_UINT8), SLE_VAR(Station, time_since_load, SLE_UINT8),
SLE_VAR(Station,time_since_unload, SLE_UINT8), SLE_VAR(Station, time_since_unload, SLE_UINT8),
SLE_VAR(Station,delete_ctr, SLE_UINT8), SLE_VAR(Station, delete_ctr, SLE_UINT8),
SLE_VAR(Station,owner, SLE_UINT8), SLE_VAR(Station, owner, SLE_UINT8),
SLE_VAR(Station,facilities, SLE_UINT8), SLE_VAR(Station, facilities, SLE_UINT8),
SLE_VAR(Station,airport_type, SLE_UINT8), SLE_VAR(Station, airport_type, SLE_UINT8),
// truck/bus_stop_status was stored here in savegame format 0 - 6 // truck/bus_stop_status was stored here in savegame format 0 - 6
SLE_CONDVAR(Station,truck_stop_status_obsolete, SLE_UINT8, 0, 5), SLE_CONDVAR(Station, truck_stop_status_obsolete, SLE_UINT8, 0, 5),
SLE_CONDVAR(Station,bus_stop_status_obsolete, SLE_UINT8, 0, 5), SLE_CONDVAR(Station, bus_stop_status_obsolete, SLE_UINT8, 0, 5),
// blocked_months was stored here in savegame format 0 - 4.0 // blocked_months was stored here in savegame format 0 - 4.0
SLE_CONDVAR(Station,blocked_months_obsolete, SLE_UINT8, 0, 4), SLE_CONDVAR(Station, blocked_months_obsolete, SLE_UINT8, 0, 4),
SLE_CONDVAR(Station,airport_flags, SLE_VAR_U32 | SLE_FILE_U16, 0, 2), SLE_CONDVAR(Station, airport_flags, SLE_VAR_U32 | SLE_FILE_U16, 0, 2),
SLE_CONDVAR(Station,airport_flags, SLE_UINT32, 3, SL_MAX_VERSION), SLE_CONDVAR(Station, airport_flags, SLE_UINT32, 3, SL_MAX_VERSION),
SLE_CONDNULL(2, 0, 25), /* Ex last-vehicle */ SLE_CONDNULL(2, 0, 25), /* Ex last-vehicle */
SLE_CONDVAR(Station,last_vehicle_type, SLE_UINT8 , 26, SL_MAX_VERSION), SLE_CONDVAR(Station, last_vehicle_type, SLE_UINT8, 26, SL_MAX_VERSION),
// Was custom station class and id // Was custom station class and id
SLE_CONDNULL(2, 3, 25), SLE_CONDNULL(2, 3, 25),
SLE_CONDVAR(Station,build_date, SLE_FILE_U16 | SLE_VAR_I32, 3, 30), SLE_CONDVAR(Station, build_date, SLE_FILE_U16 | SLE_VAR_I32, 3, 30),
SLE_CONDVAR(Station,build_date, SLE_INT32, 31, SL_MAX_VERSION), SLE_CONDVAR(Station, build_date, SLE_INT32, 31, SL_MAX_VERSION),
SLE_CONDREF(Station,bus_stops, REF_ROADSTOPS, 6, SL_MAX_VERSION), SLE_CONDREF(Station, bus_stops, REF_ROADSTOPS, 6, SL_MAX_VERSION),
SLE_CONDREF(Station,truck_stops, REF_ROADSTOPS, 6, SL_MAX_VERSION), SLE_CONDREF(Station, truck_stops, REF_ROADSTOPS, 6, SL_MAX_VERSION),
/* Used by newstations for graphic variations */ /* Used by newstations for graphic variations */
SLE_CONDVAR(Station,random_bits, SLE_UINT16, 27, SL_MAX_VERSION), SLE_CONDVAR(Station, random_bits, SLE_UINT16, 27, SL_MAX_VERSION),
SLE_CONDVAR(Station,waiting_triggers, SLE_UINT8, 27, SL_MAX_VERSION), SLE_CONDVAR(Station, waiting_triggers, SLE_UINT8, 27, SL_MAX_VERSION),
SLE_CONDVAR(Station,num_specs, SLE_UINT8, 27, SL_MAX_VERSION), SLE_CONDVAR(Station, num_specs, SLE_UINT8, 27, SL_MAX_VERSION),
// reserve extra space in savegame here. (currently 32 bytes) // reserve extra space in savegame here. (currently 32 bytes)
SLE_CONDNULL(32, 2, SL_MAX_VERSION), SLE_CONDNULL(32, 2, SL_MAX_VERSION),
@ -3021,15 +3021,15 @@ static const SaveLoad _station_desc[] = {
}; };
static const SaveLoad _goods_desc[] = { static const SaveLoad _goods_desc[] = {
SLE_VAR(GoodsEntry,waiting_acceptance, SLE_UINT16), SLE_VAR(GoodsEntry, waiting_acceptance, SLE_UINT16),
SLE_VAR(GoodsEntry,days_since_pickup, SLE_UINT8), SLE_VAR(GoodsEntry, days_since_pickup, SLE_UINT8),
SLE_VAR(GoodsEntry,rating, SLE_UINT8), SLE_VAR(GoodsEntry, rating, SLE_UINT8),
SLE_CONDVAR(GoodsEntry,enroute_from, SLE_FILE_U8 | SLE_VAR_U16, 0, 6), SLE_CONDVAR(GoodsEntry, enroute_from, SLE_FILE_U8 | SLE_VAR_U16, 0, 6),
SLE_CONDVAR(GoodsEntry,enroute_from, SLE_UINT16, 7, SL_MAX_VERSION), SLE_CONDVAR(GoodsEntry, enroute_from, SLE_UINT16, 7, SL_MAX_VERSION),
SLE_VAR(GoodsEntry,enroute_time, SLE_UINT8), SLE_VAR(GoodsEntry, enroute_time, SLE_UINT8),
SLE_VAR(GoodsEntry,last_speed, SLE_UINT8), SLE_VAR(GoodsEntry, last_speed, SLE_UINT8),
SLE_VAR(GoodsEntry,last_age, SLE_UINT8), SLE_VAR(GoodsEntry, last_age, SLE_UINT8),
SLE_CONDVAR(GoodsEntry,feeder_profit, SLE_INT32, 14, SL_MAX_VERSION), SLE_CONDVAR(GoodsEntry, feeder_profit, SLE_INT32, 14, SL_MAX_VERSION),
SLE_END() SLE_END()
}; };

View File

@ -430,37 +430,37 @@ static const Widget _player_stations_widgets[] = {
{ WWT_SCROLLBAR, RESIZE_LRB, 14, 346, 357, 25, 149, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST}, { WWT_SCROLLBAR, RESIZE_LRB, 14, 346, 357, 25, 149, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST},
{ WWT_RESIZEBOX, RESIZE_LRTB, 14, 346, 357, 150, 161, 0x0, STR_RESIZE_BUTTON}, { WWT_RESIZEBOX, RESIZE_LRTB, 14, 346, 357, 150, 161, 0x0, STR_RESIZE_BUTTON},
//Index 6 //Index 6
{ WWT_TEXTBTN, RESIZE_NONE, 14, 0, 13, 14, 24, STR_TRAIN, STR_USE_CTRL_TO_SELECT_MORE}, { WWT_TEXTBTN, RESIZE_NONE, 14, 0, 13, 14, 24, STR_TRAIN, STR_USE_CTRL_TO_SELECT_MORE},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 14, 27, 14, 24, STR_LORRY, STR_USE_CTRL_TO_SELECT_MORE}, { WWT_TEXTBTN, RESIZE_NONE, 14, 14, 27, 14, 24, STR_LORRY, STR_USE_CTRL_TO_SELECT_MORE},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 28, 41, 14, 24, STR_BUS, STR_USE_CTRL_TO_SELECT_MORE}, { WWT_TEXTBTN, RESIZE_NONE, 14, 28, 41, 14, 24, STR_BUS, STR_USE_CTRL_TO_SELECT_MORE},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 42, 55, 14, 24, STR_PLANE, STR_USE_CTRL_TO_SELECT_MORE}, { WWT_TEXTBTN, RESIZE_NONE, 14, 42, 55, 14, 24, STR_PLANE, STR_USE_CTRL_TO_SELECT_MORE},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 56, 69, 14, 24, STR_SHIP, STR_USE_CTRL_TO_SELECT_MORE}, { WWT_TEXTBTN, RESIZE_NONE, 14, 56, 69, 14, 24, STR_SHIP, STR_USE_CTRL_TO_SELECT_MORE},
//Index 11 //Index 11
{ WWT_PANEL, RESIZE_NONE, 14, 83, 88, 14, 24, 0x0, STR_USE_CTRL_TO_SELECT_MORE}, { WWT_PANEL, RESIZE_NONE, 14, 83, 88, 14, 24, 0x0, STR_USE_CTRL_TO_SELECT_MORE},
{ WWT_PANEL, RESIZE_NONE, 14, 89, 102, 14, 24, 0x0, STR_USE_CTRL_TO_SELECT_MORE}, { WWT_PANEL, RESIZE_NONE, 14, 89, 102, 14, 24, 0x0, STR_USE_CTRL_TO_SELECT_MORE},
{ WWT_PANEL, RESIZE_NONE, 14, 103, 116, 14, 24, 0x0, STR_USE_CTRL_TO_SELECT_MORE}, { WWT_PANEL, RESIZE_NONE, 14, 103, 116, 14, 24, 0x0, STR_USE_CTRL_TO_SELECT_MORE},
{ WWT_PANEL, RESIZE_NONE, 14, 117, 130, 14, 24, 0x0, STR_USE_CTRL_TO_SELECT_MORE}, { WWT_PANEL, RESIZE_NONE, 14, 117, 130, 14, 24, 0x0, STR_USE_CTRL_TO_SELECT_MORE},
{ WWT_PANEL, RESIZE_NONE, 14, 131, 144, 14, 24, 0x0, STR_USE_CTRL_TO_SELECT_MORE}, { WWT_PANEL, RESIZE_NONE, 14, 131, 144, 14, 24, 0x0, STR_USE_CTRL_TO_SELECT_MORE},
{ WWT_PANEL, RESIZE_NONE, 14, 145, 158, 14, 24, 0x0, STR_USE_CTRL_TO_SELECT_MORE}, { WWT_PANEL, RESIZE_NONE, 14, 145, 158, 14, 24, 0x0, STR_USE_CTRL_TO_SELECT_MORE},
{ WWT_PANEL, RESIZE_NONE, 14, 159, 172, 14, 24, 0x0, STR_USE_CTRL_TO_SELECT_MORE}, { WWT_PANEL, RESIZE_NONE, 14, 159, 172, 14, 24, 0x0, STR_USE_CTRL_TO_SELECT_MORE},
{ WWT_PANEL, RESIZE_NONE, 14, 173, 186, 14, 24, 0x0, STR_USE_CTRL_TO_SELECT_MORE}, { WWT_PANEL, RESIZE_NONE, 14, 173, 186, 14, 24, 0x0, STR_USE_CTRL_TO_SELECT_MORE},
{ WWT_PANEL, RESIZE_NONE, 14, 187, 200, 14, 24, 0x0, STR_USE_CTRL_TO_SELECT_MORE}, { WWT_PANEL, RESIZE_NONE, 14, 187, 200, 14, 24, 0x0, STR_USE_CTRL_TO_SELECT_MORE},
{ WWT_PANEL, RESIZE_NONE, 14, 201, 214, 14, 24, 0x0, STR_USE_CTRL_TO_SELECT_MORE}, { WWT_PANEL, RESIZE_NONE, 14, 201, 214, 14, 24, 0x0, STR_USE_CTRL_TO_SELECT_MORE},
{ WWT_PANEL, RESIZE_NONE, 14, 215, 228, 14, 24, 0x0, STR_USE_CTRL_TO_SELECT_MORE}, { WWT_PANEL, RESIZE_NONE, 14, 215, 228, 14, 24, 0x0, STR_USE_CTRL_TO_SELECT_MORE},
{ WWT_PANEL, RESIZE_NONE, 14, 229, 242, 14, 24, 0x0, STR_USE_CTRL_TO_SELECT_MORE}, { WWT_PANEL, RESIZE_NONE, 14, 229, 242, 14, 24, 0x0, STR_USE_CTRL_TO_SELECT_MORE},
{ WWT_PANEL, RESIZE_NONE, 14, 243, 256, 14, 24, 0x0, STR_USE_CTRL_TO_SELECT_MORE}, { WWT_PANEL, RESIZE_NONE, 14, 243, 256, 14, 24, 0x0, STR_USE_CTRL_TO_SELECT_MORE},
{ WWT_PANEL, RESIZE_NONE, 14, 257, 270, 14, 24, 0x0, STR_NO_WAITING_CARGO}, { WWT_PANEL, RESIZE_NONE, 14, 257, 270, 14, 24, 0x0, STR_NO_WAITING_CARGO},
{ WWT_PANEL, RESIZE_RIGHT, 14, 285, 357, 14, 24, 0x0, STR_NULL}, { WWT_PANEL, RESIZE_RIGHT, 14, 285, 357, 14, 24, 0x0, STR_NULL},
//26 //26
{ WWT_PANEL, RESIZE_NONE, 14, 70, 83, 14, 24, 0x0, STR_SELECT_ALL_FACILITIES}, { WWT_PANEL, RESIZE_NONE, 14, 70, 83, 14, 24, 0x0, STR_SELECT_ALL_FACILITIES},
{ WWT_PANEL, RESIZE_NONE, 14, 271, 284, 14, 24, 0x0, STR_SELECT_ALL_TYPES}, { WWT_PANEL, RESIZE_NONE, 14, 271, 284, 14, 24, 0x0, STR_SELECT_ALL_TYPES},
//28 //28
{ WWT_PUSHTXTBTN, RESIZE_NONE, 14, 0, 80, 25, 36, STR_SORT_BY, STR_SORT_ORDER_TIP}, { WWT_PUSHTXTBTN, RESIZE_NONE, 14, 0, 80, 25, 36, STR_SORT_BY, STR_SORT_ORDER_TIP},
{ WWT_PANEL, RESIZE_NONE, 14, 81, 232, 25, 36, 0x0, STR_SORT_CRITERIA_TIP}, { WWT_PANEL, RESIZE_NONE, 14, 81, 232, 25, 36, 0x0, STR_SORT_CRITERIA_TIP},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 233, 243, 25, 36, STR_0225, STR_SORT_CRITERIA_TIP}, { WWT_TEXTBTN, RESIZE_NONE, 14, 233, 243, 25, 36, STR_0225, STR_SORT_CRITERIA_TIP},
{ WWT_PANEL, RESIZE_RIGHT, 14, 244, 345, 25, 36, 0x0, STR_NULL}, { WWT_PANEL, RESIZE_RIGHT, 14, 244, 345, 25, 36, 0x0, STR_NULL},
{ WIDGETS_END}, { WIDGETS_END},
}; };

View File

@ -34,13 +34,13 @@ typedef void (*ParseCmdProc)(char *buf, int value);
typedef struct LanguagePackHeader { typedef struct LanguagePackHeader {
uint32 ident; uint32 ident;
uint32 version; // 32-bits of auto generated version info which is basically a hash of strings.h uint32 version; // 32-bits of auto generated version info which is basically a hash of strings.h
char name[32]; // the international name of this language char name[32]; // the international name of this language
char own_name[32]; // the localized name of this language char own_name[32]; // the localized name of this language
char isocode[16]; // the ISO code for the language (not country code) char isocode[16]; // the ISO code for the language (not country code)
uint16 offsets[32]; // the offsets uint16 offsets[32]; // the offsets
byte plural_form; // plural form index byte plural_form; // plural form index
byte pad[3]; // pad header to be a multiple of 4 byte pad[3]; // pad header to be a multiple of 4
} LanguagePackHeader; } LanguagePackHeader;
typedef struct CmdStruct { typedef struct CmdStruct {
@ -53,7 +53,7 @@ typedef struct CmdStruct {
enum { enum {
C_DONTCOUNT = 1, C_DONTCOUNT = 1,
C_CASE = 2, C_CASE = 2,
}; };
@ -70,14 +70,14 @@ static int _cur_line;
static int _errors, _warnings; static int _errors, _warnings;
typedef struct LangString { typedef struct LangString {
char *name; // Name of the string char *name; // Name of the string
char *english; // English text char *english; // English text
char *translated; // Translated text char *translated; // Translated text
uint16 hash_next; // next hash entry uint16 hash_next; // next hash entry
uint16 index; uint16 index;
int line; // line of string in source-file int line; // line of string in source-file
Case *english_case; // cases for english Case *english_case; // cases for english
Case *translated_case; // cases for foreign Case *translated_case; // cases for foreign
} LangString; } LangString;
static LangString *_strings[65536]; static LangString *_strings[65536];
@ -103,7 +103,7 @@ static char _cases[MAX_NUM_CASES][16];
static int _numcases; static int _numcases;
// for each plural value, this is the number of plural forms. // for each plural value, this is the number of plural forms.
static const byte _plural_form_counts[] = { 2,1,2,3,3,3,3,3,4 }; static const byte _plural_form_counts[] = { 2, 1, 2, 3, 3, 3, 3, 3, 4 };
static const char *_cur_ident; static const char *_cur_ident;

View File

@ -29,296 +29,296 @@ typedef struct {
#define MKEND {4, 0, {0, 0}}} #define MKEND {4, 0, {0, 0}}}
static const AiDefaultRailBlock _raildata_ai_0 = { static const AiDefaultRailBlock _raildata_ai_0 = {
MKHDR(1,2,1,0,1) MKHDR(1, 2, 1, 0, 1)
MKDEPOT(2, -1,1), MKDEPOT(2, -1, 1),
MKSTATION(0x15, 0,-1), MKSTATION(0x15, 0, -1),
MKRAIL(0x26, 0,1), MKRAIL(0x26, 0, 1),
MKCLRRAIL(1, 0,2), MKCLRRAIL(1, 0, 2),
MKEND MKEND
}; };
static const AiDefaultRailBlock _raildata_ai_1 = { static const AiDefaultRailBlock _raildata_ai_1 = {
MKHDR(1,2,1,0,3) MKHDR(1, 2, 1, 0, 3)
MKDEPOT(2, -1,-1), MKDEPOT(2, -1, -1),
MKRAIL(0x26, 0,-1), MKRAIL(0x26, 0, -1),
MKSTATION(0x15, 0,0), MKSTATION(0x15, 0, 0),
MKCLRRAIL(3, 0,-2), MKCLRRAIL(3, 0, -2),
MKEND MKEND
}; };
static const AiDefaultRailBlock _raildata_ai_2 = { static const AiDefaultRailBlock _raildata_ai_2 = {
MKHDR(1,2,1,0,0) MKHDR(1, 2, 1, 0, 0)
MKDEPOT(1, -1,-1), MKDEPOT(1, -1, -1),
MKRAIL(0x15, -1,0), MKRAIL(0x15, -1, 0),
MKSTATION(0x14, 0,0), MKSTATION(0x14, 0, 0),
MKCLRRAIL(0, -2,0), MKCLRRAIL(0, -2, 0),
MKEND MKEND
}; };
static const AiDefaultRailBlock _raildata_ai_3 = { static const AiDefaultRailBlock _raildata_ai_3 = {
MKHDR(1,2,1,0,2) MKHDR(1, 2, 1, 0, 2)
MKDEPOT(1, 1,-1), MKDEPOT(1, 1, -1),
MKRAIL(0x15, 1,0), MKRAIL(0x15, 1, 0),
MKSTATION(0x14, -1,0), MKSTATION(0x14, -1, 0),
MKCLRRAIL(2, 2,0), MKCLRRAIL(2, 2, 0),
MKEND MKEND
}; };
static const AiDefaultRailBlock _raildata_ai_4 = { static const AiDefaultRailBlock _raildata_ai_4 = {
MKHDR(1,2,2,0,255) MKHDR(1, 2, 2, 0, 255)
MKSTATION(0x15, 0,0), MKSTATION(0x15, 0, 0),
MKCLRRAIL(3, 0,-1), MKCLRRAIL(3, 0, -1),
MKCLRRAIL(1, 0,2), MKCLRRAIL(1, 0, 2),
MKEND MKEND
}; };
static const AiDefaultRailBlock _raildata_ai_5 = { static const AiDefaultRailBlock _raildata_ai_5 = {
MKHDR(1,2,2,0,255) MKHDR(1, 2, 2, 0, 255)
MKSTATION(0x14, 0,0), MKSTATION(0x14, 0, 0),
MKCLRRAIL(0, -1,0), MKCLRRAIL(0, -1, 0),
MKCLRRAIL(2, 2,0), MKCLRRAIL(2, 2, 0),
MKEND MKEND
}; };
static const AiDefaultRailBlock _raildata_ai_6 = { static const AiDefaultRailBlock _raildata_ai_6 = {
MKHDR(2,3,1,0,1) MKHDR(2, 3, 1, 0, 1)
MKSTATION(0x27, 0,-2), MKSTATION(0x27, 0, -2),
MKRAIL(0xC2, 0,1), MKRAIL(0xC2, 0, 1),
MKRAIL(0xC2, 1,1), MKRAIL(0xC2, 1, 1),
MKRAIL(0x1A, 0,2), MKRAIL(0x1A, 0, 2),
MKRAIL(0x26, 1,2), MKRAIL(0x26, 1, 2),
MKDEPOT(3, 1,3), MKDEPOT(3, 1, 3),
MKCLRRAIL(1, 0,3), MKCLRRAIL(1, 0, 3),
MKEND MKEND
}; };
static const AiDefaultRailBlock _raildata_ai_7 = { static const AiDefaultRailBlock _raildata_ai_7 = {
MKHDR(2,3,1,0,3) MKHDR(2, 3, 1, 0, 3)
MKDEPOT(1, 0,-3), MKDEPOT(1, 0, -3),
MKRAIL(0x1A, 0,-2), MKRAIL(0x1A, 0, -2),
MKRAIL(0x26, 1,-2), MKRAIL(0x26, 1, -2),
MKRAIL(0xC2, 0,-1), MKRAIL(0xC2, 0, -1),
MKRAIL(0xC2, 1,-1), MKRAIL(0xC2, 1, -1),
MKSTATION(0x27, 0,0), MKSTATION(0x27, 0, 0),
MKCLRRAIL(3, 1,-3), MKCLRRAIL(3, 1, -3),
MKEND MKEND
}; };
static const AiDefaultRailBlock _raildata_ai_8 = { static const AiDefaultRailBlock _raildata_ai_8 = {
MKHDR(2,3,1,0,2) MKHDR(2, 3, 1, 0, 2)
MKSTATION(0x26, -2,0), MKSTATION(0x26, -2, 0),
MKRAIL(0xC1, 1,0), MKRAIL(0xC1, 1, 0),
MKRAIL(0xC1, 1,1), MKRAIL(0xC1, 1, 1),
MKRAIL(0x29, 2,0), MKRAIL(0x29, 2, 0),
MKRAIL(0x15, 2,1), MKRAIL(0x15, 2, 1),
MKDEPOT(0, 3,0), MKDEPOT(0, 3, 0),
MKCLRRAIL(2, 3,1), MKCLRRAIL(2, 3, 1),
MKEND MKEND
}; };
static const AiDefaultRailBlock _raildata_ai_9 = { static const AiDefaultRailBlock _raildata_ai_9 = {
MKHDR(2,3,1,0,0) MKHDR(2, 3, 1, 0, 0)
MKDEPOT(2, -3,-1), MKDEPOT(2, -3, -1),
MKRAIL(0x29, -2,-1), MKRAIL(0x29, -2, -1),
MKRAIL(0x15, -2,0), MKRAIL(0x15, -2, 0),
MKRAIL(0xC1, -1,-1), MKRAIL(0xC1, -1, -1),
MKRAIL(0xC1, -1,0), MKRAIL(0xC1, -1, 0),
MKSTATION(0x26, 0,-1), MKSTATION(0x26, 0, -1),
MKCLRRAIL(0, -3,0), MKCLRRAIL(0, -3, 0),
MKEND MKEND
}; };
static const AiDefaultRailBlock _raildata_ai_10 = { static const AiDefaultRailBlock _raildata_ai_10 = {
MKHDR(2,3,2,0,255) MKHDR(2, 3, 2, 0, 255)
MKRAIL(0x1A, 0,-3), MKRAIL(0x1A, 0, -3),
MKRAIL(0x20, 1,-3), MKRAIL(0x20, 1, -3),
MKRAIL(0xC2, 0,-2), MKRAIL(0xC2, 0, -2),
MKRAIL(0xC2, 1,-2), MKRAIL(0xC2, 1, -2),
MKSTATION(0x27, 0,-1), MKSTATION(0x27, 0, -1),
MKRAIL(0xC2, 0,2), MKRAIL(0xC2, 0, 2),
MKRAIL(0xC2, 1,2), MKRAIL(0xC2, 1, 2),
MKRAIL(0x1A, 0,3), MKRAIL(0x1A, 0, 3),
MKRAIL(0x4, 1,3), MKRAIL(0x4, 1, 3),
MKCLRRAIL(3, 0,-4), MKCLRRAIL(3, 0, -4),
MKCLRRAIL(1, 0,4), MKCLRRAIL(1, 0, 4),
MKEND MKEND
}; };
static const AiDefaultRailBlock _raildata_ai_11 = { static const AiDefaultRailBlock _raildata_ai_11 = {
MKHDR(2,3,2,0,255) MKHDR(2, 3, 2, 0, 255)
MKRAIL(0x29, -3,0), MKRAIL(0x29, -3, 0),
MKRAIL(0x10, -3,1), MKRAIL(0x10, -3, 1),
MKRAIL(0xC1, -2,0), MKRAIL(0xC1, -2, 0),
MKRAIL(0xC1, -2,1), MKRAIL(0xC1, -2, 1),
MKSTATION(0x26, -1,0), MKSTATION(0x26, -1, 0),
MKRAIL(0xC1, 2,0), MKRAIL(0xC1, 2, 0),
MKRAIL(0xC1, 2,1), MKRAIL(0xC1, 2, 1),
MKRAIL(0x29, 3,0), MKRAIL(0x29, 3, 0),
MKRAIL(0x4, 3,1), MKRAIL(0x4, 3, 1),
MKCLRRAIL(0, -4,0), MKCLRRAIL(0, -4, 0),
MKCLRRAIL(2, 4,0), MKCLRRAIL(2, 4, 0),
MKEND MKEND
}; };
static const AiDefaultRailBlock _raildata_ai_12 = { static const AiDefaultRailBlock _raildata_ai_12 = {
MKHDR(2,3,2,1,3) MKHDR(2, 3, 2, 1, 3)
MKRAIL(0x88, -1,-3), MKRAIL(0x88, -1, -3),
MKRAIL(0x6, 0,-3), MKRAIL(0x6, 0, -3),
MKRAIL(0x2, -1,-2), MKRAIL(0x2, -1, -2),
MKRAIL(0x42, 0,-2), MKRAIL(0x42, 0, -2),
MKRAIL(0x2, -1,-1), MKRAIL(0x2, -1, -1),
MKRAIL(0x2, 0,-1), MKRAIL(0x2, 0, -1),
MKRAIL(0x2, -1,0), MKRAIL(0x2, -1, 0),
MKRAIL(0x2, 0,0), MKRAIL(0x2, 0, 0),
MKRAIL(0x82, -1,1), MKRAIL(0x82, -1, 1),
MKRAIL(0x2, 0,1), MKRAIL(0x2, 0, 1),
MKRAIL(0xA, -1,2), MKRAIL(0xA, -1, 2),
MKRAIL(0x44, 0,2), MKRAIL(0x44, 0, 2),
MKCLRRAIL(3, 0,-4), MKCLRRAIL(3, 0, -4),
MKCLRRAIL(1, -1,3), MKCLRRAIL(1, -1, 3),
MKEND MKEND
}; };
static const AiDefaultRailBlock _raildata_ai_13 = { static const AiDefaultRailBlock _raildata_ai_13 = {
MKHDR(2,3,2,1,0) MKHDR(2, 3, 2, 1, 0)
MKRAIL(0x21, -3,0), MKRAIL(0x21, -3, 0),
MKRAIL(0x50, -3,1), MKRAIL(0x50, -3, 1),
MKRAIL(0x81, -2,0), MKRAIL(0x81, -2, 0),
MKRAIL(0x1, -2,1), MKRAIL(0x1, -2, 1),
MKRAIL(0x1, -1,0), MKRAIL(0x1, -1, 0),
MKRAIL(0x1, -1,1), MKRAIL(0x1, -1, 1),
MKRAIL(0x1, 0,0), MKRAIL(0x1, 0, 0),
MKRAIL(0x1, 0,1), MKRAIL(0x1, 0, 1),
MKRAIL(0x1, 1,0), MKRAIL(0x1, 1, 0),
MKRAIL(0x41, 1,1), MKRAIL(0x41, 1, 1),
MKRAIL(0xA0, 2,0), MKRAIL(0xA0, 2, 0),
MKRAIL(0x11, 2,1), MKRAIL(0x11, 2, 1),
MKCLRRAIL(0, -4,0), MKCLRRAIL(0, -4, 0),
MKCLRRAIL(2, 3,1), MKCLRRAIL(2, 3, 1),
MKEND MKEND
}; };
static const AiDefaultRailBlock _raildata_ai_14 = { static const AiDefaultRailBlock _raildata_ai_14 = {
MKHDR(2,3,2,1,1) MKHDR(2, 3, 2, 1, 1)
MKRAIL(0x88, -1,-3), MKRAIL(0x88, -1, -3),
MKRAIL(0x6, 0,-3), MKRAIL(0x6, 0, -3),
MKRAIL(0x2, -1,-2), MKRAIL(0x2, -1, -2),
MKRAIL(0x42, 0,-2), MKRAIL(0x42, 0, -2),
MKRAIL(0x2, -1,-1), MKRAIL(0x2, -1, -1),
MKRAIL(0x2, 0,-1), MKRAIL(0x2, 0, -1),
MKRAIL(0x2, -1,0), MKRAIL(0x2, -1, 0),
MKRAIL(0x2, 0,0), MKRAIL(0x2, 0, 0),
MKRAIL(0x82, -1,1), MKRAIL(0x82, -1, 1),
MKRAIL(0x2, 0,1), MKRAIL(0x2, 0, 1),
MKRAIL(0xA, -1,2), MKRAIL(0xA, -1, 2),
MKRAIL(0x44, 0,2), MKRAIL(0x44, 0, 2),
MKCLRRAIL(1, -1,3), MKCLRRAIL(1, -1, 3),
MKCLRRAIL(3, 0,-4), MKCLRRAIL(3, 0, -4),
MKEND MKEND
}; };
static const AiDefaultRailBlock _raildata_ai_15 = { static const AiDefaultRailBlock _raildata_ai_15 = {
MKHDR(2,3,2,1,2) MKHDR(2, 3, 2, 1, 2)
MKRAIL(0x21, -3,0), MKRAIL(0x21, -3, 0),
MKRAIL(0x50, -3,1), MKRAIL(0x50, -3, 1),
MKRAIL(0x81, -2,0), MKRAIL(0x81, -2, 0),
MKRAIL(0x1, -2,1), MKRAIL(0x1, -2, 1),
MKRAIL(0x1, -1,0), MKRAIL(0x1, -1, 0),
MKRAIL(0x1, -1,1), MKRAIL(0x1, -1, 1),
MKRAIL(0x1, 0,0), MKRAIL(0x1, 0, 0),
MKRAIL(0x1, 0,1), MKRAIL(0x1, 0, 1),
MKRAIL(0x1, 1,0), MKRAIL(0x1, 1, 0),
MKRAIL(0x41, 1,1), MKRAIL(0x41, 1, 1),
MKRAIL(0xA0, 2,0), MKRAIL(0xA0, 2, 0),
MKRAIL(0x11, 2,1), MKRAIL(0x11, 2, 1),
MKCLRRAIL(2, 3,1), MKCLRRAIL(2, 3, 1),
MKCLRRAIL(0, -4,0), MKCLRRAIL(0, -4, 0),
MKEND MKEND
}; };
static const AiDefaultRailBlock _raildata_ai_16 = { static const AiDefaultRailBlock _raildata_ai_16 = {
MKHDR(1,3,1,0,1) MKHDR(1, 3, 1, 0, 1)
MKSTATION(0x17, 0,-2), MKSTATION(0x17, 0, -2),
MKRAIL(0x1A, 0,1), MKRAIL(0x1A, 0, 1),
MKCLRRAIL(1, 0,2), MKCLRRAIL(1, 0, 2),
MKDEPOT(0, 1,1), MKDEPOT(0, 1, 1),
MKEND MKEND
}; };
static const AiDefaultRailBlock _raildata_ai_17 = { static const AiDefaultRailBlock _raildata_ai_17 = {
MKHDR(1,3,1,0,3) MKHDR(1, 3, 1, 0, 3)
MKCLRRAIL(3, 0,-2), MKCLRRAIL(3, 0, -2),
MKRAIL(0x26, 0,-1), MKRAIL(0x26, 0, -1),
MKDEPOT(2, -1,-1), MKDEPOT(2, -1, -1),
MKSTATION(0x17, 0,0), MKSTATION(0x17, 0, 0),
MKEND MKEND
}; };
static const AiDefaultRailBlock _raildata_ai_18 = { static const AiDefaultRailBlock _raildata_ai_18 = {
MKHDR(1,3,1,0,0) MKHDR(1, 3, 1, 0, 0)
MKCLRRAIL(0, -2,0), MKCLRRAIL(0, -2, 0),
MKRAIL(0x29, -1,0), MKRAIL(0x29, -1, 0),
MKDEPOT(3, -1,1), MKDEPOT(3, -1, 1),
MKSTATION(0x16, 0,0), MKSTATION(0x16, 0, 0),
MKEND MKEND
}; };
static const AiDefaultRailBlock _raildata_ai_19 = { static const AiDefaultRailBlock _raildata_ai_19 = {
MKHDR(1,3,1,0,2) MKHDR(1, 3, 1, 0, 2)
MKSTATION(0x16, -2,0), MKSTATION(0x16, -2, 0),
MKDEPOT(2, 0,-1), MKDEPOT(2, 0, -1),
MKRAIL(0x20, 1,-1), MKRAIL(0x20, 1, -1),
MKRAIL(0x15, 1,0), MKRAIL(0x15, 1, 0),
MKCLRRAIL(2, 2,0), MKCLRRAIL(2, 2, 0),
MKEND MKEND
}; };
static const AiDefaultRailBlock _raildata_ai_20 = { static const AiDefaultRailBlock _raildata_ai_20 = {
MKHDR(2,3,1,0,1) MKHDR(2, 3, 1, 0, 1)
MKSTATION(0x26, -2,0), MKSTATION(0x26, -2, 0),
MKRAIL(0xC1, 1,0), MKRAIL(0xC1, 1, 0),
MKRAIL(0xC1, 1,1), MKRAIL(0xC1, 1, 1),
MKRAIL(0x26, 2,0), MKRAIL(0x26, 2, 0),
MKRAIL(0x26, 2,1), MKRAIL(0x26, 2, 1),
MKDEPOT(1, 2,-1), MKDEPOT(1, 2, -1),
MKCLRRAIL(1, 2,2), MKCLRRAIL(1, 2, 2),
MKEND MKEND
}; };
static const AiDefaultRailBlock _raildata_ai_21 = { static const AiDefaultRailBlock _raildata_ai_21 = {
MKHDR(2,3,1,0,3) MKHDR(2, 3, 1, 0, 3)
MKDEPOT(2, -3,-1), MKDEPOT(2, -3, -1),
MKRAIL(0x3F, -2,-1), MKRAIL(0x3F, -2, -1),
MKRAIL(0x10, -2,0), MKRAIL(0x10, -2, 0),
MKRAIL(0xC1, -1,-1), MKRAIL(0xC1, -1, -1),
MKRAIL(0xC1, -1,0), MKRAIL(0xC1, -1, 0),
MKSTATION(0x26, 0,-1), MKSTATION(0x26, 0, -1),
MKCLRRAIL(3, -2,-2), MKCLRRAIL(3, -2, -2),
MKEND MKEND
}; };
static const AiDefaultRailBlock _raildata_ai_22 = { static const AiDefaultRailBlock _raildata_ai_22 = {
MKHDR(2,3,1,0,0) MKHDR(2, 3, 1, 0, 0)
MKSTATION(0x27, 0,-2), MKSTATION(0x27, 0, -2),
MKRAIL(0xC2, 0,1), MKRAIL(0xC2, 0, 1),
MKRAIL(0xC2, 1,1), MKRAIL(0xC2, 1, 1),
MKRAIL(0x15, 0,2), MKRAIL(0x15, 0, 2),
MKRAIL(0x4, 1,2), MKRAIL(0x4, 1, 2),
MKRAIL(0x15, -1,2), MKRAIL(0x15, -1, 2),
MKDEPOT(1, -1,1), MKDEPOT(1, -1, 1),
MKCLRRAIL(0, -2,2), MKCLRRAIL(0, -2, 2),
MKEND MKEND
}; };
static const AiDefaultRailBlock _raildata_ai_23 = { static const AiDefaultRailBlock _raildata_ai_23 = {
MKHDR(2,3,1,0,2) MKHDR(2, 3, 1, 0, 2)
MKDEPOT(1, 0,-3), MKDEPOT(1, 0, -3),
MKRAIL(0x1A, 0,-2), MKRAIL(0x1A, 0, -2),
MKRAIL(0x29, 1,-2), MKRAIL(0x29, 1, -2),
MKRAIL(0xC2, 0,-1), MKRAIL(0xC2, 0, -1),
MKRAIL(0xC2, 1,-1), MKRAIL(0xC2, 1, -1),
MKSTATION(0x27, 0,0), MKSTATION(0x27, 0, 0),
MKCLRRAIL(2, 2,-2), MKCLRRAIL(2, 2, -2),
MKEND MKEND
}; };

View File

@ -12,17 +12,17 @@ static const SpriteID _landscape_clear_sprites[8] = {
}; };
static const byte _fence_mod_by_tileh[32] = { static const byte _fence_mod_by_tileh[32] = {
0,2,4,0,0,2,4,0, 0, 2, 4, 0, 0, 2, 4, 0,
0,2,4,0,0,2,4,0, 0, 2, 4, 0, 0, 2, 4, 0,
0,2,4,0,0,2,4,4, 0, 2, 4, 0, 0, 2, 4, 4,
0,2,4,2,0,2,4,0, 0, 2, 4, 2, 0, 2, 4, 0,
}; };
static const byte _fence_mod_by_tileh_2[32] = { static const byte _fence_mod_by_tileh_2[32] = {
1,1,5,5,3,3,1,1, 1, 1, 5, 5, 3, 3, 1, 1,
1,1,5,5,3,3,1,1, 1, 1, 5, 5, 3, 3, 1, 1,
1,1,5,5,3,3,1,5, 1, 1, 5, 5, 3, 3, 1, 5,
1,1,5,5,3,3,3,1, 1, 1, 5, 5, 3, 3, 3, 1,
}; };

View File

@ -409,14 +409,14 @@ typedef enum {
PCP exists.*/ PCP exists.*/
static const CatenarySprite Wires[5][TRACK_END][4] = { static const CatenarySprite Wires[5][TRACK_END][4] = {
{ /* Tileh == 0 */ { /* Tileh == 0 */
{INVALID_CATENARY, WIRE_X_FLAT_NE, WIRE_X_FLAT_SW, WIRE_X_FLAT_BOTH}, {INVALID_CATENARY, WIRE_X_FLAT_NE, WIRE_X_FLAT_SW, WIRE_X_FLAT_BOTH},
{INVALID_CATENARY, WIRE_Y_FLAT_SE, WIRE_Y_FLAT_NW, WIRE_Y_FLAT_BOTH}, {INVALID_CATENARY, WIRE_Y_FLAT_SE, WIRE_Y_FLAT_NW, WIRE_Y_FLAT_BOTH},
{INVALID_CATENARY, WIRE_EW_N_W, WIRE_EW_N_E, WIRE_EW_N_BOTH}, {INVALID_CATENARY, WIRE_EW_N_W, WIRE_EW_N_E, WIRE_EW_N_BOTH},
{INVALID_CATENARY, WIRE_EW_S_E, WIRE_EW_S_W, WIRE_EW_S_BOTH}, {INVALID_CATENARY, WIRE_EW_S_E, WIRE_EW_S_W, WIRE_EW_S_BOTH},
{INVALID_CATENARY, WIRE_NS_W_S, WIRE_NS_W_N, WIRE_NS_W_BOTH}, {INVALID_CATENARY, WIRE_NS_W_S, WIRE_NS_W_N, WIRE_NS_W_BOTH},
{INVALID_CATENARY, WIRE_NS_E_N, WIRE_NS_E_S, WIRE_NS_E_BOTH}, {INVALID_CATENARY, WIRE_NS_E_N, WIRE_NS_E_S, WIRE_NS_E_BOTH},
}, { /* Tileh == 3 */ }, { /* Tileh == 3 */
{INVALID_CATENARY, WIRE_X_UP_NE, WIRE_X_UP_SW, WIRE_X_UP_BOTH}, {INVALID_CATENARY, WIRE_X_UP_NE, WIRE_X_UP_SW, WIRE_X_UP_BOTH},
{INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY}, {INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY},
{INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY}, {INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY},
{INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY}, {INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY},
@ -424,20 +424,20 @@ static const CatenarySprite Wires[5][TRACK_END][4] = {
{INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY}, {INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY},
}, { /* Tileh == 6 */ }, { /* Tileh == 6 */
{INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY}, {INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY},
{INVALID_CATENARY, WIRE_Y_UP_SE, WIRE_Y_UP_NW, WIRE_Y_UP_BOTH}, {INVALID_CATENARY, WIRE_Y_UP_SE, WIRE_Y_UP_NW, WIRE_Y_UP_BOTH},
{INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY}, {INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY},
{INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY}, {INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY},
{INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY}, {INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY},
{INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY}, {INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY},
}, { /* Tileh == 9 */ }, { /* Tileh == 9 */
{INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY}, {INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY},
{INVALID_CATENARY, WIRE_Y_DOWN_SE, WIRE_Y_DOWN_NW, WIRE_Y_DOWN_BOTH}, {INVALID_CATENARY, WIRE_Y_DOWN_SE, WIRE_Y_DOWN_NW, WIRE_Y_DOWN_BOTH},
{INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY}, {INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY},
{INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY}, {INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY},
{INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY}, {INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY},
{INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY}, {INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY},
}, { /* Tileh == 12 */ }, { /* Tileh == 12 */
{INVALID_CATENARY, WIRE_X_DOWN_NE, WIRE_X_DOWN_SW, WIRE_X_DOWN_BOTH}, {INVALID_CATENARY, WIRE_X_DOWN_NE, WIRE_X_DOWN_SW, WIRE_X_DOWN_BOTH},
{INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY}, {INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY},
{INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY}, {INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY},
{INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY}, {INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY},

View File

@ -25,31 +25,31 @@
static FileList files_dos = { static FileList files_dos = {
{ {
{ "TRG1.GRF", {0x93,0x11,0x67,0x62,0x80,0xe5,0xb1,0x40,0x77,0xa8,0xee,0x41,0xc1,0xb4,0x21,0x92} }, // 0 - 4792 inclusive { "TRG1.GRF", {0x93, 0x11, 0x67, 0x62, 0x80, 0xe5, 0xb1, 0x40, 0x77, 0xa8, 0xee, 0x41, 0xc1, 0xb4, 0x21, 0x92} }, // 0 - 4792 inclusive
{ "TRGI.GRF", {0xda,0x6a,0x6c,0x9d,0xcc,0x45,0x1e,0xec,0x88,0xd7,0x92,0x11,0x43,0x7b,0x76,0xa8} }, // 4793 - 4889 inclusive { "TRGI.GRF", {0xda, 0x6a, 0x6c, 0x9d, 0xcc, 0x45, 0x1e, 0xec, 0x88, 0xd7, 0x92, 0x11, 0x43, 0x7b, 0x76, 0xa8} }, // 4793 - 4889 inclusive
{ "dosdummy.grf", {0x07,0x01,0xe6,0xc4,0x07,0x6a,0x5b,0xc3,0xf4,0x9f,0x01,0xad,0x21,0x6c,0xa0,0xc2} }, // 4890 - 4895 inclusive { "dosdummy.grf", {0x07, 0x01, 0xe6, 0xc4, 0x07, 0x6a, 0x5b, 0xc3, 0xf4, 0x9f, 0x01, 0xad, 0x21, 0x6c, 0xa0, 0xc2} }, // 4890 - 4895 inclusive
{ "nsignalsw.grf", {0x65,0xb9,0xd7,0x30,0x56,0x06,0xcc,0x9e,0x27,0x57,0xc8,0xe4,0x9b,0xb3,0x66,0x81} }, // 4896 - 5381 inclusive { "nsignalsw.grf", {0x65, 0xb9, 0xd7, 0x30, 0x56, 0x06, 0xcc, 0x9e, 0x27, 0x57, 0xc8, 0xe4, 0x9b, 0xb3, 0x66, 0x81} }, // 4896 - 5381 inclusive
{ NULL, { 0 } } { NULL, { 0 } }
}, },
{ { "TRGC.GRF", {0xed,0x44,0x66,0x37,0xe0,0x34,0x10,0x4c,0x55,0x59,0xb3,0x2c,0x18,0xaf,0xe7,0x8d} }, { { "TRGC.GRF", {0xed, 0x44, 0x66, 0x37, 0xe0, 0x34, 0x10, 0x4c, 0x55, 0x59, 0xb3, 0x2c, 0x18, 0xaf, 0xe7, 0x8d} },
{ "TRGH.GRF", {0xee,0x66,0x16,0xfb,0x0e,0x6e,0xf6,0xb2,0x48,0x92,0xc5,0x8c,0x93,0xd8,0x6f,0xc9} }, { "TRGH.GRF", {0xee, 0x66, 0x16, 0xfb, 0x0e, 0x6e, 0xf6, 0xb2, 0x48, 0x92, 0xc5, 0x8c, 0x93, 0xd8, 0x6f, 0xc9} },
{ "TRGT.GRF", {0xfc,0xde,0x1d,0x7e,0x8a,0x74,0x19,0x7d,0x72,0xa6,0x26,0x95,0x88,0x4b,0x90,0x9e} } { "TRGT.GRF", {0xfc, 0xde, 0x1d, 0x7e, 0x8a, 0x74, 0x19, 0x7d, 0x72, 0xa6, 0x26, 0x95, 0x88, 0x4b, 0x90, 0x9e} }
} }
}; };
static FileList files_win = { static FileList files_win = {
{ {
{ "TRG1R.GRF", {0xb0,0x4c,0xe5,0x93,0xd8,0xc5,0x01,0x6e,0x07,0x47,0x3a,0x74,0x3d,0x7d,0x33,0x58} }, // 0 - 4792 inclusive { "TRG1R.GRF", {0xb0, 0x4c, 0xe5, 0x93, 0xd8, 0xc5, 0x01, 0x6e, 0x07, 0x47, 0x3a, 0x74, 0x3d, 0x7d, 0x33, 0x58} }, // 0 - 4792 inclusive
{ "TRGIR.GRF", {0x0c,0x24,0x84,0xff,0x6b,0xe4,0x9f,0xc6,0x3a,0x83,0xbe,0x6a,0xb5,0xc3,0x8f,0x32} }, // 4793 - 4895 inclusive { "TRGIR.GRF", {0x0c, 0x24, 0x84, 0xff, 0x6b, 0xe4, 0x9f, 0xc6, 0x3a, 0x83, 0xbe, 0x6a, 0xb5, 0xc3, 0x8f, 0x32} }, // 4793 - 4895 inclusive
{ "nsignalsw.grf", {0x65,0xb9,0xd7,0x30,0x56,0x06,0xcc,0x9e,0x27,0x57,0xc8,0xe4,0x9b,0xb3,0x66,0x81} }, // 4896 - 5381 inclusive { "nsignalsw.grf", {0x65, 0xb9, 0xd7, 0x30, 0x56, 0x06, 0xcc, 0x9e, 0x27, 0x57, 0xc8, 0xe4, 0x9b, 0xb3, 0x66, 0x81} }, // 4896 - 5381 inclusive
{ NULL, { 0 } }, { NULL, { 0 } },
{ NULL, { 0 } } { NULL, { 0 } }
}, },
{ { "TRGCR.GRF", {0x36,0x68,0xf4,0x10,0xc7,0x61,0xa0,0x50,0xb5,0xe7,0x09,0x5a,0x2b,0x14,0x87,0x9b} }, { { "TRGCR.GRF", {0x36, 0x68, 0xf4, 0x10, 0xc7, 0x61, 0xa0, 0x50, 0xb5, 0xe7, 0x09, 0x5a, 0x2b, 0x14, 0x87, 0x9b} },
{ "TRGHR.GRF", {0x06,0xbf,0x2b,0x7a,0x31,0x76,0x6f,0x04,0x8b,0xaa,0xc2,0xeb,0xe4,0x34,0x57,0xb1} }, { "TRGHR.GRF", {0x06, 0xbf, 0x2b, 0x7a, 0x31, 0x76, 0x6f, 0x04, 0x8b, 0xaa, 0xc2, 0xeb, 0xe4, 0x34, 0x57, 0xb1} },
{ "TRGTR.GRF", {0xde,0x53,0x65,0x05,0x17,0xfe,0x66,0x1c,0xea,0xa3,0x13,0x8c,0x6e,0xdb,0x0e,0xb8} } { "TRGTR.GRF", {0xde, 0x53, 0x65, 0x05, 0x17, 0xfe, 0x66, 0x1c, 0xea, 0xa3, 0x13, 0x8c, 0x6e, 0xdb, 0x0e, 0xb8} }
} }
}; };
static MD5File sample_cat_win = { "SAMPLE.CAT", {0x92,0x12,0xe8,0x1e,0x72,0xba,0xdd,0x4b,0xbe,0x1e,0xae,0xae,0x66,0x45,0x8e,0x10} }; static MD5File sample_cat_win = { "SAMPLE.CAT", {0x92, 0x12, 0xe8, 0x1e, 0x72, 0xba, 0xdd, 0x4b, 0xbe, 0x1e, 0xae, 0xae, 0x66, 0x45, 0x8e, 0x10} };
static MD5File sample_cat_dos = { "SAMPLE.CAT", {0x42,0x2e,0xa3,0xdd,0x07,0x4d,0x28,0x59,0xbb,0x51,0x63,0x9a,0x6e,0x0e,0x85,0xda} }; static MD5File sample_cat_dos = { "SAMPLE.CAT", {0x42, 0x2e, 0xa3, 0xdd, 0x07, 0x4d, 0x28, 0x59, 0xbb, 0x51, 0x63, 0x9a, 0x6e, 0x0e, 0x85, 0xda} };

View File

@ -1,157 +1,157 @@
/* $Id$ */ /* $Id$ */
#define M(x,y) {x, y} #define M(x, y) {x, y}
static const TileIndexDiffC _make_desert_or_rainforest_data[] = { static const TileIndexDiffC _make_desert_or_rainforest_data[] = {
M(-5,-6), M(-5, -6),
M(-4,-6), M(-4, -6),
M(-3,-6), M(-3, -6),
M(-2,-6), M(-2, -6),
M(-1,-6), M(-1, -6),
M(0,-5), M( 0, -5),
M(1,-5), M( 1, -5),
M(2,-5), M( 2, -5),
M(3,-5), M( 3, -5),
M(4,-5), M( 4, -5),
M(5,-5), M( 5, -5),
M(-5,-5), M(-5, -5),
M(-4,-5), M(-4, -5),
M(-3,-5), M(-3, -5),
M(-2,-5), M(-2, -5),
M(-1,-5), M(-1, -5),
M(0,-4), M( 0, -4),
M(1,-4), M( 1, -4),
M(2,-4), M( 2, -4),
M(3,-4), M( 3, -4),
M(4,-4), M( 4, -4),
M(5,-4), M( 5, -4),
M(-5,-4), M(-5, -4),
M(-4,-4), M(-4, -4),
M(-3,-4), M(-3, -4),
M(-2,-4), M(-2, -4),
M(-1,-4), M(-1, -4),
M(0,-3), M( 0, -3),
M(1,-3), M( 1, -3),
M(2,-3), M( 2, -3),
M(3,-3), M( 3, -3),
M(4,-3), M( 4, -3),
M(5,-3), M( 5, -3),
M(-5,-3), M(-5, -3),
M(-4,-3), M(-4, -3),
M(-3,-3), M(-3, -3),
M(-2,-3), M(-2, -3),
M(-1,-3), M(-1, -3),
M(0,-2), M( 0, -2),
M(1,-2), M( 1, -2),
M(2,-2), M( 2, -2),
M(3,-2), M( 3, -2),
M(4,-2), M( 4, -2),
M(5,-2), M( 5, -2),
M(-5,-2), M(-5, -2),
M(-4,-2), M(-4, -2),
M(-3,-2), M(-3, -2),
M(-2,-2), M(-2, -2),
M(-1,-2), M(-1, -2),
M(0,-1), M( 0, -1),
M(1,-1), M( 1, -1),
M(2,-1), M( 2, -1),
M(3,-1), M( 3, -1),
M(4,-1), M( 4, -1),
M(5,-1), M( 5, -1),
M(-5,-1), M(-5, -1),
M(-4,-1), M(-4, -1),
M(-3,-1), M(-3, -1),
M(-2,-1), M(-2, -1),
M(-1,-1), M(-1, -1),
M(0,0), M( 0, 0),
M(1,0), M( 1, 0),
M(2,0), M( 2, 0),
M(3,0), M( 3, 0),
M(4,0), M( 4, 0),
M(5,0), M( 5, 0),
M(-5,0), M(-5, 0),
M(-4,0), M(-4, 0),
M(-3,0), M(-3, 0),
M(-2,0), M(-2, 0),
M(-1,0), M(-1, 0),
M(0,1), M( 0, 1),
M(1,1), M( 1, 1),
M(2,1), M( 2, 1),
M(3,1), M( 3, 1),
M(4,1), M( 4, 1),
M(5,1), M( 5, 1),
M(-5,1), M(-5, 1),
M(-4,1), M(-4, 1),
M(-3,1), M(-3, 1),
M(-2,1), M(-2, 1),
M(-1,1), M(-1, 1),
M(0,2), M( 0, 2),
M(1,2), M( 1, 2),
M(2,2), M( 2, 2),
M(3,2), M( 3, 2),
M(4,2), M( 4, 2),
M(5,2), M( 5, 2),
M(-5,2), M(-5, 2),
M(-4,2), M(-4, 2),
M(-3,2), M(-3, 2),
M(-2,2), M(-2, 2),
M(-1,2), M(-1, 2),
M(0,3), M( 0, 3),
M(1,3), M( 1, 3),
M(2,3), M( 2, 3),
M(3,3), M( 3, 3),
M(4,3), M( 4, 3),
M(5,3), M( 5, 3),
M(-5,3), M(-5, 3),
M(-4,3), M(-4, 3),
M(-3,3), M(-3, 3),
M(-2,3), M(-2, 3),
M(-1,3), M(-1, 3),
M(0,4), M( 0, 4),
M(1,4), M( 1, 4),
M(2,4), M( 2, 4),
M(3,4), M( 3, 4),
M(4,4), M( 4, 4),
M(5,4), M( 5, 4),
M(-5,4), M(-5, 4),
M(-4,4), M(-4, 4),
M(-3,4), M(-3, 4),
M(-2,4), M(-2, 4),
M(-1,4), M(-1, 4),
M(0,5), M( 0, 5),
M(1,5), M( 1, 5),
M(2,5), M( 2, 5),
M(3,5), M( 3, 5),
M(4,5), M( 4, 5),
M(5,5), M( 5, 5),
M(6,-3), M( 6, -3),
M(-6,-4), M(-6, -4),
M(-3,5), M(-3, 5),
M(-3,-7), M(-3, -7),
M(6,-2), M( 6, -2),
M(-6,-3), M(-6, -3),
M(-2,5), M(-2, 5),
M(-2,-7), M(-2, -7),
M(6,-1), M( 6, -1),
M(-6,-2), M(-6, -2),
M(-1,5), M(-1, 5),
M(-1,-7), M(-1, -7),
M(6,0), M( 6, 0),
M(-6,-1), M(-6, -1),
M(0,6), M( 0, 6),
M(0,-6), M( 0, -6),
M(6,1), M( 6, 1),
M(-6,0), M(-6, 0),
M(1,6), M( 1, 6),
M(1,-6), M( 1, -6),
M(6,2), M( 6, 2),
M(-6,1), M(-6, 1),
M(2,6), M( 2, 6),
M(2,-6), M( 2, -6),
M(6,3), M( 6, 3),
M(-6,2), M(-6, 2),
M(3,6), M( 3, 6),
M(3,-6) M( 3, -6)
}; };

View File

@ -879,13 +879,13 @@ static const DrawIndustrySpec4Struct _industry_anim_offs_3[] = {
}; };
static const byte _industry_anim_offs[] = { static const byte _industry_anim_offs[] = {
255, 0, 0, 0, 2, 4, 6, 8, 10, 9, 255, 0, 0, 0, 2, 4, 6, 8, 10, 9,
7, 5, 3, 1, 255, 0, 0, 0, 2, 4, 7, 5, 3, 1, 255, 0, 0, 0, 2, 4,
6, 8, 10, 9, 7, 5, 3, 1, 255, 0, 6, 8, 10, 9, 7, 5, 3, 1, 255, 0,
0, 0, 2, 4, 6, 8, 10, 9, 7, 5, 0, 0, 2, 4, 6, 8, 10, 9, 7, 5,
3, 1, 255, 0, 0, 0, 2, 4, 6, 8, 3, 1, 255, 0, 0, 0, 2, 4, 6, 8,
10, 9, 7, 5, 3, 1, 255, 0, 0, 0, 10, 9, 7, 5, 3, 1, 255, 0, 0, 0,
2, 4, 6, 8, 10, 9, 7, 5, 3, 1 2, 4, 6, 8, 10, 9, 7, 5, 3, 1
}; };
static const byte _industry_anim_offs_2[] = { static const byte _industry_anim_offs_2[] = {
@ -896,59 +896,59 @@ static const byte _industry_anim_offs_2[] = {
}; };
static const byte _coal_plant_sparks_x[] = {11, 11, 14, 13, 18, 15}; static const byte _coal_plant_sparks_x[] = {11, 11, 14, 13, 18, 15};
static const byte _coal_plant_sparks_y[] = {23, 11, 6, 3, 1, 0}; static const byte _coal_plant_sparks_y[] = {23, 11, 6, 3, 1, 0};
/* next frame in an animation */ /* next frame in an animation */
#define N 255 #define N 255
static const byte _industry_section_animation_next[] = { static const byte _industry_section_animation_next[] = {
N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N,
N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N,
N, 16, N, N, N, N, N, N, N, 16, N, N, N, N, N, N,
N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N,
N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N,
N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N,
N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N,
N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N,
N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N,
N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N,
N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N,
N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N,
N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N,
N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N,
N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N,
N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N,
N, N, 129, N, N, N, N, N, N, N, 129, N, N, N, N, N,
135, N, N, N, N, N, N, N, 135, N, N, N, N, N, N, N,
N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N,
N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N,
N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N,
N, N, N, N, N, N, N, N, N, N, N, N, N, N,
}; };
/* animation to start when goods is produced */ /* animation to start when goods is produced */
static const byte _industry_produce_section[] = { static const byte _industry_produce_section[] = {
N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N,
N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N,
17, N, N, N, N, N, N, N, 17, N, N, N, N, N, N, N,
N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N,
N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N,
N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N,
N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N,
N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N,
N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N,
N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N,
N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N,
N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N,
N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N,
N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N,
N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N,
N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N,
N, 130, N, N, N, N, N, 136, N, 130, N, N, N, N, N, 136,
N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N,
N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N,
N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N,
N, N, N, N, N, N, N, N, N, N, N, N, N, N, N, N,
N, N, N, N, N, N, N, N, N, N, N, N, N, N,
}; };
#undef N #undef N

View File

@ -38,7 +38,7 @@ static const DrawTileSprites _road_depot[] = {
static const SpriteID _road_tile_sprites_1[16] = { static const SpriteID _road_tile_sprites_1[16] = {
0, 0x546, 0x545, 0x53B, 0x544, 0x534, 0x53E, 0x539, 0, 0x546, 0x545, 0x53B, 0x544, 0x534, 0x53E, 0x539,
0x543, 0x53C, 0x535, 0x538, 0x53D, 0x537, 0x53A, 0x536 0x543, 0x53C, 0x535, 0x538, 0x53D, 0x537, 0x53A, 0x536
}; };
@ -59,7 +59,7 @@ static const DrawRoadTileStruct _road_display_datas2_2[] = {
}; };
static const DrawRoadTileStruct _road_display_datas2_3[] = { static const DrawRoadTileStruct _road_display_datas2_3[] = {
MAKELINE(0x57f,1,8) MAKELINE(0x57f, 1, 8)
ENDLINE ENDLINE
}; };
@ -68,18 +68,18 @@ static const DrawRoadTileStruct _road_display_datas2_4[] = {
}; };
static const DrawRoadTileStruct _road_display_datas2_5[] = { static const DrawRoadTileStruct _road_display_datas2_5[] = {
MAKELINE(0x57f,1,8) MAKELINE(0x57f, 1, 8)
MAKELINE(0x57e,14,8) MAKELINE(0x57e, 14, 8)
ENDLINE ENDLINE
}; };
static const DrawRoadTileStruct _road_display_datas2_6[] = { static const DrawRoadTileStruct _road_display_datas2_6[] = {
MAKELINE(0x57e,8,1) MAKELINE(0x57e, 8, 1)
ENDLINE ENDLINE
}; };
static const DrawRoadTileStruct _road_display_datas2_7[] = { static const DrawRoadTileStruct _road_display_datas2_7[] = {
MAKELINE(0x57f,1,8) MAKELINE(0x57f, 1, 8)
ENDLINE ENDLINE
}; };
@ -88,33 +88,33 @@ static const DrawRoadTileStruct _road_display_datas2_8[] = {
}; };
static const DrawRoadTileStruct _road_display_datas2_9[] = { static const DrawRoadTileStruct _road_display_datas2_9[] = {
MAKELINE(0x57f,8,14) MAKELINE(0x57f, 8, 14)
ENDLINE ENDLINE
}; };
static const DrawRoadTileStruct _road_display_datas2_10[] = { static const DrawRoadTileStruct _road_display_datas2_10[] = {
MAKELINE(0x57f,8,14) MAKELINE(0x57f, 8, 14)
MAKELINE(0x57e,8,1) MAKELINE(0x57e, 8, 1)
ENDLINE ENDLINE
}; };
static const DrawRoadTileStruct _road_display_datas2_11[] = { static const DrawRoadTileStruct _road_display_datas2_11[] = {
MAKELINE(0x57f,8,14) MAKELINE(0x57f, 8, 14)
ENDLINE ENDLINE
}; };
static const DrawRoadTileStruct _road_display_datas2_12[] = { static const DrawRoadTileStruct _road_display_datas2_12[] = {
MAKELINE(0x57e,8,1) MAKELINE(0x57e, 8, 1)
ENDLINE ENDLINE
}; };
static const DrawRoadTileStruct _road_display_datas2_13[] = { static const DrawRoadTileStruct _road_display_datas2_13[] = {
MAKELINE(0x57e,14,8) MAKELINE(0x57e, 14, 8)
ENDLINE ENDLINE
}; };
static const DrawRoadTileStruct _road_display_datas2_14[] = { static const DrawRoadTileStruct _road_display_datas2_14[] = {
MAKELINE(0x57e,8,1) MAKELINE(0x57e, 8, 1)
ENDLINE ENDLINE
}; };
@ -135,9 +135,9 @@ static const DrawRoadTileStruct _road_display_datas2_18[] = {
}; };
static const DrawRoadTileStruct _road_display_datas2_19[] = { static const DrawRoadTileStruct _road_display_datas2_19[] = {
MAKELINE(0x1212,0,2) MAKELINE(0x1212, 0, 2)
MAKELINE(0x1212,3,9) MAKELINE(0x1212, 3, 9)
MAKELINE(0x1212,10,12) MAKELINE(0x1212, 10, 12)
ENDLINE ENDLINE
}; };
@ -146,23 +146,23 @@ static const DrawRoadTileStruct _road_display_datas2_20[] = {
}; };
static const DrawRoadTileStruct _road_display_datas2_21[] = { static const DrawRoadTileStruct _road_display_datas2_21[] = {
MAKELINE(0x1212,0,2) MAKELINE(0x1212, 0, 2)
MAKELINE(0x1212,0,10) MAKELINE(0x1212, 0, 10)
MAKELINE(0x1212,12,2) MAKELINE(0x1212, 12, 2)
MAKELINE(0x1212,12,10) MAKELINE(0x1212, 12, 10)
ENDLINE ENDLINE
}; };
static const DrawRoadTileStruct _road_display_datas2_22[] = { static const DrawRoadTileStruct _road_display_datas2_22[] = {
MAKELINE(0x1212,10,0) MAKELINE(0x1212, 10, 0)
MAKELINE(0x1212,3,3) MAKELINE(0x1212, 3, 3)
MAKELINE(0x1212,0,10) MAKELINE(0x1212, 0, 10)
ENDLINE ENDLINE
}; };
static const DrawRoadTileStruct _road_display_datas2_23[] = { static const DrawRoadTileStruct _road_display_datas2_23[] = {
MAKELINE(0x1212,0,2) MAKELINE(0x1212, 0, 2)
MAKELINE(0x1212,0,10) MAKELINE(0x1212, 0, 10)
ENDLINE ENDLINE
}; };
@ -171,42 +171,42 @@ static const DrawRoadTileStruct _road_display_datas2_24[] = {
}; };
static const DrawRoadTileStruct _road_display_datas2_25[] = { static const DrawRoadTileStruct _road_display_datas2_25[] = {
MAKELINE(0x1212,12,2) MAKELINE(0x1212, 12, 2)
MAKELINE(0x1212,9,9) MAKELINE(0x1212, 9, 9)
MAKELINE(0x1212,2,12) MAKELINE(0x1212, 2, 12)
ENDLINE ENDLINE
}; };
static const DrawRoadTileStruct _road_display_datas2_26[] = { static const DrawRoadTileStruct _road_display_datas2_26[] = {
MAKELINE(0x1212,2,0) MAKELINE(0x1212, 2, 0)
MAKELINE(0x1212,10,0) MAKELINE(0x1212, 10, 0)
MAKELINE(0x1212,2,12) MAKELINE(0x1212, 2, 12)
MAKELINE(0x1212,10,12) MAKELINE(0x1212, 10, 12)
ENDLINE ENDLINE
}; };
static const DrawRoadTileStruct _road_display_datas2_27[] = { static const DrawRoadTileStruct _road_display_datas2_27[] = {
MAKELINE(0x1212,2,12) MAKELINE(0x1212, 2, 12)
MAKELINE(0x1212,10,12) MAKELINE(0x1212, 10, 12)
ENDLINE ENDLINE
}; };
static const DrawRoadTileStruct _road_display_datas2_28[] = { static const DrawRoadTileStruct _road_display_datas2_28[] = {
MAKELINE(0x1212,2,0) MAKELINE(0x1212, 2, 0)
MAKELINE(0x1212,9,3) MAKELINE(0x1212, 9, 3)
MAKELINE(0x1212,12,10) MAKELINE(0x1212, 12, 10)
ENDLINE ENDLINE
}; };
static const DrawRoadTileStruct _road_display_datas2_29[] = { static const DrawRoadTileStruct _road_display_datas2_29[] = {
MAKELINE(0x1212,12,2) MAKELINE(0x1212, 12, 2)
MAKELINE(0x1212,12,10) MAKELINE(0x1212, 12, 10)
ENDLINE ENDLINE
}; };
static const DrawRoadTileStruct _road_display_datas2_30[] = { static const DrawRoadTileStruct _road_display_datas2_30[] = {
MAKELINE(0x1212,2,0) MAKELINE(0x1212, 2, 0)
MAKELINE(0x1212,10,0) MAKELINE(0x1212, 10, 0)
ENDLINE ENDLINE
}; };

File diff suppressed because it is too large Load Diff

View File

@ -44,14 +44,14 @@ static const byte _engine_sprite_add[] = {
static const byte _wagon_full_adder[] = { static const byte _wagon_full_adder[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 44, 0, 0, 0, 0, 24, 0, 0, 44, 0, 0, 0, 0, 24,
24, 24, 24, 0, 0, 32, 32, 0, 24, 24, 24, 0, 0, 32, 32, 0,
4, 4, 4, 4, 4, 4, 4, 0, 4, 4, 4, 4, 4, 4, 4, 0,
0, 4, 4, 4, 0, 44, 0, 0, 0, 4, 4, 4, 0, 44, 0, 0,
0, 0, 24, 24, 24, 24, 0, 0, 0, 0, 24, 24, 24, 24, 0, 0,
32, 32 32, 32
}; };

View File

@ -13,8 +13,8 @@ typedef struct DrawTileUnmovableStruct {
#define TILE_SEQ_END() { 0x80, 0, 0, 0, 0, 0, 0 } #define TILE_SEQ_END() { 0x80, 0, 0, 0, 0, 0, 0 }
static const DrawTileUnmovableStruct _draw_tile_unmovable_data[] = { static const DrawTileUnmovableStruct _draw_tile_unmovable_data[] = {
{0xA29, 7,7, 2,2, 70, 0}, {0xA29, 7, 7, 2, 2, 70, 0},
{0xA2A, 4,4, 7,7, 61, 0}, {0xA2A, 4, 4, 7, 7, 61, 0},
}; };

4
tile.h
View File

@ -22,8 +22,8 @@ typedef enum TileTypes {
} TileType; } TileType;
typedef enum TropicZones { typedef enum TropicZones {
TROPICZONE_INVALID = 0, TROPICZONE_INVALID = 0,
TROPICZONE_DESERT = 1, TROPICZONE_DESERT = 1,
TROPICZONE_RAINFOREST = 2, TROPICZONE_RAINFOREST = 2,
} TropicZone; } TropicZone;

34
town.h
View File

@ -96,32 +96,32 @@ enum {
// These refer to the maximums, so Appalling is -1000 to -400 // These refer to the maximums, so Appalling is -1000 to -400
// MAXIMUM RATINGS BOUNDARIES // MAXIMUM RATINGS BOUNDARIES
RATING_MINIMUM = -1000, RATING_MINIMUM = -1000,
RATING_APPALLING = -400, RATING_APPALLING = -400,
RATING_VERYPOOR = -200, RATING_VERYPOOR = -200,
RATING_POOR = 0, RATING_POOR = 0,
RATING_MEDIOCRE = 200, RATING_MEDIOCRE = 200,
RATING_GOOD = 400, RATING_GOOD = 400,
RATING_VERYGOOD = 600, RATING_VERYGOOD = 600,
RATING_EXCELLENT = 800, RATING_EXCELLENT = 800,
RATING_OUTSTANDING = 1000, // OUTSTANDING RATING_OUTSTANDING = 1000, // OUTSTANDING
RATING_MAXIMUM = RATING_OUTSTANDING, RATING_MAXIMUM = RATING_OUTSTANDING,
// RATINGS AFFECTING NUMBERS // RATINGS AFFECTING NUMBERS
RATING_TREE_DOWN_STEP = -35, RATING_TREE_DOWN_STEP = -35,
RATING_TREE_MINIMUM = RATING_MINIMUM, RATING_TREE_MINIMUM = RATING_MINIMUM,
RATING_TREE_UP_STEP = 7, RATING_TREE_UP_STEP = 7,
RATING_TREE_MAXIMUM = 220, RATING_TREE_MAXIMUM = 220,
RATING_TUNNEL_BRIDGE_DOWN_STEP = -250, RATING_TUNNEL_BRIDGE_DOWN_STEP = -250,
RATING_TUNNEL_BRIDGE_MINIMUM = 0, RATING_TUNNEL_BRIDGE_MINIMUM = 0,
RATING_INDUSTRY_DOWN_STEP = -1500, RATING_INDUSTRY_DOWN_STEP = -1500,
RATING_INDUSTRY_MINIMUM = RATING_MINIMUM, RATING_INDUSTRY_MINIMUM = RATING_MINIMUM,
RATING_ROAD_DOWN_STEP = -50, RATING_ROAD_DOWN_STEP = -50,
RATING_ROAD_MINIMUM = -100, RATING_ROAD_MINIMUM = -100,
RATING_HOUSE_MINIMUM = RATING_MINIMUM, RATING_HOUSE_MINIMUM = RATING_MINIMUM,
RATING_BRIBE_UP_STEP = 200, RATING_BRIBE_UP_STEP = 200,
RATING_BRIBE_MAXIMUM = 800, RATING_BRIBE_MAXIMUM = 800,
@ -132,9 +132,9 @@ enum {
/* This is the base "normal" number of towns on the 8x8 map, when /* This is the base "normal" number of towns on the 8x8 map, when
* one town should get grown per tick. The other numbers of towns * one town should get grown per tick. The other numbers of towns
* are then scaled based on that. */ * are then scaled based on that. */
TOWN_GROWTH_FREQUENCY = 23, TOWN_GROWTH_FREQUENCY = 23,
/* Simple value that indicates the house has reached final stage of construction*/ /* Simple value that indicates the house has reached final stage of construction*/
TOWN_HOUSE_COMPLETED = 3, TOWN_HOUSE_COMPLETED = 3,
}; };
/* This enum is used in conjonction with town->flags12. /* This enum is used in conjonction with town->flags12.

View File

@ -788,24 +788,24 @@ static bool GrowTown(Town *t)
static void UpdateTownRadius(Town *t) static void UpdateTownRadius(Town *t)
{ {
static const uint16 _town_radius_data[23][5] = { static const uint16 _town_radius_data[23][5] = {
{ 4, 0, 0, 0, 0}, // 0 { 4, 0, 0, 0, 0}, // 0
{16, 0, 0, 0, 0}, { 16, 0, 0, 0, 0},
{25, 0, 0, 0, 0}, { 25, 0, 0, 0, 0},
{36, 0, 0, 0, 0}, { 36, 0, 0, 0, 0},
{49, 0, 4, 0, 0}, { 49, 0, 4, 0, 0},
{64, 0, 4, 0, 0}, // 20 { 64, 0, 4, 0, 0}, // 20
{64, 0, 9, 0, 1}, { 64, 0, 9, 0, 1},
{64, 0, 9, 0, 4}, { 64, 0, 9, 0, 4},
{64, 0, 16, 0, 4}, { 64, 0, 16, 0, 4},
{81, 0, 16, 0, 4}, { 81, 0, 16, 0, 4},
{81, 0, 16, 0, 4}, // 40 { 81, 0, 16, 0, 4}, // 40
{81, 0, 25, 0, 9}, { 81, 0, 25, 0, 9},
{81, 36, 25, 0, 9}, { 81, 36, 25, 0, 9},
{81, 36, 25, 16, 9}, { 81, 36, 25, 16, 9},
{81, 49, 0, 25, 9}, { 81, 49, 0, 25, 9},
{81, 64, 0, 25, 9}, // 60 { 81, 64, 0, 25, 9}, // 60
{81, 64, 0, 36, 9}, { 81, 64, 0, 36, 9},
{81, 64, 0, 36, 16}, { 81, 64, 0, 36, 16},
{100, 81, 0, 49, 16}, {100, 81, 0, 49, 16},
{100, 81, 0, 49, 25}, {100, 81, 0, 49, 25},
{121, 81, 0, 49, 25}, // 80 {121, 81, 0, 49, 25}, // 80
@ -1794,9 +1794,9 @@ void ChangeTownRating(Town *t, int add, int max)
/* penalty for removing town-owned stuff */ /* penalty for removing town-owned stuff */
static const int _default_rating_settings [3][3] = { static const int _default_rating_settings [3][3] = {
// ROAD_REMOVE, TUNNELBRIDGE_REMOVE, INDUSTRY_REMOVE // ROAD_REMOVE, TUNNELBRIDGE_REMOVE, INDUSTRY_REMOVE
{ 0, 128, 384}, // Permissive { 0, 128, 384}, // Permissive
{ 48, 192, 480}, // Neutral { 48, 192, 480}, // Neutral
{ 96, 384, 768}, // Hostile { 96, 384, 768}, // Hostile
}; };
bool CheckforTownRating(uint32 flags, Town *t, byte type) bool CheckforTownRating(uint32 flags, Town *t, byte type)
@ -1857,80 +1857,80 @@ void InitializeTowns(void)
} }
const TileTypeProcs _tile_type_town_procs = { const TileTypeProcs _tile_type_town_procs = {
DrawTile_Town, /* draw_tile_proc */ DrawTile_Town, /* draw_tile_proc */
GetSlopeZ_Town, /* get_slope_z_proc */ GetSlopeZ_Town, /* get_slope_z_proc */
ClearTile_Town, /* clear_tile_proc */ ClearTile_Town, /* clear_tile_proc */
GetAcceptedCargo_Town, /* get_accepted_cargo_proc */ GetAcceptedCargo_Town, /* get_accepted_cargo_proc */
GetTileDesc_Town, /* get_tile_desc_proc */ GetTileDesc_Town, /* get_tile_desc_proc */
GetTileTrackStatus_Town, /* get_tile_track_status_proc */ GetTileTrackStatus_Town, /* get_tile_track_status_proc */
ClickTile_Town, /* click_tile_proc */ ClickTile_Town, /* click_tile_proc */
AnimateTile_Town, /* animate_tile_proc */ AnimateTile_Town, /* animate_tile_proc */
TileLoop_Town, /* tile_loop_clear */ TileLoop_Town, /* tile_loop_clear */
ChangeTileOwner_Town, /* change_tile_owner_clear */ ChangeTileOwner_Town, /* change_tile_owner_clear */
NULL, /* get_produced_cargo_proc */ NULL, /* get_produced_cargo_proc */
NULL, /* vehicle_enter_tile_proc */ NULL, /* vehicle_enter_tile_proc */
GetSlopeTileh_Town, /* get_slope_tileh_proc */ GetSlopeTileh_Town, /* get_slope_tileh_proc */
}; };
// Save and load of towns. // Save and load of towns.
static const SaveLoad _town_desc[] = { static const SaveLoad _town_desc[] = {
SLE_CONDVAR(Town, xy, SLE_FILE_U16 | SLE_VAR_U32, 0, 5), SLE_CONDVAR(Town, xy, SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
SLE_CONDVAR(Town, xy, SLE_UINT32, 6, SL_MAX_VERSION), SLE_CONDVAR(Town, xy, SLE_UINT32, 6, SL_MAX_VERSION),
SLE_CONDVAR(Town,population, SLE_FILE_U16 | SLE_VAR_U32, 0, 2), SLE_CONDVAR(Town, population, SLE_FILE_U16 | SLE_VAR_U32, 0, 2),
SLE_CONDVAR(Town,population, SLE_UINT32, 3, SL_MAX_VERSION), SLE_CONDVAR(Town, population, SLE_UINT32, 3, SL_MAX_VERSION),
SLE_VAR(Town,num_houses, SLE_UINT16), SLE_VAR(Town, num_houses, SLE_UINT16),
SLE_VAR(Town,townnametype,SLE_UINT16), SLE_VAR(Town, townnametype, SLE_UINT16),
SLE_VAR(Town,townnameparts,SLE_UINT32), SLE_VAR(Town, townnameparts, SLE_UINT32),
SLE_VAR(Town,flags12, SLE_UINT8), SLE_VAR(Town, flags12, SLE_UINT8),
SLE_VAR(Town,statues, SLE_UINT8), SLE_VAR(Town, statues, SLE_UINT8),
// sort_index_obsolete was stored here in savegame format 0 - 1 // sort_index_obsolete was stored here in savegame format 0 - 1
SLE_CONDNULL(1, 0, 1), SLE_CONDNULL(1, 0, 1),
SLE_VAR(Town,have_ratings,SLE_UINT8), SLE_VAR(Town, have_ratings, SLE_UINT8),
SLE_ARR(Town,ratings, SLE_INT16, 8), SLE_ARR(Town, ratings, SLE_INT16, 8),
// failed bribe attempts are stored since savegame format 4 // failed bribe attempts are stored since savegame format 4
SLE_CONDARR(Town,unwanted, SLE_INT8, 8, 4,SL_MAX_VERSION), SLE_CONDARR(Town, unwanted, SLE_INT8, 8, 4,SL_MAX_VERSION),
SLE_CONDVAR(Town,max_pass, SLE_FILE_U16 | SLE_VAR_U32, 0, 8), SLE_CONDVAR(Town, max_pass, SLE_FILE_U16 | SLE_VAR_U32, 0, 8),
SLE_CONDVAR(Town,max_mail, SLE_FILE_U16 | SLE_VAR_U32, 0, 8), SLE_CONDVAR(Town, max_mail, SLE_FILE_U16 | SLE_VAR_U32, 0, 8),
SLE_CONDVAR(Town,new_max_pass,SLE_FILE_U16 | SLE_VAR_U32, 0, 8), SLE_CONDVAR(Town, new_max_pass, SLE_FILE_U16 | SLE_VAR_U32, 0, 8),
SLE_CONDVAR(Town,new_max_mail,SLE_FILE_U16 | SLE_VAR_U32, 0, 8), SLE_CONDVAR(Town, new_max_mail, SLE_FILE_U16 | SLE_VAR_U32, 0, 8),
SLE_CONDVAR(Town,act_pass, SLE_FILE_U16 | SLE_VAR_U32, 0, 8), SLE_CONDVAR(Town, act_pass, SLE_FILE_U16 | SLE_VAR_U32, 0, 8),
SLE_CONDVAR(Town,act_mail, SLE_FILE_U16 | SLE_VAR_U32, 0, 8), SLE_CONDVAR(Town, act_mail, SLE_FILE_U16 | SLE_VAR_U32, 0, 8),
SLE_CONDVAR(Town,new_act_pass,SLE_FILE_U16 | SLE_VAR_U32, 0, 8), SLE_CONDVAR(Town, new_act_pass, SLE_FILE_U16 | SLE_VAR_U32, 0, 8),
SLE_CONDVAR(Town,new_act_mail,SLE_FILE_U16 | SLE_VAR_U32, 0, 8), SLE_CONDVAR(Town, new_act_mail, SLE_FILE_U16 | SLE_VAR_U32, 0, 8),
SLE_CONDVAR(Town,max_pass, SLE_UINT32, 9, SL_MAX_VERSION), SLE_CONDVAR(Town, max_pass, SLE_UINT32, 9, SL_MAX_VERSION),
SLE_CONDVAR(Town,max_mail, SLE_UINT32, 9, SL_MAX_VERSION), SLE_CONDVAR(Town, max_mail, SLE_UINT32, 9, SL_MAX_VERSION),
SLE_CONDVAR(Town,new_max_pass,SLE_UINT32, 9, SL_MAX_VERSION), SLE_CONDVAR(Town, new_max_pass, SLE_UINT32, 9, SL_MAX_VERSION),
SLE_CONDVAR(Town,new_max_mail,SLE_UINT32, 9, SL_MAX_VERSION), SLE_CONDVAR(Town, new_max_mail, SLE_UINT32, 9, SL_MAX_VERSION),
SLE_CONDVAR(Town,act_pass, SLE_UINT32, 9, SL_MAX_VERSION), SLE_CONDVAR(Town, act_pass, SLE_UINT32, 9, SL_MAX_VERSION),
SLE_CONDVAR(Town,act_mail, SLE_UINT32, 9, SL_MAX_VERSION), SLE_CONDVAR(Town, act_mail, SLE_UINT32, 9, SL_MAX_VERSION),
SLE_CONDVAR(Town,new_act_pass,SLE_UINT32, 9, SL_MAX_VERSION), SLE_CONDVAR(Town, new_act_pass, SLE_UINT32, 9, SL_MAX_VERSION),
SLE_CONDVAR(Town,new_act_mail,SLE_UINT32, 9, SL_MAX_VERSION), SLE_CONDVAR(Town, new_act_mail, SLE_UINT32, 9, SL_MAX_VERSION),
SLE_VAR(Town,pct_pass_transported,SLE_UINT8), SLE_VAR(Town, pct_pass_transported, SLE_UINT8),
SLE_VAR(Town,pct_mail_transported,SLE_UINT8), SLE_VAR(Town, pct_mail_transported, SLE_UINT8),
SLE_VAR(Town,act_food, SLE_UINT16), SLE_VAR(Town, act_food, SLE_UINT16),
SLE_VAR(Town,act_water, SLE_UINT16), SLE_VAR(Town, act_water, SLE_UINT16),
SLE_VAR(Town,new_act_food,SLE_UINT16), SLE_VAR(Town, new_act_food, SLE_UINT16),
SLE_VAR(Town,new_act_water,SLE_UINT16), SLE_VAR(Town, new_act_water, SLE_UINT16),
SLE_VAR(Town,time_until_rebuild, SLE_UINT8), SLE_VAR(Town, time_until_rebuild, SLE_UINT8),
SLE_VAR(Town,grow_counter, SLE_UINT8), SLE_VAR(Town, grow_counter, SLE_UINT8),
SLE_VAR(Town,growth_rate, SLE_UINT8), SLE_VAR(Town, growth_rate, SLE_UINT8),
SLE_VAR(Town,fund_buildings_months, SLE_UINT8), SLE_VAR(Town, fund_buildings_months, SLE_UINT8),
SLE_VAR(Town,road_build_months, SLE_UINT8), SLE_VAR(Town, road_build_months, SLE_UINT8),
SLE_VAR(Town,exclusivity, SLE_UINT8), SLE_VAR(Town, exclusivity, SLE_UINT8),
SLE_VAR(Town,exclusive_counter, SLE_UINT8), SLE_VAR(Town, exclusive_counter, SLE_UINT8),
// reserve extra space in savegame here. (currently 30 bytes) // reserve extra space in savegame here. (currently 30 bytes)
SLE_CONDNULL(30, 2, SL_MAX_VERSION), SLE_CONDNULL(30, 2, SL_MAX_VERSION),

View File

@ -18,13 +18,13 @@
#include "variables.h" #include "variables.h"
static const Widget _town_authority_widgets[] = { static const Widget _town_authority_widgets[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, 13, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, { WWT_CLOSEBOX, RESIZE_NONE, 13, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
{ WWT_CAPTION, RESIZE_NONE, 13, 11, 316, 0, 13, STR_2022_LOCAL_AUTHORITY, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_NONE, 13, 11, 316, 0, 13, STR_2022_LOCAL_AUTHORITY, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_IMGBTN, RESIZE_NONE, 13, 0, 316, 14, 105, 0x0, STR_NULL}, { WWT_IMGBTN, RESIZE_NONE, 13, 0, 316, 14, 105, 0x0, STR_NULL},
{ WWT_IMGBTN, RESIZE_NONE, 13, 0, 306, 106, 157, 0x0, STR_2043_LIST_OF_THINGS_TO_DO_AT}, { WWT_IMGBTN, RESIZE_NONE, 13, 0, 306, 106, 157, 0x0, STR_2043_LIST_OF_THINGS_TO_DO_AT},
{ WWT_SCROLLBAR, RESIZE_NONE, 13, 305, 316, 106, 157, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST}, { WWT_SCROLLBAR, RESIZE_NONE, 13, 305, 316, 106, 157, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST},
{ WWT_IMGBTN, RESIZE_NONE, 13, 0, 316, 158, 209, 0x0, STR_NULL}, { WWT_IMGBTN, RESIZE_NONE, 13, 0, 316, 158, 209, 0x0, STR_NULL},
{ WWT_PUSHTXTBTN, RESIZE_NONE, 13, 0, 316, 210, 221, STR_2042_DO_IT, STR_2044_CARRY_OUT_THE_HIGHLIGHTED}, { WWT_PUSHTXTBTN, RESIZE_NONE, 13, 0, 316, 210, 221, STR_2042_DO_IT, STR_2044_CARRY_OUT_THE_HIGHLIGHTED},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -291,15 +291,15 @@ static void TownViewWndProc(Window *w, WindowEvent *e)
static const Widget _town_view_widgets[] = { static const Widget _town_view_widgets[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, 13, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, { WWT_CLOSEBOX, RESIZE_NONE, 13, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
{ WWT_CAPTION, RESIZE_NONE, 13, 11, 247, 0, 13, STR_2005, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_NONE, 13, 11, 247, 0, 13, STR_2005, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_STICKYBOX, RESIZE_NONE, 13, 248, 259, 0, 13, 0x0, STR_STICKY_BUTTON}, { WWT_STICKYBOX, RESIZE_NONE, 13, 248, 259, 0, 13, 0x0, STR_STICKY_BUTTON},
{ WWT_IMGBTN, RESIZE_NONE, 13, 0, 259, 14, 105, 0x0, STR_NULL}, { WWT_IMGBTN, RESIZE_NONE, 13, 0, 259, 14, 105, 0x0, STR_NULL},
{ WWT_6, RESIZE_NONE, 13, 2, 257, 16, 103, 0x0, STR_NULL}, { WWT_6, RESIZE_NONE, 13, 2, 257, 16, 103, 0x0, STR_NULL},
{ WWT_IMGBTN, RESIZE_NONE, 13, 0, 259, 106, 137, 0x0, STR_NULL}, { WWT_IMGBTN, RESIZE_NONE, 13, 0, 259, 106, 137, 0x0, STR_NULL},
{ WWT_PUSHTXTBTN, RESIZE_NONE, 13, 0, 85, 138, 149, STR_00E4_LOCATION, STR_200B_CENTER_THE_MAIN_VIEW_ON}, { WWT_PUSHTXTBTN, RESIZE_NONE, 13, 0, 85, 138, 149, STR_00E4_LOCATION, STR_200B_CENTER_THE_MAIN_VIEW_ON},
{ WWT_PUSHTXTBTN, RESIZE_NONE, 13, 86, 171, 138, 149, STR_2020_LOCAL_AUTHORITY,STR_2021_SHOW_INFORMATION_ON_LOCAL}, { WWT_PUSHTXTBTN, RESIZE_NONE, 13, 86, 171, 138, 149, STR_2020_LOCAL_AUTHORITY, STR_2021_SHOW_INFORMATION_ON_LOCAL},
{ WWT_PUSHTXTBTN, RESIZE_NONE, 13, 172, 259, 138, 149, STR_0130_RENAME, STR_200C_CHANGE_TOWN_NAME}, { WWT_PUSHTXTBTN, RESIZE_NONE, 13, 172, 259, 138, 149, STR_0130_RENAME, STR_200C_CHANGE_TOWN_NAME},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -312,17 +312,17 @@ static const WindowDesc _town_view_desc = {
}; };
static const Widget _town_view_scen_widgets[] = { static const Widget _town_view_scen_widgets[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, 13, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, { WWT_CLOSEBOX, RESIZE_NONE, 13, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
{ WWT_CAPTION, RESIZE_NONE, 13, 11, 172, 0, 13, STR_2005, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_NONE, 13, 11, 172, 0, 13, STR_2005, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_STICKYBOX, RESIZE_NONE, 13, 248, 259, 0, 13, 0x0, STR_STICKY_BUTTON}, { WWT_STICKYBOX, RESIZE_NONE, 13, 248, 259, 0, 13, 0x0, STR_STICKY_BUTTON},
{ WWT_IMGBTN, RESIZE_NONE, 13, 0, 259, 14, 105, 0x0, STR_NULL}, { WWT_IMGBTN, RESIZE_NONE, 13, 0, 259, 14, 105, 0x0, STR_NULL},
{ WWT_6, RESIZE_NONE, 13, 2, 257, 16, 103, 0x0, STR_NULL}, { WWT_6, RESIZE_NONE, 13, 2, 257, 16, 103, 0x0, STR_NULL},
{ WWT_IMGBTN, RESIZE_NONE, 13, 0, 259, 106, 137, 0x0, STR_NULL}, { WWT_IMGBTN, RESIZE_NONE, 13, 0, 259, 106, 137, 0x0, STR_NULL},
{ WWT_PUSHTXTBTN, RESIZE_NONE, 13, 0, 85, 138, 149, STR_00E4_LOCATION, STR_200B_CENTER_THE_MAIN_VIEW_ON}, { WWT_PUSHTXTBTN, RESIZE_NONE, 13, 0, 85, 138, 149, STR_00E4_LOCATION, STR_200B_CENTER_THE_MAIN_VIEW_ON},
{ WWT_EMPTY, RESIZE_NONE, 0, 0, 0, 0, 0, 0x0, STR_NULL}, { WWT_EMPTY, RESIZE_NONE, 0, 0, 0, 0, 0, 0x0, STR_NULL},
{ WWT_PUSHTXTBTN, RESIZE_NONE, 13, 173, 247, 0, 13, STR_0130_RENAME, STR_200C_CHANGE_TOWN_NAME}, { WWT_PUSHTXTBTN, RESIZE_NONE, 13, 173, 247, 0, 13, STR_0130_RENAME, STR_200C_CHANGE_TOWN_NAME},
{ WWT_PUSHTXTBTN, RESIZE_NONE, 13, 86, 171, 138, 149, STR_023C_EXPAND, STR_023B_INCREASE_SIZE_OF_TOWN}, { WWT_PUSHTXTBTN, RESIZE_NONE, 13, 86, 171, 138, 149, STR_023C_EXPAND, STR_023B_INCREASE_SIZE_OF_TOWN},
{ WWT_PUSHTXTBTN, RESIZE_NONE, 13, 172, 259, 138, 149, STR_0290_DELETE, STR_0291_DELETE_THIS_TOWN_COMPLETELY}, { WWT_PUSHTXTBTN, RESIZE_NONE, 13, 172, 259, 138, 149, STR_0290_DELETE, STR_0291_DELETE_THIS_TOWN_COMPLETELY},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -351,15 +351,15 @@ void ShowTownViewWindow(TownID town)
} }
static const Widget _town_directory_widgets[] = { static const Widget _town_directory_widgets[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, 13, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, { WWT_CLOSEBOX, RESIZE_NONE, 13, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
{ WWT_CAPTION, RESIZE_NONE, 13, 11, 195, 0, 13, STR_2000_TOWNS, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_NONE, 13, 11, 195, 0, 13, STR_2000_TOWNS, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_STICKYBOX, RESIZE_NONE, 13, 196, 207, 0, 13, 0x0, STR_STICKY_BUTTON}, { WWT_STICKYBOX, RESIZE_NONE, 13, 196, 207, 0, 13, 0x0, STR_STICKY_BUTTON},
{ WWT_PUSHTXTBTN, RESIZE_NONE, 13, 0, 98, 14, 25, STR_SORT_BY_NAME, STR_SORT_ORDER_TIP}, { WWT_PUSHTXTBTN, RESIZE_NONE, 13, 0, 98, 14, 25, STR_SORT_BY_NAME, STR_SORT_ORDER_TIP},
{ WWT_PUSHTXTBTN, RESIZE_NONE, 13, 99, 195, 14, 25, STR_SORT_BY_POPULATION, STR_SORT_ORDER_TIP}, { WWT_PUSHTXTBTN, RESIZE_NONE, 13, 99, 195, 14, 25, STR_SORT_BY_POPULATION, STR_SORT_ORDER_TIP},
{ WWT_IMGBTN, RESIZE_BOTTOM, 13, 0, 195, 26, 189, 0x0, STR_200A_TOWN_NAMES_CLICK_ON_NAME}, { WWT_IMGBTN, RESIZE_BOTTOM, 13, 0, 195, 26, 189, 0x0, STR_200A_TOWN_NAMES_CLICK_ON_NAME},
{ WWT_SCROLLBAR, RESIZE_BOTTOM, 13, 196, 207, 14, 189, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST}, { WWT_SCROLLBAR, RESIZE_BOTTOM, 13, 196, 207, 14, 189, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST},
{ WWT_PANEL, RESIZE_TB, 13, 0, 195, 190, 201, 0x0, STR_NULL}, { WWT_PANEL, RESIZE_TB, 13, 0, 195, 190, 201, 0x0, STR_NULL},
{ WWT_RESIZEBOX, RESIZE_TB, 13, 196, 207, 190, 201, 0x0, STR_RESIZE_BUTTON}, { WWT_RESIZEBOX, RESIZE_TB, 13, 196, 207, 190, 201, 0x0, STR_RESIZE_BUTTON},
{ WIDGETS_END}, { WIDGETS_END},
}; };

View File

@ -35,8 +35,8 @@
static bool TrainCheckIfLineEnds(Vehicle *v); static bool TrainCheckIfLineEnds(Vehicle *v);
static void TrainController(Vehicle *v); static void TrainController(Vehicle *v);
static const byte _vehicle_initial_x_fract[4] = {10,8,4,8}; static const byte _vehicle_initial_x_fract[4] = {10, 8, 4, 8};
static const byte _vehicle_initial_y_fract[4] = {8,4,8,10}; static const byte _vehicle_initial_y_fract[4] = { 8, 4, 8, 10};
static const byte _state_dir_table[4] = { 0x20, 8, 0x10, 4 }; static const byte _state_dir_table[4] = { 0x20, 8, 0x10, 4 };
/** /**
@ -2171,12 +2171,12 @@ static void FillWithStationData(TrainTrackFollowerData* fd, const Vehicle* v)
} }
static const byte _initial_tile_subcoord[6][4][3] = { static const byte _initial_tile_subcoord[6][4][3] = {
{{ 15, 8, 1 },{ 0, 0, 0 },{ 0, 8, 5 },{ 0, 0, 0 }}, {{ 15, 8, 1 }, { 0, 0, 0 }, { 0, 8, 5 }, { 0, 0, 0 }},
{{ 0, 0, 0 },{ 8, 0, 3 },{ 0, 0, 0 },{ 8,15, 7 }}, {{ 0, 0, 0 }, { 8, 0, 3 }, { 0, 0, 0 }, { 8, 15, 7 }},
{{ 0, 0, 0 },{ 7, 0, 2 },{ 0, 7, 6 },{ 0, 0, 0 }}, {{ 0, 0, 0 }, { 7, 0, 2 }, { 0, 7, 6 }, { 0, 0, 0 }},
{{ 15, 8, 2 },{ 0, 0, 0 },{ 0, 0, 0 },{ 8,15, 6 }}, {{ 15, 8, 2 }, { 0, 0, 0 }, { 0, 0, 0 }, { 8, 15, 6 }},
{{ 15, 7, 0 },{ 8, 0, 4 },{ 0, 0, 0 },{ 0, 0, 0 }}, {{ 15, 7, 0 }, { 8, 0, 4 }, { 0, 0, 0 }, { 0, 0, 0 }},
{{ 0, 0, 0 },{ 0, 0, 0 },{ 0, 8, 4 },{ 7,15, 0 }}, {{ 0, 0, 0 }, { 0, 0, 0 }, { 0, 8, 4 }, { 7, 15, 0 }},
}; };
static const uint32 _reachable_tracks[4] = { static const uint32 _reachable_tracks[4] = {
@ -2712,10 +2712,10 @@ typedef struct {
static const RailtypeSlowdownParams _railtype_slowdown[] = { static const RailtypeSlowdownParams _railtype_slowdown[] = {
// normal accel // normal accel
{256/4, 256/2, 256/4, 2}, // normal {256 / 4, 256 / 2, 256 / 4, 2}, // normal
{256/4, 256/2, 256/4, 2}, // electrified {256 / 4, 256 / 2, 256 / 4, 2}, // electrified
{256/4, 256/2, 256/4, 2}, // monorail {256 / 4, 256 / 2, 256 / 4, 2}, // monorail
{0, 256/2, 256/4, 2}, // maglev {0, 256 / 2, 256 / 4, 2}, // maglev
}; };
/* Modify the speed of the vehicle due to a turn */ /* Modify the speed of the vehicle due to a turn */

View File

@ -302,14 +302,14 @@ static void NewRailVehicleWndProc(Window *w, WindowEvent *e)
} }
static const Widget _new_rail_vehicle_widgets[] = { static const Widget _new_rail_vehicle_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, 227, 0, 13, STR_JUST_STRING, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_NONE, 14, 11, 227, 0, 13, STR_JUST_STRING, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_MATRIX, RESIZE_BOTTOM, 14, 0, 215, 14, 125, 0x801, STR_8843_TRAIN_VEHICLE_SELECTION}, { WWT_MATRIX, RESIZE_BOTTOM, 14, 0, 215, 14, 125, 0x801, STR_8843_TRAIN_VEHICLE_SELECTION},
{ WWT_SCROLLBAR, RESIZE_BOTTOM, 14, 216, 227, 14, 125, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST}, { WWT_SCROLLBAR, RESIZE_BOTTOM, 14, 216, 227, 14, 125, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST},
{ WWT_PANEL, RESIZE_TB, 14, 0, 227, 126, 197, 0x0, STR_NULL}, { WWT_PANEL, RESIZE_TB, 14, 0, 227, 126, 197, 0x0, STR_NULL},
{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 0, 107, 198, 209, STR_881F_BUILD_VEHICLE, STR_8844_BUILD_THE_HIGHLIGHTED_TRAIN}, { WWT_PUSHTXTBTN, RESIZE_TB, 14, 0, 107, 198, 209, STR_881F_BUILD_VEHICLE, STR_8844_BUILD_THE_HIGHLIGHTED_TRAIN},
{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 108, 215, 198, 209, STR_8820_RENAME, STR_8845_RENAME_TRAIN_VEHICLE_TYPE}, { WWT_PUSHTXTBTN, RESIZE_TB, 14, 108, 215, 198, 209, STR_8820_RENAME, STR_8845_RENAME_TRAIN_VEHICLE_TYPE},
{ WWT_RESIZEBOX, RESIZE_TB, 14, 216, 227, 198, 209, 0x0, STR_RESIZE_BUTTON}, { WWT_RESIZEBOX, RESIZE_TB, 14, 216, 227, 198, 209, 0x0, STR_RESIZE_BUTTON},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -772,25 +772,25 @@ static void TrainDepotWndProc(Window *w, WindowEvent *e)
} }
static const Widget _train_depot_widgets[] = { static const Widget _train_depot_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_RIGHT, 14, 11, 348, 0, 13, STR_8800_TRAIN_DEPOT, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_RIGHT, 14, 11, 348, 0, 13, STR_8800_TRAIN_DEPOT, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_STICKYBOX, RESIZE_LR, 14, 349, 360, 0, 13, 0x0, STR_STICKY_BUTTON}, { WWT_STICKYBOX, RESIZE_LR, 14, 349, 360, 0, 13, 0x0, STR_STICKY_BUTTON},
{ WWT_PANEL, RESIZE_LRB, 14, 326, 348, 14, 13, 0x0, STR_NULL}, { WWT_PANEL, RESIZE_LRB, 14, 326, 348, 14, 13, 0x0, STR_NULL},
{ WWT_PANEL, RESIZE_LRTB, 14, 326, 348, 14, 54, 0x2A9, STR_8841_DRAG_TRAIN_VEHICLE_TO_HERE}, { WWT_PANEL, RESIZE_LRTB, 14, 326, 348, 14, 54, 0x2A9, STR_8841_DRAG_TRAIN_VEHICLE_TO_HERE},
{ WWT_PANEL, RESIZE_LRTB, 14, 326, 348, 55, 109, 0x2BF, STR_DRAG_WHOLE_TRAIN_TO_SELL_TIP}, { WWT_PANEL, RESIZE_LRTB, 14, 326, 348, 55, 109, 0x2BF, STR_DRAG_WHOLE_TRAIN_TO_SELL_TIP},
{ WWT_MATRIX, RESIZE_RB, 14, 0, 325, 14, 97, 0x601, STR_883F_TRAINS_CLICK_ON_TRAIN_FOR}, { WWT_MATRIX, RESIZE_RB, 14, 0, 325, 14, 97, 0x601, STR_883F_TRAINS_CLICK_ON_TRAIN_FOR},
{ WWT_SCROLLBAR, RESIZE_LRB, 14, 349, 360, 14, 109, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST}, { WWT_SCROLLBAR, RESIZE_LRB, 14, 349, 360, 14, 109, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST},
{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 0, 116, 110, 121, STR_8815_NEW_VEHICLES, STR_8840_BUILD_NEW_TRAIN_VEHICLE}, { WWT_PUSHTXTBTN, RESIZE_TB, 14, 0, 116, 110, 121, STR_8815_NEW_VEHICLES, STR_8840_BUILD_NEW_TRAIN_VEHICLE},
{WWT_NODISTXTBTN, RESIZE_TB, 14, 117, 232, 110, 121, STR_CLONE_TRAIN, STR_CLONE_TRAIN_DEPOT_INFO}, {WWT_NODISTXTBTN, RESIZE_TB, 14, 117, 232, 110, 121, STR_CLONE_TRAIN, STR_CLONE_TRAIN_DEPOT_INFO},
{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 233, 348, 110, 121, STR_00E4_LOCATION, STR_8842_CENTER_MAIN_VIEW_ON_TRAIN}, { WWT_PUSHTXTBTN, RESIZE_TB, 14, 233, 348, 110, 121, STR_00E4_LOCATION, STR_8842_CENTER_MAIN_VIEW_ON_TRAIN},
{ WWT_HSCROLLBAR, RESIZE_RTB, 14, 0, 325, 98, 109, 0x0, STR_HSCROLL_BAR_SCROLLS_LIST}, { WWT_HSCROLLBAR, RESIZE_RTB, 14, 0, 325, 98, 109, 0x0, STR_HSCROLL_BAR_SCROLLS_LIST},
{ WWT_PANEL, RESIZE_RTB, 14, 349, 348, 110, 121, 0x0, STR_NULL}, { WWT_PANEL, RESIZE_RTB, 14, 349, 348, 110, 121, 0x0, STR_NULL},
{ WWT_RESIZEBOX, RESIZE_LRTB, 14, 349, 360, 110, 121, 0x0, STR_RESIZE_BUTTON}, { WWT_RESIZEBOX, RESIZE_LRTB, 14, 349, 360, 110, 121, 0x0, STR_RESIZE_BUTTON},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -868,11 +868,11 @@ static void RailVehicleRefitWndProc(Window *w, WindowEvent *e)
static const Widget _rail_vehicle_refit_widgets[] = { static const Widget _rail_vehicle_refit_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, 239, 0, 13, STR_983B_REFIT, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_NONE, 14, 11, 239, 0, 13, STR_983B_REFIT, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 239, 14, 135, 0x0, STR_RAIL_SELECT_TYPE_OF_CARGO_FOR}, { WWT_IMGBTN, RESIZE_NONE, 14, 0, 239, 14, 135, 0x0, STR_RAIL_SELECT_TYPE_OF_CARGO_FOR},
{ WWT_IMGBTN, RESIZE_NONE, 14, 0, 239, 136, 157, 0x0, STR_NULL}, { WWT_IMGBTN, RESIZE_NONE, 14, 0, 239, 136, 157, 0x0, STR_NULL},
{ WWT_PUSHTXTBTN, RESIZE_NONE, 14, 0, 239, 158, 169, STR_RAIL_REFIT_VEHICLE,STR_RAIL_REFIT_TO_CARRY_HIGHLIGHTED}, { WWT_PUSHTXTBTN, RESIZE_NONE, 14, 0, 239, 158, 169, STR_RAIL_REFIT_VEHICLE, STR_RAIL_REFIT_TO_CARRY_HIGHLIGHTED},
{ WIDGETS_END}, { WIDGETS_END},
}; };
@ -896,22 +896,22 @@ static void ShowRailVehicleRefitWindow(Vehicle *v)
} }
static const Widget _train_view_widgets[] = { static const Widget _train_view_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_RIGHT, 14, 11, 237, 0, 13, STR_882E, STR_018C_WINDOW_TITLE_DRAG_THIS }, { WWT_CAPTION, RESIZE_RIGHT, 14, 11, 237, 0, 13, STR_882E, STR_018C_WINDOW_TITLE_DRAG_THIS },
{ WWT_STICKYBOX, RESIZE_LR, 14, 238, 249, 0, 13, 0x0, STR_STICKY_BUTTON }, { WWT_STICKYBOX, RESIZE_LR, 14, 238, 249, 0, 13, 0x0, STR_STICKY_BUTTON },
{ WWT_PANEL, RESIZE_RB, 14, 0, 231, 14, 121, 0x0, STR_NULL }, { WWT_PANEL, RESIZE_RB, 14, 0, 231, 14, 121, 0x0, STR_NULL },
{ WWT_6, RESIZE_RB, 14, 2, 229, 16, 119, 0x0, STR_NULL }, { WWT_6, RESIZE_RB, 14, 2, 229, 16, 119, 0x0, STR_NULL },
{ WWT_PUSHIMGBTN, RESIZE_RTB, 14, 0, 237, 122, 133, 0x0, STR_8846_CURRENT_TRAIN_ACTION_CLICK }, { WWT_PUSHIMGBTN, RESIZE_RTB, 14, 0, 237, 122, 133, 0x0, STR_8846_CURRENT_TRAIN_ACTION_CLICK },
{ WWT_PUSHIMGBTN, RESIZE_LR, 14, 232, 249, 14, 31, 0x2AB, STR_8848_CENTER_MAIN_VIEW_ON_TRAIN }, { WWT_PUSHIMGBTN, RESIZE_LR, 14, 232, 249, 14, 31, 0x2AB, STR_8848_CENTER_MAIN_VIEW_ON_TRAIN },
{ WWT_PUSHIMGBTN, RESIZE_LR, 14, 232, 249, 32, 49, 0x2AD, STR_8849_SEND_TRAIN_TO_DEPOT }, { WWT_PUSHIMGBTN, RESIZE_LR, 14, 232, 249, 32, 49, 0x2AD, STR_8849_SEND_TRAIN_TO_DEPOT },
{ WWT_PUSHIMGBTN, RESIZE_LR, 14, 232, 249, 50, 67, 0x2B1, STR_884A_FORCE_TRAIN_TO_PROCEED }, { WWT_PUSHIMGBTN, RESIZE_LR, 14, 232, 249, 50, 67, 0x2B1, STR_884A_FORCE_TRAIN_TO_PROCEED },
{ WWT_PUSHIMGBTN, RESIZE_LR, 14, 232, 249, 68, 85, 0x2CB, STR_884B_REVERSE_DIRECTION_OF_TRAIN }, { WWT_PUSHIMGBTN, RESIZE_LR, 14, 232, 249, 68, 85, 0x2CB, STR_884B_REVERSE_DIRECTION_OF_TRAIN },
{ WWT_PUSHIMGBTN, RESIZE_LR, 14, 232, 249, 86, 103, 0x2B2, STR_8847_SHOW_TRAIN_S_ORDERS }, { WWT_PUSHIMGBTN, RESIZE_LR, 14, 232, 249, 86, 103, 0x2B2, STR_8847_SHOW_TRAIN_S_ORDERS },
{ WWT_PUSHIMGBTN, RESIZE_LR, 14, 232, 249, 104, 121, 0x2B3, STR_884C_SHOW_TRAIN_DETAILS }, { WWT_PUSHIMGBTN, RESIZE_LR, 14, 232, 249, 104, 121, 0x2B3, STR_884C_SHOW_TRAIN_DETAILS },
{ WWT_PUSHIMGBTN, RESIZE_LR, 14, 232, 249, 68, 85, 0x2B4, STR_RAIL_REFIT_VEHICLE_TO_CARRY }, { WWT_PUSHIMGBTN, RESIZE_LR, 14, 232, 249, 68, 85, 0x2B4, STR_RAIL_REFIT_VEHICLE_TO_CARRY },
{ WWT_PUSHIMGBTN, RESIZE_LR, 14, 232, 249, 32, 49, SPR_CLONE_TRAIN, STR_CLONE_TRAIN_INFO }, { WWT_PUSHIMGBTN, RESIZE_LR, 14, 232, 249, 32, 49, SPR_CLONE_TRAIN, STR_CLONE_TRAIN_INFO },
{ WWT_PANEL, RESIZE_LRB, 14, 232, 249, 122, 121, 0x0, STR_NULL }, { WWT_PANEL, RESIZE_LRB, 14, 232, 249, 122, 121, 0x0, STR_NULL },
{ WWT_RESIZEBOX, RESIZE_LRTB, 14, 238, 249, 122, 133, 0x0, STR_NULL }, { WWT_RESIZEBOX, RESIZE_LRTB, 14, 238, 249, 122, 133, 0x0, STR_NULL },
{ WIDGETS_END } { WIDGETS_END }
}; };
@ -1369,34 +1369,34 @@ static void ShowTrainDetailsWindow(const Vehicle *v)
} }
static const Widget _player_trains_widgets[] = { static const Widget _player_trains_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_RIGHT, 14, 11, 312, 0, 13, STR_881B_TRAINS, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_RIGHT, 14, 11, 312, 0, 13, STR_881B_TRAINS, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_STICKYBOX, RESIZE_LR, 14, 313, 324, 0, 13, 0x0, STR_STICKY_BUTTON}, { WWT_STICKYBOX, RESIZE_LR, 14, 313, 324, 0, 13, 0x0, STR_STICKY_BUTTON},
{ WWT_PUSHTXTBTN, RESIZE_NONE, 14, 0, 80, 14, 25, STR_SORT_BY, STR_SORT_ORDER_TIP}, { 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_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_TEXTBTN, RESIZE_NONE, 14, 236, 247, 14, 25, STR_0225, STR_SORT_CRITERIA_TIP},
{ WWT_PANEL, RESIZE_RIGHT, 14, 248, 324, 14, 25, 0x0, STR_NULL}, { WWT_PANEL, RESIZE_RIGHT, 14, 248, 324, 14, 25, 0x0, STR_NULL},
{ WWT_MATRIX, RESIZE_RB, 14, 0, 312, 26, 207, 0x701, STR_883D_TRAINS_CLICK_ON_TRAIN_FOR}, { WWT_MATRIX, RESIZE_RB, 14, 0, 312, 26, 207, 0x701, STR_883D_TRAINS_CLICK_ON_TRAIN_FOR},
{ WWT_SCROLLBAR, RESIZE_LRB, 14, 313, 324, 26, 207, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST}, { WWT_SCROLLBAR, RESIZE_LRB, 14, 313, 324, 26, 207, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST},
{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 0, 156, 208, 219, STR_8815_NEW_VEHICLES, STR_883E_BUILD_NEW_TRAINS_REQUIRES}, { WWT_PUSHTXTBTN, RESIZE_TB, 14, 0, 156, 208, 219, STR_8815_NEW_VEHICLES, STR_883E_BUILD_NEW_TRAINS_REQUIRES},
{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 157, 312, 208, 219, STR_REPLACE_VEHICLES, STR_REPLACE_HELP}, { WWT_PUSHTXTBTN, RESIZE_TB, 14, 157, 312, 208, 219, STR_REPLACE_VEHICLES, STR_REPLACE_HELP},
{ WWT_PANEL, RESIZE_RTB, 14, 313, 312, 208, 219, 0x0, STR_NULL}, { WWT_PANEL, RESIZE_RTB, 14, 313, 312, 208, 219, 0x0, STR_NULL},
{ WWT_RESIZEBOX, RESIZE_LRTB, 14, 313, 324, 208, 219, 0x0, STR_RESIZE_BUTTON}, { WWT_RESIZEBOX, RESIZE_LRTB, 14, 313, 324, 208, 219, 0x0, STR_RESIZE_BUTTON},
{ WIDGETS_END}, { WIDGETS_END},
}; };
static const Widget _other_player_trains_widgets[] = { static const Widget _other_player_trains_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_RIGHT, 14, 11, 312, 0, 13, STR_881B_TRAINS, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_RIGHT, 14, 11, 312, 0, 13, STR_881B_TRAINS, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_STICKYBOX, RESIZE_LR, 14, 313, 324, 0, 13, 0x0, STR_STICKY_BUTTON}, { WWT_STICKYBOX, RESIZE_LR, 14, 313, 324, 0, 13, 0x0, STR_STICKY_BUTTON},
{ WWT_PUSHTXTBTN, RESIZE_NONE, 14, 0, 80, 14, 25, STR_SORT_BY, STR_SORT_ORDER_TIP}, { 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_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_TEXTBTN, RESIZE_NONE, 14, 236, 247, 14, 25, STR_0225, STR_SORT_CRITERIA_TIP},
{ WWT_PANEL, RESIZE_RIGHT, 14, 248, 324, 14, 25, 0x0, STR_NULL}, { WWT_PANEL, RESIZE_RIGHT, 14, 248, 324, 14, 25, 0x0, STR_NULL},
{ WWT_MATRIX, RESIZE_RB, 14, 0, 312, 26, 207, 0x701, STR_883D_TRAINS_CLICK_ON_TRAIN_FOR}, { WWT_MATRIX, RESIZE_RB, 14, 0, 312, 26, 207, 0x701, STR_883D_TRAINS_CLICK_ON_TRAIN_FOR},
{ WWT_SCROLLBAR, RESIZE_LRB, 14, 313, 324, 26, 207, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST}, { WWT_SCROLLBAR, RESIZE_LRB, 14, 313, 324, 26, 207, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST},
{ WWT_PANEL, RESIZE_RTB, 14, 0, 312, 208, 219, 0x0, STR_NULL}, { WWT_PANEL, RESIZE_RTB, 14, 0, 312, 208, 219, 0x0, STR_NULL},
{ WWT_RESIZEBOX, RESIZE_LRTB, 14, 313, 324, 208, 219, 0x0, STR_RESIZE_BUTTON}, { WWT_RESIZEBOX, RESIZE_LRTB, 14, 313, 324, 208, 219, 0x0, STR_RESIZE_BUTTON},
{ WIDGETS_END}, { WIDGETS_END},
}; };

View File

@ -657,17 +657,17 @@ void InitializeTrees(void)
const TileTypeProcs _tile_type_trees_procs = { const TileTypeProcs _tile_type_trees_procs = {
DrawTile_Trees, /* draw_tile_proc */ DrawTile_Trees, /* draw_tile_proc */
GetSlopeZ_Trees, /* get_slope_z_proc */ GetSlopeZ_Trees, /* get_slope_z_proc */
ClearTile_Trees, /* clear_tile_proc */ ClearTile_Trees, /* clear_tile_proc */
GetAcceptedCargo_Trees, /* get_accepted_cargo_proc */ GetAcceptedCargo_Trees, /* get_accepted_cargo_proc */
GetTileDesc_Trees, /* get_tile_desc_proc */ GetTileDesc_Trees, /* get_tile_desc_proc */
GetTileTrackStatus_Trees, /* get_tile_track_status_proc */ GetTileTrackStatus_Trees, /* get_tile_track_status_proc */
ClickTile_Trees, /* click_tile_proc */ ClickTile_Trees, /* click_tile_proc */
AnimateTile_Trees, /* animate_tile_proc */ AnimateTile_Trees, /* animate_tile_proc */
TileLoop_Trees, /* tile_loop_clear */ TileLoop_Trees, /* tile_loop_clear */
ChangeTileOwner_Trees, /* change_tile_owner_clear */ ChangeTileOwner_Trees, /* change_tile_owner_clear */
NULL, /* get_produced_cargo_proc */ NULL, /* get_produced_cargo_proc */
NULL, /* vehicle_enter_tile_proc */ NULL, /* vehicle_enter_tile_proc */
GetSlopeTileh_Trees, /* get_slope_tileh_proc */ GetSlopeTileh_Trees, /* get_slope_tileh_proc */
}; };

View File

@ -846,9 +846,9 @@ uint GetBridgeHeight(TileIndex t)
} }
static const byte _bridge_foundations[][31] = { static const byte _bridge_foundations[][31] = {
// 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 _S _W _N _E // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 _S _W _N _E
{ 0,16,18, 3,20, 5, 0, 7,22, 0,10,11,12,13,14, 0, 0, 0, 0, 0, 0, 0, 0,18, 0, 0, 0,16, 0,22,20 }, { 0, 16, 18, 3, 20, 5, 0, 7, 22, 0, 10, 11, 12, 13, 14, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 16, 0, 22, 20 },
{ 0,15,17, 0,19, 5, 6, 7,21, 9,10,11, 0,13,14, 0, 0, 0, 0, 0, 0, 0, 0,17, 0, 0, 0,15, 0,21,19 } { 0, 15, 17, 0, 19, 5, 6, 7, 21, 9, 10, 11, 0, 13, 14, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 15, 0, 21, 19 }
}; };
extern const byte _road_sloped_sprites[14]; extern const byte _road_sloped_sprites[14];
@ -1218,7 +1218,7 @@ static const StringID _bridge_tile_str[(MAX_BRIDGES + 3) + (MAX_BRIDGES + 3)] =
STR_5027_TUBULAR_RAIL_BRIDGE, STR_5027_TUBULAR_RAIL_BRIDGE,
STR_5027_TUBULAR_RAIL_BRIDGE, STR_5027_TUBULAR_RAIL_BRIDGE,
STR_5027_TUBULAR_RAIL_BRIDGE, STR_5027_TUBULAR_RAIL_BRIDGE,
0,0,0, 0, 0, 0,
STR_5025_WOODEN_ROAD_BRIDGE, STR_5025_WOODEN_ROAD_BRIDGE,
STR_5026_CONCRETE_ROAD_BRIDGE, STR_5026_CONCRETE_ROAD_BRIDGE,
@ -1233,7 +1233,7 @@ static const StringID _bridge_tile_str[(MAX_BRIDGES + 3) + (MAX_BRIDGES + 3)] =
STR_5028_TUBULAR_ROAD_BRIDGE, STR_5028_TUBULAR_ROAD_BRIDGE,
STR_5028_TUBULAR_ROAD_BRIDGE, STR_5028_TUBULAR_ROAD_BRIDGE,
STR_5028_TUBULAR_ROAD_BRIDGE, STR_5028_TUBULAR_ROAD_BRIDGE,
0,0,0, 0, 0, 0,
}; };
static void GetTileDesc_TunnelBridge(TileIndex tile, TileDesc *td) static void GetTileDesc_TunnelBridge(TileIndex tile, TileDesc *td)
@ -1330,18 +1330,18 @@ static void ChangeTileOwner_TunnelBridge(TileIndex tile, PlayerID old_player, Pl
} }
static const byte _tunnel_fractcoord_1[4] = {0x8E,0x18,0x81,0xE8}; static const byte _tunnel_fractcoord_1[4] = {0x8E, 0x18, 0x81, 0xE8};
static const byte _tunnel_fractcoord_2[4] = {0x81,0x98,0x87,0x38}; static const byte _tunnel_fractcoord_2[4] = {0x81, 0x98, 0x87, 0x38};
static const byte _tunnel_fractcoord_3[4] = {0x82,0x88,0x86,0x48}; static const byte _tunnel_fractcoord_3[4] = {0x82, 0x88, 0x86, 0x48};
static const byte _exit_tunnel_track[4] = {1,2,1,2}; static const byte _exit_tunnel_track[4] = {1, 2, 1, 2};
static const byte _road_exit_tunnel_state[4] = {8, 9, 0, 1}; static const byte _road_exit_tunnel_state[4] = {8, 9, 0, 1};
static const byte _road_exit_tunnel_frame[4] = {2, 7, 9, 4}; static const byte _road_exit_tunnel_frame[4] = {2, 7, 9, 4};
static const byte _tunnel_fractcoord_4[4] = {0x52, 0x85, 0x98, 0x29}; static const byte _tunnel_fractcoord_4[4] = {0x52, 0x85, 0x98, 0x29};
static const byte _tunnel_fractcoord_5[4] = {0x92, 0x89, 0x58, 0x25}; static const byte _tunnel_fractcoord_5[4] = {0x92, 0x89, 0x58, 0x25};
static const byte _tunnel_fractcoord_6[4] = {0x92, 0x89, 0x56, 0x45}; static const byte _tunnel_fractcoord_6[4] = {0x92, 0x89, 0x56, 0x45};
static const byte _tunnel_fractcoord_7[4] = {0x52, 0x85, 0x96, 0x49}; static const byte _tunnel_fractcoord_7[4] = {0x52, 0x85, 0x96, 0x49};
static uint32 VehicleEnter_TunnelBridge(Vehicle *v, TileIndex tile, int x, int y) static uint32 VehicleEnter_TunnelBridge(Vehicle *v, TileIndex tile, int x, int y)
{ {
@ -1454,17 +1454,17 @@ TileIndex GetVehicleOutOfTunnelTile(const Vehicle *v)
} }
const TileTypeProcs _tile_type_tunnelbridge_procs = { const TileTypeProcs _tile_type_tunnelbridge_procs = {
DrawTile_TunnelBridge, /* draw_tile_proc */ DrawTile_TunnelBridge, /* draw_tile_proc */
GetSlopeZ_TunnelBridge, /* get_slope_z_proc */ GetSlopeZ_TunnelBridge, /* get_slope_z_proc */
ClearTile_TunnelBridge, /* clear_tile_proc */ ClearTile_TunnelBridge, /* clear_tile_proc */
GetAcceptedCargo_TunnelBridge, /* get_accepted_cargo_proc */ GetAcceptedCargo_TunnelBridge, /* get_accepted_cargo_proc */
GetTileDesc_TunnelBridge, /* get_tile_desc_proc */ GetTileDesc_TunnelBridge, /* get_tile_desc_proc */
GetTileTrackStatus_TunnelBridge,/* get_tile_track_status_proc */ GetTileTrackStatus_TunnelBridge, /* get_tile_track_status_proc */
ClickTile_TunnelBridge, /* click_tile_proc */ ClickTile_TunnelBridge, /* click_tile_proc */
AnimateTile_TunnelBridge, /* animate_tile_proc */ AnimateTile_TunnelBridge, /* animate_tile_proc */
TileLoop_TunnelBridge, /* tile_loop_clear */ TileLoop_TunnelBridge, /* tile_loop_clear */
ChangeTileOwner_TunnelBridge, /* change_tile_owner_clear */ ChangeTileOwner_TunnelBridge, /* change_tile_owner_clear */
NULL, /* get_produced_cargo_proc */ NULL, /* get_produced_cargo_proc */
VehicleEnter_TunnelBridge, /* vehicle_enter_tile_proc */ VehicleEnter_TunnelBridge, /* vehicle_enter_tile_proc */
GetSlopeTileh_TunnelBridge, /* get_slope_tileh_proc */ GetSlopeTileh_TunnelBridge, /* get_slope_tileh_proc */
}; };

View File

@ -82,131 +82,131 @@ VARDEF byte _saved_scrollpos_zoom;
// ********* END OF SAVE REGION // ********* END OF SAVE REGION
typedef struct Patches { typedef struct Patches {
bool modified_catchment; //different-size catchment areas bool modified_catchment; // different-size catchment areas
bool vehicle_speed; // show vehicle speed bool vehicle_speed; // show vehicle speed
bool build_on_slopes; // allow building on slopes bool build_on_slopes; // allow building on slopes
bool mammoth_trains; // allow very long trains bool mammoth_trains; // allow very long trains
bool join_stations; // allow joining of train stations bool join_stations; // allow joining of train stations
bool full_load_any; // new full load calculation, any cargo must be full bool full_load_any; // new full load calculation, any cargo must be full
bool improved_load; // improved loading algorithm bool improved_load; // improved loading algorithm
byte station_spread; // amount a station may spread byte station_spread; // amount a station may spread
bool inflation; // disable inflation bool inflation; // disable inflation
bool selectgoods; // only send the goods to station if a train has been there bool selectgoods; // only send the goods to station if a train has been there
bool longbridges; // allow 100 tile long bridges bool longbridges; // allow 100 tile long bridges
bool gotodepot; // allow goto depot in orders bool gotodepot; // allow goto depot in orders
bool build_rawmaterial_ind; // allow building raw material industries bool build_rawmaterial_ind; // allow building raw material industries
bool multiple_industry_per_town; // allow many industries of the same type per town bool multiple_industry_per_town; // allow many industries of the same type per town
bool same_industry_close; // allow same type industries to be built close to each other bool same_industry_close; // allow same type industries to be built close to each other
uint16 lost_train_days; // if a train doesn't switch order in this amount of days, a train is lost warning is shown uint16 lost_train_days; // if a train doesn't switch order in this amount of days, a train is lost warning is shown
uint8 order_review_system; uint8 order_review_system;
bool train_income_warn; // if train is generating little income, show a warning bool train_income_warn; // if train is generating little income, show a warning
bool status_long_date; // always show long date in status bar bool status_long_date; // always show long date in status bar
bool signal_side; // show signals on right side bool signal_side; // show signals on right side
bool show_finances; // show finances at end of year bool show_finances; // show finances at end of year
bool new_nonstop; // ttdpatch compatible nonstop handling bool new_nonstop; // ttdpatch compatible nonstop handling
bool roadveh_queue; // buggy road vehicle queueing bool roadveh_queue; // buggy road vehicle queueing
bool autoscroll; // scroll when moving mouse to the edge. bool autoscroll; // scroll when moving mouse to the edge.
byte errmsg_duration; // duration of error message byte errmsg_duration; // duration of error message
byte land_generator; // the landscape generator byte land_generator; // the landscape generator
byte oil_refinery_limit; // distance oil refineries allowed from map edge byte oil_refinery_limit; // distance oil refineries allowed from map edge
byte snow_line_height; // a number 0-15 that configured snow line height byte snow_line_height; // a number 0-15 that configured snow line height
byte tgen_smoothness; // how rough is the terrain from 0-3 byte tgen_smoothness; // how rough is the terrain from 0-3
uint32 generation_seed; // noise seed for world generation uint32 generation_seed; // noise seed for world generation
byte tree_placer; // the tree placer algorithm byte tree_placer; // the tree placer algorithm
byte heightmap_rotation;// rotation director for the heightmap byte heightmap_rotation; // rotation director for the heightmap
uint16 progress_update_interval;// interval between two updates of the progress in hundreds of milliseconds uint16 progress_update_interval; // interval between two updates of the progress in hundreds of milliseconds
byte se_flat_world_height; // land height a flat world gets in SE byte se_flat_world_height; // land height a flat world gets in SE
bool bribe; // enable bribing the local authority bool bribe; // enable bribing the local authority
bool nonuniform_stations;// allow nonuniform train stations bool nonuniform_stations; // allow nonuniform train stations
bool always_small_airport; // always allow small airports bool always_small_airport; // always allow small airports
bool realistic_acceleration; // realistic acceleration for trains bool realistic_acceleration; // realistic acceleration for trains
bool wagon_speed_limits; // enable wagon speed limits bool wagon_speed_limits; // enable wagon speed limits
bool forbid_90_deg; // forbid trains to make 90 deg turns bool forbid_90_deg; // forbid trains to make 90 deg turns
bool invisible_trees; // don't show trees when buildings are transparent bool invisible_trees; // don't show trees when buildings are transparent
bool no_servicing_if_no_breakdowns; // dont send vehicles to depot when breakdowns are disabled bool no_servicing_if_no_breakdowns; // dont send vehicles to depot when breakdowns are disabled
bool link_terraform_toolbar; // display terraform toolbar when displaying rail, road, water and airport toolbars bool link_terraform_toolbar; // display terraform toolbar when displaying rail, road, water and airport toolbars
bool reverse_scroll; // Right-Click-Scrolling scrolls in the opposite direction bool reverse_scroll; // Right-Click-Scrolling scrolls in the opposite direction
uint8 toolbar_pos; // position of toolbars, 0=left, 1=center, 2=right uint8 toolbar_pos; // position of toolbars, 0=left, 1=center, 2=right
uint8 window_snap_radius; // Windows snap at each other if closer than this uint8 window_snap_radius; // Windows snap at each other if closer than this
UnitID max_trains; //max trains in game per player (these are 16bit because the unitnumber field can't hold more) UnitID max_trains; // max trains in game per player (these are 16bit because the unitnumber field can't hold more)
UnitID max_roadveh; //max trucks in game per player UnitID max_roadveh; // max trucks in game per player
UnitID max_aircraft; //max planes in game per player UnitID max_aircraft; // max planes in game per player
UnitID max_ships; //max ships in game per player UnitID max_ships; // max ships in game per player
bool servint_ispercent; // service intervals are in percents bool servint_ispercent; // service intervals are in percents
uint16 servint_trains; // service interval for trains uint16 servint_trains; // service interval for trains
uint16 servint_roadveh; // service interval for road vehicles uint16 servint_roadveh; // service interval for road vehicles
uint16 servint_aircraft;// service interval for aircraft uint16 servint_aircraft; // service interval for aircraft
uint16 servint_ships; // service interval for ships uint16 servint_ships; // service interval for ships
bool autorenew; bool autorenew;
int16 autorenew_months; int16 autorenew_months;
int32 autorenew_money; int32 autorenew_money;
byte pf_maxdepth; // maximum recursion depth when searching for a train route for new pathfinder byte pf_maxdepth; // maximum recursion depth when searching for a train route for new pathfinder
uint16 pf_maxlength; // maximum length when searching for a train route for new pathfinder uint16 pf_maxlength; // maximum length when searching for a train route for new pathfinder
bool bridge_pillars; // show bridge pillars for high bridges bool bridge_pillars; // show bridge pillars for high bridges
bool ai_disable_veh_train; // disable types for AI bool ai_disable_veh_train; // disable types for AI
bool ai_disable_veh_roadveh; // disable types for AI bool ai_disable_veh_roadveh; // disable types for AI
bool ai_disable_veh_aircraft; // disable types for AI bool ai_disable_veh_aircraft; // disable types for AI
bool ai_disable_veh_ship; // disable types for AI bool ai_disable_veh_ship; // disable types for AI
Year starting_year; // starting date Year starting_year; // starting date
Year ending_year; // end of the game (just show highscore) Year ending_year; // end of the game (just show highscore)
Year colored_news_year; // when does newspaper become colored? Year colored_news_year; // when does newspaper become colored?
bool keep_all_autosave; // name the autosave in a different way. bool keep_all_autosave; // name the autosave in a different way.
bool autosave_on_exit; // save an autosave when you quit the game, but do not ask "Do you really want to quit?" bool autosave_on_exit; // save an autosave when you quit the game, but do not ask "Do you really want to quit?"
byte max_num_autosaves; // controls how many autosavegames are made before the game starts to overwrite (names them 0 to max_num_autosaves - 1) byte max_num_autosaves; // controls how many autosavegames are made before the game starts to overwrite (names them 0 to max_num_autosaves - 1)
bool extra_dynamite; // extra dynamite bool extra_dynamite; // extra dynamite
bool never_expire_vehicles; // never expire vehicles bool never_expire_vehicles; // never expire vehicles
byte extend_vehicle_life; // extend vehicle life by this many years byte extend_vehicle_life; // extend vehicle life by this many years
bool auto_euro; // automatically switch to euro in 2002 bool auto_euro; // automatically switch to euro in 2002
bool serviceathelipad; // service helicopters at helipads automatically (no need to send to depot) bool serviceathelipad; // service helicopters at helipads automatically (no need to send to depot)
bool smooth_economy; // smooth economy bool smooth_economy; // smooth economy
bool allow_shares; // allow the buying/selling of shares bool allow_shares; // allow the buying/selling of shares
byte dist_local_authority; // distance for town local authority, default 20 byte dist_local_authority; // distance for town local authority, default 20
byte wait_oneway_signal; //waitingtime in days before a oneway signal byte wait_oneway_signal; // waitingtime in days before a oneway signal
byte wait_twoway_signal; //waitingtime in days before a twoway signal byte wait_twoway_signal; // waitingtime in days before a twoway signal
uint8 map_x; // Size of map uint8 map_x; // Size of map
uint8 map_y; uint8 map_y;
byte drag_signals_density; // many signals density byte drag_signals_density; // many signals density
bool ainew_active; // Is the new AI active? bool ainew_active; // Is the new AI active?
bool ai_in_multiplayer; // Do we allow AIs in multiplayer bool ai_in_multiplayer; // Do we allow AIs in multiplayer
/* /*
* New Path Finding * New Path Finding
*/ */
bool new_pathfinding_all; /* Use the newest pathfinding algorithm for all */ bool new_pathfinding_all; /* Use the newest pathfinding algorithm for all */
/** /**
* The maximum amount of search nodes a single NPF run should take. This * The maximum amount of search nodes a single NPF run should take. This
* limit should make sure performance stays at acceptable levels at the cost * limit should make sure performance stays at acceptable levels at the cost
* of not being perfect anymore. This will probably be fixed in a more * of not being perfect anymore. This will probably be fixed in a more
* sophisticated way sometime soon * sophisticated way sometime soon
*/ */
uint32 npf_max_search_nodes; uint32 npf_max_search_nodes;
uint32 npf_rail_firstred_penalty; /* The penalty for when the first signal is red (and it is not an exit or combo signal) */ uint32 npf_rail_firstred_penalty; /* The penalty for when the first signal is red (and it is not an exit or combo signal) */
uint32 npf_rail_firstred_exit_penalty; /* The penalty for when the first signal is red (and it is an exit or combo signal) */ uint32 npf_rail_firstred_exit_penalty; /* The penalty for when the first signal is red (and it is an exit or combo signal) */
uint32 npf_rail_lastred_penalty; /* The penalty for when the last signal is red */ uint32 npf_rail_lastred_penalty; /* The penalty for when the last signal is red */
uint32 npf_rail_station_penalty; /* The penalty for station tiles */ uint32 npf_rail_station_penalty; /* The penalty for station tiles */
uint32 npf_rail_slope_penalty; /* The penalty for sloping upwards */ uint32 npf_rail_slope_penalty; /* The penalty for sloping upwards */
uint32 npf_rail_curve_penalty; /* The penalty for curves */ uint32 npf_rail_curve_penalty; /* The penalty for curves */
uint32 npf_rail_depot_reverse_penalty; /* The penalty for reversing in depots */ uint32 npf_rail_depot_reverse_penalty; /* The penalty for reversing in depots */
uint32 npf_buoy_penalty; /* The penalty for going over (through) a buoy */ uint32 npf_buoy_penalty; /* The penalty for going over (through) a buoy */
uint32 npf_water_curve_penalty; /* The penalty for curves */ uint32 npf_water_curve_penalty; /* The penalty for curves */
uint32 npf_road_curve_penalty; /* The penalty for curves */ uint32 npf_road_curve_penalty; /* The penalty for curves */
uint32 npf_crossing_penalty; /* The penalty for level crossings */ uint32 npf_crossing_penalty; /* The penalty for level crossings */
bool population_in_label; // Show the population of a town in his label? bool population_in_label; // Show the population of a town in his label?
@ -229,16 +229,16 @@ typedef struct Cheat {
// Only add new entries at the end of the struct! // Only add new entries at the end of the struct!
typedef struct Cheats { typedef struct Cheats {
Cheat magic_bulldozer; // dynamite industries, unmovables Cheat magic_bulldozer; // dynamite industries, unmovables
Cheat switch_player; // change to another player Cheat switch_player; // change to another player
Cheat money; // get rich Cheat money; // get rich
Cheat crossing_tunnels; // allow tunnels that cross each other Cheat crossing_tunnels; // allow tunnels that cross each other
Cheat build_in_pause; // build while in pause mode Cheat build_in_pause; // build while in pause mode
Cheat no_jetcrash; // no jet will crash on small airports anymore Cheat no_jetcrash; // no jet will crash on small airports anymore
Cheat switch_climate; Cheat switch_climate;
Cheat change_date; //changes date ingame Cheat change_date; // changes date ingame
Cheat setup_prod; //setup raw-material production in game Cheat setup_prod; // setup raw-material production in game
Cheat elrail; //allow electric engines to be powered on conventional rail Cheat elrail; // allow electric engines to be powered on conventional rail
} Cheats; } Cheats;
VARDEF Cheats _cheats; VARDEF Cheats _cheats;
@ -281,10 +281,10 @@ VARDEF int32 _additional_cash_required;
VARDEF uint32 _decode_parameters[20]; VARDEF uint32 _decode_parameters[20];
VARDEF uint32 _pressed_key; // Low 8 bits = ASCII, High 16 bits = keycode VARDEF uint32 _pressed_key; // Low 8 bits = ASCII, High 16 bits = keycode
VARDEF bool _ctrl_pressed; // Is Ctrl pressed? VARDEF bool _ctrl_pressed; // Is Ctrl pressed?
VARDEF bool _shift_pressed; // Is Alt pressed? VARDEF bool _shift_pressed; // Is Alt pressed?
VARDEF byte _dirkeys; // 1=left, 2=up, 4=right, 8=down VARDEF byte _dirkeys; // 1 = left, 2 = up, 4 = right, 8 = down
VARDEF bool _fullscreen; VARDEF bool _fullscreen;
VARDEF bool _fast_forward; VARDEF bool _fast_forward;

516
vehicle.c
View File

@ -1100,131 +1100,131 @@ typedef struct BubbleMovement {
#define ME(i) { i, 4, 0, 0 } #define ME(i) { i, 4, 0, 0 }
static const BubbleMovement _bubble_float_sw[] = { static const BubbleMovement _bubble_float_sw[] = {
MK(0,0,1,0), MK(0, 0, 1, 0),
MK(1,0,1,1), MK(1, 0, 1, 1),
MK(0,0,1,0), MK(0, 0, 1, 0),
MK(1,0,1,2), MK(1, 0, 1, 2),
ME(1) ME(1)
}; };
static const BubbleMovement _bubble_float_ne[] = { static const BubbleMovement _bubble_float_ne[] = {
MK(0,0,1,0), MK( 0, 0, 1, 0),
MK(-1,0,1,1), MK(-1, 0, 1, 1),
MK(0,0,1,0), MK( 0, 0, 1, 0),
MK(-1,0,1,2), MK(-1, 0, 1, 2),
ME(1) ME(1)
}; };
static const BubbleMovement _bubble_float_se[] = { static const BubbleMovement _bubble_float_se[] = {
MK(0,0,1,0), MK(0, 0, 1, 0),
MK(0,1,1,1), MK(0, 1, 1, 1),
MK(0,0,1,0), MK(0, 0, 1, 0),
MK(0,1,1,2), MK(0, 1, 1, 2),
ME(1) ME(1)
}; };
static const BubbleMovement _bubble_float_nw[] = { static const BubbleMovement _bubble_float_nw[] = {
MK(0,0,1,0), MK(0, 0, 1, 0),
MK(0,-1,1,1), MK(0, -1, 1, 1),
MK(0,0,1,0), MK(0, 0, 1, 0),
MK(0,-1,1,2), MK(0, -1, 1, 2),
ME(1) ME(1)
}; };
static const BubbleMovement _bubble_burst[] = { static const BubbleMovement _bubble_burst[] = {
MK(0,0,1,2), MK(0, 0, 1, 2),
MK(0,0,1,7), MK(0, 0, 1, 7),
MK(0,0,1,8), MK(0, 0, 1, 8),
MK(0,0,1,9), MK(0, 0, 1, 9),
ME(0) ME(0)
}; };
static const BubbleMovement _bubble_absorb[] = { static const BubbleMovement _bubble_absorb[] = {
MK(0,0,1,0), MK(0, 0, 1, 0),
MK(0,0,1,1), MK(0, 0, 1, 1),
MK(0,0,1,0), MK(0, 0, 1, 0),
MK(0,0,1,2), MK(0, 0, 1, 2),
MK(0,0,1,0), MK(0, 0, 1, 0),
MK(0,0,1,1), MK(0, 0, 1, 1),
MK(0,0,1,0), MK(0, 0, 1, 0),
MK(0,0,1,2), MK(0, 0, 1, 2),
MK(0,0,1,0), MK(0, 0, 1, 0),
MK(0,0,1,1), MK(0, 0, 1, 1),
MK(0,0,1,0), MK(0, 0, 1, 0),
MK(0,0,1,2), MK(0, 0, 1, 2),
MK(0,0,1,0), MK(0, 0, 1, 0),
MK(0,0,1,1), MK(0, 0, 1, 1),
MK(0,0,1,0), MK(0, 0, 1, 0),
MK(0,0,1,2), MK(0, 0, 1, 2),
MK(0,0,1,0), MK(0, 0, 1, 0),
MK(0,0,1,1), MK(0, 0, 1, 1),
MK(0,0,1,0), MK(0, 0, 1, 0),
MK(0,0,1,2), MK(0, 0, 1, 2),
MK(0,0,1,0), MK(0, 0, 1, 0),
MK(0,0,1,1), MK(0, 0, 1, 1),
MK(0,0,1,0), MK(0, 0, 1, 0),
MK(0,0,1,2), MK(0, 0, 1, 2),
MK(0,0,1,0), MK(0, 0, 1, 0),
MK(0,0,1,1), MK(0, 0, 1, 1),
MK(0,0,1,0), MK(0, 0, 1, 0),
MK(0,0,1,2), MK(0, 0, 1, 2),
MK(0,0,1,0), MK(0, 0, 1, 0),
MK(0,0,1,1), MK(0, 0, 1, 1),
MK(0,0,1,0), MK(0, 0, 1, 0),
MK(0,0,1,2), MK(0, 0, 1, 2),
MK(0,0,1,0), MK(0, 0, 1, 0),
MK(0,0,1,1), MK(0, 0, 1, 1),
MK(0,0,1,0), MK(0, 0, 1, 0),
MK(0,0,1,2), MK(0, 0, 1, 2),
MK(0,0,1,0), MK(0, 0, 1, 0),
MK(0,0,1,1), MK(0, 0, 1, 1),
MK(0,0,1,0), MK(0, 0, 1, 0),
MK(0,0,1,2), MK(0, 0, 1, 2),
MK(0,0,1,0), MK(0, 0, 1, 0),
MK(0,0,1,1), MK(0, 0, 1, 1),
MK(0,0,1,0), MK(0, 0, 1, 0),
MK(0,0,1,2), MK(0, 0, 1, 2),
MK(0,0,1,0), MK(0, 0, 1, 0),
MK(0,0,1,1), MK(0, 0, 1, 1),
MK(0,0,1,0), MK(0, 0, 1, 0),
MK(0,0,1,2), MK(0, 0, 1, 2),
MK(0,0,1,0), MK(0, 0, 1, 0),
MK(0,0,1,1), MK(0, 0, 1, 1),
MK(0,0,1,0), MK(0, 0, 1, 0),
MK(0,0,1,2), MK(0, 0, 1, 2),
MK(0,0,1,0), MK(0, 0, 1, 0),
MK(0,0,1,1), MK(0, 0, 1, 1),
MK(0,0,1,0), MK(0, 0, 1, 0),
MK(0,0,1,2), MK(0, 0, 1, 2),
MK(0,0,1,0), MK(0, 0, 1, 0),
MK(0,0,1,1), MK(0, 0, 1, 1),
MK(0,0,1,0), MK(0, 0, 1, 0),
MK(0,0,1,2), MK(0, 0, 1, 2),
MK(0,0,1,0), MK(0, 0, 1, 0),
MK(0,0,1,1), MK(0, 0, 1, 1),
MK(2,1,3,0), MK(2, 1, 3, 0),
MK(1,1,3,1), MK(1, 1, 3, 1),
MK(2,1,3,0), MK(2, 1, 3, 0),
MK(1,1,3,2), MK(1, 1, 3, 2),
MK(2,1,3,0), MK(2, 1, 3, 0),
MK(1,1,3,1), MK(1, 1, 3, 1),
MK(2,1,3,0), MK(2, 1, 3, 0),
MK(1,0,1,2), MK(1, 0, 1, 2),
MK(0,0,1,0), MK(0, 0, 1, 0),
MK(1,0,1,1), MK(1, 0, 1, 1),
MK(0,0,1,0), MK(0, 0, 1, 0),
MK(1,0,1,2), MK(1, 0, 1, 2),
MK(0,0,1,0), MK(0, 0, 1, 0),
MK(1,0,1,1), MK(1, 0, 1, 1),
MK(0,0,1,0), MK(0, 0, 1, 0),
MK(1,0,1,2), MK(1, 0, 1, 2),
ME(2), ME(2),
MK(0,0,0,0xA), MK(0, 0, 0, 0xA),
MK(0,0,0,0xB), MK(0, 0, 0, 0xB),
MK(0,0,0,0xC), MK(0, 0, 0, 0xC),
MK(0,0,0,0xD), MK(0, 0, 0, 0xD),
MK(0,0,0,0xE), MK(0, 0, 0, 0xE),
ME(0) ME(0)
}; };
#undef ME #undef ME
@ -1422,13 +1422,13 @@ void DecreaseVehicleValue(Vehicle *v)
} }
static const byte _breakdown_chance[64] = { static const byte _breakdown_chance[64] = {
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
4, 4, 5, 5, 6, 6, 7, 7, 4, 4, 5, 5, 6, 6, 7, 7,
8, 8, 9, 9, 10, 10, 11, 11, 8, 8, 9, 9, 10, 10, 11, 11,
12, 13, 13, 13, 13, 14, 15, 16, 12, 13, 13, 13, 13, 14, 15, 16,
17, 19, 21, 25, 28, 31, 34, 37, 17, 19, 21, 25, 28, 31, 34, 37,
40, 44, 48, 52, 56, 60, 64, 68, 40, 44, 48, 52, 56, 60, 64, 68,
72, 80, 90, 100, 110, 120, 130, 140, 72, 80, 90, 100, 110, 120, 130, 140,
150, 170, 190, 210, 230, 250, 250, 250, 150, 170, 190, 210, 230, 250, 250, 250,
}; };
@ -2138,116 +2138,116 @@ PalSpriteID GetVehiclePalette(const Vehicle *v)
// Save and load of vehicles // Save and load of vehicles
const SaveLoad _common_veh_desc[] = { const SaveLoad _common_veh_desc[] = {
SLE_VAR(Vehicle,subtype, SLE_UINT8), SLE_VAR(Vehicle, subtype, SLE_UINT8),
SLE_REF(Vehicle,next, REF_VEHICLE_OLD), SLE_REF(Vehicle, next, REF_VEHICLE_OLD),
SLE_VAR(Vehicle,string_id, SLE_STRINGID), SLE_VAR(Vehicle, string_id, SLE_STRINGID),
SLE_CONDVAR(Vehicle,unitnumber, SLE_FILE_U8 | SLE_VAR_U16, 0, 7), SLE_CONDVAR(Vehicle, unitnumber, SLE_FILE_U8 | SLE_VAR_U16, 0, 7),
SLE_CONDVAR(Vehicle,unitnumber, SLE_UINT16, 8, SL_MAX_VERSION), SLE_CONDVAR(Vehicle, unitnumber, SLE_UINT16, 8, SL_MAX_VERSION),
SLE_VAR(Vehicle,owner, SLE_UINT8), SLE_VAR(Vehicle, owner, SLE_UINT8),
SLE_CONDVAR(Vehicle,tile, SLE_FILE_U16 | SLE_VAR_U32, 0, 5), SLE_CONDVAR(Vehicle, tile, SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
SLE_CONDVAR(Vehicle,tile, SLE_UINT32, 6, SL_MAX_VERSION), SLE_CONDVAR(Vehicle, tile, SLE_UINT32, 6, SL_MAX_VERSION),
SLE_CONDVAR(Vehicle,dest_tile, SLE_FILE_U16 | SLE_VAR_U32, 0, 5), SLE_CONDVAR(Vehicle, dest_tile, SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
SLE_CONDVAR(Vehicle,dest_tile, SLE_UINT32, 6, SL_MAX_VERSION), SLE_CONDVAR(Vehicle, dest_tile, SLE_UINT32, 6, SL_MAX_VERSION),
SLE_CONDVAR(Vehicle,x_pos, SLE_FILE_U16 | SLE_VAR_U32, 0, 5), SLE_CONDVAR(Vehicle, x_pos, SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
SLE_CONDVAR(Vehicle,x_pos, SLE_UINT32, 6, SL_MAX_VERSION), SLE_CONDVAR(Vehicle, x_pos, SLE_UINT32, 6, SL_MAX_VERSION),
SLE_CONDVAR(Vehicle,y_pos, SLE_FILE_U16 | SLE_VAR_U32, 0, 5), SLE_CONDVAR(Vehicle, y_pos, SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
SLE_CONDVAR(Vehicle,y_pos, SLE_UINT32, 6, SL_MAX_VERSION), SLE_CONDVAR(Vehicle, y_pos, SLE_UINT32, 6, SL_MAX_VERSION),
SLE_VAR(Vehicle,z_pos, SLE_UINT8), SLE_VAR(Vehicle, z_pos, SLE_UINT8),
SLE_VAR(Vehicle,direction, SLE_UINT8), SLE_VAR(Vehicle, direction, SLE_UINT8),
SLE_VAR(Vehicle,cur_image, SLE_UINT16), SLE_VAR(Vehicle, cur_image, SLE_UINT16),
SLE_VAR(Vehicle,spritenum, SLE_UINT8), SLE_VAR(Vehicle, spritenum, SLE_UINT8),
SLE_VAR(Vehicle,sprite_width, SLE_UINT8), SLE_VAR(Vehicle, sprite_width, SLE_UINT8),
SLE_VAR(Vehicle,sprite_height, SLE_UINT8), SLE_VAR(Vehicle, sprite_height, SLE_UINT8),
SLE_VAR(Vehicle,z_height, SLE_UINT8), SLE_VAR(Vehicle, z_height, SLE_UINT8),
SLE_VAR(Vehicle,x_offs, SLE_INT8), SLE_VAR(Vehicle, x_offs, SLE_INT8),
SLE_VAR(Vehicle,y_offs, SLE_INT8), SLE_VAR(Vehicle, y_offs, SLE_INT8),
SLE_VAR(Vehicle,engine_type, SLE_UINT16), SLE_VAR(Vehicle, engine_type, SLE_UINT16),
SLE_VAR(Vehicle,max_speed, SLE_UINT16), SLE_VAR(Vehicle, max_speed, SLE_UINT16),
SLE_VAR(Vehicle,cur_speed, SLE_UINT16), SLE_VAR(Vehicle, cur_speed, SLE_UINT16),
SLE_VAR(Vehicle,subspeed, SLE_UINT8), SLE_VAR(Vehicle, subspeed, SLE_UINT8),
SLE_VAR(Vehicle,acceleration, SLE_UINT8), SLE_VAR(Vehicle, acceleration, SLE_UINT8),
SLE_VAR(Vehicle,progress, SLE_UINT8), SLE_VAR(Vehicle, progress, SLE_UINT8),
SLE_VAR(Vehicle,vehstatus, SLE_UINT8), SLE_VAR(Vehicle, vehstatus, SLE_UINT8),
SLE_CONDVAR(Vehicle,last_station_visited, SLE_FILE_U8 | SLE_VAR_U16, 0, 4), SLE_CONDVAR(Vehicle, last_station_visited, SLE_FILE_U8 | SLE_VAR_U16, 0, 4),
SLE_CONDVAR(Vehicle,last_station_visited, SLE_UINT16, 5, SL_MAX_VERSION), SLE_CONDVAR(Vehicle, last_station_visited, SLE_UINT16, 5, SL_MAX_VERSION),
SLE_VAR(Vehicle,cargo_type, SLE_UINT8), SLE_VAR(Vehicle, cargo_type, SLE_UINT8),
SLE_VAR(Vehicle,cargo_days, SLE_UINT8), SLE_VAR(Vehicle, cargo_days, SLE_UINT8),
SLE_CONDVAR(Vehicle,cargo_source, SLE_FILE_U8 | SLE_VAR_U16, 0, 6), SLE_CONDVAR(Vehicle, cargo_source, SLE_FILE_U8 | SLE_VAR_U16, 0, 6),
SLE_CONDVAR(Vehicle,cargo_source, SLE_UINT16, 7, SL_MAX_VERSION), SLE_CONDVAR(Vehicle, cargo_source, SLE_UINT16, 7, SL_MAX_VERSION),
SLE_VAR(Vehicle,cargo_cap, SLE_UINT16), SLE_VAR(Vehicle, cargo_cap, SLE_UINT16),
SLE_VAR(Vehicle,cargo_count, SLE_UINT16), SLE_VAR(Vehicle, cargo_count, SLE_UINT16),
SLE_VAR(Vehicle,day_counter, SLE_UINT8), SLE_VAR(Vehicle, day_counter, SLE_UINT8),
SLE_VAR(Vehicle,tick_counter, SLE_UINT8), SLE_VAR(Vehicle, tick_counter, SLE_UINT8),
SLE_VAR(Vehicle,cur_order_index, SLE_UINT8), SLE_VAR(Vehicle, cur_order_index, SLE_UINT8),
SLE_VAR(Vehicle,num_orders, SLE_UINT8), SLE_VAR(Vehicle, num_orders, SLE_UINT8),
/* This next line is for version 4 and prior compatibility.. it temporarily reads /* This next line is for version 4 and prior compatibility.. it temporarily reads
type and flags (which were both 4 bits) into type. Later on this is type and flags (which were both 4 bits) into type. Later on this is
converted correctly */ converted correctly */
SLE_CONDVARX(offsetof(Vehicle, current_order) + offsetof(Order, type), SLE_UINT8, 0, 4), SLE_CONDVARX(offsetof(Vehicle, current_order) + offsetof(Order, type), SLE_UINT8, 0, 4),
SLE_CONDVARX(offsetof(Vehicle, current_order) + offsetof(Order, station), SLE_FILE_U8 | SLE_VAR_U16, 0, 4), SLE_CONDVARX(offsetof(Vehicle, current_order) + offsetof(Order, station), SLE_FILE_U8 | SLE_VAR_U16, 0, 4),
/* Orders for version 5 and on */ /* Orders for version 5 and on */
SLE_CONDVARX(offsetof(Vehicle, current_order) + offsetof(Order, type), SLE_UINT8, 5, SL_MAX_VERSION), SLE_CONDVARX(offsetof(Vehicle, current_order) + offsetof(Order, type), SLE_UINT8, 5, SL_MAX_VERSION),
SLE_CONDVARX(offsetof(Vehicle, current_order) + offsetof(Order, flags), SLE_UINT8, 5, SL_MAX_VERSION), SLE_CONDVARX(offsetof(Vehicle, current_order) + offsetof(Order, flags), SLE_UINT8, 5, SL_MAX_VERSION),
SLE_CONDVARX(offsetof(Vehicle, current_order) + offsetof(Order, station), SLE_UINT16, 5, SL_MAX_VERSION), SLE_CONDVARX(offsetof(Vehicle, current_order) + offsetof(Order, station), SLE_UINT16, 5, SL_MAX_VERSION),
SLE_REF(Vehicle,orders, REF_ORDER), SLE_REF(Vehicle, orders, REF_ORDER),
SLE_CONDVAR(Vehicle,age, SLE_FILE_U16 | SLE_VAR_I32, 0, 30), SLE_CONDVAR(Vehicle, age, SLE_FILE_U16 | SLE_VAR_I32, 0, 30),
SLE_CONDVAR(Vehicle,age, SLE_INT32, 31, SL_MAX_VERSION), SLE_CONDVAR(Vehicle, age, SLE_INT32, 31, SL_MAX_VERSION),
SLE_CONDVAR(Vehicle,max_age, SLE_FILE_U16 | SLE_VAR_I32, 0, 30), SLE_CONDVAR(Vehicle, max_age, SLE_FILE_U16 | SLE_VAR_I32, 0, 30),
SLE_CONDVAR(Vehicle,max_age, SLE_INT32, 31, SL_MAX_VERSION), SLE_CONDVAR(Vehicle, max_age, SLE_INT32, 31, SL_MAX_VERSION),
SLE_CONDVAR(Vehicle,date_of_last_service, SLE_FILE_U16 | SLE_VAR_I32, 0, 30), SLE_CONDVAR(Vehicle, date_of_last_service, SLE_FILE_U16 | SLE_VAR_I32, 0, 30),
SLE_CONDVAR(Vehicle,date_of_last_service, SLE_INT32, 31, SL_MAX_VERSION), SLE_CONDVAR(Vehicle, date_of_last_service, SLE_INT32, 31, SL_MAX_VERSION),
SLE_CONDVAR(Vehicle,service_interval, SLE_FILE_U16 | SLE_VAR_I32, 0, 30), SLE_CONDVAR(Vehicle, service_interval, SLE_FILE_U16 | SLE_VAR_I32, 0, 30),
SLE_CONDVAR(Vehicle,service_interval, SLE_INT32, 31, SL_MAX_VERSION), SLE_CONDVAR(Vehicle, service_interval, SLE_INT32, 31, SL_MAX_VERSION),
SLE_VAR(Vehicle,reliability, SLE_UINT16), SLE_VAR(Vehicle, reliability, SLE_UINT16),
SLE_VAR(Vehicle,reliability_spd_dec,SLE_UINT16), SLE_VAR(Vehicle, reliability_spd_dec, SLE_UINT16),
SLE_VAR(Vehicle,breakdown_ctr, SLE_UINT8), SLE_VAR(Vehicle, breakdown_ctr, SLE_UINT8),
SLE_VAR(Vehicle,breakdown_delay, SLE_UINT8), SLE_VAR(Vehicle, breakdown_delay, SLE_UINT8),
SLE_VAR(Vehicle,breakdowns_since_last_service, SLE_UINT8), SLE_VAR(Vehicle, breakdowns_since_last_service, SLE_UINT8),
SLE_VAR(Vehicle,breakdown_chance, SLE_UINT8), SLE_VAR(Vehicle, breakdown_chance, SLE_UINT8),
SLE_CONDVAR(Vehicle,build_year, SLE_FILE_U8 | SLE_VAR_I32, 0, 30), SLE_CONDVAR(Vehicle, build_year, SLE_FILE_U8 | SLE_VAR_I32, 0, 30),
SLE_CONDVAR(Vehicle,build_year, SLE_INT32, 31, SL_MAX_VERSION), SLE_CONDVAR(Vehicle, build_year, SLE_INT32, 31, SL_MAX_VERSION),
SLE_VAR(Vehicle,load_unload_time_rem, SLE_UINT16), SLE_VAR(Vehicle, load_unload_time_rem, SLE_UINT16),
SLE_VAR(Vehicle,profit_this_year, SLE_INT32), SLE_VAR(Vehicle, profit_this_year, SLE_INT32),
SLE_VAR(Vehicle,profit_last_year, SLE_INT32), SLE_VAR(Vehicle, profit_last_year, SLE_INT32),
SLE_VAR(Vehicle,value, SLE_UINT32), SLE_VAR(Vehicle, value, SLE_UINT32),
SLE_VAR(Vehicle,random_bits, SLE_UINT8), SLE_VAR(Vehicle, random_bits, SLE_UINT8),
SLE_VAR(Vehicle,waiting_triggers, SLE_UINT8), SLE_VAR(Vehicle, waiting_triggers, SLE_UINT8),
SLE_REF(Vehicle,next_shared, REF_VEHICLE), SLE_REF(Vehicle, next_shared, REF_VEHICLE),
SLE_REF(Vehicle,prev_shared, REF_VEHICLE), SLE_REF(Vehicle, prev_shared, REF_VEHICLE),
// reserve extra space in savegame here. (currently 10 bytes) // reserve extra space in savegame here. (currently 10 bytes)
SLE_CONDNULL(10, 2, SL_MAX_VERSION), SLE_CONDNULL(10, 2, SL_MAX_VERSION),
SLE_END() SLE_END()
}; };
static const SaveLoad _train_desc[] = { static const SaveLoad _train_desc[] = {
SLE_WRITEBYTE(Vehicle,type,VEH_Train, 0), // Train type. VEH_Train in mem, 0 in file. SLE_WRITEBYTE(Vehicle, type, VEH_Train, 0), // Train type. VEH_Train in mem, 0 in file.
SLE_INCLUDEX(0, INC_VEHICLE_COMMON), SLE_INCLUDEX(0, INC_VEHICLE_COMMON),
SLE_VARX(offsetof(Vehicle,u)+offsetof(VehicleRail,crash_anim_pos), SLE_UINT16), SLE_VARX(offsetof(Vehicle, u) + offsetof(VehicleRail, crash_anim_pos), SLE_UINT16),
SLE_VARX(offsetof(Vehicle,u)+offsetof(VehicleRail,force_proceed), SLE_UINT8), SLE_VARX(offsetof(Vehicle, u) + offsetof(VehicleRail, force_proceed), SLE_UINT8),
SLE_VARX(offsetof(Vehicle,u)+offsetof(VehicleRail,railtype), SLE_UINT8), SLE_VARX(offsetof(Vehicle, u) + offsetof(VehicleRail, railtype), SLE_UINT8),
SLE_VARX(offsetof(Vehicle,u)+offsetof(VehicleRail,track), SLE_UINT8), SLE_VARX(offsetof(Vehicle, u) + offsetof(VehicleRail, track), SLE_UINT8),
SLE_CONDVARX(offsetof(Vehicle,u)+offsetof(VehicleRail,flags), SLE_UINT8, 2, SL_MAX_VERSION), SLE_CONDVARX(offsetof(Vehicle, u) + offsetof(VehicleRail, flags), SLE_UINT8, 2, SL_MAX_VERSION),
SLE_CONDVARX(offsetof(Vehicle,u)+offsetof(VehicleRail,days_since_order_progr), SLE_UINT16, 2, SL_MAX_VERSION), SLE_CONDVARX(offsetof(Vehicle, u) + offsetof(VehicleRail, days_since_order_progr), SLE_UINT16, 2, SL_MAX_VERSION),
SLE_CONDNULL(2, 2, 19), SLE_CONDNULL(2, 2, 19),
// reserve extra space in savegame here. (currently 11 bytes) // reserve extra space in savegame here. (currently 11 bytes)
@ -2257,29 +2257,29 @@ static const SaveLoad _train_desc[] = {
}; };
static const SaveLoad _roadveh_desc[] = { static const SaveLoad _roadveh_desc[] = {
SLE_WRITEBYTE(Vehicle,type,VEH_Road, 1), // Road type. VEH_Road in mem, 1 in file. SLE_WRITEBYTE(Vehicle, type, VEH_Road, 1), // Road type. VEH_Road in mem, 1 in file.
SLE_INCLUDEX(0, INC_VEHICLE_COMMON), SLE_INCLUDEX(0, INC_VEHICLE_COMMON),
SLE_VARX(offsetof(Vehicle,u)+offsetof(VehicleRoad,state), SLE_UINT8), SLE_VARX(offsetof(Vehicle, u) + offsetof(VehicleRoad, state), SLE_UINT8),
SLE_VARX(offsetof(Vehicle,u)+offsetof(VehicleRoad,frame), SLE_UINT8), SLE_VARX(offsetof(Vehicle, u) + offsetof(VehicleRoad, frame), SLE_UINT8),
SLE_VARX(offsetof(Vehicle,u)+offsetof(VehicleRoad,blocked_ctr), SLE_UINT16), SLE_VARX(offsetof(Vehicle, u) + offsetof(VehicleRoad, blocked_ctr), SLE_UINT16),
SLE_VARX(offsetof(Vehicle,u)+offsetof(VehicleRoad,overtaking), SLE_UINT8), SLE_VARX(offsetof(Vehicle, u) + offsetof(VehicleRoad, overtaking), SLE_UINT8),
SLE_VARX(offsetof(Vehicle,u)+offsetof(VehicleRoad,overtaking_ctr),SLE_UINT8), SLE_VARX(offsetof(Vehicle, u) + offsetof(VehicleRoad, overtaking_ctr), SLE_UINT8),
SLE_VARX(offsetof(Vehicle,u)+offsetof(VehicleRoad,crashed_ctr), SLE_UINT16), SLE_VARX(offsetof(Vehicle, u) + offsetof(VehicleRoad, crashed_ctr), SLE_UINT16),
SLE_VARX(offsetof(Vehicle,u)+offsetof(VehicleRoad,reverse_ctr), SLE_UINT8), SLE_VARX(offsetof(Vehicle, u) + offsetof(VehicleRoad, reverse_ctr), SLE_UINT8),
SLE_CONDREFX(offsetof(Vehicle,u)+offsetof(VehicleRoad,slot), REF_ROADSTOPS, 6, SL_MAX_VERSION), SLE_CONDREFX(offsetof(Vehicle, u) + offsetof(VehicleRoad, slot), REF_ROADSTOPS, 6, SL_MAX_VERSION),
SLE_CONDNULL(1, 6, SL_MAX_VERSION), SLE_CONDNULL(1, 6, SL_MAX_VERSION),
SLE_CONDVARX(offsetof(Vehicle,u)+offsetof(VehicleRoad,slot_age), SLE_UINT8, 6, SL_MAX_VERSION), SLE_CONDVARX(offsetof(Vehicle, u) + offsetof(VehicleRoad, slot_age), SLE_UINT8, 6, SL_MAX_VERSION),
// reserve extra space in savegame here. (currently 16 bytes) // reserve extra space in savegame here. (currently 16 bytes)
SLE_CONDNULL(16, 2, SL_MAX_VERSION), SLE_CONDNULL(16, 2, SL_MAX_VERSION),
SLE_END() SLE_END()
}; };
static const SaveLoad _ship_desc[] = { static const SaveLoad _ship_desc[] = {
SLE_WRITEBYTE(Vehicle,type,VEH_Ship, 2), // Ship type. VEH_Ship in mem, 2 in file. SLE_WRITEBYTE(Vehicle, type, VEH_Ship, 2), // Ship type. VEH_Ship in mem, 2 in file.
SLE_INCLUDEX(0, INC_VEHICLE_COMMON), SLE_INCLUDEX(0, INC_VEHICLE_COMMON),
SLE_VARX(offsetof(Vehicle,u)+offsetof(VehicleShip,state), SLE_UINT8), SLE_VARX(offsetof(Vehicle, u) + offsetof(VehicleShip, state), SLE_UINT8),
// reserve extra space in savegame here. (currently 16 bytes) // reserve extra space in savegame here. (currently 16 bytes)
SLE_CONDNULL(16, 2, SL_MAX_VERSION), SLE_CONDNULL(16, 2, SL_MAX_VERSION),
@ -2288,20 +2288,20 @@ static const SaveLoad _ship_desc[] = {
}; };
static const SaveLoad _aircraft_desc[] = { static const SaveLoad _aircraft_desc[] = {
SLE_WRITEBYTE(Vehicle,type,VEH_Aircraft, 3), // Aircraft type. VEH_Aircraft in mem, 3 in file. SLE_WRITEBYTE(Vehicle, type, VEH_Aircraft, 3), // Aircraft type. VEH_Aircraft in mem, 3 in file.
SLE_INCLUDEX(0, INC_VEHICLE_COMMON), SLE_INCLUDEX(0, INC_VEHICLE_COMMON),
SLE_VARX(offsetof(Vehicle,u)+offsetof(VehicleAir,crashed_counter), SLE_UINT16), SLE_VARX(offsetof(Vehicle, u) + offsetof(VehicleAir, crashed_counter), SLE_UINT16),
SLE_VARX(offsetof(Vehicle,u)+offsetof(VehicleAir,pos), SLE_UINT8), SLE_VARX(offsetof(Vehicle, u) + offsetof(VehicleAir, pos), SLE_UINT8),
SLE_CONDVARX(offsetof(Vehicle,u)+offsetof(VehicleAir,targetairport), SLE_FILE_U8 | SLE_VAR_U16, 0, 4), SLE_CONDVARX(offsetof(Vehicle, u) + offsetof(VehicleAir, targetairport), SLE_FILE_U8 | SLE_VAR_U16, 0, 4),
SLE_CONDVARX(offsetof(Vehicle,u)+offsetof(VehicleAir,targetairport), SLE_UINT16, 5, SL_MAX_VERSION), SLE_CONDVARX(offsetof(Vehicle, u) + offsetof(VehicleAir, targetairport), SLE_UINT16, 5, SL_MAX_VERSION),
SLE_VARX(offsetof(Vehicle,u)+offsetof(VehicleAir,state), SLE_UINT8), SLE_VARX(offsetof(Vehicle, u) + offsetof(VehicleAir, state), SLE_UINT8),
SLE_CONDVARX(offsetof(Vehicle,u)+offsetof(VehicleAir,previous_pos), SLE_UINT8, 2, SL_MAX_VERSION), SLE_CONDVARX(offsetof(Vehicle, u) + offsetof(VehicleAir, previous_pos), SLE_UINT8, 2, SL_MAX_VERSION),
// reserve extra space in savegame here. (currently 15 bytes) // reserve extra space in savegame here. (currently 15 bytes)
SLE_CONDNULL(15, 2, SL_MAX_VERSION), SLE_CONDNULL(15, 2, SL_MAX_VERSION),
SLE_END() SLE_END()
}; };
@ -2309,28 +2309,28 @@ static const SaveLoad _aircraft_desc[] = {
static const SaveLoad _special_desc[] = { static const SaveLoad _special_desc[] = {
SLE_WRITEBYTE(Vehicle,type,VEH_Special, 4), SLE_WRITEBYTE(Vehicle,type,VEH_Special, 4),
SLE_VAR(Vehicle,subtype, SLE_UINT8), SLE_VAR(Vehicle, subtype, SLE_UINT8),
SLE_CONDVAR(Vehicle,tile, SLE_FILE_U16 | SLE_VAR_U32, 0, 5), SLE_CONDVAR(Vehicle, tile, SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
SLE_CONDVAR(Vehicle,tile, SLE_UINT32, 6, SL_MAX_VERSION), SLE_CONDVAR(Vehicle, tile, SLE_UINT32, 6, SL_MAX_VERSION),
SLE_CONDVAR(Vehicle,x_pos, SLE_FILE_I16 | SLE_VAR_I32, 0, 5), SLE_CONDVAR(Vehicle, x_pos, SLE_FILE_I16 | SLE_VAR_I32, 0, 5),
SLE_CONDVAR(Vehicle,x_pos, SLE_INT32, 6, SL_MAX_VERSION), SLE_CONDVAR(Vehicle, x_pos, SLE_INT32, 6, SL_MAX_VERSION),
SLE_CONDVAR(Vehicle,y_pos, SLE_FILE_I16 | SLE_VAR_I32, 0, 5), SLE_CONDVAR(Vehicle, y_pos, SLE_FILE_I16 | SLE_VAR_I32, 0, 5),
SLE_CONDVAR(Vehicle,y_pos, SLE_INT32, 6, SL_MAX_VERSION), SLE_CONDVAR(Vehicle, y_pos, SLE_INT32, 6, SL_MAX_VERSION),
SLE_VAR(Vehicle,z_pos, SLE_UINT8), SLE_VAR(Vehicle, z_pos, SLE_UINT8),
SLE_VAR(Vehicle,cur_image, SLE_UINT16), SLE_VAR(Vehicle, cur_image, SLE_UINT16),
SLE_VAR(Vehicle,sprite_width, SLE_UINT8), SLE_VAR(Vehicle, sprite_width, SLE_UINT8),
SLE_VAR(Vehicle,sprite_height, SLE_UINT8), SLE_VAR(Vehicle, sprite_height, SLE_UINT8),
SLE_VAR(Vehicle,z_height, SLE_UINT8), SLE_VAR(Vehicle, z_height, SLE_UINT8),
SLE_VAR(Vehicle,x_offs, SLE_INT8), SLE_VAR(Vehicle, x_offs, SLE_INT8),
SLE_VAR(Vehicle,y_offs, SLE_INT8), SLE_VAR(Vehicle, y_offs, SLE_INT8),
SLE_VAR(Vehicle,progress, SLE_UINT8), SLE_VAR(Vehicle, progress, SLE_UINT8),
SLE_VAR(Vehicle,vehstatus, SLE_UINT8), SLE_VAR(Vehicle, vehstatus, SLE_UINT8),
SLE_VARX(offsetof(Vehicle,u)+offsetof(VehicleSpecial,unk0), SLE_UINT16), SLE_VARX(offsetof(Vehicle, u) + offsetof(VehicleSpecial, unk0), SLE_UINT16),
SLE_VARX(offsetof(Vehicle,u)+offsetof(VehicleSpecial,unk2), SLE_UINT8), SLE_VARX(offsetof(Vehicle, u) + offsetof(VehicleSpecial, unk2), SLE_UINT8),
// reserve extra space in savegame here. (currently 16 bytes) // reserve extra space in savegame here. (currently 16 bytes)
SLE_CONDNULL(16, 2, SL_MAX_VERSION), SLE_CONDNULL(16, 2, SL_MAX_VERSION),
@ -2339,43 +2339,43 @@ static const SaveLoad _special_desc[] = {
}; };
static const SaveLoad _disaster_desc[] = { static const SaveLoad _disaster_desc[] = {
SLE_WRITEBYTE(Vehicle,type,VEH_Disaster, 5), SLE_WRITEBYTE(Vehicle, type, VEH_Disaster, 5),
SLE_REF(Vehicle,next, REF_VEHICLE_OLD), SLE_REF(Vehicle, next, REF_VEHICLE_OLD),
SLE_VAR(Vehicle,subtype, SLE_UINT8), SLE_VAR(Vehicle, subtype, SLE_UINT8),
SLE_CONDVAR(Vehicle,tile, SLE_FILE_U16 | SLE_VAR_U32, 0, 5), SLE_CONDVAR(Vehicle, tile, SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
SLE_CONDVAR(Vehicle,tile, SLE_UINT32, 6, SL_MAX_VERSION), SLE_CONDVAR(Vehicle, tile, SLE_UINT32, 6, SL_MAX_VERSION),
SLE_CONDVAR(Vehicle,dest_tile, SLE_FILE_U16 | SLE_VAR_U32, 0, 5), SLE_CONDVAR(Vehicle, dest_tile, SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
SLE_CONDVAR(Vehicle,dest_tile, SLE_UINT32, 6, SL_MAX_VERSION), SLE_CONDVAR(Vehicle, dest_tile, SLE_UINT32, 6, SL_MAX_VERSION),
SLE_CONDVAR(Vehicle,x_pos, SLE_FILE_I16 | SLE_VAR_I32, 0, 5), SLE_CONDVAR(Vehicle, x_pos, SLE_FILE_I16 | SLE_VAR_I32, 0, 5),
SLE_CONDVAR(Vehicle,x_pos, SLE_INT32, 6, SL_MAX_VERSION), SLE_CONDVAR(Vehicle, x_pos, SLE_INT32, 6, SL_MAX_VERSION),
SLE_CONDVAR(Vehicle,y_pos, SLE_FILE_I16 | SLE_VAR_I32, 0, 5), SLE_CONDVAR(Vehicle, y_pos, SLE_FILE_I16 | SLE_VAR_I32, 0, 5),
SLE_CONDVAR(Vehicle,y_pos, SLE_INT32, 6, SL_MAX_VERSION), SLE_CONDVAR(Vehicle, y_pos, SLE_INT32, 6, SL_MAX_VERSION),
SLE_VAR(Vehicle,z_pos, SLE_UINT8), SLE_VAR(Vehicle, z_pos, SLE_UINT8),
SLE_VAR(Vehicle,direction, SLE_UINT8), SLE_VAR(Vehicle, direction, SLE_UINT8),
SLE_VAR(Vehicle,x_offs, SLE_INT8), SLE_VAR(Vehicle, x_offs, SLE_INT8),
SLE_VAR(Vehicle,y_offs, SLE_INT8), SLE_VAR(Vehicle, y_offs, SLE_INT8),
SLE_VAR(Vehicle,sprite_width, SLE_UINT8), SLE_VAR(Vehicle, sprite_width, SLE_UINT8),
SLE_VAR(Vehicle,sprite_height, SLE_UINT8), SLE_VAR(Vehicle, sprite_height, SLE_UINT8),
SLE_VAR(Vehicle,z_height, SLE_UINT8), SLE_VAR(Vehicle, z_height, SLE_UINT8),
SLE_VAR(Vehicle,owner, SLE_UINT8), SLE_VAR(Vehicle, owner, SLE_UINT8),
SLE_VAR(Vehicle,vehstatus, SLE_UINT8), SLE_VAR(Vehicle, vehstatus, SLE_UINT8),
SLE_CONDVARX(offsetof(Vehicle, current_order) + offsetof(Order, station), SLE_FILE_U8 | SLE_VAR_U16, 0, 4), SLE_CONDVARX(offsetof(Vehicle, current_order) + offsetof(Order, station), SLE_FILE_U8 | SLE_VAR_U16, 0, 4),
SLE_CONDVARX(offsetof(Vehicle, current_order) + offsetof(Order, station), SLE_UINT16, 5, SL_MAX_VERSION), SLE_CONDVARX(offsetof(Vehicle, current_order) + offsetof(Order, station), SLE_UINT16, 5, SL_MAX_VERSION),
SLE_VAR(Vehicle,cur_image, SLE_UINT16), SLE_VAR(Vehicle, cur_image, SLE_UINT16),
SLE_CONDVAR(Vehicle,age, SLE_FILE_U16 | SLE_VAR_I32, 0, 30), SLE_CONDVAR(Vehicle, age, SLE_FILE_U16 | SLE_VAR_I32, 0, 30),
SLE_CONDVAR(Vehicle,age, SLE_INT32, 31, SL_MAX_VERSION), SLE_CONDVAR(Vehicle, age, SLE_INT32, 31, SL_MAX_VERSION),
SLE_VAR(Vehicle,tick_counter, SLE_UINT8), SLE_VAR(Vehicle, tick_counter, SLE_UINT8),
SLE_VARX(offsetof(Vehicle,u)+offsetof(VehicleDisaster,image_override), SLE_UINT16), SLE_VARX(offsetof(Vehicle, u) + offsetof(VehicleDisaster, image_override), SLE_UINT16),
SLE_VARX(offsetof(Vehicle,u)+offsetof(VehicleDisaster,unk2), SLE_UINT16), SLE_VARX(offsetof(Vehicle, u) + offsetof(VehicleDisaster, unk2), SLE_UINT16),
// reserve extra space in savegame here. (currently 16 bytes) // reserve extra space in savegame here. (currently 16 bytes)
SLE_CONDNULL(16, 2, SL_MAX_VERSION), SLE_CONDNULL(16, 2, SL_MAX_VERSION),
SLE_END() SLE_END()
}; };

104
vehicle.h
View File

@ -8,24 +8,24 @@
#include "rail.h" #include "rail.h"
enum { enum {
VEH_Invalid = 0, VEH_Invalid = 0x00,
VEH_Train = 0x10, VEH_Train = 0x10,
VEH_Road = 0x11, VEH_Road = 0x11,
VEH_Ship = 0x12, VEH_Ship = 0x12,
VEH_Aircraft = 0x13, VEH_Aircraft = 0x13,
VEH_Special = 0x14, VEH_Special = 0x14,
VEH_Disaster = 0x15, VEH_Disaster = 0x15,
} ; } ;
enum VehStatus { enum VehStatus {
VS_HIDDEN = 1, VS_HIDDEN = 0x01,
VS_STOPPED = 2, VS_STOPPED = 0x02,
VS_UNCLICKABLE = 4, VS_UNCLICKABLE = 0x04,
VS_DEFPAL = 0x8, VS_DEFPAL = 0x08,
VS_TRAIN_SLOWING = 0x10, VS_TRAIN_SLOWING = 0x10,
VS_SHADOW = 0x20, VS_SHADOW = 0x20,
VS_AIRCRAFT_BROKEN = 0x40, VS_AIRCRAFT_BROKEN = 0x40,
VS_CRASHED = 0x80, VS_CRASHED = 0x80,
}; };
/* Effect vehicle types */ /* Effect vehicle types */
@ -81,14 +81,14 @@ typedef struct VehicleRail {
} VehicleRail; } VehicleRail;
enum { enum {
VRF_REVERSING = 0, VRF_REVERSING = 0,
// used to calculate if train is going up or down // used to calculate if train is going up or down
VRF_GOINGUP = 1, VRF_GOINGUP = 1,
VRF_GOINGDOWN = 2, VRF_GOINGDOWN = 2,
// used to store if a wagon is powered or not // used to store if a wagon is powered or not
VRF_POWEREDWAGON = 3, VRF_POWEREDWAGON = 3,
// used to reverse the visible direction of the vehicle // used to reverse the visible direction of the vehicle
VRF_REVERSE_DIRECTION = 4, VRF_REVERSE_DIRECTION = 4,
@ -130,63 +130,63 @@ typedef struct VehicleShip {
struct Vehicle { struct Vehicle {
byte type; // type, ie roadven,train,ship,aircraft,special byte type; // type, ie roadven,train,ship,aircraft,special
byte subtype; // subtype (Filled with values from EffectVehicles or TrainSubTypes) byte subtype; // subtype (Filled with values from EffectVehicles or TrainSubTypes)
VehicleID index; // NOSAVE: Index in vehicle array VehicleID index; // NOSAVE: Index in vehicle array
Vehicle *next; // next Vehicle *next; // next
Vehicle *first; // NOSAVE: pointer to the first vehicle in the chain Vehicle *first; // NOSAVE: pointer to the first vehicle in the chain
Vehicle *depot_list; //NOSAVE: linked list to tell what vehicles entered a depot during the last tick. Used by autoreplace Vehicle *depot_list; //NOSAVE: linked list to tell what vehicles entered a depot during the last tick. Used by autoreplace
StringID string_id; // Displayed string StringID string_id; // Displayed string
UnitID unitnumber; // unit number, for display purposes only UnitID unitnumber; // unit number, for display purposes only
PlayerID owner; // which player owns the vehicle? PlayerID owner; // which player owns the vehicle?
TileIndex tile; // Current tile index TileIndex tile; // Current tile index
TileIndex dest_tile; // Heading for this tile TileIndex dest_tile; // Heading for this tile
int32 x_pos; // coordinates int32 x_pos; // coordinates
int32 y_pos; int32 y_pos;
byte z_pos; byte z_pos;
byte direction; // facing byte direction; // facing
byte spritenum; // currently displayed sprite index byte spritenum; // currently displayed sprite index
// 0xfd == custom sprite, 0xfe == custom second head sprite // 0xfd == custom sprite, 0xfe == custom second head sprite
// 0xff == reserved for another custom sprite // 0xff == reserved for another custom sprite
uint16 cur_image; // sprite number for this vehicle uint16 cur_image; // sprite number for this vehicle
byte sprite_width;// width of vehicle sprite byte sprite_width; // width of vehicle sprite
byte sprite_height;// height of vehicle sprite byte sprite_height; // height of vehicle sprite
byte z_height; // z-height of vehicle sprite byte z_height; // z-height of vehicle sprite
int8 x_offs; // x offset for vehicle sprite int8 x_offs; // x offset for vehicle sprite
int8 y_offs; // y offset for vehicle sprite int8 y_offs; // y offset for vehicle sprite
EngineID engine_type; EngineID engine_type;
// for randomized variational spritegroups // for randomized variational spritegroups
// bitmask used to resolve them; parts of it get reseeded when triggers // bitmask used to resolve them; parts of it get reseeded when triggers
// of corresponding spritegroups get matched // of corresponding spritegroups get matched
byte random_bits; byte random_bits;
byte waiting_triggers; // triggers to be yet matched byte waiting_triggers; // triggers to be yet matched
uint16 max_speed; // maximum speed uint16 max_speed; // maximum speed
uint16 cur_speed; // current speed uint16 cur_speed; // current speed
byte subspeed; // fractional speed byte subspeed; // fractional speed
byte acceleration; // used by train & aircraft byte acceleration; // used by train & aircraft
byte progress; byte progress;
byte vehstatus; // Status byte vehstatus; // Status
StationID last_station_visited; StationID last_station_visited;
CargoID cargo_type; // type of cargo this vehicle is carrying CargoID cargo_type; // type of cargo this vehicle is carrying
byte cargo_days; // how many days have the pieces been in transit byte cargo_days; // how many days have the pieces been in transit
StationID cargo_source;// source of cargo StationID cargo_source; // source of cargo
uint16 cargo_cap; // total capacity uint16 cargo_cap; // total capacity
uint16 cargo_count;// how many pieces are used uint16 cargo_count; // how many pieces are used
byte cargo_subtype; ///< Used for livery refits (NewGRF variations) byte cargo_subtype; ///< Used for livery refits (NewGRF variations)
byte day_counter; // increased by one for each day byte day_counter; // increased by one for each day
byte tick_counter;// increased by one for each tick byte tick_counter; // increased by one for each tick
/* Begin Order-stuff */ /* Begin Order-stuff */
Order current_order; ///< The current order (+ status, like: loading) Order current_order; ///< The current order (+ status, like: loading)
@ -220,7 +220,7 @@ struct Vehicle {
byte breakdown_chance; byte breakdown_chance;
Year build_year; Year build_year;
bool leave_depot_instantly; // NOSAVE: stores if the vehicle needs to leave the depot it just entered. Used by autoreplace bool leave_depot_instantly; // NOSAVE: stores if the vehicle needs to leave the depot it just entered. Used by autoreplace
uint16 load_unload_time_rem; uint16 load_unload_time_rem;

View File

@ -1051,36 +1051,36 @@ static const Widget _replace_rail_vehicle_widgets[] = {
}; };
static const Widget _replace_road_vehicle_widgets[] = { static const Widget _replace_road_vehicle_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, 443, 0, 13, STR_REPLACE_VEHICLES_WHITE, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_NONE, 14, 11, 443, 0, 13, STR_REPLACE_VEHICLES_WHITE, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_STICKYBOX, RESIZE_NONE, 14, 444, 455, 0, 13, STR_NULL, STR_STICKY_BUTTON}, { WWT_STICKYBOX, RESIZE_NONE, 14, 444, 455, 0, 13, STR_NULL, STR_STICKY_BUTTON},
{ WWT_PANEL, RESIZE_TB, 14, 0, 227, 126, 197, STR_NULL, STR_NULL}, { WWT_PANEL, RESIZE_TB, 14, 0, 227, 126, 197, STR_NULL, STR_NULL},
{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 0, 138, 198, 209, STR_REPLACE_VEHICLES_START, STR_REPLACE_HELP_START_BUTTON}, { WWT_PUSHTXTBTN, RESIZE_TB, 14, 0, 138, 198, 209, STR_REPLACE_VEHICLES_START, STR_REPLACE_HELP_START_BUTTON},
{ WWT_PANEL, RESIZE_TB, 14, 139, 305, 198, 209, STR_NULL, STR_REPLACE_HELP_REPLACE_INFO_TAB}, { WWT_PANEL, RESIZE_TB, 14, 139, 305, 198, 209, STR_NULL, STR_REPLACE_HELP_REPLACE_INFO_TAB},
{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 306, 443, 198, 209, STR_REPLACE_VEHICLES_STOP, STR_REPLACE_HELP_STOP_BUTTON}, { WWT_PUSHTXTBTN, RESIZE_TB, 14, 306, 443, 198, 209, STR_REPLACE_VEHICLES_STOP, STR_REPLACE_HELP_STOP_BUTTON},
{ WWT_MATRIX, RESIZE_BOTTOM, 14, 0, 215, 14, 125, 0x801, STR_REPLACE_HELP_LEFT_ARRAY}, { WWT_MATRIX, RESIZE_BOTTOM, 14, 0, 215, 14, 125, 0x801, STR_REPLACE_HELP_LEFT_ARRAY},
{ WWT_SCROLLBAR, RESIZE_BOTTOM, 14, 216, 227, 14, 125, STR_NULL, STR_0190_SCROLL_BAR_SCROLLS_LIST}, { WWT_SCROLLBAR, RESIZE_BOTTOM, 14, 216, 227, 14, 125, STR_NULL, STR_0190_SCROLL_BAR_SCROLLS_LIST},
{ WWT_MATRIX, RESIZE_BOTTOM, 14, 228, 443, 14, 125, 0x801, STR_REPLACE_HELP_RIGHT_ARRAY}, { WWT_MATRIX, RESIZE_BOTTOM, 14, 228, 443, 14, 125, 0x801, STR_REPLACE_HELP_RIGHT_ARRAY},
{ WWT_SCROLL2BAR, RESIZE_BOTTOM, 14, 444, 455, 14, 125, STR_NULL, STR_0190_SCROLL_BAR_SCROLLS_LIST}, { WWT_SCROLL2BAR, RESIZE_BOTTOM, 14, 444, 455, 14, 125, STR_NULL, STR_0190_SCROLL_BAR_SCROLLS_LIST},
{ WWT_PANEL, RESIZE_TB, 14, 228, 455, 126, 197, STR_NULL, STR_NULL}, { WWT_PANEL, RESIZE_TB, 14, 228, 455, 126, 197, STR_NULL, STR_NULL},
{ WWT_RESIZEBOX, RESIZE_TB, 14, 444, 455, 198, 209, STR_NULL, STR_RESIZE_BUTTON}, { WWT_RESIZEBOX, RESIZE_TB, 14, 444, 455, 198, 209, STR_NULL, STR_RESIZE_BUTTON},
{ WIDGETS_END}, { WIDGETS_END},
}; };
static const Widget _replace_ship_aircraft_vehicle_widgets[] = { static const Widget _replace_ship_aircraft_vehicle_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, 443, 0, 13, STR_REPLACE_VEHICLES_WHITE, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_CAPTION, RESIZE_NONE, 14, 11, 443, 0, 13, STR_REPLACE_VEHICLES_WHITE, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_STICKYBOX, RESIZE_NONE, 14, 444, 455, 0, 13, STR_NULL, STR_STICKY_BUTTON}, { WWT_STICKYBOX, RESIZE_NONE, 14, 444, 455, 0, 13, STR_NULL, STR_STICKY_BUTTON},
{ WWT_PANEL, RESIZE_TB, 14, 0, 227, 110, 181, STR_NULL, STR_NULL}, { WWT_PANEL, RESIZE_TB, 14, 0, 227, 110, 181, STR_NULL, STR_NULL},
{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 0, 138, 182, 193, STR_REPLACE_VEHICLES_START, STR_REPLACE_HELP_START_BUTTON}, { WWT_PUSHTXTBTN, RESIZE_TB, 14, 0, 138, 182, 193, STR_REPLACE_VEHICLES_START, STR_REPLACE_HELP_START_BUTTON},
{ WWT_PANEL, RESIZE_TB, 14, 139, 305, 182, 193, STR_NULL, STR_REPLACE_HELP_REPLACE_INFO_TAB}, { WWT_PANEL, RESIZE_TB, 14, 139, 305, 182, 193, STR_NULL, STR_REPLACE_HELP_REPLACE_INFO_TAB},
{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 306, 443, 182, 193, STR_REPLACE_VEHICLES_STOP, STR_REPLACE_HELP_STOP_BUTTON}, { WWT_PUSHTXTBTN, RESIZE_TB, 14, 306, 443, 182, 193, STR_REPLACE_VEHICLES_STOP, STR_REPLACE_HELP_STOP_BUTTON},
{ WWT_MATRIX, RESIZE_BOTTOM, 14, 0, 215, 14, 109, 0x401, STR_REPLACE_HELP_LEFT_ARRAY}, { WWT_MATRIX, RESIZE_BOTTOM, 14, 0, 215, 14, 109, 0x401, STR_REPLACE_HELP_LEFT_ARRAY},
{ WWT_SCROLLBAR, RESIZE_BOTTOM, 14, 216, 227, 14, 109, STR_NULL, STR_0190_SCROLL_BAR_SCROLLS_LIST}, { WWT_SCROLLBAR, RESIZE_BOTTOM, 14, 216, 227, 14, 109, STR_NULL, STR_0190_SCROLL_BAR_SCROLLS_LIST},
{ WWT_MATRIX, RESIZE_BOTTOM, 14, 228, 443, 14, 109, 0x401, STR_REPLACE_HELP_RIGHT_ARRAY}, { WWT_MATRIX, RESIZE_BOTTOM, 14, 228, 443, 14, 109, 0x401, STR_REPLACE_HELP_RIGHT_ARRAY},
{ WWT_SCROLL2BAR, RESIZE_BOTTOM, 14, 444, 455, 14, 109, STR_NULL, STR_0190_SCROLL_BAR_SCROLLS_LIST}, { WWT_SCROLL2BAR, RESIZE_BOTTOM, 14, 444, 455, 14, 109, STR_NULL, STR_0190_SCROLL_BAR_SCROLLS_LIST},
{ WWT_PANEL, RESIZE_TB, 14, 228, 455, 110, 181, STR_NULL, STR_NULL}, { WWT_PANEL, RESIZE_TB, 14, 228, 455, 110, 181, STR_NULL, STR_NULL},
{ WWT_RESIZEBOX, RESIZE_TB, 14, 444, 455, 182, 193, STR_NULL, STR_RESIZE_BUTTON}, { WWT_RESIZEBOX, RESIZE_TB, 14, 444, 455, 182, 193, STR_NULL, STR_RESIZE_BUTTON},
{ WIDGETS_END}, { WIDGETS_END},
}; };

View File

@ -4,11 +4,11 @@
#define VIEWPORT_H #define VIEWPORT_H
struct ViewPort { struct ViewPort {
int left,top; // screen coordinates for the viewport int left,top; // screen coordinates for the viewport
int width, height; // screen width/height for the viewport int width, height; // screen width/height for the viewport
int virtual_left, virtual_top; // virtual coordinates int virtual_left, virtual_top; // virtual coordinates
int virtual_width, virtual_height; // these are just width << zoom, height << zoom int virtual_width, virtual_height; // these are just width << zoom, height << zoom
byte zoom; byte zoom;
}; };
@ -49,41 +49,41 @@ void VpSetPlaceSizingLimit(int limit);
Vehicle *CheckMouseOverVehicle(void); Vehicle *CheckMouseOverVehicle(void);
enum { enum {
VPM_X_OR_Y = 0, VPM_X_OR_Y = 0,
VPM_FIX_X = 1, VPM_FIX_X = 1,
VPM_FIX_Y = 2, VPM_FIX_Y = 2,
VPM_RAILDIRS = 3, VPM_RAILDIRS = 3,
VPM_X_AND_Y = 4, VPM_X_AND_Y = 4,
VPM_X_AND_Y_LIMITED = 5, VPM_X_AND_Y_LIMITED = 5,
VPM_SIGNALDIRS = 6 VPM_SIGNALDIRS = 6
}; };
// viewport highlight mode (for highlighting tiles below cursor) // viewport highlight mode (for highlighting tiles below cursor)
enum { enum {
VHM_NONE = 0, // default VHM_NONE = 0, // default
VHM_RECT = 1, // rectangle (stations, depots, ...) VHM_RECT = 1, // rectangle (stations, depots, ...)
VHM_POINT = 2, // point (lower land, raise land, level land, ...) VHM_POINT = 2, // point (lower land, raise land, level land, ...)
VHM_SPECIAL = 3, // special mode used for highlighting while dragging (and for tunnels/docks) VHM_SPECIAL = 3, // special mode used for highlighting while dragging (and for tunnels/docks)
VHM_DRAG = 4, // dragging items in the depot windows VHM_DRAG = 4, // dragging items in the depot windows
VHM_RAIL = 5, // rail pieces VHM_RAIL = 5, // rail pieces
}; };
void VpSelectTilesWithMethod(int x, int y, int method); void VpSelectTilesWithMethod(int x, int y, int method);
// highlighting draw styles // highlighting draw styles
enum { enum {
HT_NONE = 0, HT_NONE = 0x00,
HT_RECT = 0x80, HT_RECT = 0x80,
HT_POINT = 0x40, HT_POINT = 0x40,
HT_LINE = 0x20, /* used for autorail highlighting (longer streches) HT_LINE = 0x20, /* used for autorail highlighting (longer streches)
* (uses lower bits to indicate direction) */ * (uses lower bits to indicate direction) */
HT_RAIL = 0x10, /* autorail (one piece) HT_RAIL = 0x10, /* autorail (one piece)
* (uses lower bits to indicate direction) */ * (uses lower bits to indicate direction) */
/* lower bits (used with HT_LINE and HT_RAIL): /* lower bits (used with HT_LINE and HT_RAIL):
* (see ASCII art in autorail.h for a visual interpretation) */ * (see ASCII art in autorail.h for a visual interpretation) */
HT_DIR_X = 0, // X direction HT_DIR_X = 0, // X direction
HT_DIR_Y = 1, // Y direction HT_DIR_Y = 1, // Y direction
HT_DIR_HU = 2, // horizontal upper HT_DIR_HU = 2, // horizontal upper
HT_DIR_HL = 3, // horizontal lower HT_DIR_HL = 3, // horizontal lower
HT_DIR_VL = 4, // vertical left HT_DIR_VL = 4, // vertical left

View File

@ -649,7 +649,7 @@ static void FloodVehicle(Vehicle *v)
void TileLoop_Water(TileIndex tile) void TileLoop_Water(TileIndex tile)
{ {
static const TileIndexDiffC _tile_loop_offs_array[][5] = { static const TileIndexDiffC _tile_loop_offs_array[][5] = {
// tile to mod shore? shore? // tile to mod shore? shore?
{{-1, 0}, {0, 0}, {0, 1}, {-1, 0}, {-1, 1}}, {{-1, 0}, {0, 0}, {0, 1}, {-1, 0}, {-1, 1}},
{{ 0, 1}, {0, 1}, {1, 1}, { 0, 2}, { 1, 2}}, {{ 0, 1}, {0, 1}, {1, 1}, { 0, 2}, { 1, 2}},
{{ 1, 0}, {1, 0}, {1, 1}, { 2, 0}, { 2, 1}}, {{ 1, 0}, {1, 0}, {1, 1}, { 2, 0}, { 2, 1}},
@ -745,17 +745,17 @@ static uint32 VehicleEnter_Water(Vehicle *v, TileIndex tile, int x, int y)
const TileTypeProcs _tile_type_water_procs = { const TileTypeProcs _tile_type_water_procs = {
DrawTile_Water, /* draw_tile_proc */ DrawTile_Water, /* draw_tile_proc */
GetSlopeZ_Water, /* get_slope_z_proc */ GetSlopeZ_Water, /* get_slope_z_proc */
ClearTile_Water, /* clear_tile_proc */ ClearTile_Water, /* clear_tile_proc */
GetAcceptedCargo_Water, /* get_accepted_cargo_proc */ GetAcceptedCargo_Water, /* get_accepted_cargo_proc */
GetTileDesc_Water, /* get_tile_desc_proc */ GetTileDesc_Water, /* get_tile_desc_proc */
GetTileTrackStatus_Water,/* get_tile_track_status_proc */ GetTileTrackStatus_Water, /* get_tile_track_status_proc */
ClickTile_Water, /* click_tile_proc */ ClickTile_Water, /* click_tile_proc */
AnimateTile_Water, /* animate_tile_proc */ AnimateTile_Water, /* animate_tile_proc */
TileLoop_Water, /* tile_loop_clear */ TileLoop_Water, /* tile_loop_clear */
ChangeTileOwner_Water, /* change_tile_owner_clear */ ChangeTileOwner_Water, /* change_tile_owner_clear */
NULL, /* get_produced_cargo_proc */ NULL, /* get_produced_cargo_proc */
VehicleEnter_Water, /* vehicle_enter_tile_proc */ VehicleEnter_Water, /* vehicle_enter_tile_proc */
GetSlopeTileh_Water, /* get_slope_tileh_proc */ GetSlopeTileh_Water, /* get_slope_tileh_proc */
}; };

View File

@ -401,17 +401,17 @@ void InitializeWaypoints(void)
} }
static const SaveLoad _waypoint_desc[] = { static const SaveLoad _waypoint_desc[] = {
SLE_CONDVAR(Waypoint, xy, SLE_FILE_U16 | SLE_VAR_U32, 0, 5), SLE_CONDVAR(Waypoint, xy, SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
SLE_CONDVAR(Waypoint, xy, SLE_UINT32, 6, SL_MAX_VERSION), SLE_CONDVAR(Waypoint, xy, SLE_UINT32, 6, SL_MAX_VERSION),
SLE_CONDVAR(Waypoint, town_index, SLE_UINT16, 12, SL_MAX_VERSION), SLE_CONDVAR(Waypoint, town_index, SLE_UINT16, 12, SL_MAX_VERSION),
SLE_CONDVAR(Waypoint, town_cn, SLE_UINT8, 12, SL_MAX_VERSION), SLE_CONDVAR(Waypoint, town_cn, SLE_UINT8, 12, SL_MAX_VERSION),
SLE_VAR(Waypoint, string, SLE_UINT16), SLE_VAR(Waypoint, string, SLE_UINT16),
SLE_VAR(Waypoint, deleted, SLE_UINT8), SLE_VAR(Waypoint, deleted, SLE_UINT8),
SLE_CONDVAR(Waypoint, build_date, SLE_FILE_U16 | SLE_VAR_I32, 3, 30), SLE_CONDVAR(Waypoint, build_date, SLE_FILE_U16 | SLE_VAR_I32, 3, 30),
SLE_CONDVAR(Waypoint, build_date, SLE_INT32, 31, SL_MAX_VERSION), SLE_CONDVAR(Waypoint, build_date, SLE_INT32, 31, SL_MAX_VERSION),
SLE_CONDVAR(Waypoint, localidx, SLE_UINT8, 3, SL_MAX_VERSION), SLE_CONDVAR(Waypoint, localidx, SLE_UINT8, 3, SL_MAX_VERSION),
SLE_CONDVAR(Waypoint, grfid, SLE_UINT32, 17, SL_MAX_VERSION), SLE_CONDVAR(Waypoint, grfid, SLE_UINT32, 17, SL_MAX_VERSION),
SLE_END() SLE_END()
}; };

218
window.h
View File

@ -155,67 +155,67 @@ enum WindowKeyCodes {
WKC_META = 0x1000, WKC_META = 0x1000,
// Special ones // Special ones
WKC_NONE = 0, WKC_NONE = 0,
WKC_ESC=1, WKC_ESC = 1,
WKC_BACKSPACE = 2, WKC_BACKSPACE = 2,
WKC_INSERT = 3, WKC_INSERT = 3,
WKC_DELETE = 4, WKC_DELETE = 4,
WKC_PAGEUP = 5, WKC_PAGEUP = 5,
WKC_PAGEDOWN = 6, WKC_PAGEDOWN = 6,
WKC_END = 7, WKC_END = 7,
WKC_HOME = 8, WKC_HOME = 8,
// Arrow keys // Arrow keys
WKC_LEFT = 9, WKC_LEFT = 9,
WKC_UP = 10, WKC_UP = 10,
WKC_RIGHT = 11, WKC_RIGHT = 11,
WKC_DOWN = 12, WKC_DOWN = 12,
// Return & tab // Return & tab
WKC_RETURN = 13, WKC_RETURN = 13,
WKC_TAB = 14, WKC_TAB = 14,
// Numerical keyboard // Numerical keyboard
WKC_NUM_0 = 16, WKC_NUM_0 = 16,
WKC_NUM_1 = 17, WKC_NUM_1 = 17,
WKC_NUM_2 = 18, WKC_NUM_2 = 18,
WKC_NUM_3 = 19, WKC_NUM_3 = 19,
WKC_NUM_4 = 20, WKC_NUM_4 = 20,
WKC_NUM_5 = 21, WKC_NUM_5 = 21,
WKC_NUM_6 = 22, WKC_NUM_6 = 22,
WKC_NUM_7 = 23, WKC_NUM_7 = 23,
WKC_NUM_8 = 24, WKC_NUM_8 = 24,
WKC_NUM_9 = 25, WKC_NUM_9 = 25,
WKC_NUM_DIV = 26, WKC_NUM_DIV = 26,
WKC_NUM_MUL = 27, WKC_NUM_MUL = 27,
WKC_NUM_MINUS = 28, WKC_NUM_MINUS = 28,
WKC_NUM_PLUS = 29, WKC_NUM_PLUS = 29,
WKC_NUM_ENTER = 30, WKC_NUM_ENTER = 30,
WKC_NUM_DECIMAL = 31, WKC_NUM_DECIMAL = 31,
// Space // Space
WKC_SPACE = 32, WKC_SPACE = 32,
// Function keys // Function keys
WKC_F1 = 33, WKC_F1 = 33,
WKC_F2 = 34, WKC_F2 = 34,
WKC_F3 = 35, WKC_F3 = 35,
WKC_F4 = 36, WKC_F4 = 36,
WKC_F5 = 37, WKC_F5 = 37,
WKC_F6 = 38, WKC_F6 = 38,
WKC_F7 = 39, WKC_F7 = 39,
WKC_F8 = 40, WKC_F8 = 40,
WKC_F9 = 41, WKC_F9 = 41,
WKC_F10 = 42, WKC_F10 = 42,
WKC_F11 = 43, WKC_F11 = 43,
WKC_F12 = 44, WKC_F12 = 44,
// backquote is the key left of "1" // backquote is the key left of "1"
// we only store this key here, no matter what character is really mapped to it // we only store this key here, no matter what character is really mapped to it
// on a particular keyboard. (US keyboard: ` and ~ ; German keyboard: ^ and °) // on a particular keyboard. (US keyboard: ` and ~ ; German keyboard: ^ and °)
WKC_BACKQUOTE = 45, WKC_BACKQUOTE = 45,
WKC_PAUSE = 46, WKC_PAUSE = 46,
// 0-9 are mapped to 48-57 // 0-9 are mapped to 48-57
// A-Z are mapped to 65-90 // A-Z are mapped to 65-90
@ -232,18 +232,18 @@ typedef struct WindowDesc {
} WindowDesc; } WindowDesc;
enum { enum {
WDF_STD_TOOLTIPS = 1, /* use standard routine when displaying tooltips */ WDF_STD_TOOLTIPS = 1, /* use standard routine when displaying tooltips */
WDF_DEF_WIDGET = 2, /* default widget control for some widgets in the on click event */ WDF_DEF_WIDGET = 2, /* default widget control for some widgets in the on click event */
WDF_STD_BTN = 4, /* default handling for close and drag widgets (widget no 0 and 1) */ WDF_STD_BTN = 4, /* default handling for close and drag widgets (widget no 0 and 1) */
WDF_UNCLICK_BUTTONS=16, /* Unclick buttons when the window event times out */ WDF_UNCLICK_BUTTONS = 16, /* Unclick buttons when the window event times out */
WDF_STICKY_BUTTON =32, /* Set window to sticky mode; they are not closed unless closed with 'X' (widget 2) */ WDF_STICKY_BUTTON = 32, /* Set window to sticky mode; they are not closed unless closed with 'X' (widget 2) */
WDF_RESIZABLE =64, /* A window can be resized */ WDF_RESIZABLE = 64, /* A window can be resized */
}; };
/* can be used as x or y coordinates to cause a specific placement */ /* can be used as x or y coordinates to cause a specific placement */
enum { enum {
WDP_AUTO = -1, WDP_AUTO = -1,
WDP_CENTER = -2, WDP_CENTER = -2,
}; };
@ -493,38 +493,38 @@ typedef struct dropdown_d {
assert_compile(WINDOW_CUSTOM_SIZE >= sizeof(dropdown_d)); assert_compile(WINDOW_CUSTOM_SIZE >= sizeof(dropdown_d));
enum WindowEvents { enum WindowEvents {
WE_CLICK = 0, WE_CLICK = 0,
WE_PAINT = 1, WE_PAINT = 1,
WE_MOUSELOOP = 2, WE_MOUSELOOP = 2,
WE_TICK = 3, WE_TICK = 3,
WE_4 = 4, WE_4 = 4,
WE_TIMEOUT = 5, WE_TIMEOUT = 5,
WE_PLACE_OBJ = 6, WE_PLACE_OBJ = 6,
WE_ABORT_PLACE_OBJ = 7, WE_ABORT_PLACE_OBJ = 7,
WE_DESTROY = 8, WE_DESTROY = 8,
WE_ON_EDIT_TEXT = 9, WE_ON_EDIT_TEXT = 9,
WE_POPUPMENU_SELECT = 10, WE_POPUPMENU_SELECT = 10,
WE_POPUPMENU_OVER = 11, WE_POPUPMENU_OVER = 11,
WE_DRAGDROP = 12, WE_DRAGDROP = 12,
WE_PLACE_DRAG = 13, WE_PLACE_DRAG = 13,
WE_PLACE_MOUSEUP = 14, WE_PLACE_MOUSEUP = 14,
WE_PLACE_PRESIZE = 15, WE_PLACE_PRESIZE = 15,
WE_DROPDOWN_SELECT = 16, WE_DROPDOWN_SELECT = 16,
WE_RCLICK = 17, WE_RCLICK = 17,
WE_KEYPRESS = 18, WE_KEYPRESS = 18,
WE_CREATE = 19, WE_CREATE = 19,
WE_MOUSEOVER = 20, WE_MOUSEOVER = 20,
WE_ON_EDIT_TEXT_CANCEL = 21, WE_ON_EDIT_TEXT_CANCEL = 21,
WE_RESIZE = 22, WE_RESIZE = 22,
WE_MESSAGE = 23, WE_MESSAGE = 23,
WE_SCROLL = 24, WE_SCROLL = 24,
WE_MOUSEWHEEL = 25, WE_MOUSEWHEEL = 25,
}; };
/****************** THESE ARE NOT WIDGET TYPES!!!!! *******************/ /****************** THESE ARE NOT WIDGET TYPES!!!!! *******************/
enum WindowWidgetBehaviours { enum WindowWidgetBehaviours {
WWB_PUSHBUTTON = 1 << 5, WWB_PUSHBUTTON = 1 << 5,
WWB_NODISBUTTON = 2 << 5, WWB_NODISBUTTON = 2 << 5,
}; };
@ -532,27 +532,27 @@ enum WindowWidgetBehaviours {
enum WindowWidgetTypes { enum WindowWidgetTypes {
WWT_EMPTY = 0, WWT_EMPTY = 0,
WWT_IMGBTN = 1, /* button with image */ WWT_IMGBTN = 1, /* button with image */
WWT_PANEL = WWT_IMGBTN, WWT_PANEL = WWT_IMGBTN,
WWT_PANEL_2 = 2, /* button with diff image when clicked */ WWT_PANEL_2 = 2, /* button with diff image when clicked */
WWT_TEXTBTN = 3, /* button with text */ WWT_TEXTBTN = 3, /* button with text */
WWT_4 = 4, /* button with diff text when clicked */ WWT_4 = 4, /* button with diff text when clicked */
WWT_5 = 5, /* label */ WWT_5 = 5, /* label */
WWT_6 = 6, /* combo box text area */ WWT_6 = 6, /* combo box text area */
WWT_MATRIX = 7, WWT_MATRIX = 7,
WWT_SCROLLBAR = 8, WWT_SCROLLBAR = 8,
WWT_FRAME = 9, /* frame */ WWT_FRAME = 9, /* frame */
WWT_CAPTION = 10, WWT_CAPTION = 10,
WWT_HSCROLLBAR = 11, WWT_HSCROLLBAR = 11,
WWT_STICKYBOX = 12, WWT_STICKYBOX = 12,
WWT_SCROLL2BAR = 13, /* 2nd vertical scrollbar*/ WWT_SCROLL2BAR = 13, /* 2nd vertical scrollbar*/
WWT_RESIZEBOX = 14, WWT_RESIZEBOX = 14,
WWT_CLOSEBOX = 15, WWT_CLOSEBOX = 15,
WWT_LAST = 16, /* Last Item. use WIDGETS_END to fill up padding!! */ WWT_LAST = 16, /* Last Item. use WIDGETS_END to fill up padding!! */
WWT_MASK = 31, WWT_MASK = 31,
WWT_PUSHTXTBTN = WWT_TEXTBTN | WWB_PUSHBUTTON, WWT_PUSHTXTBTN = WWT_TEXTBTN | WWB_PUSHBUTTON,
WWT_PUSHIMGBTN = WWT_IMGBTN | WWB_PUSHBUTTON, WWT_PUSHIMGBTN = WWT_IMGBTN | WWB_PUSHBUTTON,
@ -562,21 +562,21 @@ enum WindowWidgetTypes {
#define WIDGETS_END WWT_LAST, RESIZE_NONE, 0, 0, 0, 0, 0, 0, STR_NULL #define WIDGETS_END WWT_LAST, RESIZE_NONE, 0, 0, 0, 0, 0, 0, STR_NULL
enum WindowFlags { enum WindowFlags {
WF_TIMEOUT_SHL = 0, WF_TIMEOUT_SHL = 0,
WF_TIMEOUT_MASK = 7, WF_TIMEOUT_MASK = 7,
WF_DRAGGING = 1 << 3, WF_DRAGGING = 1 << 3,
WF_SCROLL_UP = 1 << 4, WF_SCROLL_UP = 1 << 4,
WF_SCROLL_DOWN = 1 << 5, WF_SCROLL_DOWN = 1 << 5,
WF_SCROLL_MIDDLE = 1 << 6, WF_SCROLL_MIDDLE = 1 << 6,
WF_HSCROLL = 1 << 7, WF_HSCROLL = 1 << 7,
WF_SIZING = 1 << 8, WF_SIZING = 1 << 8,
WF_STICKY = 1 << 9, WF_STICKY = 1 << 9,
WF_DISABLE_VP_SCROLL = 1 << 10, WF_DISABLE_VP_SCROLL = 1 << 10,
WF_WHITE_BORDER_ONE = 1 << 11, WF_WHITE_BORDER_ONE = 1 << 11,
WF_WHITE_BORDER_MASK = 3 << 11, WF_WHITE_BORDER_MASK = 3 << 11,
WF_SCROLL2 = 1 << 13, WF_SCROLL2 = 1 << 13,
}; };
/* window.c */ /* window.c */
@ -658,10 +658,10 @@ VARDEF bool _popup_menu_active;
VARDEF byte _special_mouse_mode; VARDEF byte _special_mouse_mode;
enum SpecialMouseMode { enum SpecialMouseMode {
WSM_NONE = 0, WSM_NONE = 0,
WSM_DRAGDROP = 1, WSM_DRAGDROP = 1,
WSM_SIZING = 2, WSM_SIZING = 2,
WSM_PRESIZE = 3, WSM_PRESIZE = 3,
}; };
void ScrollbarClickHandler(Window *w, const Widget *wi, int x, int y); void ScrollbarClickHandler(Window *w, const Widget *wi, int x, int y);