changeset 9490 | 01c07bde5e84 |
parent 9413 | 7042a8ec3fa8 |
child 9499 | a7d854f98d65 |
9489:1a097da71d88 | 9490:01c07bde5e84 |
---|---|
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) |
|
73 { |
|
74 VpStartPlaceSizing(tile, VPM_X_OR_Y, DDSP_BUILD_BRIDGE); |
|
75 } |
|
76 |
|
77 |
|
72 /** Enum referring to the widgets of the build dock toolbar */ |
78 /** Enum referring to the widgets of the build dock toolbar */ |
73 enum DockToolbarWidgets { |
79 enum DockToolbarWidgets { |
74 DTW_BEGIN = 0, ///< Start of toolbar widgets |
80 DTW_BEGIN = 0, ///< Start of toolbar widgets |
75 DTW_CLOSEBOX = DTW_BEGIN, ///< Close window button |
81 DTW_CLOSEBOX = DTW_BEGIN, ///< Close window button |
76 DTW_CAPTION, ///< Window caption |
82 DTW_CAPTION, ///< Window caption |
81 DTW_SEPERATOR, ///< Seperating panel between lock and demolish |
87 DTW_SEPERATOR, ///< Seperating panel between lock and demolish |
82 DTW_DEMOLISH, ///< Demolish aka dynamite button |
88 DTW_DEMOLISH, ///< Demolish aka dynamite button |
83 DTW_DEPOT, ///< Build depot button |
89 DTW_DEPOT, ///< Build depot button |
84 DTW_STATION, ///< Build station button |
90 DTW_STATION, ///< Build station button |
85 DTW_BUOY, ///< Build buoy button |
91 DTW_BUOY, ///< Build buoy button |
92 DTW_BUILD_BRIDGE, ///< Build bride button |
|
86 DTW_END, ///< End of toolbar widgets |
93 DTW_END, ///< End of toolbar widgets |
87 }; |
94 }; |
88 |
95 |
89 |
96 |
90 static void BuildDocksClick_Canal(Window *w) |
97 static void BuildDocksClick_Canal(Window *w) |
116 |
123 |
117 static void BuildDocksClick_Buoy(Window *w) |
124 static void BuildDocksClick_Buoy(Window *w) |
118 { |
125 { |
119 if (!CanBuildVehicleInfrastructure(VEH_SHIP)) return; |
126 if (!CanBuildVehicleInfrastructure(VEH_SHIP)) return; |
120 HandlePlacePushButton(w, DTW_BUOY, SPR_CURSOR_BOUY, VHM_RECT, PlaceDocks_Buoy); |
127 HandlePlacePushButton(w, DTW_BUOY, SPR_CURSOR_BOUY, VHM_RECT, PlaceDocks_Buoy); |
128 } |
|
129 |
|
130 static void BuildDocksClick_Bridge(Window *w) |
|
131 { |
|
132 HandlePlacePushButton(w, DTW_BUILD_BRIDGE, SPR_CURSOR_BRIDGE, VHM_RECT, PlaceDocks_Bridge); |
|
121 } |
133 } |
122 |
134 |
123 |
135 |
124 typedef void OnButtonClick(Window *w); |
136 typedef void OnButtonClick(Window *w); |
125 static OnButtonClick * const _build_docks_button_proc[] = { |
137 static OnButtonClick * const _build_docks_button_proc[] = { |
127 BuildDocksClick_Lock, |
139 BuildDocksClick_Lock, |
128 NULL, |
140 NULL, |
129 BuildDocksClick_Demolish, |
141 BuildDocksClick_Demolish, |
130 BuildDocksClick_Depot, |
142 BuildDocksClick_Depot, |
131 BuildDocksClick_Dock, |
143 BuildDocksClick_Dock, |
132 BuildDocksClick_Buoy |
144 BuildDocksClick_Buoy, |
145 BuildDocksClick_Bridge |
|
133 }; |
146 }; |
134 |
147 |
135 struct BuildDocksToolbarWindow : Window { |
148 struct BuildDocksToolbarWindow : Window { |
136 BuildDocksToolbarWindow(const WindowDesc *desc, WindowNumber window_number) : Window(desc, window_number) |
149 BuildDocksToolbarWindow(const WindowDesc *desc, WindowNumber window_number) : Window(desc, window_number) |
137 { |
150 { |
162 case '2': BuildDocksClick_Lock(this); break; |
175 case '2': BuildDocksClick_Lock(this); break; |
163 case '3': BuildDocksClick_Demolish(this); break; |
176 case '3': BuildDocksClick_Demolish(this); break; |
164 case '4': BuildDocksClick_Depot(this); break; |
177 case '4': BuildDocksClick_Depot(this); break; |
165 case '5': BuildDocksClick_Dock(this); break; |
178 case '5': BuildDocksClick_Dock(this); break; |
166 case '6': BuildDocksClick_Buoy(this); break; |
179 case '6': BuildDocksClick_Buoy(this); break; |
180 case '7': BuildDocksClick_Bridge(this); break; |
|
167 default: return ES_NOT_HANDLED; |
181 default: return ES_NOT_HANDLED; |
168 } |
182 } |
169 return ES_HANDLED; |
183 return ES_HANDLED; |
170 } |
184 } |
171 |
185 |
181 |
195 |
182 virtual void OnPlaceMouseUp(ViewportPlaceMethod select_method, ViewportDragDropSelectionProcess select_proc, Point pt, TileIndex start_tile, TileIndex end_tile) |
196 virtual void OnPlaceMouseUp(ViewportPlaceMethod select_method, ViewportDragDropSelectionProcess select_proc, Point pt, TileIndex start_tile, TileIndex end_tile) |
183 { |
197 { |
184 if (pt.x != -1) { |
198 if (pt.x != -1) { |
185 switch (select_proc) { |
199 switch (select_proc) { |
200 case DDSP_BUILD_BRIDGE: |
|
201 ResetObjectToPlace(); |
|
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)); |
|
204 |
|
186 case DDSP_DEMOLISH_AREA: |
205 case DDSP_DEMOLISH_AREA: |
187 GUIPlaceProcDragXY(select_proc, start_tile, end_tile); |
206 GUIPlaceProcDragXY(select_proc, start_tile, end_tile); |
188 break; |
207 break; |
189 case DDSP_CREATE_WATER: |
208 case DDSP_CREATE_WATER: |
190 DoCommandP(end_tile, start_tile, 0, CcBuildCanal, CMD_BUILD_CANAL | CMD_MSG(STR_CANT_BUILD_CANALS)); |
209 DoCommandP(end_tile, start_tile, 0, CcBuildCanal, CMD_BUILD_CANAL | CMD_MSG(STR_CANT_BUILD_CANALS)); |
212 } |
231 } |
213 }; |
232 }; |
214 |
233 |
215 static const Widget _build_docks_toolb_widgets[] = { |
234 static const Widget _build_docks_toolb_widgets[] = { |
216 { WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, // DTW_CLOSEBOX |
235 { WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, // DTW_CLOSEBOX |
217 { WWT_CAPTION, RESIZE_NONE, 7, 11, 123, 0, 13, STR_9801_DOCK_CONSTRUCTION, STR_018C_WINDOW_TITLE_DRAG_THIS}, // DTW_CAPTION |
236 { WWT_CAPTION, RESIZE_NONE, 7, 11, 166, 0, 13, STR_9801_DOCK_CONSTRUCTION, STR_018C_WINDOW_TITLE_DRAG_THIS}, // DTW_CAPTION |
218 { WWT_STICKYBOX, RESIZE_NONE, 7, 124, 135, 0, 13, 0x0, STR_STICKY_BUTTON}, // DTW_STICKY |
237 { WWT_STICKYBOX, RESIZE_NONE, 7, 167, 178, 0, 13, 0x0, STR_STICKY_BUTTON}, // DTW_STICKY |
219 { WWT_IMGBTN, RESIZE_NONE, 7, 0, 21, 14, 35, SPR_IMG_BUILD_CANAL, STR_BUILD_CANALS_TIP}, // DTW_CANAL |
238 { WWT_IMGBTN, RESIZE_NONE, 7, 0, 21, 14, 35, SPR_IMG_BUILD_CANAL, STR_BUILD_CANALS_TIP}, // DTW_CANAL |
220 { WWT_IMGBTN, RESIZE_NONE, 7, 22, 43, 14, 35, SPR_IMG_BUILD_LOCK, STR_BUILD_LOCKS_TIP}, // DTW_LOCK |
239 { WWT_IMGBTN, RESIZE_NONE, 7, 22, 43, 14, 35, SPR_IMG_BUILD_LOCK, STR_BUILD_LOCKS_TIP}, // DTW_LOCK |
221 |
240 |
222 { WWT_PANEL, RESIZE_NONE, 7, 44, 47, 14, 35, 0x0, STR_NULL}, // DTW_SEPERATOR |
241 { WWT_PANEL, RESIZE_NONE, 7, 44, 47, 14, 35, 0x0, STR_NULL}, // DTW_SEPERATOR |
223 |
242 |
224 { 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 |
225 { 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 |
226 { 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 |
227 { 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 |
|
228 { WIDGETS_END}, |
248 { WIDGETS_END}, |
229 }; |
249 }; |
230 |
250 |
231 static const WindowDesc _build_docks_toolbar_desc = { |
251 static const WindowDesc _build_docks_toolbar_desc = { |
232 WDP_ALIGN_TBR, 22, 136, 36, 136, 36, |
252 WDP_ALIGN_TBR, 22, 179, 36, 179, 36, |
233 WC_BUILD_TOOLBAR, WC_NONE, |
253 WC_BUILD_TOOLBAR, WC_NONE, |
234 WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_STICKY_BUTTON, |
254 WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_STICKY_BUTTON, |
235 _build_docks_toolb_widgets, |
255 _build_docks_toolb_widgets, |
236 }; |
256 }; |
237 |
257 |