1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2025-12-13 19:12:32 +01:00

Feature: Add Boosters to Wooden Roller Coaster (#12090)

This commit is contained in:
Casey Johnson
2020-07-01 19:52:33 -04:00
committed by GitHub
parent d33af08a22
commit fc43494d74
6 changed files with 43 additions and 3 deletions

View File

@@ -468,6 +468,16 @@
{
"path": "tool/scenery_scatter_high.png"
},
{
"path": "track/wooden/booster_1.png",
"x_offset": -34,
"y_offset": -15
},
{
"path": "track/wooden/booster_2.png",
"x_offset": -30,
"y_offset": -15
},
{
"path": "font/latin/ae-uc-small.png",
"y_offset": 0,

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -13104,6 +13104,31 @@ static void wooden_rc_track_right_banked_25_deg_down_to_flat(
wooden_rc_track_flat_to_left_banked_25_deg_up(session, rideIndex, trackSequence, (direction + 2) & 3, height, tileElement);
}
static void wooden_rc_track_booster(
paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, int32_t height,
const TileElement* tileElement)
{
static constexpr const uint32_t imageIds[4] = {
SPR_G2_WOODEN_RC_BOOSTER_SW_NE,
SPR_G2_WOODEN_RC_BOOSTER_NW_SE,
SPR_G2_WOODEN_RC_BOOSTER_SW_NE,
SPR_G2_WOODEN_RC_BOOSTER_NW_SE,
};
static constexpr const uint32_t railsImageIds[4] = {
SPR_WOODEN_RC_FLAT_CHAIN_RAILS_SW_NE,
SPR_WOODEN_RC_FLAT_CHAIN_RAILS_NW_SE,
SPR_WOODEN_RC_FLAT_CHAIN_RAILS_NE_SW,
SPR_WOODEN_RC_FLAT_CHAIN_RAILS_SE_NW,
};
wooden_rc_track_paint(
session, imageIds[direction], railsImageIds[direction], direction, 0, 2, 32, 25, 2, height, 0, 3, height);
wooden_a_supports_paint_setup(session, direction & 1, 0, height, session->TrackColours[SCHEME_SUPPORTS], nullptr);
paint_util_push_tunnel_rotated(session, direction, height, TUNNEL_SQUARE_FLAT);
paint_util_set_segment_support_height(session, SEGMENTS_ALL, 0xFFFF, 0);
paint_util_set_general_support_height(session, height + 32, 0x20);
}
TRACK_PAINT_FUNCTION get_track_paint_function_wooden_rc(int32_t trackType, int32_t direction)
{
switch (trackType)
@@ -13388,6 +13413,8 @@ TRACK_PAINT_FUNCTION get_track_paint_function_wooden_rc(int32_t trackType, int32
return wooden_rc_track_left_banked_25_deg_down_to_flat;
case TRACK_ELEM_RIGHT_BANKED_25_DEG_DOWN_TO_FLAT:
return wooden_rc_track_right_banked_25_deg_down_to_flat;
case TRACK_ELEM_BOOSTER:
return wooden_rc_track_booster;
}
return nullptr;
}

View File

@@ -19,7 +19,7 @@ constexpr const RideTypeDescriptor WoodenRollerCoasterRTD =
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_FLAT) | (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_LIFT_HILL) | (1ULL << TRACK_FLAT_ROLL_BANKING) | (1ULL << TRACK_VERTICAL_LOOP) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_SLOPE_STEEP) | (1ULL << TRACK_SLOPE_CURVE) | (1ULL << TRACK_SLOPE_CURVE_STEEP) | (1ULL << TRACK_S_BEND) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_CURVE) | (1ULL << TRACK_HELIX_SMALL) | (1ULL << TRACK_BRAKES) | (1ULL << TRACK_ON_RIDE_PHOTO) | (1ULL << TRACK_WATER_SPLASH) | (1ULL << TRACK_SLOPE_CURVE_BANKED) | (1ULL << TRACK_BLOCK_BRAKES) | (1ULL << TRACK_SLOPE_ROLL_BANKING)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(ExtraTrackPieces, (1ULL << TRACK_BOOSTER)),
SET_FIELD(CoveredTrackPieces, 0),
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
SET_FIELD(TrackPaintFunction, get_track_paint_function_wooden_rc),
@@ -28,7 +28,7 @@ constexpr const RideTypeDescriptor WoodenRollerCoasterRTD =
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS),
SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT) | (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED) | (1ULL << RIDE_MODE_REVERSE_INCLINE_LAUNCHED_SHUTTLE) ),
SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT),
SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }),
SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 68, 0 }),
SET_FIELD(Naming, { STR_RIDE_NAME_WOODEN_ROLLER_COASTER, STR_RIDE_DESCRIPTION_WOODEN_ROLLER_COASTER }),
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
SET_FIELD(EnumName, nameof(RIDE_TYPE_WOODEN_ROLLER_COASTER)),

View File

@@ -860,7 +860,10 @@ enum
SPR_G2_SCENERY_SCATTER_MEDIUM = SPR_G2_BEGIN + 134,
SPR_G2_SCENERY_SCATTER_HIGH = SPR_G2_BEGIN + 135,
SPR_G2_CHAR_BEGIN = SPR_G2_BEGIN + 136,
SPR_G2_WOODEN_RC_BOOSTER_SW_NE = SPR_G2_BEGIN + 136,
SPR_G2_WOODEN_RC_BOOSTER_NW_SE = SPR_G2_BEGIN + 137,
SPR_G2_CHAR_BEGIN = SPR_G2_BEGIN + 138,
SPR_G2_AE_UPPER = SPR_G2_CHAR_BEGIN,
SPR_G2_AE_LOWER = SPR_G2_CHAR_BEGIN + 1,