diff --git a/src/openrct2-ui/UiStringIds.h b/src/openrct2-ui/UiStringIds.h index 276fcb102a..8d857744a6 100644 --- a/src/openrct2-ui/UiStringIds.h +++ b/src/openrct2-ui/UiStringIds.h @@ -1637,7 +1637,6 @@ namespace OpenRCT2 STR_RIDE_CONSTRUCTION_MOVE_TO_PREVIOUS_SECTION_TIP = 913, STR_RIDE_CONSTRUCTION_NO_ROLL_TIP = 912, STR_RIDE_CONSTRUCTION_OTHER_TRACK_CONFIGURATIONS_TIP = 1385, - STR_RIDE_CONSTRUCTION_O_SHAPED_ENCLOSED_TRACK_TIP = 1461, STR_RIDE_CONSTRUCTION_REMOVE_HIGHLIGHTED_SECTION_TIP = 916, STR_RIDE_CONSTRUCTION_RIGHT_CURVE_LARGE_TIP = 905, STR_RIDE_CONSTRUCTION_RIGHT_CURVE_SMALL_TIP = 901, @@ -1668,15 +1667,12 @@ namespace OpenRCT2 STR_RIDE_CONSTRUCTION_SLOPE_DOWN_TIP = 919, STR_RIDE_CONSTRUCTION_SLOPE_UP_TIP = 921, STR_RIDE_CONSTRUCTION_SPECIAL = 1386, - STR_RIDE_CONSTRUCTION_STANDARD_RC_TRACK_TIP = 3062, STR_RIDE_CONSTRUCTION_STEEP_SLOPE_DOWN_TIP = 918, STR_RIDE_CONSTRUCTION_STEEP_SLOPE_UP_TIP = 922, STR_RIDE_CONSTRUCTION_STRAIGHT_TIP = 906, STR_RIDE_CONSTRUCTION_TRACK_STYLE = 1459, - STR_RIDE_CONSTRUCTION_U_SHAPED_OPEN_TRACK_TIP = 1460, STR_RIDE_CONSTRUCTION_VERTICAL_DROP_TIP = 917, STR_RIDE_CONSTRUCTION_VERTICAL_RISE_TIP = 923, - STR_RIDE_CONSTRUCTION_WATER_CHANNEL_TIP = 3063, STR_RIDE_CONSTRUCTION_WINDOW_TITLE = 896, STR_YELLOW_STRING = 1384, diff --git a/src/openrct2-ui/windows/RideConstruction.cpp b/src/openrct2-ui/windows/RideConstruction.cpp index 3426137e6e..a04b7ae4c4 100644 --- a/src/openrct2-ui/windows/RideConstruction.cpp +++ b/src/openrct2-ui/windows/RideConstruction.cpp @@ -1900,20 +1900,10 @@ static Widget _rideConstructionWidgets[] = { widgets[WIDX_U_TRACK].type = WindowWidgetType::FlatBtn; widgets[WIDX_O_TRACK].type = WindowWidgetType::FlatBtn; - if (rtd.Category == RIDE_CATEGORY_WATER) - { - widgets[WIDX_U_TRACK].image = ImageId(SPR_RIDE_CONSTRUCTION_U_SHAPED_TRACK); - widgets[WIDX_O_TRACK].image = ImageId(SPR_RIDE_CONSTRUCTION_O_SHAPED_TRACK); - widgets[WIDX_U_TRACK].tooltip = STR_RIDE_CONSTRUCTION_U_SHAPED_OPEN_TRACK_TIP; - widgets[WIDX_O_TRACK].tooltip = STR_RIDE_CONSTRUCTION_O_SHAPED_ENCLOSED_TRACK_TIP; - } - else - { - widgets[WIDX_U_TRACK].image = ImageId(SPR_RIDE_CONSTRUCTION_RC_TRACK); - widgets[WIDX_O_TRACK].image = ImageId(SPR_RIDE_CONSTRUCTION_WATER_CHANNEL); - widgets[WIDX_U_TRACK].tooltip = STR_RIDE_CONSTRUCTION_STANDARD_RC_TRACK_TIP; - widgets[WIDX_O_TRACK].tooltip = STR_RIDE_CONSTRUCTION_WATER_CHANNEL_TIP; - } + widgets[WIDX_U_TRACK].image = ImageId(trackDrawerDescriptor.Regular.icon); + widgets[WIDX_O_TRACK].image = ImageId(trackDrawerDescriptor.Covered.icon); + widgets[WIDX_U_TRACK].tooltip = trackDrawerDescriptor.Regular.tooltip; + widgets[WIDX_O_TRACK].tooltip = trackDrawerDescriptor.Covered.tooltip; // TODO: Read these from the TrackDrawerEntry if (currentRide->type == RIDE_TYPE_WATER_COASTER) diff --git a/src/openrct2/localisation/StringIds.h b/src/openrct2/localisation/StringIds.h index 7fb99d6e54..bec7f28a3e 100644 --- a/src/openrct2/localisation/StringIds.h +++ b/src/openrct2/localisation/StringIds.h @@ -1632,6 +1632,7 @@ enum : StringId STR_RIDE_CONSTRUCTION_BLOCK_BRAKE_SPEED = 6577, STR_RIDE_CONSTRUCTION_BLOCK_BRAKE_SPEED_LIMIT_TIP = 6578, + STR_TRACK_DESIGN_BLOCK_BRAKE_SPEED_RESET = 6579, STR_RIDE_SET_VEHICLE_REVERSED_FAIL = 6585, diff --git a/src/openrct2/ride/RideData.h b/src/openrct2/ride/RideData.h index 3c9a76fcf9..5b08e87bd3 100644 --- a/src/openrct2/ride/RideData.h +++ b/src/openrct2/ride/RideData.h @@ -294,6 +294,9 @@ struct TrackDrawerEntry // or because they are not realistic for the ride type (e.g. LIM boosters in Mini Roller Coasters). RideTrackGroup ExtraTrackPieces{}; + ImageIndex icon = kSpriteIdNull; + StringId tooltip = STR_NONE; + void GetAvailableTrackPieces(RideTrackGroup& res) const; bool SupportsTrackGroup(const TrackGroup trackGroup) const; }; diff --git a/src/openrct2/ride/RideStringIds.h b/src/openrct2/ride/RideStringIds.h index dc2a964adf..03855eba37 100644 --- a/src/openrct2/ride/RideStringIds.h +++ b/src/openrct2/ride/RideStringIds.h @@ -205,4 +205,10 @@ enum : StringId STR_RIDE_DESCRIPTION_RIVER_RAPIDS = 536, STR_RIDE_DESCRIPTION_SPLASH_BOATS = 572, STR_RIDE_DESCRIPTION_SUBMARINE_RIDE = 590, + + // Other strings, used in RTDs + STR_RIDE_CONSTRUCTION_O_SHAPED_ENCLOSED_TRACK_TIP = 1461, + STR_RIDE_CONSTRUCTION_STANDARD_RC_TRACK_TIP = 3062, + STR_RIDE_CONSTRUCTION_U_SHAPED_OPEN_TRACK_TIP = 1460, + STR_RIDE_CONSTRUCTION_WATER_CHANNEL_TIP = 3063, }; diff --git a/src/openrct2/ride/rtd/coaster/WaterCoaster.h b/src/openrct2/ride/rtd/coaster/WaterCoaster.h index 9f88090719..6a5d3bd266 100644 --- a/src/openrct2/ride/rtd/coaster/WaterCoaster.h +++ b/src/openrct2/ride/rtd/coaster/WaterCoaster.h @@ -10,6 +10,7 @@ #pragma once #include "../../../drawing/LightFX.h" +#include "../../../ride/RideStringIds.h" #include "../../../sprites.h" #include "../../RideData.h" #include "../../ShopItem.h" @@ -25,11 +26,15 @@ constexpr RideTypeDescriptor WaterCoasterRTD = .Drawer = GetTrackPaintFunctionWaterRC, .EnabledTrackPieces = {TrackGroup::straight, TrackGroup::stationEnd, TrackGroup::liftHill, TrackGroup::flatRollBanking, TrackGroup::slope, TrackGroup::slopeSteepUp, TrackGroup::slopeSteepDown, TrackGroup::slopeCurve, TrackGroup::sBend, TrackGroup::curveSmall, TrackGroup::curve, TrackGroup::curveLarge, TrackGroup::helixDownBankedHalf, TrackGroup::helixUpBankedHalf, TrackGroup::brakes, TrackGroup::blockBrakes, TrackGroup::onridePhoto, TrackGroup::booster, TrackGroup::diagBrakes, TrackGroup::diagBlockBrakes}, .ExtraTrackPieces = {TrackGroup::slopeLong}, + .icon = SPR_RIDE_CONSTRUCTION_RC_TRACK, + .tooltip = STR_RIDE_CONSTRUCTION_STANDARD_RC_TRACK_TIP, }, { .Drawer = GetTrackPaintFunctionSplashBoats, .EnabledTrackPieces = {OpenRCT2::TrackElemType::Flat, OpenRCT2::TrackElemType::LeftQuarterTurn5Tiles, OpenRCT2::TrackElemType::RightQuarterTurn5Tiles, OpenRCT2::TrackElemType::SBendLeft, OpenRCT2::TrackElemType::SBendRight}, .ExtraTrackPieces = {}, + .icon = SPR_RIDE_CONSTRUCTION_WATER_CHANNEL, + .tooltip = STR_RIDE_CONSTRUCTION_WATER_CHANNEL_TIP, } ), .InvertedTrackPaintFunctions = {}, diff --git a/src/openrct2/ride/rtd/water/DinghySlide.h b/src/openrct2/ride/rtd/water/DinghySlide.h index 3bcb153a25..376ed9f993 100644 --- a/src/openrct2/ride/rtd/water/DinghySlide.h +++ b/src/openrct2/ride/rtd/water/DinghySlide.h @@ -9,6 +9,7 @@ #pragma once +#include "../../../ride/RideStringIds.h" #include "../../../sprites.h" #include "../../RideData.h" #include "../../ShopItem.h" @@ -24,11 +25,15 @@ constexpr RideTypeDescriptor DinghySlideRTD = .Drawer = GetTrackPaintFunctionDinghySlide, .EnabledTrackPieces = { TrackGroup::straight, TrackGroup::stationEnd, TrackGroup::liftHill, TrackGroup::slope, TrackGroup::slopeSteepUp, TrackGroup::slopeSteepDown, TrackGroup::sBend, TrackGroup::curveSmall, TrackGroup::curve }, .ExtraTrackPieces = {}, + .icon = SPR_RIDE_CONSTRUCTION_U_SHAPED_TRACK, + .tooltip = STR_RIDE_CONSTRUCTION_U_SHAPED_OPEN_TRACK_TIP, }, { .Drawer = GetTrackPaintFunctionDinghySlideCovered, .EnabledTrackPieces = {OpenRCT2::TrackElemType::Flat, OpenRCT2::TrackElemType::Up25, OpenRCT2::TrackElemType::Up60, OpenRCT2::TrackElemType::FlatToUp25, OpenRCT2::TrackElemType::Up25ToUp60, OpenRCT2::TrackElemType::Up60ToUp25, OpenRCT2::TrackElemType::Up25ToFlat, OpenRCT2::TrackElemType::Down25, OpenRCT2::TrackElemType::Down60, OpenRCT2::TrackElemType::FlatToDown25, OpenRCT2::TrackElemType::Down25ToDown60, OpenRCT2::TrackElemType::Down60ToDown25, OpenRCT2::TrackElemType::Down25ToFlat, OpenRCT2::TrackElemType::LeftQuarterTurn5Tiles, OpenRCT2::TrackElemType::RightQuarterTurn5Tiles, OpenRCT2::TrackElemType::SBendLeft, OpenRCT2::TrackElemType::SBendRight, OpenRCT2::TrackElemType::LeftQuarterTurn3Tiles,OpenRCT2::TrackElemType::RightQuarterTurn3Tiles}, .ExtraTrackPieces = {}, + .icon = SPR_RIDE_CONSTRUCTION_O_SHAPED_TRACK, + .tooltip = STR_RIDE_CONSTRUCTION_O_SHAPED_ENCLOSED_TRACK_TIP, } ), .InvertedTrackPaintFunctions = {},