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:
@@ -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,
|
||||
|
||||
BIN
resources/g2/track/wooden/booster_1.png
Normal file
BIN
resources/g2/track/wooden/booster_1.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.9 KiB |
BIN
resources/g2/track/wooden/booster_2.png
Normal file
BIN
resources/g2/track/wooden/booster_2.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.9 KiB |
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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)),
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user