1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-21 22:13:07 +01:00

Refactor shop item handling with switch statement

This commit is contained in:
matheusvb3
2025-11-25 19:07:48 -03:00
parent 06874982c9
commit 7b5ab2b007

View File

@@ -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();