(svn r3157) - Feature: Added patch option to link the terraform toolbar to the rail, road, water and airport toolbars. If enabled, the terraform toolbar will open and close with those toolbars.
authorpeter1138
Wed, 09 Nov 2005 07:25:55 +0000
changeset 2619 c2f488e400b1
parent 2618 7546b838230b
child 2620 7bdf0d5c0638
(svn r3157) - Feature: Added patch option to link the terraform toolbar to the rail, road, water and airport toolbars. If enabled, the terraform toolbar will open and close with those toolbars.
airport_gui.c
dock_gui.c
lang/english.txt
rail_gui.c
road_gui.c
settings.c
settings_gui.c
variables.h
--- a/airport_gui.c	Tue Nov 08 23:18:09 2005 +0000
+++ b/airport_gui.c	Wed Nov 09 07:25:55 2005 +0000
@@ -107,6 +107,10 @@
 		if (w != 0)
 			WP(w,def_d).close = true;
 		break;
+
+	case WE_DESTROY:
+		if (_patches.link_terraform_toolbar) DeleteWindowById(WC_SCEN_LAND_GEN, 0);
+		break;
 	}
 }
 
@@ -134,6 +138,7 @@
 	if (_current_player == OWNER_SPECTATOR) return;
 	DeleteWindowById(WC_BUILD_TOOLBAR, 0);
 	AllocateWindowDescFront(&_air_toolbar_desc, 0);
+	if (_patches.link_terraform_toolbar) ShowTerraformToolbar();
 }
 
 static void BuildAirportPickerWndProc(Window *w, WindowEvent *e)
--- a/dock_gui.c	Tue Nov 08 23:18:09 2005 +0000
+++ b/dock_gui.c	Wed Nov 09 07:25:55 2005 +0000
@@ -180,6 +180,10 @@
 		}
 		VpSetPresizeRange(tile_from, tile_to);
 	} break;
+
+	case WE_DESTROY:
+		if (_patches.link_terraform_toolbar) DeleteWindowById(WC_SCEN_LAND_GEN, 0);
+		break;
 	}
 }
 
@@ -213,6 +217,7 @@
 	if (_current_player == OWNER_SPECTATOR) return;
 	DeleteWindowById(WC_BUILD_TOOLBAR, 0);
 	AllocateWindowDesc(&_build_docks_toolbar_desc);
+	if (_patches.link_terraform_toolbar) ShowTerraformToolbar();
 }
 
 static void BuildDockStationWndProc(Window *w, WindowEvent *e)
--- a/lang/english.txt	Tue Nov 08 23:18:09 2005 +0000
+++ b/lang/english.txt	Wed Nov 09 07:25:55 2005 +0000
@@ -997,6 +997,7 @@
 STR_CONFIG_PATCHES_SNOWLINE_HEIGHT                              :{LTBLUE}Snow line height: {ORANGE}{STRING1}
 STR_CONFIG_PATCHES_STATION_SPREAD                               :{LTBLUE}Max station spread: {ORANGE}{STRING1} {RED}Warning: High setting slows game
 STR_CONFIG_PATCHES_SERVICEATHELIPAD                             :{LTBLUE}Service helicopters at helipads automatically: {ORANGE}{STRING1}
+STR_CONFIG_PATCHES_LINK_TERRAFORM_TOOLBAR                       :{LTBLUE}Link landscape toolbar to rail/road/water/airport toolbars: {ORANGE}{STRING1}
 
 STR_CONFIG_PATCHES_MAX_TRAINS                                   :{LTBLUE}Max trains per player: {ORANGE}{STRING1}
 STR_CONFIG_PATCHES_MAX_ROADVEH                                  :{LTBLUE}Max road vehicles per player: {ORANGE}{STRING1}
--- a/rail_gui.c	Tue Nov 08 23:18:09 2005 +0000
+++ b/rail_gui.c	Wed Nov 09 07:25:55 2005 +0000
@@ -480,6 +480,10 @@
 		DoCommandByTile(tile, 0, 0, DC_AUTO, CMD_BUILD_TUNNEL);
 		VpSetPresizeRange(tile, _build_tunnel_endtile==0?tile:_build_tunnel_endtile);
 	} break;
+
+	case WE_DESTROY:
+		if (_patches.link_terraform_toolbar) DeleteWindowById(WC_SCEN_LAND_GEN, 0);
+		break;
 	}
 }
 
@@ -571,6 +575,7 @@
 
 	_remove_button_clicked = false;
 	if (w != NULL && button >= 0) _build_railroad_button_proc[button](w);
+	if (_patches.link_terraform_toolbar) ShowTerraformToolbar();
 }
 
 /* TODO: For custom stations, respect their allowed platforms/lengths bitmasks!
--- a/road_gui.c	Tue Nov 08 23:18:09 2005 +0000
+++ b/road_gui.c	Wed Nov 09 07:25:55 2005 +0000
@@ -281,6 +281,10 @@
 		VpSetPresizeRange(tile, _build_tunnel_endtile==0?tile:_build_tunnel_endtile);
 		break;
 	}
+
+	case WE_DESTROY:
+		if (_patches.link_terraform_toolbar) DeleteWindowById(WC_SCEN_LAND_GEN, 0);
+		break;
 	}
 }
 
@@ -315,6 +319,7 @@
 	if (_current_player == OWNER_SPECTATOR) return;
 	DeleteWindowById(WC_BUILD_TOOLBAR, 0);
 	AllocateWindowDesc(&_build_road_desc);
+	if (_patches.link_terraform_toolbar) ShowTerraformToolbar();
 }
 
 static const Widget _build_road_scen_widgets[] = {
--- a/settings.c	Tue Nov 08 23:18:09 2005 +0000
+++ b/settings.c	Wed Nov 09 07:25:55 2005 +0000
@@ -853,6 +853,7 @@
 	{"autorenew_money",			SDT_INT32,	(void*)100000,&_patches.autorenew_money,			NULL},
 
 	{"population_in_label",	SDT_BOOL,		(void*)true,	&_patches.population_in_label,	NULL},
+	{"link_terraform_toolbar",       SDT_BOOL,   (void*)false, &_patches.link_terraform_toolbar,       NULL},
 
 	{NULL,									0,					NULL,					NULL,																						NULL}
 };
--- a/settings_gui.c	Tue Nov 08 23:18:09 2005 +0000
+++ b/settings_gui.c	Wed Nov 09 07:25:55 2005 +0000
@@ -679,6 +679,8 @@
 
 	{PE_INT32, 0, STR_CONFIG_PATCHES_MAP_X, "map_x", &_patches.map_x, 6, 11, 1, NULL},
 	{PE_INT32, 0, STR_CONFIG_PATCHES_MAP_Y, "map_y", &_patches.map_y, 6, 11, 1, NULL},
+
+	{PE_BOOL,   PF_PLAYERBASED, STR_CONFIG_PATCHES_LINK_TERRAFORM_TOOLBAR, "link_terraform_toolbar", &_patches.link_terraform_toolbar, 0, 1, 1, NULL},
 };
 
 static const PatchEntry _patches_construction[] = {
--- a/variables.h	Tue Nov 08 23:18:09 2005 +0000
+++ b/variables.h	Wed Nov 09 07:25:55 2005 +0000
@@ -119,6 +119,7 @@
 	bool forbid_90_deg; // forbid trains to make 90 deg turns
 	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 link_terraform_toolbar; // display terraform toolbar when displaying rail, road, water and airport toolbars
 
 	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