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