122 |
122 |
123 case WE_CLICK: |
123 case WE_CLICK: |
124 if (e->click.widget - 3 >= 0 && e->click.widget != 5) _build_docks_button_proc[e->click.widget - 3](w); |
124 if (e->click.widget - 3 >= 0 && e->click.widget != 5) _build_docks_button_proc[e->click.widget - 3](w); |
125 break; |
125 break; |
126 |
126 |
127 case WE_KEYPRESS: { |
127 case WE_KEYPRESS: |
128 switch(e->keypress.keycode) { |
128 switch (e->keypress.keycode) { |
129 case '1': BuildDocksClick_Canal(w); break; |
129 case '1': BuildDocksClick_Canal(w); break; |
130 case '2': BuildDocksClick_Lock(w); break; |
130 case '2': BuildDocksClick_Lock(w); break; |
131 case '3': BuildDocksClick_Demolish(w); break; |
131 case '3': BuildDocksClick_Demolish(w); break; |
132 case '4': BuildDocksClick_Depot(w); break; |
132 case '4': BuildDocksClick_Depot(w); break; |
133 case '5': BuildDocksClick_Dock(w); break; |
133 case '5': BuildDocksClick_Dock(w); break; |
134 case '6': BuildDocksClick_Buoy(w); break; |
134 case '6': BuildDocksClick_Buoy(w); break; |
135 case 'l': BuildDocksClick_Landscaping(w); break; |
135 case 'l': BuildDocksClick_Landscaping(w); break; |
136 default: |
136 default: return; |
137 return; |
137 } |
138 } |
138 break; |
139 } break; |
|
140 |
139 |
141 case WE_PLACE_OBJ: |
140 case WE_PLACE_OBJ: |
142 _place_proc(e->place.tile); |
141 _place_proc(e->place.tile); |
143 break; |
142 break; |
144 |
143 |
149 |
148 |
150 case WE_PLACE_MOUSEUP: |
149 case WE_PLACE_MOUSEUP: |
151 if (e->click.pt.x != -1) { |
150 if (e->click.pt.x != -1) { |
152 if ((e->place.userdata & 0xF) == VPM_X_AND_Y) { // dragged actions |
151 if ((e->place.userdata & 0xF) == VPM_X_AND_Y) { // dragged actions |
153 GUIPlaceProcDragXY(e); |
152 GUIPlaceProcDragXY(e); |
154 } else if(e->place.userdata == VPM_X_OR_Y) |
153 } else if (e->place.userdata == VPM_X_OR_Y) { |
155 DoCommandP(e->place.tile, e->place.starttile, 0, CcBuildCanal, CMD_BUILD_CANAL | CMD_AUTO | CMD_MSG(STR_CANT_BUILD_CANALS)); |
154 DoCommandP(e->place.tile, e->place.starttile, 0, CcBuildCanal, CMD_BUILD_CANAL | CMD_AUTO | CMD_MSG(STR_CANT_BUILD_CANALS)); |
|
155 } |
156 } |
156 } |
157 break; |
157 break; |
158 |
158 |
159 case WE_ABORT_PLACE_OBJ: |
159 case WE_ABORT_PLACE_OBJ: |
160 UnclickWindowButtons(w); |
160 UnclickWindowButtons(w); |
161 SetWindowDirty(w); |
161 SetWindowDirty(w); |
162 |
162 |
163 w = FindWindowById(WC_BUILD_STATION, 0); |
163 w = FindWindowById(WC_BUILD_STATION, 0); |
164 if (w != NULL) WP(w,def_d).close=true; |
164 if (w != NULL) WP(w,def_d).close = true; |
165 |
165 |
166 w = FindWindowById(WC_BUILD_DEPOT, 0); |
166 w = FindWindowById(WC_BUILD_DEPOT, 0); |
167 if (w != NULL) WP(w,def_d).close=true; |
167 if (w != NULL) WP(w,def_d).close = true; |
168 break; |
168 break; |
169 |
169 |
170 case WE_PLACE_PRESIZE: { |
170 case WE_PLACE_PRESIZE: { |
171 TileIndex tile_from; |
171 TileIndex tile_from; |
172 TileIndex tile_to; |
172 TileIndex tile_to; |
296 } |
296 } |
297 } |
297 } |
298 |
298 |
299 static void BuildDocksDepotWndProc(Window *w, WindowEvent *e) |
299 static void BuildDocksDepotWndProc(Window *w, WindowEvent *e) |
300 { |
300 { |
301 switch(e->event) { |
301 switch (e->event) { |
302 case WE_PAINT: |
302 case WE_PAINT: |
303 w->click_state = (1<<3) << _ship_depot_direction; |
303 w->click_state = (1<<3) << _ship_depot_direction; |
304 DrawWindowWidgets(w); |
304 DrawWindowWidgets(w); |
305 |
305 |
306 DrawShipDepotSprite(67, 35, 0); |
306 DrawShipDepotSprite(67, 35, 0); |
308 DrawShipDepotSprite(135, 35, 2); |
308 DrawShipDepotSprite(135, 35, 2); |
309 DrawShipDepotSprite(167, 51, 3); |
309 DrawShipDepotSprite(167, 51, 3); |
310 return; |
310 return; |
311 |
311 |
312 case WE_CLICK: { |
312 case WE_CLICK: { |
313 switch(e->click.widget) { |
313 switch (e->click.widget) { |
314 case 3: |
314 case 3: |
315 case 4: |
315 case 4: |
316 _ship_depot_direction = e->click.widget - 3; |
316 _ship_depot_direction = e->click.widget - 3; |
317 SndPlayFx(SND_15_BEEP); |
317 SndPlayFx(SND_15_BEEP); |
318 UpdateDocksDirection(); |
318 UpdateDocksDirection(); |