src/dock_gui.cpp
changeset 10926 e46c48440dbc
parent 10913 af60a6eda0a0
child 10928 e88d40758667
equal deleted inserted replaced
10925:d3d3ab93658a 10926:e46c48440dbc
    67 static void PlaceDocks_BuildLock(TileIndex tile)
    67 static void PlaceDocks_BuildLock(TileIndex tile)
    68 {
    68 {
    69 	DoCommandP(tile, 0, 0, CcBuildDocks, CMD_BUILD_LOCK | CMD_MSG(STR_CANT_BUILD_LOCKS));
    69 	DoCommandP(tile, 0, 0, CcBuildDocks, CMD_BUILD_LOCK | CMD_MSG(STR_CANT_BUILD_LOCKS));
    70 }
    70 }
    71 
    71 
    72 static void PlaceDocks_Bridge(TileIndex tile)
    72 static void PlaceDocks_Aqueduct(TileIndex tile)
    73 {
    73 {
    74 	VpStartPlaceSizing(tile, VPM_X_OR_Y, DDSP_BUILD_BRIDGE);
    74 	VpStartPlaceSizing(tile, VPM_X_OR_Y, DDSP_BUILD_BRIDGE);
    75 }
    75 }
    76 
    76 
    77 
    77 
    87 	DTW_SEPERATOR,                 ///< Seperating panel between lock and demolish
    87 	DTW_SEPERATOR,                 ///< Seperating panel between lock and demolish
    88 	DTW_DEMOLISH,                  ///< Demolish aka dynamite button
    88 	DTW_DEMOLISH,                  ///< Demolish aka dynamite button
    89 	DTW_DEPOT,                     ///< Build depot button
    89 	DTW_DEPOT,                     ///< Build depot button
    90 	DTW_STATION,                   ///< Build station button
    90 	DTW_STATION,                   ///< Build station button
    91 	DTW_BUOY,                      ///< Build buoy button
    91 	DTW_BUOY,                      ///< Build buoy button
    92 	DTW_BUILD_BRIDGE,              ///< Build bride button
    92 	DTW_BUILD_AQUEDUCT,            ///< Build aqueduct button
    93 	DTW_END,                       ///< End of toolbar widgets
    93 	DTW_END,                       ///< End of toolbar widgets
    94 };
    94 };
    95 
    95 
    96 
    96 
    97 static void BuildDocksClick_Canal(Window *w)
    97 static void BuildDocksClick_Canal(Window *w)
   125 {
   125 {
   126 	if (!CanBuildVehicleInfrastructure(VEH_SHIP)) return;
   126 	if (!CanBuildVehicleInfrastructure(VEH_SHIP)) return;
   127 	HandlePlacePushButton(w, DTW_BUOY, SPR_CURSOR_BOUY, VHM_RECT, PlaceDocks_Buoy);
   127 	HandlePlacePushButton(w, DTW_BUOY, SPR_CURSOR_BOUY, VHM_RECT, PlaceDocks_Buoy);
   128 }
   128 }
   129 
   129 
   130 static void BuildDocksClick_Bridge(Window *w)
   130 static void BuildDocksClick_Aqueduct(Window *w)
   131 {
   131 {
   132 	HandlePlacePushButton(w, DTW_BUILD_BRIDGE, SPR_CURSOR_BRIDGE, VHM_RECT, PlaceDocks_Bridge);
   132 	HandlePlacePushButton(w, DTW_BUILD_AQUEDUCT, SPR_CURSOR_BRIDGE, VHM_RECT, PlaceDocks_Aqueduct);
   133 }
   133 }
   134 
   134 
   135 
   135 
   136 typedef void OnButtonClick(Window *w);
   136 typedef void OnButtonClick(Window *w);
   137 static OnButtonClick * const _build_docks_button_proc[] = {
   137 static OnButtonClick * const _build_docks_button_proc[] = {
   140 	NULL,
   140 	NULL,
   141 	BuildDocksClick_Demolish,
   141 	BuildDocksClick_Demolish,
   142 	BuildDocksClick_Depot,
   142 	BuildDocksClick_Depot,
   143 	BuildDocksClick_Dock,
   143 	BuildDocksClick_Dock,
   144 	BuildDocksClick_Buoy,
   144 	BuildDocksClick_Buoy,
   145 	BuildDocksClick_Bridge
   145 	BuildDocksClick_Aqueduct
   146 };
   146 };
   147 
   147 
   148 struct BuildDocksToolbarWindow : Window {
   148 struct BuildDocksToolbarWindow : Window {
   149 	BuildDocksToolbarWindow(const WindowDesc *desc, WindowNumber window_number) : Window(desc, window_number)
   149 	BuildDocksToolbarWindow(const WindowDesc *desc, WindowNumber window_number) : Window(desc, window_number)
   150 	{
   150 	{
   175 			case '2': BuildDocksClick_Lock(this); break;
   175 			case '2': BuildDocksClick_Lock(this); break;
   176 			case '3': BuildDocksClick_Demolish(this); break;
   176 			case '3': BuildDocksClick_Demolish(this); break;
   177 			case '4': BuildDocksClick_Depot(this); break;
   177 			case '4': BuildDocksClick_Depot(this); break;
   178 			case '5': BuildDocksClick_Dock(this); break;
   178 			case '5': BuildDocksClick_Dock(this); break;
   179 			case '6': BuildDocksClick_Buoy(this); break;
   179 			case '6': BuildDocksClick_Buoy(this); break;
   180 			case '7': BuildDocksClick_Bridge(this); break;
   180 			case '7': BuildDocksClick_Aqueduct(this); break;
   181 			default:  return ES_NOT_HANDLED;
   181 			default:  return ES_NOT_HANDLED;
   182 		}
   182 		}
   183 		return ES_HANDLED;
   183 		return ES_HANDLED;
   184 	}
   184 	}
   185 
   185 
   198 		if (pt.x != -1) {
   198 		if (pt.x != -1) {
   199 			switch (select_proc) {
   199 			switch (select_proc) {
   200 				case DDSP_BUILD_BRIDGE:
   200 				case DDSP_BUILD_BRIDGE:
   201 					ResetObjectToPlace();
   201 					ResetObjectToPlace();
   202 					extern void CcBuildBridge(bool success, TileIndex tile, uint32 p1, uint32 p2);
   202 					extern void CcBuildBridge(bool success, TileIndex tile, uint32 p1, uint32 p2);
   203 					DoCommandP(end_tile, start_tile, TRANSPORT_WATER << 15, CcBuildBridge, CMD_BUILD_BRIDGE | CMD_MSG(STR_5015_CAN_T_BUILD_BRIDGE_HERE));
   203 					DoCommandP(end_tile, start_tile, TRANSPORT_WATER << 15, CcBuildBridge, CMD_BUILD_BRIDGE | CMD_MSG(STR_CAN_T_BUILD_AQUEDUCT_HERE));
   204 
   204 
   205 				case DDSP_DEMOLISH_AREA:
   205 				case DDSP_DEMOLISH_AREA:
   206 					GUIPlaceProcDragXY(select_proc, start_tile, end_tile);
   206 					GUIPlaceProcDragXY(select_proc, start_tile, end_tile);
   207 					break;
   207 					break;
   208 				case DDSP_CREATE_WATER:
   208 				case DDSP_CREATE_WATER:
   242 
   242 
   243 {     WWT_IMGBTN,   RESIZE_NONE,     7,    48,    69,    14,    35, SPR_IMG_DYNAMITE,           STR_018D_DEMOLISH_BUILDINGS_ETC},         // DTW_DEMOLISH
   243 {     WWT_IMGBTN,   RESIZE_NONE,     7,    48,    69,    14,    35, SPR_IMG_DYNAMITE,           STR_018D_DEMOLISH_BUILDINGS_ETC},         // DTW_DEMOLISH
   244 {     WWT_IMGBTN,   RESIZE_NONE,     7,    70,    91,    14,    35, SPR_IMG_SHIP_DEPOT,         STR_981E_BUILD_SHIP_DEPOT_FOR_BUILDING},  // DTW_DEPOT
   244 {     WWT_IMGBTN,   RESIZE_NONE,     7,    70,    91,    14,    35, SPR_IMG_SHIP_DEPOT,         STR_981E_BUILD_SHIP_DEPOT_FOR_BUILDING},  // DTW_DEPOT
   245 {     WWT_IMGBTN,   RESIZE_NONE,     7,    92,   113,    14,    35, SPR_IMG_SHIP_DOCK,          STR_981D_BUILD_SHIP_DOCK},                // DTW_STATION
   245 {     WWT_IMGBTN,   RESIZE_NONE,     7,    92,   113,    14,    35, SPR_IMG_SHIP_DOCK,          STR_981D_BUILD_SHIP_DOCK},                // DTW_STATION
   246 {     WWT_IMGBTN,   RESIZE_NONE,     7,   114,   135,    14,    35, SPR_IMG_BOUY,               STR_9834_POSITION_BUOY_WHICH_CAN},        // DTW_BUOY
   246 {     WWT_IMGBTN,   RESIZE_NONE,     7,   114,   135,    14,    35, SPR_IMG_BOUY,               STR_9834_POSITION_BUOY_WHICH_CAN},        // DTW_BUOY
   247 {     WWT_IMGBTN,   RESIZE_NONE,     7,   136,   178,    14,    35, SPR_IMG_BRIDGE,             STR_180F_BUILD_ROAD_BRIDGE},              // DTW_BUILD_BRIDGE
   247 {     WWT_IMGBTN,   RESIZE_NONE,     7,   136,   178,    14,    35, SPR_IMG_BRIDGE,             STR_BUILD_AQUEDUCT},                      // DTW_BUILD_AQUEDUCT
   248 {   WIDGETS_END},
   248 {   WIDGETS_END},
   249 };
   249 };
   250 
   250 
   251 static const WindowDesc _build_docks_toolbar_desc = {
   251 static const WindowDesc _build_docks_toolbar_desc = {
   252 	WDP_ALIGN_TBR, 22, 179, 36, 179, 36,
   252 	WDP_ALIGN_TBR, 22, 179, 36, 179, 36,