Mercurial > hg > openttd
changeset 16846:1ed7dbc9c5e4 draft
(svn r21580) -Codechange: Replace callback via pointer by a switch statement.
author | alberth <alberth@openttd.org> |
---|---|
date | Tue, 21 Dec 2010 16:27:50 +0000 |
parents | a20977db6ead |
children | 54ff33a0522f |
files | src/airport_gui.cpp |
diffstat | 1 files changed, 17 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/airport_gui.cpp +++ b/src/airport_gui.cpp @@ -46,6 +46,10 @@ 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 @@ { 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 @@ 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)