branch | NewGRF_ports |
changeset 10994 | cd9968b6f96b |
parent 10991 | d8811e327d12 |
10991:d8811e327d12 | 10994:cd9968b6f96b |
---|---|
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_Aqueduct(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_AQUEDUCT, ///< Build aqueduct 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_Aqueduct(Window *w) |
|
131 { |
|
132 HandlePlacePushButton(w, DTW_BUILD_AQUEDUCT, SPR_CURSOR_AQUEDUCT, VHM_RECT, PlaceDocks_Aqueduct); |
|
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_Aqueduct |
|
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 'B': |
|
181 case '7': BuildDocksClick_Aqueduct(this); break; |
|
167 default: return ES_NOT_HANDLED; |
182 default: return ES_NOT_HANDLED; |
168 } |
183 } |
169 return ES_HANDLED; |
184 return ES_HANDLED; |
170 } |
185 } |
171 |
186 |
181 |
196 |
182 virtual void OnPlaceMouseUp(ViewportPlaceMethod select_method, ViewportDragDropSelectionProcess select_proc, Point pt, TileIndex start_tile, TileIndex end_tile) |
197 virtual void OnPlaceMouseUp(ViewportPlaceMethod select_method, ViewportDragDropSelectionProcess select_proc, Point pt, TileIndex start_tile, TileIndex end_tile) |
183 { |
198 { |
184 if (pt.x != -1) { |
199 if (pt.x != -1) { |
185 switch (select_proc) { |
200 switch (select_proc) { |
201 case DDSP_BUILD_BRIDGE: |
|
202 ResetObjectToPlace(); |
|
203 extern void CcBuildBridge(bool success, TileIndex tile, uint32 p1, uint32 p2); |
|
204 DoCommandP(end_tile, start_tile, TRANSPORT_WATER << 15, CcBuildBridge, CMD_BUILD_BRIDGE | CMD_MSG(STR_CAN_T_BUILD_AQUEDUCT_HERE)); |
|
205 |
|
186 case DDSP_DEMOLISH_AREA: |
206 case DDSP_DEMOLISH_AREA: |
187 GUIPlaceProcDragXY(select_proc, start_tile, end_tile); |
207 GUIPlaceProcDragXY(select_proc, start_tile, end_tile); |
188 break; |
208 break; |
189 case DDSP_CREATE_WATER: |
209 case DDSP_CREATE_WATER: |
190 DoCommandP(end_tile, start_tile, 0, CcBuildCanal, CMD_BUILD_CANAL | CMD_MSG(STR_CANT_BUILD_CANALS)); |
210 DoCommandP(end_tile, start_tile, 0, CcBuildCanal, CMD_BUILD_CANAL | CMD_MSG(STR_CANT_BUILD_CANALS)); |
212 } |
232 } |
213 }; |
233 }; |
214 |
234 |
215 static const Widget _build_docks_toolb_widgets[] = { |
235 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 |
236 { 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 |
237 { WWT_CAPTION, RESIZE_NONE, 7, 11, 145, 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 |
238 { WWT_STICKYBOX, RESIZE_NONE, 7, 146, 157, 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 |
239 { 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 |
240 { WWT_IMGBTN, RESIZE_NONE, 7, 22, 43, 14, 35, SPR_IMG_BUILD_LOCK, STR_BUILD_LOCKS_TIP}, // DTW_LOCK |
221 |
241 |
222 { WWT_PANEL, RESIZE_NONE, 7, 44, 47, 14, 35, 0x0, STR_NULL}, // DTW_SEPERATOR |
242 { WWT_PANEL, RESIZE_NONE, 7, 44, 47, 14, 35, 0x0, STR_NULL}, // DTW_SEPERATOR |
223 |
243 |
224 { 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, 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 |
245 { 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 |
246 { 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 |
247 { WWT_IMGBTN, RESIZE_NONE, 7, 114, 135, 14, 35, SPR_IMG_BOUY, STR_9834_POSITION_BUOY_WHICH_CAN}, // DTW_BUOY |
248 { WWT_IMGBTN, RESIZE_NONE, 7, 136, 157, 14, 35, SPR_IMG_AQUEDUCT, STR_BUILD_AQUEDUCT}, // DTW_BUILD_AQUEDUCT |
|
228 { WIDGETS_END}, |
249 { WIDGETS_END}, |
229 }; |
250 }; |
230 |
251 |
231 static const WindowDesc _build_docks_toolbar_desc = { |
252 static const WindowDesc _build_docks_toolbar_desc = { |
232 WDP_ALIGN_TBR, 22, 136, 36, 136, 36, |
253 WDP_ALIGN_TBR, 22, 158, 36, 158, 36, |
233 WC_BUILD_TOOLBAR, WC_NONE, |
254 WC_BUILD_TOOLBAR, WC_NONE, |
234 WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_STICKY_BUTTON, |
255 WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_STICKY_BUTTON, |
235 _build_docks_toolb_widgets, |
256 _build_docks_toolb_widgets, |
236 }; |
257 }; |
237 |
258 |