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)