mirror of https://github.com/OpenTTD/OpenTTD
(svn r21584) -Codechange: Replace the _rail_build_button array by a switch.
parent
b9f93a48e9
commit
fbd725ed9a
|
@ -592,29 +592,6 @@ static void HandleAutoSignalPlacement()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
typedef void OnButtonClick(Window *w);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Procedure to call when button in rail toolbar is clicked.
|
|
||||||
* Offsets match widget order, starting at RTW_BUILD_NS
|
|
||||||
*/
|
|
||||||
static OnButtonClick *_rail_build_button[] = {
|
|
||||||
BuildRailClick_N,
|
|
||||||
BuildRailClick_NE,
|
|
||||||
BuildRailClick_E,
|
|
||||||
BuildRailClick_NW,
|
|
||||||
BuildRailClick_AutoRail,
|
|
||||||
BuildRailClick_Demolish,
|
|
||||||
BuildRailClick_Depot,
|
|
||||||
BuildRailClick_Waypoint,
|
|
||||||
BuildRailClick_Station,
|
|
||||||
BuildRailClick_AutoSignals,
|
|
||||||
BuildRailClick_Bridge,
|
|
||||||
BuildRailClick_Tunnel,
|
|
||||||
BuildRailClick_Remove,
|
|
||||||
BuildRailClick_Convert
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Based on the widget clicked, update the status of the 'remove' button.
|
* Based on the widget clicked, update the status of the 'remove' button.
|
||||||
* @param w Rail toolbar window
|
* @param w Rail toolbar window
|
||||||
|
@ -713,9 +690,67 @@ struct BuildRailToolbarWindow : Window {
|
||||||
|
|
||||||
virtual void OnClick(Point pt, int widget, int click_count)
|
virtual void OnClick(Point pt, int widget, int click_count)
|
||||||
{
|
{
|
||||||
if (widget >= RTW_BUILD_NS) {
|
if (widget < RTW_BUILD_NS) return;
|
||||||
_remove_button_clicked = false;
|
|
||||||
_rail_build_button[widget - RTW_BUILD_NS](this);
|
_remove_button_clicked = false;
|
||||||
|
switch (widget) {
|
||||||
|
case RTW_BUILD_NS:
|
||||||
|
BuildRailClick_N(this);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case RTW_BUILD_X:
|
||||||
|
BuildRailClick_NE(this);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case RTW_BUILD_EW:
|
||||||
|
BuildRailClick_E(this);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case RTW_BUILD_Y:
|
||||||
|
BuildRailClick_NW(this);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case RTW_AUTORAIL:
|
||||||
|
BuildRailClick_AutoRail(this);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case RTW_DEMOLISH:
|
||||||
|
BuildRailClick_Demolish(this);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case RTW_BUILD_DEPOT:
|
||||||
|
BuildRailClick_Depot(this);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case RTW_BUILD_WAYPOINT:
|
||||||
|
BuildRailClick_Waypoint(this);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case RTW_BUILD_STATION:
|
||||||
|
BuildRailClick_Station(this);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case RTW_BUILD_SIGNALS:
|
||||||
|
BuildRailClick_AutoSignals(this);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case RTW_BUILD_BRIDGE:
|
||||||
|
BuildRailClick_Bridge(this);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case RTW_BUILD_TUNNEL:
|
||||||
|
BuildRailClick_Tunnel(this);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case RTW_REMOVE:
|
||||||
|
BuildRailClick_Remove(this);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case RTW_CONVERT_RAIL:
|
||||||
|
BuildRailClick_Convert(this);
|
||||||
|
break;
|
||||||
|
|
||||||
|
default: NOT_REACHED();
|
||||||
}
|
}
|
||||||
this->UpdateRemoveWidgetStatus(widget);
|
this->UpdateRemoveWidgetStatus(widget);
|
||||||
if (_ctrl_pressed) RailToolbar_CtrlChanged(this);
|
if (_ctrl_pressed) RailToolbar_CtrlChanged(this);
|
||||||
|
|
Loading…
Reference in New Issue