From ee6746373eb26be00a79f93e09f961942264800e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Janiszewski?= Date: Thu, 6 Apr 2023 00:55:05 +0200 Subject: [PATCH] Fix #19817: merry-go-round doesn't have a vehicle until opened (#19842) Merry-go-round doesn't receive its vehicle until it gets tested/opened, but tries painting non-existent guests anyway, leading to reference binding to nullptr. --- src/openrct2/ride/gentle/MerryGoRound.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/openrct2/ride/gentle/MerryGoRound.cpp b/src/openrct2/ride/gentle/MerryGoRound.cpp index 95f13c3008..4e1925a361 100644 --- a/src/openrct2/ride/gentle/MerryGoRound.cpp +++ b/src/openrct2/ride/gentle/MerryGoRound.cpp @@ -92,7 +92,10 @@ static void PaintCarousel( auto imageId = imageTemplate.WithIndex(rideEntry->Cars[0].base_image_id + imageOffset); PaintAddImageAsParent(session, imageId, offset, bb); - PaintRiders(session, ride, *rideEntry, *vehicle, rotationOffset, offset, bb); + if (vehicle != nullptr && vehicle->num_peeps > 0) + { + PaintRiders(session, ride, *rideEntry, *vehicle, rotationOffset, offset, bb); + } session.CurrentlyDrawnEntity = nullptr; session.InteractionType = ViewportInteractionItem::Ride;