1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2025-12-23 15:52:55 +01:00

Merge pull request #25369 from mixiate/fix-go-karts-blocked-segments

Fix some go karts turns blocked segments
This commit is contained in:
Michael Steenbeek
2025-10-18 16:08:09 +02:00
committed by GitHub
2 changed files with 11 additions and 8 deletions

View File

@@ -12,6 +12,7 @@
- Fix: [#25342] The Go-Karts medium right gentle sloped turn does not have a tunnel at the end.
- Fix: [#25358] The Stand Up Roller Coaster left corkscrew does not block supports correctly.
- Fix: [#25363] The Mine Train Coaster flat-to-steep track pieces do not block all metal supports.
- Fix: [#25369] The Go-Karts medium turns and small flat and sloped turns do not block metal supports correctly.
0.4.27 (2025-10-04)
------------------------------------------------------------------------

View File

@@ -1940,7 +1940,7 @@ static void TrackLeftQuarterTurn3Tiles(
TrackPaintUtilLeftQuarterTurn3TilesTunnel(session, kTunnelGroup, TunnelSubType::Flat, height, direction, trackSequence);
static constexpr std::array<int32_t, 4> blockedSegments = {
kSegmentsAll,
kSegmentsAll,
EnumsToFlags(PaintSegment::right, PaintSegment::topRight, PaintSegment::bottomRight),
EnumsToFlags(PaintSegment::left, PaintSegment::centre, PaintSegment::topLeft, PaintSegment::bottomLeft),
kSegmentsAll,
};
@@ -1982,17 +1982,19 @@ static void TrackLeftQuarterTurn5Tiles(
PaintUtilPushTunnelRotated(session, DirectionPrev(direction), height, kTunnelGroup, TunnelSubType::Flat);
}
static constexpr std::array<int32_t, 7> blockedSegments = {
EnumsToFlags(PaintSegment::top, PaintSegment::centre, PaintSegment::topRight, PaintSegment::bottomLeft),
kSegmentsAll,
EnumsToFlags(PaintSegment::right, PaintSegment::topRight, PaintSegment::bottomRight),
EnumsToFlags(
PaintSegment::top, PaintSegment::left, PaintSegment::centre, PaintSegment::topLeft, PaintSegment::topRight,
PaintSegment::bottomLeft),
EnumsToFlags(PaintSegment::right, PaintSegment::centre, PaintSegment::topRight, PaintSegment::bottomRight),
kSegmentsAll,
EnumsToFlags(
PaintSegment::top, PaintSegment::right, PaintSegment::bottom, PaintSegment::centre, PaintSegment::topLeft,
PaintSegment::topRight, PaintSegment::bottomLeft, PaintSegment::bottomRight),
EnumsToFlags(PaintSegment::right, PaintSegment::topRight, PaintSegment::bottomRight),
EnumsToFlags(
PaintSegment::left, PaintSegment::bottom, PaintSegment::centre, PaintSegment::topLeft, PaintSegment::bottomLeft,
PaintSegment::bottomRight),
EnumsToFlags(PaintSegment::bottom, PaintSegment::centre, PaintSegment::topLeft, PaintSegment::bottomRight),
kSegmentsAll,
};
PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(blockedSegments[trackSequence], direction), 0xFFFF, 0);
PaintUtilSetGeneralSupportHeight(session, height + kDefaultGeneralSupportHeight);
@@ -2294,7 +2296,7 @@ static void TrackLeftQuarterTurn3TilesUp25(
static constexpr std::array<int32_t, 4> blockedSegments = {
kSegmentsAll,
kSegmentsAll,
EnumsToFlags(PaintSegment::right, PaintSegment::topRight, PaintSegment::bottomRight),
EnumsToFlags(PaintSegment::left, PaintSegment::centre, PaintSegment::topLeft, PaintSegment::bottomLeft),
kSegmentsAll,
};
@@ -2352,8 +2354,8 @@ static void TrackRightQuarterTurn3TilesUp25(
static constexpr std::array<int32_t, 4> blockedSegments = {
kSegmentsAll,
kSegmentsAll,
EnumsToFlags(PaintSegment::left, PaintSegment::centre, PaintSegment::topLeft, PaintSegment::bottomLeft),
EnumsToFlags(PaintSegment::topLeft, PaintSegment::top, PaintSegment::topRight),
EnumsToFlags(PaintSegment::bottom, PaintSegment::centre, PaintSegment::bottomLeft, PaintSegment::bottomRight),
kSegmentsAll,
};
PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(blockedSegments[trackSequence], direction), 0xFFFF, 0);