diff --git a/distribution/changelog.txt b/distribution/changelog.txt index 264ca16d68..3e610c4519 100644 --- a/distribution/changelog.txt +++ b/distribution/changelog.txt @@ -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) ------------------------------------------------------------------------ diff --git a/src/openrct2/paint/track/thrill/GoKarts.cpp b/src/openrct2/paint/track/thrill/GoKarts.cpp index dce70a01f8..23912c60d7 100644 --- a/src/openrct2/paint/track/thrill/GoKarts.cpp +++ b/src/openrct2/paint/track/thrill/GoKarts.cpp @@ -1940,7 +1940,7 @@ static void TrackLeftQuarterTurn3Tiles( TrackPaintUtilLeftQuarterTurn3TilesTunnel(session, kTunnelGroup, TunnelSubType::Flat, height, direction, trackSequence); static constexpr std::array 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 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 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 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);