Add B&M sprites, remove LIM sprites

This commit is contained in:
X123M3-256 2023-07-20 14:22:38 +01:00 committed by Spacek531
parent f8f0cff0de
commit f0f64165f7
22 changed files with 89 additions and 86 deletions

View File

@ -24754,39 +24754,39 @@
"palette": "keep"
},
{
"path": "track/lim/brake_horizontal.png",
"path": "track/bm/brake_horizontal.png",
"x_offset": -32,
"y_offset": 7,
"y_offset": 1,
"palette": "keep"
},
{
"path": "track/lim/brake_vertical.png",
"x_offset": -10,
"y_offset": -5,
"path": "track/bm/brake_vertical.png",
"x_offset": -13,
"y_offset": -9,
"palette": "keep"
},
{
"path": "track/lim/blockbrake_horizontal_closed.png",
"path": "track/bm/blockbrake_horizontal_closed.png",
"x_offset": -32,
"y_offset": 7,
"y_offset": 1,
"palette": "keep"
},
{
"path": "track/lim/blockbrake_horizontal_open.png",
"path": "track/bm/blockbrake_horizontal_open.png",
"x_offset": -32,
"y_offset": 7,
"y_offset": 1,
"palette": "keep"
},
{
"path": "track/lim/blockbrake_vertical_closed.png",
"x_offset": -10,
"y_offset": -5,
"path": "track/bm/blockbrake_vertical_closed.png",
"x_offset": -13,
"y_offset": -9,
"palette": "keep"
},
{
"path": "track/lim/blockbrake_vertical_open.png",
"x_offset": -10,
"y_offset": -5,
"path": "track/bm/blockbrake_vertical_open.png",
"x_offset": -13,
"y_offset": -9,
"palette": "keep"
},
{

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1002 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 999 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1021 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1011 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -32,6 +32,28 @@ static constexpr uint32_t _BolligerMabillardBlockBrakeImages[NumOrthogonalDirect
{ BM_BLOCK_BRAKE_NW_SE_OPEN, BM_BLOCK_BRAKE_NW_SE_CLOSED },
};
static constexpr const uint32_t BolligerMabillardDiagBrakeImages[NumOrthogonalDirections] = {
SPR_G2_BM_DIAG_BRAKES,
SPR_G2_BM_DIAG_BRAKES + 1,
SPR_G2_BM_DIAG_BRAKES,
SPR_G2_BM_DIAG_BRAKES + 1,
};
static constexpr const uint32_t BolligerMabillardDiagBlockBrakeImages[2][NumOrthogonalDirections] = {
{
SPR_G2_BM_DIAG_BRAKES + 3,
SPR_G2_BM_DIAG_BRAKES + 5,
SPR_G2_BM_DIAG_BRAKES + 3,
SPR_G2_BM_DIAG_BRAKES + 5,
},
{
SPR_G2_BM_DIAG_BRAKES + 2,
SPR_G2_BM_DIAG_BRAKES + 4,
SPR_G2_BM_DIAG_BRAKES + 2,
SPR_G2_BM_DIAG_BRAKES + 4,
},
};
template<MetalSupportType supportType>
static void BolligerMabillardTrackFlat(
PaintSession& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height,
@ -12978,6 +13000,48 @@ static void BolligerMabillardTrackRightTwistUpToDown(
}
}
template<MetalSupportType supportType>
static void BolligerMabillardTrackDiagBrakes(
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], BolligerMabillardDiagBrakeImages,
defaultDiagTileOffsets, defaultDiagBoundLengths, nullptr);
if (trackSequence == 3)
{
MetalASupportsPaintSetup(
session, supportType, DiagSupportSegments[direction], 0, height, session.TrackColours[SCHEME_SUPPORTS]);
}
int32_t blockedSegments = DiagBlockedSegments[trackSequence];
PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(blockedSegments, direction), 0xFFFF, 0);
PaintUtilSetGeneralSupportHeight(session, height + 32, 0x20);
}
template<MetalSupportType supportType>
static void BolligerMabillardTrackDiagBlockBrakes(
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],
BolligerMabillardDiagBlockBrakeImages[trackElement.IsBrakeClosed()], defaultDiagTileOffsets, defaultDiagBoundLengths,
nullptr);
if (trackSequence == 3)
{
MetalASupportsPaintSetup(
session, supportType, DiagSupportSegments[direction], 0, height, session.TrackColours[SCHEME_SUPPORTS]);
}
int32_t blockedSegments = DiagBlockedSegments[trackSequence];
PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(blockedSegments, direction), 0xFFFF, 0);
PaintUtilSetGeneralSupportHeight(session, height + 32, 0x20);
}
template<MetalSupportType supportType> TRACK_PAINT_FUNCTION GetTrackPaintFunctionBolligerMabillard(int32_t trackType)
{
switch (trackType)
@ -13353,6 +13417,10 @@ template<MetalSupportType supportType> TRACK_PAINT_FUNCTION GetTrackPaintFunctio
return BolligerMabillardTrackLeftTwistUpToDown<supportType>;
case TrackElemType::RightTwistUpToDown:
return BolligerMabillardTrackRightTwistUpToDown<supportType>;
case TrackElemType::DiagBrakes:
return BolligerMabillardTrackDiagBrakes<supportType>;
case TrackElemType::DiagBlockBrakes:
return BolligerMabillardTrackDiagBlockBrakes<supportType>;
}
return nullptr;
}

