diff --git a/src/openrct2-ui/windows/RideConstruction.cpp b/src/openrct2-ui/windows/RideConstruction.cpp index 5f8fe6ab55..28ad735e53 100644 --- a/src/openrct2-ui/windows/RideConstruction.cpp +++ b/src/openrct2-ui/windows/RideConstruction.cpp @@ -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; }