diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/airport_gui.cpp | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/src/airport_gui.cpp b/src/airport_gui.cpp index a85944c13..0c903d242 100644 --- a/src/airport_gui.cpp +++ b/src/airport_gui.cpp @@ -46,6 +46,10 @@ void CcBuildAirport(const CommandCost &result, TileIndex tile, uint32 p1, uint32 if (!_settings_client.gui.persistent_buildingtools) ResetObjectToPlace(); } +/** + * Place an airport. + * @param tile Position to put the new airport. + */ static void PlaceAirport(TileIndex tile) { if (_selected_airport_index == -1) return; @@ -85,14 +89,14 @@ struct BuildAirToolbarWindow : Window { { switch (widget) { case ATW_AIRPORT: - if (HandlePlacePushButton(this, ATW_AIRPORT, SPR_CURSOR_AIRPORT, HT_RECT, PlaceAirport)) { + if (HandlePlacePushButton(this, ATW_AIRPORT, SPR_CURSOR_AIRPORT, HT_RECT, NULL)) { ShowBuildAirportPicker(this); this->last_user_action = widget; } break; case ATW_DEMOLISH: - HandlePlacePushButton(this, ATW_DEMOLISH, ANIMCURSOR_DEMOLISH, HT_RECT, PlaceProc_DemolishArea); + HandlePlacePushButton(this, ATW_DEMOLISH, ANIMCURSOR_DEMOLISH, HT_RECT, NULL); this->last_user_action = widget; break; @@ -111,7 +115,17 @@ struct BuildAirToolbarWindow : Window { virtual void OnPlaceObject(Point pt, TileIndex tile) { - _place_proc(tile); + switch (this->last_user_action) { + case ATW_AIRPORT: + PlaceAirport(tile); + break; + + case ATW_DEMOLISH: + PlaceProc_DemolishArea(tile); + break; + + default: NOT_REACHED(); + } } virtual void OnPlaceDrag(ViewportPlaceMethod select_method, ViewportDragDropSelectionProcess select_proc, Point pt) |