View File

@ -30,28 +30,6 @@ static constexpr uint32_t _LimLauncherBlockBrakeImages[NumOrthogonalDirections][
{ LIM_LAUNCHED_RC_BLOCK_BRAKE_NW_SE_OPEN, LIM_LAUNCHED_RC_BLOCK_BRAKE_NW_SE_CLOSED },
};
static constexpr const uint32_t LimLaunchedRCDiagBrakeImages[NumOrthogonalDirections] = {
SPR_G2_LIM_LAUNCHED_DIAG_BRAKES,
SPR_G2_LIM_LAUNCHED_DIAG_BRAKES + 1,
SPR_G2_LIM_LAUNCHED_DIAG_BRAKES,
SPR_G2_LIM_LAUNCHED_DIAG_BRAKES + 1,
};
static constexpr const uint32_t LimLaunchedRCDiagBlockBrakeImages[2][NumOrthogonalDirections] = {
{
SPR_G2_LIM_LAUNCHED_DIAG_BRAKES + 3,
SPR_G2_LIM_LAUNCHED_DIAG_BRAKES + 5,
SPR_G2_LIM_LAUNCHED_DIAG_BRAKES + 3,
SPR_G2_LIM_LAUNCHED_DIAG_BRAKES + 5,
},
{
SPR_G2_LIM_LAUNCHED_DIAG_BRAKES + 2,
SPR_G2_LIM_LAUNCHED_DIAG_BRAKES + 4,
SPR_G2_LIM_LAUNCHED_DIAG_BRAKES + 2,
SPR_G2_LIM_LAUNCHED_DIAG_BRAKES + 4,
},
};
/** rct2: 0x008A6D50, 0x008A6D60, 0x008A6D70 */
static void LimLaunchedRCTrackStation(
PaintSession& session, const Ride& ride, [[maybe_unused]] uint8_t trackSequence, uint8_t direction, int32_t height,
@ -5717,45 +5695,6 @@ static void LimLaunchedRCTrackBooster(
PaintUtilSetGeneralSupportHeight(session, height + 32, 0x20);
}
static void LimLaunchedRCTrackDiagBrakes(
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], LimLaunchedRCDiagBrakeImages,
defaultDiagTileOffsets, defaultDiagBoundLengths, nullptr);
if (trackSequence == 3)
{
MetalASupportsPaintSetup(
session, MetalSupportType::Tubes, DiagSupportSegments[direction], 0, height, session.TrackColours[SCHEME_SUPPORTS]);
}
int32_t blockedSegments = DiagBlockedSegments[trackSequence];
PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(blockedSegments, direction), 0xFFFF, 0);
PaintUtilSetGeneralSupportHeight(session, height + 32, 0x20);
}
static void LimLaunchedRCTrackDiagBlockBrakes(
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],
LimLaunchedRCDiagBlockBrakeImages[trackElement.IsBrakeClosed()], defaultDiagTileOffsets, defaultDiagBoundLengths,
nullptr);
if (trackSequence == 3)
{
MetalASupportsPaintSetup(
session, MetalSupportType::Tubes, DiagSupportSegments[direction], 0, height, session.TrackColours[SCHEME_SUPPORTS]);
}
int32_t blockedSegments = DiagBlockedSegments[trackSequence];
PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(blockedSegments, direction), 0xFFFF, 0);
PaintUtilSetGeneralSupportHeight(session, height + 32, 0x20);
}
TRACK_PAINT_FUNCTION GetTrackPaintFunctionLimLaunchedRC(int32_t trackType)
{
switch (trackType)
@ -6029,10 +5968,6 @@ TRACK_PAINT_FUNCTION GetTrackPaintFunctionLimLaunchedRC(int32_t trackType)
return LimLaunchedRCTrackRightLargeZeroGRollDown;
case TrackElemType::Booster:
return LimLaunchedRCTrackBooster;
case TrackElemType::DiagBrakes:
return LimLaunchedRCTrackDiagBrakes;
case TrackElemType::DiagBlockBrakes:
return LimLaunchedRCTrackDiagBlockBrakes;
}
return nullptr;
}

