1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-17 20:13:07 +01:00

Fix part of #7489: Shortcuts work incorrectly for vertical tracks

This commit is contained in:
TELK
2021-03-25 04:32:03 +09:00
committed by GitHub
parent 19b1958822
commit 040a3eb144

View File

@@ -4419,6 +4419,14 @@ void window_ride_construction_keyboard_shortcut_slope_down()
switch (_currentTrackSlopeEnd)
{
case TRACK_SLOPE_DOWN_60:
if (is_track_enabled(TRACK_SLOPE_VERTICAL) && !WidgetIsDisabled(w, WIDX_SLOPE_UP_STEEP)
&& window_ride_construction_widgets[WIDX_SLOPE_UP_STEEP].image == SPR_RIDE_CONSTRUCTION_VERTICAL_DROP
&& w->widgets[WIDX_SLOPE_UP_STEEP].type != WindowWidgetType::Empty)
{
window_event_mouse_down_call(w, WIDX_SLOPE_UP_STEEP);
}
break;
case TRACK_SLOPE_DOWN_25:
if (!WidgetIsDisabled(w, WIDX_SLOPE_DOWN_STEEP)
&& w->widgets[WIDX_SLOPE_DOWN_STEEP].type != WindowWidgetType::Empty)
@@ -4431,6 +4439,12 @@ void window_ride_construction_keyboard_shortcut_slope_down()
{
window_event_mouse_down_call(w, WIDX_SLOPE_DOWN);
}
else if (
is_track_enabled(TRACK_SLOPE_VERTICAL)
&& window_ride_construction_widgets[WIDX_SLOPE_DOWN_STEEP].image == SPR_RIDE_CONSTRUCTION_VERTICAL_RISE)
{
return;
}
else if (
!WidgetIsDisabled(w, WIDX_SLOPE_DOWN_STEEP)
&& w->widgets[WIDX_SLOPE_DOWN_STEEP].type != WindowWidgetType::Empty)
@@ -4475,6 +4489,12 @@ void window_ride_construction_keyboard_shortcut_slope_down()
{
window_event_mouse_down_call(w, WIDX_SLOPE_DOWN);
}
else if (
is_track_enabled(TRACK_SLOPE_VERTICAL)
&& window_ride_construction_widgets[WIDX_SLOPE_DOWN_STEEP].image == SPR_RIDE_CONSTRUCTION_VERTICAL_RISE)
{
return;
}
else if (
!WidgetIsDisabled(w, WIDX_SLOPE_DOWN_STEEP)
&& w->widgets[WIDX_SLOPE_DOWN_STEEP].type != WindowWidgetType::Empty)
@@ -4486,6 +4506,14 @@ void window_ride_construction_keyboard_shortcut_slope_down()
return;
}
break;
case TRACK_SLOPE_UP_90:
if (is_track_enabled(TRACK_SLOPE_VERTICAL) && !WidgetIsDisabled(w, WIDX_SLOPE_UP_STEEP)
&& window_ride_construction_widgets[WIDX_SLOPE_DOWN_STEEP].image == SPR_RIDE_CONSTRUCTION_VERTICAL_RISE
&& w->widgets[WIDX_SLOPE_DOWN_STEEP].type != WindowWidgetType::Empty)
{
window_event_mouse_down_call(w, WIDX_SLOPE_UP_STEEP);
}
break;
default:
return;
}
@@ -4501,6 +4529,14 @@ void window_ride_construction_keyboard_shortcut_slope_up()
switch (_currentTrackSlopeEnd)
{
case TRACK_SLOPE_UP_60:
if (is_track_enabled(TRACK_SLOPE_VERTICAL) && !WidgetIsDisabled(w, WIDX_SLOPE_DOWN_STEEP)
&& window_ride_construction_widgets[WIDX_SLOPE_DOWN_STEEP].image == SPR_RIDE_CONSTRUCTION_VERTICAL_RISE
&& w->widgets[WIDX_SLOPE_DOWN_STEEP].type != WindowWidgetType::Empty)
{
window_event_mouse_down_call(w, WIDX_SLOPE_DOWN_STEEP);
}
break;
case TRACK_SLOPE_UP_25:
if (!WidgetIsDisabled(w, WIDX_SLOPE_UP_STEEP) && w->widgets[WIDX_SLOPE_UP_STEEP].type != WindowWidgetType::Empty)
{
@@ -4512,6 +4548,12 @@ void window_ride_construction_keyboard_shortcut_slope_up()
{
window_event_mouse_down_call(w, WIDX_SLOPE_UP);
}
else if (
is_track_enabled(TRACK_SLOPE_VERTICAL)
&& window_ride_construction_widgets[WIDX_SLOPE_UP_STEEP].image == SPR_RIDE_CONSTRUCTION_VERTICAL_DROP)
{
return;
}
else if (
!WidgetIsDisabled(w, WIDX_SLOPE_UP_STEEP) && w->widgets[WIDX_SLOPE_UP_STEEP].type != WindowWidgetType::Empty)
{
@@ -4554,6 +4596,12 @@ void window_ride_construction_keyboard_shortcut_slope_up()
{
window_event_mouse_down_call(w, WIDX_SLOPE_UP);
}
else if (
is_track_enabled(TRACK_SLOPE_VERTICAL)
&& window_ride_construction_widgets[WIDX_SLOPE_UP_STEEP].image == SPR_RIDE_CONSTRUCTION_VERTICAL_DROP)
{
return;
}
else if (
!WidgetIsDisabled(w, WIDX_SLOPE_UP_STEEP) && w->widgets[WIDX_SLOPE_UP_STEEP].type != WindowWidgetType::Empty)
{
@@ -4564,6 +4612,14 @@ void window_ride_construction_keyboard_shortcut_slope_up()
return;
}
break;
case TRACK_SLOPE_DOWN_90:
if (is_track_enabled(TRACK_SLOPE_VERTICAL) && !WidgetIsDisabled(w, WIDX_SLOPE_DOWN_STEEP)
&& window_ride_construction_widgets[WIDX_SLOPE_UP_STEEP].image == SPR_RIDE_CONSTRUCTION_VERTICAL_DROP
&& w->widgets[WIDX_SLOPE_DOWN_STEEP].type != WindowWidgetType::Empty)
{
window_event_mouse_down_call(w, WIDX_SLOPE_DOWN_STEEP);
}
break;
default:
return;
}