1
0
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:
Trevor Finney
2023-02-21 10:09:04 -05:00
parent d3dc515d10
commit 32f9fb9dd4
4 changed files with 18 additions and 17 deletions

View File

@@ -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
{

View File

@@ -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,

View File

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

View File

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