add giga coaster

This commit is contained in:
Spacek531 2023-10-01 22:52:41 -07:00
parent f9527b7fff
commit a1c6b95256
10 changed files with 113 additions and 2 deletions

View File

@ -2661,6 +2661,42 @@
{
"path": "track/intamin/booster_2.png"
},
{
"path": "track/intamin/brake_horizontal_background_open.png",
"x_offset": -32,
"y_offset": -5,
"palette": "keep"
},
{
"path": "track/intamin/brake_horizontal_background_closed.png",
"x_offset": -32,
"y_offset": -5,
"palette": "keep"
},
{
"path": "track/intamin/brake_horizontal_foreground.png",
"x_offset": -30,
"y_offset": 8,
"palette": "keep"
},
{
"path": "track/intamin/brake_vertical_background.png",
"x_offset": -14,
"y_offset": -10,
"palette": "keep"
},
{
"path": "track/intamin/brake_vertical_foreground_open.png",
"x_offset": -13,
"y_offset": -9,
"palette": "keep"
},
{
"path": "track/intamin/brake_vertical_foreground_closed.png",
"x_offset": -13,
"y_offset": -9,
"palette": "keep"
},
{
"path": "track/intamin/liftbooster_0.png",
"x_offset": -21,

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 978 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 961 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 959 B

View File

@ -39,6 +39,47 @@ static constexpr uint32_t _GigaCoasterBrakeImages[NumOrthogonalDirections][2][2]
{ GIGA_COASTER_BRAKE_NW_SE_CLOSED_1, GIGA_COASTER_BRAKE_NW_SE_CLOSED_2 } },
};
/* first level : open, closed
* second level: background, foreground
* third level: direction
*/
static constexpr uint32_t GigaDiagBrakeImages[2][2][NumOrthogonalDirections] = {
{
// Open
{
// Background
SPR_G2_GIGA_RC_DIAG_BRAKES,
SPR_G2_GIGA_RC_DIAG_BRAKES + 3,
SPR_G2_GIGA_RC_DIAG_BRAKES,
SPR_G2_GIGA_RC_DIAG_BRAKES + 3,
},
{
// Foreground
SPR_G2_GIGA_RC_DIAG_BRAKES + 2,
SPR_G2_GIGA_RC_DIAG_BRAKES + 4,
SPR_G2_GIGA_RC_DIAG_BRAKES + 2,
SPR_G2_GIGA_RC_DIAG_BRAKES + 4,
},
},
{
// Closed
{
// Background
SPR_G2_GIGA_RC_DIAG_BRAKES + 1,
SPR_G2_GIGA_RC_DIAG_BRAKES + 3,
SPR_G2_GIGA_RC_DIAG_BRAKES + 1,
SPR_G2_GIGA_RC_DIAG_BRAKES + 3,
},
{
// Foreground
SPR_G2_GIGA_RC_DIAG_BRAKES + 2,
SPR_G2_GIGA_RC_DIAG_BRAKES + 5,
SPR_G2_GIGA_RC_DIAG_BRAKES + 2,
SPR_G2_GIGA_RC_DIAG_BRAKES + 5,
},
},
};
/** rct2: 0x008AD674 */
static void GigaRCTrackFlat(
PaintSession& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height,
@ -16563,6 +16604,36 @@ static void GigaRCTrackRightEighthBankToOrthogonalDown25(
GigaRCTrackLeftEighthBankToDiagUp25(session, ride, trackSequence, (direction + 3) & 3, height, trackElement);
}
static constexpr CoordsXYZ diagBrakeBoundsOffsets[4] = {
{ 0, 0, 24 },
{ 0, 0, 24 },
{ 0, 0, 24 },
{ 0, 0, 24 },
};
static void GigaRCTrackDiagBrakes(
PaintSession& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height,
const TrackElement& trackElement)
{
TrackPaintUtilDiagTilesPaint(
session, 3, height, direction, trackSequence, session.TrackColours[SCHEME_TRACK],
GigaDiagBrakeImages[trackElement.IsBrakeClosed()][0], defaultDiagTileOffsets, defaultDiagBoundLengths, nullptr);
TrackPaintUtilDiagTilesPaint(
session, 3, height, direction, trackSequence, session.TrackColours[SCHEME_TRACK],
GigaDiagBrakeImages[trackElement.IsBrakeClosed()][1], defaultDiagTileOffsets, defaultDiagBoundLengths,
diagBrakeBoundsOffsets);
if (trackSequence == 3)
{
MetalASupportsPaintSetup(
session, MetalSupportType::Tubes, DiagSupportSegments[direction], 0, height, session.TrackColours[SCHEME_SUPPORTS]);
}
PaintUtilSetSegmentSupportHeight(session, SEGMENTS_ALL, 0xFFFF, 0);
PaintUtilSetGeneralSupportHeight(session, height + 32, 0x20);
}
TRACK_PAINT_FUNCTION GetTrackPaintFunctionGigaRC(int32_t trackType)
{
switch (trackType)
@ -17049,6 +17120,9 @@ TRACK_PAINT_FUNCTION GetTrackPaintFunctionGigaRC(int32_t trackType)
return GigaRCTrackLeftEighthBankToOrthogonalDown25;
case TrackElemType::RightEighthBankToOrthogonalDown25:
return GigaRCTrackRightEighthBankToOrthogonalDown25;
case TrackElemType::DiagBlockBrakes:
case TrackElemType::DiagBrakes:
return GigaRCTrackDiagBrakes;
}
return nullptr;
}

