(svn r21580) -Codechange: Replace callback via pointer by a switch statement.

pull/155/head
alberth 14 years ago
parent bfb8854df1
commit 9e48ad8cdb

@ -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)

Loading…
Cancel
Save