mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-16 19:43:06 +01:00
Fix junk palettes for random shop items
This commit is contained in:
@@ -32,7 +32,6 @@
|
||||
#include <openrct2/world/Banner.h>
|
||||
#include <openrct2/world/Map.h>
|
||||
#include <openrct2/world/Scenery.h>
|
||||
#include <openrct2-ui/windows/Dropdown.cpp>
|
||||
|
||||
struct RCTMouseData
|
||||
{
|
||||
|
||||
@@ -35,18 +35,6 @@ static constexpr const uint8_t _appropriateImageDropdownItemsPerRow[34] = {
|
||||
6, 8, 9, 8, // 34
|
||||
};
|
||||
|
||||
// Map of color picker index to true color index
|
||||
static constexpr uint8_t COLOUR_UI_ORDER[] = {
|
||||
0, 3, 159, 6, 162, 157, 11, 149, 151,
|
||||
1, 4, 5, 7, 9, 12, 14, 13, 15,
|
||||
2, 156, 160, 8, 10, 158, 153, 150, 152,
|
||||
29, 27, 147, 154, 23, 164, 21, 19, 144,
|
||||
30, 28, 26, 25, 22, 24, 20, 18, 16,
|
||||
163, 31, 148, 155, 146, 165, 161, 17, 145,
|
||||
166, 167
|
||||
};
|
||||
|
||||
|
||||
enum
|
||||
{
|
||||
WIDX_BACKGROUND,
|
||||
|
||||
@@ -1619,16 +1619,19 @@ bool Guest::DecideAndBuyItem(Ride& ride, ShopItem shopItem, money64 price)
|
||||
const auto hasRandomShopColour = ride.HasLifecycleFlag(RIDE_LIFECYCLE_RANDOM_SHOP_COLOURS);
|
||||
|
||||
if (shopItem == ShopItem::TShirt)
|
||||
TshirtColour = hasRandomShopColour ? ScenarioRandMax(COLOUR_COUNT - 1) : ride.track_colour[0].main;
|
||||
TshirtColour = hasRandomShopColour ? COLOUR_UI_ORDER[ScenarioRandMax(COLOUR_NUM_NORMAL - 1)]
|
||||
: ride.track_colour[0].main;
|
||||
|
||||
if (shopItem == ShopItem::Hat)
|
||||
HatColour = hasRandomShopColour ? ScenarioRandMax(COLOUR_COUNT - 1) : ride.track_colour[0].main;
|
||||
HatColour = hasRandomShopColour ? COLOUR_UI_ORDER[ScenarioRandMax(COLOUR_NUM_NORMAL - 1)] : ride.track_colour[0].main;
|
||||
|
||||
if (shopItem == ShopItem::Balloon)
|
||||
BalloonColour = hasRandomShopColour ? ScenarioRandMax(COLOUR_COUNT - 1) : ride.track_colour[0].main;
|
||||
BalloonColour = hasRandomShopColour ? COLOUR_UI_ORDER[ScenarioRandMax(COLOUR_NUM_NORMAL - 1)]
|
||||
: ride.track_colour[0].main;
|
||||
|
||||
if (shopItem == ShopItem::Umbrella)
|
||||
UmbrellaColour = hasRandomShopColour ? ScenarioRandMax(COLOUR_COUNT - 1) : ride.track_colour[0].main;
|
||||
UmbrellaColour = hasRandomShopColour ? COLOUR_UI_ORDER[ScenarioRandMax(COLOUR_NUM_NORMAL - 1)]
|
||||
: ride.track_colour[0].main;
|
||||
|
||||
if (shopItem == ShopItem::Map)
|
||||
ResetPathfindGoal();
|
||||
|
||||
@@ -182,6 +182,17 @@ enum : PaletteIndex
|
||||
PALETTE_INDEX_254 = 254, // Primary remap 11
|
||||
};
|
||||
|
||||
// Map of color picker index to true color index
|
||||
static constexpr uint8_t COLOUR_UI_ORDER[] = {
|
||||
0, 3, 159, 6, 162, 157, 11, 149, 151,
|
||||
1, 4, 5, 7, 9, 12, 14, 13, 15,
|
||||
2, 156, 160, 8, 10, 158, 153, 150, 152,
|
||||
29, 27, 147, 154, 23, 164, 21, 19, 144,
|
||||
30, 28, 26, 25, 22, 24, 20, 18, 16,
|
||||
163, 31, 148, 155, 146, 165, 161, 17, 145,
|
||||
166, 167
|
||||
};
|
||||
|
||||
constexpr size_t PALETTE_COUNT = 256;
|
||||
|
||||
constexpr uint8_t PALETTE_OFFSET_DYNAMIC = PALETTE_INDEX_10;
|
||||
|
||||
Reference in New Issue
Block a user