View File

@ -20,7 +20,7 @@ constexpr RideTypeDescriptor HyperTwisterRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
SET_FIELD(EnabledTrackPieces, { TRACK_FLAT, 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_SLOPE_CURVE_BANKED, TRACK_BLOCK_BRAKES, TRACK_SLOPE_ROLL_BANKING, TRACK_SLOPE_STEEP_LONG, TRACK_SLOPE_VERTICAL, TRACK_CURVE_VERTICAL }),
SET_FIELD(EnabledTrackPieces, { TRACK_FLAT, 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_SLOPE_CURVE_BANKED, TRACK_BLOCK_BRAKES, TRACK_SLOPE_ROLL_BANKING, TRACK_SLOPE_STEEP_LONG, TRACK_SLOPE_VERTICAL, TRACK_CURVE_VERTICAL, TRACK_DIAG_BRAKES, TRACK_DIAG_BLOCK_BRAKES}),
SET_FIELD(ExtraTrackPieces, { TRACK_LIFT_HILL_STEEP, TRACK_BRAKE_FOR_DROP, TRACK_BOOSTER, TRACK_POWERED_LIFT }),
SET_FIELD(CoveredTrackPieces, {}),
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),

View File

@ -19,7 +19,7 @@ constexpr RideTypeDescriptor LIMLaunchedRollerCoasterRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
SET_FIELD(EnabledTrackPieces, {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_FLAT_ROLL_BANKING, TRACK_VERTICAL_LOOP, 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_TWIST, TRACK_CORKSCREW, TRACK_HELIX_DOWN_BANKED_HALF, TRACK_HELIX_UP_BANKED_HALF, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_SLOPE_VERTICAL, TRACK_BLOCK_BRAKES, TRACK_SLOPE_ROLL_BANKING, TRACK_CURVE_VERTICAL, TRACK_QUARTER_LOOP, TRACK_BARREL_ROLL, TRACK_SLOPE_CURVE_BANKED, TRACK_SLOPE_STEEP_LONG, TRACK_HALF_LOOP, TRACK_HALF_LOOP_MEDIUM, TRACK_HALF_LOOP_LARGE, TRACK_CORKSCREW_LARGE, TRACK_DIAG_BRAKES, TRACK_DIAG_BLOCK_BRAKES}),
SET_FIELD(EnabledTrackPieces, {TRACK_STRAIGHT, TRACK_STATION_END, TRACK_FLAT_ROLL_BANKING, TRACK_VERTICAL_LOOP, 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_TWIST, TRACK_CORKSCREW, TRACK_HELIX_DOWN_BANKED_HALF, TRACK_HELIX_UP_BANKED_HALF, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_SLOPE_VERTICAL, TRACK_BLOCK_BRAKES, TRACK_SLOPE_ROLL_BANKING, TRACK_CURVE_VERTICAL, TRACK_QUARTER_LOOP, TRACK_BARREL_ROLL, TRACK_SLOPE_CURVE_BANKED, TRACK_SLOPE_STEEP_LONG, TRACK_HALF_LOOP, TRACK_HALF_LOOP_MEDIUM, TRACK_HALF_LOOP_LARGE, TRACK_CORKSCREW_LARGE}),
SET_FIELD(ExtraTrackPieces, {TRACK_SLOPE_LONG, TRACK_ZERO_G_ROLL, TRACK_ZERO_G_ROLL_LARGE}),
SET_FIELD(CoveredTrackPieces, {}),
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),

View File

