From 264acca2fafc83e225c3faacffd82bc4a6c979dd Mon Sep 17 00:00:00 2001 From: alberth Date: Tue, 21 Dec 2010 16:27:50 +0000 Subject: (svn r21580) -Codechange: Replace callback via pointer by a switch statement. --- src/airport_gui.cpp | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) (limited to 'src/airport_gui.cpp') 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) -- cgit v1.2.3-54-g00ecf