From 7b5ab2b007651b7546971129ee6e234997b8e432 Mon Sep 17 00:00:00 2001 From: matheusvb3 <98937378+matheusvb3@users.noreply.github.com> Date: Tue, 25 Nov 2025 19:07:48 -0300 Subject: [PATCH] Refactor shop item handling with switch statement --- src/openrct2/entity/Guest.cpp | 58 +++++++++++++++++++---------------- 1 file changed, 32 insertions(+), 26 deletions(-) diff --git a/src/openrct2/entity/Guest.cpp b/src/openrct2/entity/Guest.cpp index a6879a3e90..e6282410ca 100644 --- a/src/openrct2/entity/Guest.cpp +++ b/src/openrct2/entity/Guest.cpp @@ -1669,32 +1669,38 @@ static bool GuestDecideAndBuyItem(Guest& guest, Ride& ride, const ShopItem shopI guest.GiveItem(shopItem); const auto hasRandomShopColour = ride.hasLifecycleFlag(RIDE_LIFECYCLE_RANDOM_SHOP_COLOURS); - if (shopItem == ShopItem::tShirt) - guest.TshirtColour = hasRandomShopColour ? ScenarioRandMax(kColourNumNormal) : ride.trackColours[0].main; - - if (shopItem == ShopItem::hat) - guest.HatColour = hasRandomShopColour ? ScenarioRandMax(kColourNumNormal) : ride.trackColours[0].main; - - if (shopItem == ShopItem::balloon) - guest.BalloonColour = hasRandomShopColour ? ScenarioRandMax(kColourNumNormal) : ride.trackColours[0].main; - - if (shopItem == ShopItem::umbrella) - guest.UmbrellaColour = hasRandomShopColour ? ScenarioRandMax(kColourNumNormal) : ride.trackColours[0].main; - - if (shopItem == ShopItem::map) - guest.ResetPathfindGoal(); - - if (shopItem == ShopItem::photo) - guest.Photo1RideRef = ride.id; - - if (shopItem == ShopItem::photo2) - guest.Photo2RideRef = ride.id; - - if (shopItem == ShopItem::photo3) - guest.Photo3RideRef = ride.id; - - if (shopItem == ShopItem::photo4) - guest.Photo4RideRef = ride.id; + switch (shopItem) + { + case ShopItem::tShirt: + guest.TshirtColour = hasRandomShopColour ? ScenarioRandMax(kColourNumNormal) : ride.trackColours[0].main; + break; + case ShopItem::hat: + guest.HatColour = hasRandomShopColour ? ScenarioRandMax(kColourNumNormal) : ride.trackColours[0].main; + break; + case ShopItem::balloon: + guest.BalloonColour = hasRandomShopColour ? ScenarioRandMax(kColourNumNormal) : ride.trackColours[0].main; + break; + case ShopItem::umbrella: + guest.UmbrellaColour = hasRandomShopColour ? ScenarioRandMax(kColourNumNormal) : ride.trackColours[0].main; + break; + case ShopItem::map: + guest.ResetPathfindGoal(); + break; + case ShopItem::photo: + guest.Photo1RideRef = ride.id; + break; + case ShopItem::photo2: + guest.Photo2RideRef = ride.id; + break; + case ShopItem::photo3: + guest.Photo3RideRef = ride.id; + break; + case ShopItem::photo4: + guest.Photo4RideRef = ride.id; + break; + default: + break; + } guest.WindowInvalidateFlags |= PEEP_INVALIDATE_PEEP_INVENTORY; guest.UpdateAnimationGroup();