summaryrefslogtreecommitdiff
path: root/src/airport_gui.cpp
diff options
context:
space:
mode:
authoralberth <alberth@openttd.org>2010-12-21 16:27:50 +0000
committeralberth <alberth@openttd.org>2010-12-21 16:27:50 +0000
commit264acca2fafc83e225c3faacffd82bc4a6c979dd (patch)
treeda105471df44cb6343412c0afaa189a4c2129628 /src/airport_gui.cpp
parent5a2bf89cafad925c566a67fe93ee1ed13cbc24b0 (diff)
downloadopenttd-264acca2fafc83e225c3faacffd82bc4a6c979dd.tar.xz
(svn r21580) -Codechange: Replace callback via pointer by a switch statement.
Diffstat (limited to 'src/airport_gui.cpp')
-rw-r--r--src/airport_gui.cpp20
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)