@ -21,7 +21,7 @@ constexpr RideTypeDescriptor TwisterRollerCoasterRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
SET_FIELD(EnabledTrackPieces, {TRACK_FLAT, TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_FLAT_ROLL_BANKING, TRACK_VERTICAL_LOOP, 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_HALF_LOOP, TRACK_CORKSCREW, TRACK_HELIX_DOWN_BANKED_HALF, TRACK_HELIX_UP_BANKED_HALF, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_SLOPE_VERTICAL, TRACK_BARREL_ROLL, TRACK_POWERED_LIFT, TRACK_HALF_LOOP_LARGE, TRACK_SLOPE_CURVE_BANKED, TRACK_BLOCK_BRAKES, TRACK_SLOPE_ROLL_BANKING, TRACK_SLOPE_STEEP_LONG, TRACK_CURVE_VERTICAL, TRACK_QUARTER_LOOP, TRACK_BOOSTER, TRACK_TWIST}),
SET_FIELD(EnabledTrackPieces, {TRACK_FLAT, TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_FLAT_ROLL_BANKING, TRACK_VERTICAL_LOOP, 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_HALF_LOOP, TRACK_CORKSCREW, TRACK_HELIX_DOWN_BANKED_HALF, TRACK_HELIX_UP_BANKED_HALF, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_SLOPE_VERTICAL, TRACK_BARREL_ROLL, TRACK_POWERED_LIFT, TRACK_HALF_LOOP_LARGE, TRACK_SLOPE_CURVE_BANKED, TRACK_BLOCK_BRAKES, TRACK_SLOPE_ROLL_BANKING, TRACK_SLOPE_STEEP_LONG, TRACK_CURVE_VERTICAL, TRACK_QUARTER_LOOP, TRACK_BOOSTER, TRACK_TWIST, TRACK_DIAG_BRAKES, TRACK_DIAG_BLOCK_BRAKES}),
SET_FIELD(ExtraTrackPieces, {TRACK_LIFT_HILL_STEEP, TRACK_BRAKE_FOR_DROP}),
SET_FIELD(CoveredTrackPieces, {}),
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),

View File

@ -21,7 +21,7 @@ constexpr RideTypeDescriptor VerticalDropCoasterRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
SET_FIELD(EnabledTrackPieces, {TRACK_FLAT, TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_LIFT_HILL_STEEP, TRACK_FLAT_ROLL_BANKING, TRACK_VERTICAL_LOOP, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_LONG, 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_SLOPE_VERTICAL, TRACK_SLOPE_CURVE_BANKED, TRACK_BLOCK_BRAKES, TRACK_SLOPE_ROLL_BANKING, TRACK_CURVE_VERTICAL, TRACK_HALF_LOOP_LARGE, TRACK_BRAKE_FOR_DROP}),
SET_FIELD(EnabledTrackPieces, {TRACK_FLAT, TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_LIFT_HILL_STEEP, TRACK_FLAT_ROLL_BANKING, TRACK_VERTICAL_LOOP, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_LONG, 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_SLOPE_VERTICAL, TRACK_SLOPE_CURVE_BANKED, TRACK_BLOCK_BRAKES, TRACK_SLOPE_ROLL_BANKING, TRACK_CURVE_VERTICAL, TRACK_HALF_LOOP_LARGE, TRACK_BRAKE_FOR_DROP, TRACK_DIAG_BRAKES, TRACK_DIAG_BLOCK_BRAKES}),
SET_FIELD(ExtraTrackPieces, {TRACK_HALF_LOOP, TRACK_CORKSCREW, TRACK_BARREL_ROLL, TRACK_POWERED_LIFT, TRACK_HALF_LOOP_LARGE, TRACK_QUARTER_LOOP, TRACK_BOOSTER, TRACK_TWIST}),
SET_FIELD(CoveredTrackPieces, {}),
SET_FIELD(StartTrackPiece, TrackElemType::EndStation),

View File

@ -1456,8 +1456,8 @@ enum
SPR_G2_STANDUP_DIAG_BRAKES = SPR_G2_STEEPLECHASE_DIAG_BRAKES + 2,
SPR_G2_MINETRAIN_DIAG_BRAKES = SPR_G2_STANDUP_DIAG_BRAKES + 6,
SPR_G2_LOOPING_DIAG_BRAKES = SPR_G2_MINETRAIN_DIAG_BRAKES + 6,
SPR_G2_LIM_LAUNCHED_DIAG_BRAKES = SPR_G2_LOOPING_DIAG_BRAKES + 4,
SPR_G2_BM_INVERTED_DIAG_BRAKES = SPR_G2_LIM_LAUNCHED_DIAG_BRAKES + 6,
SPR_G2_BM_DIAG_BRAKES = SPR_G2_LOOPING_DIAG_BRAKES + 4,
SPR_G2_BM_INVERTED_DIAG_BRAKES = SPR_G2_BM_DIAG_BRAKES + 6,
SPR_G2_DIAG_BRAKES_END = SPR_G2_BM_INVERTED_DIAG_BRAKES + 2,
SPR_G2_END = SPR_G2_DIAG_BRAKES_END,