From 05c17505a6e1cb6c9fba8e70100135b4f6fd45e5 Mon Sep 17 00:00:00 2001 From: mix Date: Sat, 18 Oct 2025 03:47:17 +0100 Subject: [PATCH 1/4] Improve blocked segments for go karts small turns --- src/openrct2/paint/track/thrill/GoKarts.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/openrct2/paint/track/thrill/GoKarts.cpp b/src/openrct2/paint/track/thrill/GoKarts.cpp index dce70a01f8..11f61176ab 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, }; From 37ffb62ab8aedd954fc43c96b87075e78b0e6840 Mon Sep 17 00:00:00 2001 From: mix Date: Sat, 18 Oct 2025 04:06:46 +0100 Subject: [PATCH 2/4] Change go kart medium turn blocked segments to wide segments --- src/openrct2/paint/track/thrill/GoKarts.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/openrct2/paint/track/thrill/GoKarts.cpp b/src/openrct2/paint/track/thrill/GoKarts.cpp index 11f61176ab..84036609b2 100644 --- a/src/openrct2/paint/track/thrill/GoKarts.cpp +++ b/src/openrct2/paint/track/thrill/GoKarts.cpp @@ -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); From 82521d1af65d87698d06320059a8d9efc4909c50 Mon Sep 17 00:00:00 2001 From: mix Date: Sat, 18 Oct 2025 04:09:10 +0100 Subject: [PATCH 3/4] Fix and improve go karts small sloped turns blocked segments --- src/openrct2/paint/track/thrill/GoKarts.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/openrct2/paint/track/thrill/GoKarts.cpp b/src/openrct2/paint/track/thrill/GoKarts.cpp index 84036609b2..23912c60d7 100644 --- a/src/openrct2/paint/track/thrill/GoKarts.cpp +++ b/src/openrct2/paint/track/thrill/GoKarts.cpp @@ -2296,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, }; @@ -2354,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); From da7a607dc81699111cb5b1644dafc86fbc8ca8d0 Mon Sep 17 00:00:00 2001 From: mix Date: Sat, 18 Oct 2025 04:22:06 +0100 Subject: [PATCH 4/4] Add changelog entry for fixing go karts turns blocked segments --- distribution/changelog.txt | 1 + 1 file changed, 1 insertion(+) 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) ------------------------------------------------------------------------