View File

@ -19,7 +19,7 @@ constexpr RideTypeDescriptor GigaCoasterRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
SET_FIELD(EnabledTrackPieces, {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_FLAT_ROLL_BANKING, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_CURVE, TRACK_SLOPE_CURVE_STEEP, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_HELIX_DOWN_BANKED_HALF, TRACK_HELIX_UP_BANKED_HALF, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_BLOCK_BRAKES, TRACK_SLOPE_ROLL_BANKING, TRACK_SLOPE_STEEP_LONG, TRACK_LIFT_HILL_CABLE, TRACK_BOOSTER, TRACK_POWERED_LIFT, TRACK_SLOPE_CURVE_BANKED, TRACK_SLOPE_CURVE_LARGE}),
SET_FIELD(EnabledTrackPieces, {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_FLAT_ROLL_BANKING, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_CURVE, TRACK_SLOPE_CURVE_STEEP, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_CURVE_LARGE, TRACK_HELIX_DOWN_BANKED_HALF, TRACK_HELIX_UP_BANKED_HALF, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_BLOCK_BRAKES, TRACK_SLOPE_ROLL_BANKING, TRACK_SLOPE_STEEP_LONG, TRACK_LIFT_HILL_CABLE, TRACK_BOOSTER, TRACK_POWERED_LIFT, TRACK_SLOPE_CURVE_BANKED, TRACK_SLOPE_CURVE_LARGE, TRACK_DIAG_BRAKES, TRACK_DIAG_BLOCK_BRAKES}),
SET_FIELD(ExtraTrackPieces, {TRACK_SLOPE_VERTICAL, TRACK_CURVE_VERTICAL, TRACK_BARREL_ROLL, TRACK_QUARTER_LOOP, TRACK_HALF_LOOP, TRACK_HALF_LOOP_MEDIUM, TRACK_HALF_LOOP_LARGE, TRACK_VERTICAL_LOOP, TRACK_CORKSCREW, TRACK_CORKSCREW_LARGE, TRACK_ZERO_G_ROLL, TRACK_ZERO_G_ROLL_LARGE}),
SET_FIELD(CoveredTrackPieces, {}),
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),

View File

@ -1212,7 +1212,8 @@ enum
SPR_G2_GIGA_RC_BEGIN = SPR_G2_JUNIOR_RC_END,
SPR_G2_GIGA_RC_BOOSTER_NE_SW = SPR_G2_GIGA_RC_BEGIN,
SPR_G2_GIGA_RC_BOOSTER_NW_SE,
SPR_G2_GIGA_RC_POWERED_LIFT_0,
SPR_G2_GIGA_RC_DIAG_BRAKES,
SPR_G2_GIGA_RC_POWERED_LIFT_0 = SPR_G2_GIGA_RC_DIAG_BRAKES + 6,
SPR_G2_GIGA_RC_POWERED_LIFT_1,
SPR_G2_GIGA_RC_POWERED_LIFT_2,
SPR_G2_GIGA_RC_POWERED_LIFT_3,