mirror of https://github.com/OpenRCT2/OpenRCT2.git
Merge pull request #11724 from Gymnasiast/refactor/shop-item
Refactor shop items
This commit is contained in:
commit
89011b105f
|
@ -172,8 +172,8 @@ static void window_new_campaign_get_shop_items()
|
|||
auto rideEntry = ride.GetRideEntry();
|
||||
if (rideEntry != nullptr)
|
||||
{
|
||||
auto itemType = rideEntry->shop_item;
|
||||
if (itemType != SHOP_ITEM_NONE && shop_item_is_food_or_drink(itemType))
|
||||
auto itemType = rideEntry->shop_item[0];
|
||||
if (itemType != SHOP_ITEM_NONE && ShopItems[itemType].IsFoodOrDrink())
|
||||
{
|
||||
items |= 1ULL << itemType;
|
||||
}
|
||||
|
|
|
@ -5019,7 +5019,7 @@ static void window_ride_colour_paint(rct_window* w, rct_drawpixelinfo* dpi)
|
|||
|
||||
//
|
||||
auto rideEntry = ride->GetRideEntry();
|
||||
if (rideEntry == nullptr || rideEntry->shop_item == SHOP_ITEM_NONE)
|
||||
if (rideEntry == nullptr || rideEntry->shop_item[0] == SHOP_ITEM_NONE)
|
||||
{
|
||||
int32_t x = w->windowPos.x + widget->left;
|
||||
int32_t y = w->windowPos.y + widget->top;
|
||||
|
@ -5053,8 +5053,7 @@ static void window_ride_colour_paint(rct_window* w, rct_drawpixelinfo* dpi)
|
|||
int32_t x = w->windowPos.x + (widget->left + widget->right) / 2 - 8;
|
||||
int32_t y = w->windowPos.y + (widget->bottom + widget->top) / 2 - 6;
|
||||
|
||||
uint8_t shopItem = rideEntry->shop_item_secondary == SHOP_ITEM_NONE ? rideEntry->shop_item
|
||||
: rideEntry->shop_item_secondary;
|
||||
uint8_t shopItem = rideEntry->shop_item[1] == SHOP_ITEM_NONE ? rideEntry->shop_item[0] : rideEntry->shop_item[1];
|
||||
int32_t spriteIndex = ShopItems[shopItem].Image;
|
||||
spriteIndex |= SPRITE_ID_PALETTE_COLOUR_1(ride->track_colour[0].main);
|
||||
|
||||
|
@ -6349,7 +6348,7 @@ static void update_same_price_throughout_flags(uint32_t shop_item)
|
|||
{
|
||||
uint64_t newFlags;
|
||||
|
||||
if (shop_item_is_photo(shop_item))
|
||||
if (ShopItems[shop_item].IsPhoto())
|
||||
{
|
||||
newFlags = gSamePriceThroughoutPark;
|
||||
newFlags ^= (1ULL << SHOP_ITEM_PHOTO) | (1ULL << SHOP_ITEM_PHOTO2) | (1ULL << SHOP_ITEM_PHOTO3)
|
||||
|
@ -6386,7 +6385,7 @@ static void window_ride_income_toggle_primary_price(rct_window* w)
|
|||
auto rideEntry = get_ride_entry(ride->subtype);
|
||||
if (rideEntry != nullptr)
|
||||
{
|
||||
shop_item = rideEntry->shop_item;
|
||||
shop_item = rideEntry->shop_item[0];
|
||||
if (shop_item == 0xFFFF)
|
||||
return;
|
||||
}
|
||||
|
@ -6398,7 +6397,7 @@ static void window_ride_income_toggle_primary_price(rct_window* w)
|
|||
|
||||
update_same_price_throughout_flags(shop_item);
|
||||
|
||||
auto rideSetPriceAction = RideSetPriceAction(w->number, ride->price, true);
|
||||
auto rideSetPriceAction = RideSetPriceAction(w->number, ride->price[0], true);
|
||||
GameActions::Execute(&rideSetPriceAction);
|
||||
}
|
||||
|
||||
|
@ -6416,13 +6415,13 @@ static void window_ride_income_toggle_secondary_price(rct_window* w)
|
|||
if (rideEntry == nullptr)
|
||||
return;
|
||||
|
||||
auto shop_item = rideEntry->shop_item_secondary;
|
||||
auto shop_item = rideEntry->shop_item[1];
|
||||
if (shop_item == SHOP_ITEM_NONE)
|
||||
shop_item = RideTypeDescriptors[ride->type].PhotoItem;
|
||||
|
||||
update_same_price_throughout_flags(shop_item);
|
||||
|
||||
auto rideSetPriceAction = RideSetPriceAction(w->number, ride->price_secondary, false);
|
||||
auto rideSetPriceAction = RideSetPriceAction(w->number, ride->price[1], false);
|
||||
GameActions::Execute(&rideSetPriceAction);
|
||||
}
|
||||
|
||||
|
@ -6445,7 +6444,7 @@ static void window_ride_income_increase_primary_price(rct_window* w)
|
|||
if (ride == nullptr)
|
||||
return;
|
||||
|
||||
money16 price = ride->price;
|
||||
money16 price = ride->price[0];
|
||||
if (price < MONEY(20, 00))
|
||||
price++;
|
||||
|
||||
|
@ -6465,7 +6464,7 @@ static void window_ride_income_decrease_primary_price(rct_window* w)
|
|||
if (ride == nullptr)
|
||||
return;
|
||||
|
||||
money16 price = ride->price;
|
||||
money16 price = ride->price[0];
|
||||
if (price > MONEY(0, 00))
|
||||
price--;
|
||||
|
||||
|
@ -6478,7 +6477,7 @@ static money16 window_ride_income_get_secondary_price(rct_window* w)
|
|||
if (ride == nullptr)
|
||||
return 0;
|
||||
|
||||
money16 price = ride->price_secondary;
|
||||
money16 price = ride->price[1];
|
||||
return price;
|
||||
}
|
||||
|
||||
|
@ -6496,7 +6495,7 @@ static bool window_ride_income_can_modify_primary_price(rct_window* w)
|
|||
|
||||
auto rideEntry = ride->GetRideEntry();
|
||||
return park_ride_prices_unlocked() || ride->type == RIDE_TYPE_TOILETS
|
||||
|| (rideEntry != nullptr && rideEntry->shop_item != SHOP_ITEM_NONE);
|
||||
|| (rideEntry != nullptr && rideEntry->shop_item[0] != SHOP_ITEM_NONE);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -6558,7 +6557,7 @@ static void window_ride_income_mouseup(rct_window* w, rct_widgetindex widgetInde
|
|||
auto ride = get_ride(w->number);
|
||||
if (ride != nullptr)
|
||||
{
|
||||
money_to_string(static_cast<money32>(ride->price), _moneyInputText, MONEY_STRING_MAXLENGTH, true);
|
||||
money_to_string(static_cast<money32>(ride->price[0]), _moneyInputText, MONEY_STRING_MAXLENGTH, true);
|
||||
window_text_input_raw_open(
|
||||
w, WIDX_PRIMARY_PRICE, STR_ENTER_NEW_VALUE, STR_ENTER_NEW_VALUE, _moneyInputText, MONEY_STRING_MAXLENGTH);
|
||||
}
|
||||
|
@ -6690,7 +6689,7 @@ static void window_ride_income_invalidate(rct_window* w)
|
|||
window_ride_income_widgets[WIDX_PRIMARY_PRICE].tooltip = STR_NONE;
|
||||
|
||||
// If ride prices are locked, do not allow setting the price, unless we're dealing with a shop or toilet.
|
||||
if (!park_ride_prices_unlocked() && rideEntry->shop_item == SHOP_ITEM_NONE && ride->type != RIDE_TYPE_TOILETS)
|
||||
if (!park_ride_prices_unlocked() && rideEntry->shop_item[0] == SHOP_ITEM_NONE && ride->type != RIDE_TYPE_TOILETS)
|
||||
{
|
||||
w->disabled_widgets |= (1 << WIDX_PRIMARY_PRICE);
|
||||
window_ride_income_widgets[WIDX_PRIMARY_PRICE_LABEL].tooltip = STR_RIDE_INCOME_ADMISSION_PAY_FOR_ENTRY_TIP;
|
||||
|
@ -6708,7 +6707,7 @@ static void window_ride_income_invalidate(rct_window* w)
|
|||
window_ride_income_widgets[WIDX_PRIMARY_PRICE].text = STR_FREE;
|
||||
|
||||
uint8_t primaryItem = SHOP_ITEM_ADMISSION;
|
||||
if (ride->type == RIDE_TYPE_TOILETS || ((primaryItem = rideEntry->shop_item) != SHOP_ITEM_NONE))
|
||||
if (ride->type == RIDE_TYPE_TOILETS || ((primaryItem = rideEntry->shop_item[0]) != SHOP_ITEM_NONE))
|
||||
{
|
||||
window_ride_income_widgets[WIDX_PRIMARY_PRICE_SAME_THROUGHOUT_PARK].type = WWT_CHECKBOX;
|
||||
|
||||
|
@ -6722,7 +6721,7 @@ static void window_ride_income_invalidate(rct_window* w)
|
|||
auto secondaryItem = RideTypeDescriptors[ride->type].PhotoItem;
|
||||
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_ON_RIDE_PHOTO))
|
||||
{
|
||||
if ((secondaryItem = rideEntry->shop_item_secondary) != SHOP_ITEM_NONE)
|
||||
if ((secondaryItem = rideEntry->shop_item[1]) != SHOP_ITEM_NONE)
|
||||
{
|
||||
window_ride_income_widgets[WIDX_SECONDARY_PRICE_LABEL].text = ShopItems[secondaryItem].Naming.PriceLabel;
|
||||
}
|
||||
|
@ -6753,8 +6752,8 @@ static void window_ride_income_invalidate(rct_window* w)
|
|||
|
||||
// Set secondary item price
|
||||
window_ride_income_widgets[WIDX_SECONDARY_PRICE].text = STR_RIDE_SECONDARY_PRICE_VALUE;
|
||||
set_format_arg(10, money32, ride->price_secondary);
|
||||
if (ride->price_secondary == 0)
|
||||
set_format_arg(10, money32, ride->price[1]);
|
||||
if (ride->price[1] == 0)
|
||||
window_ride_income_widgets[WIDX_SECONDARY_PRICE].text = STR_FREE;
|
||||
}
|
||||
|
||||
|
@ -6787,10 +6786,10 @@ static void window_ride_income_paint(rct_window* w, rct_drawpixelinfo* dpi)
|
|||
y = w->windowPos.y + window_ride_income_widgets[WIDX_PAGE_BACKGROUND].top + 33;
|
||||
|
||||
// Primary item profit / loss per item sold
|
||||
primaryItem = rideEntry->shop_item;
|
||||
primaryItem = rideEntry->shop_item[0];
|
||||
if (primaryItem != SHOP_ITEM_NONE)
|
||||
{
|
||||
profit = ride->price;
|
||||
profit = ride->price[0];
|
||||
|
||||
stringId = STR_PROFIT_PER_ITEM_SOLD;
|
||||
profit -= ShopItems[primaryItem].Cost;
|
||||
|
@ -6807,11 +6806,11 @@ static void window_ride_income_paint(rct_window* w, rct_drawpixelinfo* dpi)
|
|||
// Secondary item profit / loss per item sold
|
||||
secondaryItem = RideTypeDescriptors[ride->type].PhotoItem;
|
||||
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_ON_RIDE_PHOTO))
|
||||
secondaryItem = rideEntry->shop_item_secondary;
|
||||
secondaryItem = rideEntry->shop_item[1];
|
||||
|
||||
if (secondaryItem != SHOP_ITEM_NONE)
|
||||
{
|
||||
profit = ride->price_secondary;
|
||||
profit = ride->price[1];
|
||||
|
||||
stringId = STR_PROFIT_PER_ITEM_SOLD;
|
||||
profit -= ShopItems[secondaryItem].Cost;
|
||||
|
@ -7045,7 +7044,7 @@ static void window_ride_customer_paint(rct_window* w, rct_drawpixelinfo* dpi)
|
|||
}
|
||||
|
||||
// Primary shop items sold
|
||||
shopItem = ride->GetRideEntry()->shop_item;
|
||||
shopItem = ride->GetRideEntry()->shop_item[0];
|
||||
if (shopItem != SHOP_ITEM_NONE)
|
||||
{
|
||||
set_format_arg(0, rct_string_id, ShopItems[shopItem].Naming.Plural);
|
||||
|
@ -7056,7 +7055,7 @@ static void window_ride_customer_paint(rct_window* w, rct_drawpixelinfo* dpi)
|
|||
|
||||
// Secondary shop items sold / on-ride photos sold
|
||||
shopItem = (ride->lifecycle_flags & RIDE_LIFECYCLE_ON_RIDE_PHOTO) ? RideTypeDescriptors[ride->type].PhotoItem
|
||||
: ride->GetRideEntry()->shop_item_secondary;
|
||||
: ride->GetRideEntry()->shop_item[1];
|
||||
if (shopItem != SHOP_ITEM_NONE)
|
||||
{
|
||||
set_format_arg(0, rct_string_id, ShopItems[shopItem].Naming.Plural);
|
||||
|
|
|
@ -201,32 +201,37 @@ public:
|
|||
ride->num_customers_timeout = 0;
|
||||
ride->chairlift_bullwheel_rotation = 0;
|
||||
|
||||
ride->price = 0;
|
||||
ride->price_secondary = 0;
|
||||
for (auto& price : ride->price)
|
||||
{
|
||||
price = 0;
|
||||
}
|
||||
|
||||
if (!(gParkFlags & PARK_FLAGS_NO_MONEY))
|
||||
{
|
||||
ride->price = RideData4[ride->type].price;
|
||||
ride->price_secondary = RideData4[ride->type].price_secondary;
|
||||
for (auto i = 0; i < NUM_SHOP_ITEMS_PER_RIDE; i++)
|
||||
{
|
||||
ride->price[i] = RideData4[ride->type].price[i];
|
||||
}
|
||||
|
||||
if (rideEntry->shop_item == SHOP_ITEM_NONE)
|
||||
if (rideEntry->shop_item[0] == SHOP_ITEM_NONE)
|
||||
{
|
||||
if (!park_ride_prices_unlocked())
|
||||
{
|
||||
ride->price = 0;
|
||||
ride->price[0] = 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ride->price = ShopItems[rideEntry->shop_item].DefaultPrice;
|
||||
ride->price[0] = ShopItems[rideEntry->shop_item[0]].DefaultPrice;
|
||||
}
|
||||
if (rideEntry->shop_item_secondary != SHOP_ITEM_NONE)
|
||||
if (rideEntry->shop_item[1] != SHOP_ITEM_NONE)
|
||||
{
|
||||
ride->price_secondary = ShopItems[rideEntry->shop_item_secondary].DefaultPrice;
|
||||
ride->price[1] = ShopItems[rideEntry->shop_item[1]].DefaultPrice;
|
||||
}
|
||||
|
||||
if (gScenarioObjectiveType == OBJECTIVE_BUILD_THE_BEST)
|
||||
{
|
||||
ride->price = 0;
|
||||
ride->price[0] = 0;
|
||||
}
|
||||
|
||||
if (ride->type == RIDE_TYPE_TOILETS)
|
||||
|
@ -236,31 +241,22 @@ public:
|
|||
money32 price = ride_get_common_price(ride);
|
||||
if (price != MONEY32_UNDEFINED)
|
||||
{
|
||||
ride->price = static_cast<money16>(price);
|
||||
ride->price[0] = static_cast<money16>(price);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (rideEntry->shop_item != SHOP_ITEM_NONE)
|
||||
for (auto i = 0; i < NUM_SHOP_ITEMS_PER_RIDE; i++)
|
||||
{
|
||||
if (shop_item_has_common_price(rideEntry->shop_item))
|
||||
if (rideEntry->shop_item[i] != SHOP_ITEM_NONE)
|
||||
{
|
||||
money32 price = shop_item_get_common_price(ride, rideEntry->shop_item);
|
||||
if (price != MONEY32_UNDEFINED)
|
||||
if (shop_item_has_common_price(rideEntry->shop_item[i]))
|
||||
{
|
||||
ride->price = static_cast<money16>(price);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (rideEntry->shop_item_secondary != SHOP_ITEM_NONE)
|
||||
{
|
||||
if (shop_item_has_common_price(rideEntry->shop_item_secondary))
|
||||
{
|
||||
money32 price = shop_item_get_common_price(ride, rideEntry->shop_item_secondary);
|
||||
if (price != MONEY32_UNDEFINED)
|
||||
{
|
||||
ride->price_secondary = static_cast<money16>(price);
|
||||
money32 price = shop_item_get_common_price(ride, rideEntry->shop_item[i]);
|
||||
if (price != MONEY32_UNDEFINED)
|
||||
{
|
||||
ride->price[i] = static_cast<money16>(price);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -271,7 +267,7 @@ public:
|
|||
money32 price = shop_item_get_common_price(ride, SHOP_ITEM_PHOTO);
|
||||
if (price != MONEY32_UNDEFINED)
|
||||
{
|
||||
ride->price_secondary = static_cast<money16>(price);
|
||||
ride->price[1] = static_cast<money16>(price);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -112,10 +112,10 @@ public:
|
|||
shopItem = SHOP_ITEM_ADMISSION;
|
||||
if (ride->type != RIDE_TYPE_TOILETS)
|
||||
{
|
||||
shopItem = rideEntry->shop_item;
|
||||
shopItem = rideEntry->shop_item[0];
|
||||
if (shopItem == SHOP_ITEM_NONE)
|
||||
{
|
||||
ride->price = _price;
|
||||
ride->price[0] = _price;
|
||||
window_invalidate_by_class(WC_RIDE);
|
||||
return res;
|
||||
}
|
||||
|
@ -123,20 +123,20 @@ public:
|
|||
// Check same price in park flags
|
||||
if (!shop_item_has_common_price(shopItem))
|
||||
{
|
||||
ride->price = _price;
|
||||
ride->price[0] = _price;
|
||||
window_invalidate_by_class(WC_RIDE);
|
||||
return res;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
shopItem = rideEntry->shop_item_secondary;
|
||||
shopItem = rideEntry->shop_item[1];
|
||||
if (shopItem == SHOP_ITEM_NONE)
|
||||
{
|
||||
shopItem = RideTypeDescriptors[ride->type].PhotoItem;
|
||||
if ((ride->lifecycle_flags & RIDE_LIFECYCLE_ON_RIDE_PHOTO) == 0)
|
||||
{
|
||||
ride->price_secondary = _price;
|
||||
ride->price[1] = _price;
|
||||
window_invalidate_by_class(WC_RIDE);
|
||||
return res;
|
||||
}
|
||||
|
@ -144,7 +144,7 @@ public:
|
|||
// Check same price in park flags
|
||||
if (!shop_item_has_common_price(shopItem))
|
||||
{
|
||||
ride->price_secondary = _price;
|
||||
ride->price[1] = _price;
|
||||
window_invalidate_by_class(WC_RIDE);
|
||||
return res;
|
||||
}
|
||||
|
@ -165,29 +165,29 @@ private:
|
|||
auto rideEntry = get_ride_entry(ride.subtype);
|
||||
if (ride.type == RIDE_TYPE_TOILETS && shopItem == SHOP_ITEM_ADMISSION)
|
||||
{
|
||||
if (ride.price != _price)
|
||||
if (ride.price[0] != _price)
|
||||
{
|
||||
ride.price = _price;
|
||||
ride.price[0] = _price;
|
||||
invalidate = true;
|
||||
}
|
||||
}
|
||||
else if (rideEntry != nullptr && rideEntry->shop_item == shopItem)
|
||||
else if (rideEntry != nullptr && rideEntry->shop_item[0] == shopItem)
|
||||
{
|
||||
if (ride.price != _price)
|
||||
if (ride.price[0] != _price)
|
||||
{
|
||||
ride.price = _price;
|
||||
ride.price[0] = _price;
|
||||
invalidate = true;
|
||||
}
|
||||
}
|
||||
if (rideEntry != nullptr)
|
||||
{
|
||||
// If the shop item is the same or an on-ride photo
|
||||
if (rideEntry->shop_item_secondary == shopItem
|
||||
|| (rideEntry->shop_item_secondary == SHOP_ITEM_NONE && shop_item_is_photo(shopItem)))
|
||||
if (rideEntry->shop_item[1] == shopItem
|
||||
|| (rideEntry->shop_item[1] == SHOP_ITEM_NONE && ShopItems[shopItem].IsPhoto()))
|
||||
{
|
||||
if (ride.price_secondary != _price)
|
||||
if (ride.price[1] != _price)
|
||||
{
|
||||
ride.price_secondary = _price;
|
||||
ride.price[1] = _price;
|
||||
invalidate = true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -320,9 +320,9 @@ static bool award_is_deserved_best_food(int32_t activeAwardTypes)
|
|||
auto rideEntry = get_ride_entry(ride.subtype);
|
||||
if (rideEntry != nullptr)
|
||||
{
|
||||
if (!(shopTypes & (1ULL << rideEntry->shop_item)))
|
||||
if (!(shopTypes & (1ULL << rideEntry->shop_item[0])))
|
||||
{
|
||||
shopTypes |= (1ULL << rideEntry->shop_item);
|
||||
shopTypes |= (1ULL << rideEntry->shop_item[0]);
|
||||
uniqueShops++;
|
||||
}
|
||||
}
|
||||
|
@ -366,9 +366,9 @@ static bool award_is_deserved_worst_food(int32_t activeAwardTypes)
|
|||
auto rideEntry = ride.GetRideEntry();
|
||||
if (rideEntry != nullptr)
|
||||
{
|
||||
if (!(shopTypes & (1ULL << rideEntry->shop_item)))
|
||||
if (!(shopTypes & (1ULL << rideEntry->shop_item[0])))
|
||||
{
|
||||
shopTypes |= (1ULL << rideEntry->shop_item);
|
||||
shopTypes |= (1ULL << rideEntry->shop_item[0]);
|
||||
uniqueShops++;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -57,7 +57,7 @@ uint16_t marketing_get_campaign_guest_generation_probability(int32_t campaignTyp
|
|||
case ADVERTISING_CAMPAIGN_RIDE_FREE:
|
||||
{
|
||||
auto ride = get_ride(campaign->RideId);
|
||||
if (ride == nullptr || ride->price < MONEY(0, 30))
|
||||
if (ride == nullptr || ride->price[0] < MONEY(0, 30))
|
||||
probability /= 8;
|
||||
break;
|
||||
}
|
||||
|
@ -196,10 +196,12 @@ bool marketing_is_campaign_type_applicable(int32_t campaignType)
|
|||
auto rideEntry = ride.GetRideEntry();
|
||||
if (rideEntry != nullptr)
|
||||
{
|
||||
if (shop_item_is_food_or_drink(rideEntry->shop_item)
|
||||
|| shop_item_is_food_or_drink(rideEntry->shop_item_secondary))
|
||||
for (auto& item : rideEntry->shop_item)
|
||||
{
|
||||
return true;
|
||||
if (ShopItems[item].IsFoodOrDrink())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -62,8 +62,8 @@ void RideObject::ReadLegacy(IReadObjectContext* context, IStream* stream)
|
|||
_legacyType.max_height = stream->ReadValue<uint8_t>();
|
||||
// Skipping a uint64_t for the enabled track pieces and two uint8_ts for the categories.
|
||||
stream->Seek(10, STREAM_SEEK_CURRENT);
|
||||
_legacyType.shop_item = stream->ReadValue<uint8_t>();
|
||||
_legacyType.shop_item_secondary = stream->ReadValue<uint8_t>();
|
||||
_legacyType.shop_item[0] = stream->ReadValue<uint8_t>();
|
||||
_legacyType.shop_item[1] = stream->ReadValue<uint8_t>();
|
||||
|
||||
GetStringTable().Read(context, stream, OBJ_STRING_ID_NAME);
|
||||
GetStringTable().Read(context, stream, OBJ_STRING_ID_DESCRIPTION);
|
||||
|
@ -549,8 +549,10 @@ void RideObject::ReadJson(IReadObjectContext* context, const json_t* root)
|
|||
_legacyType.max_height = ObjectJsonHelpers::GetInteger(properties, "maxHeight");
|
||||
|
||||
// This needs to be set for both shops/facilities _and_ regular rides.
|
||||
_legacyType.shop_item = SHOP_ITEM_NONE;
|
||||
_legacyType.shop_item_secondary = SHOP_ITEM_NONE;
|
||||
for (auto& item : _legacyType.shop_item)
|
||||
{
|
||||
item = SHOP_ITEM_NONE;
|
||||
}
|
||||
|
||||
_presetColours = ReadJsonCarColours(json_object_get(properties, "carColours"));
|
||||
|
||||
|
@ -571,7 +573,8 @@ void RideObject::ReadJson(IReadObjectContext* context, const json_t* root)
|
|||
|
||||
// Shop item
|
||||
auto rideSells = ObjectJsonHelpers::GetJsonStringArray(json_object_get(json_object_get(root, "properties"), "sells"));
|
||||
for (size_t i = 0; i < rideSells.size(); i++)
|
||||
auto numShopItems = std::min(static_cast<size_t>(NUM_SHOP_ITEMS_PER_RIDE), rideSells.size());
|
||||
for (size_t i = 0; i < numShopItems; i++)
|
||||
{
|
||||
auto shopItem = ParseShopItem(rideSells[i]);
|
||||
if (shopItem == SHOP_ITEM_NONE)
|
||||
|
@ -579,18 +582,7 @@ void RideObject::ReadJson(IReadObjectContext* context, const json_t* root)
|
|||
context->LogWarning(OBJECT_ERROR_INVALID_PROPERTY, "Unknown shop item");
|
||||
}
|
||||
|
||||
if (i == 0)
|
||||
{
|
||||
_legacyType.shop_item = ParseShopItem(rideSells[0]);
|
||||
}
|
||||
else if (i == 1)
|
||||
{
|
||||
_legacyType.shop_item_secondary = ParseShopItem(rideSells[1]);
|
||||
}
|
||||
else
|
||||
{
|
||||
// More than 2 shop items not supported yet!
|
||||
}
|
||||
_legacyType.shop_item[i] = ParseShopItem(rideSells[i]);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
|
@ -1493,7 +1493,7 @@ bool Guest::DecideAndBuyItem(Ride* ride, int32_t shopItem, money32 price)
|
|||
return false;
|
||||
}
|
||||
|
||||
if (shop_item_is_food_or_drink(shopItem))
|
||||
if (ShopItems[shopItem].IsFoodOrDrink())
|
||||
{
|
||||
int32_t food = -1;
|
||||
if ((food = HasFoodStandardFlag()) != 0)
|
||||
|
@ -1523,13 +1523,13 @@ bool Guest::DecideAndBuyItem(Ride* ride, int32_t shopItem, money32 price)
|
|||
return false;
|
||||
}
|
||||
|
||||
if (shop_item_is_food(shopItem) && (hunger > 75))
|
||||
if (ShopItems[shopItem].IsFood() && (hunger > 75))
|
||||
{
|
||||
InsertNewThought(PEEP_THOUGHT_TYPE_NOT_HUNGRY, PEEP_THOUGHT_ITEM_NONE);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (shop_item_is_drink(shopItem) && (thirst > 75))
|
||||
if (ShopItems[shopItem].IsDrink() && (thirst > 75))
|
||||
{
|
||||
InsertNewThought(PEEP_THOUGHT_TYPE_NOT_THIRSTY, PEEP_THOUGHT_ITEM_NONE);
|
||||
return false;
|
||||
|
@ -1538,7 +1538,7 @@ bool Guest::DecideAndBuyItem(Ride* ride, int32_t shopItem, money32 price)
|
|||
if (shopItem == SHOP_ITEM_UMBRELLA && climate_is_raining())
|
||||
goto loc_69B119;
|
||||
|
||||
if ((shopItem != SHOP_ITEM_MAP) && shop_item_is_souvenir(shopItem) && !hasVoucher)
|
||||
if ((shopItem != SHOP_ITEM_MAP) && ShopItems[shopItem].IsSouvenir() && !hasVoucher)
|
||||
{
|
||||
if (((scenario_rand() & 0x7F) + 0x73) > happiness)
|
||||
return false;
|
||||
|
@ -1695,25 +1695,25 @@ loc_69B221:
|
|||
}
|
||||
}
|
||||
|
||||
if (shop_item_is_food(shopItem))
|
||||
if (ShopItems[shopItem].IsFood())
|
||||
no_of_food++;
|
||||
|
||||
if (shop_item_is_drink(shopItem))
|
||||
if (ShopItems[shopItem].IsDrink())
|
||||
no_of_drinks++;
|
||||
|
||||
if (shop_item_is_souvenir(shopItem))
|
||||
if (ShopItems[shopItem].IsSouvenir())
|
||||
no_of_souvenirs++;
|
||||
|
||||
money16* expend_type = &paid_on_souvenirs;
|
||||
ExpenditureType expenditure = ExpenditureType::ShopStock;
|
||||
|
||||
if (shop_item_is_food(shopItem))
|
||||
if (ShopItems[shopItem].IsFood())
|
||||
{
|
||||
expend_type = &paid_on_food;
|
||||
expenditure = ExpenditureType::FoodDrinkStock;
|
||||
}
|
||||
|
||||
if (shop_item_is_drink(shopItem))
|
||||
if (ShopItems[shopItem].IsDrink())
|
||||
{
|
||||
expend_type = &paid_on_drink;
|
||||
expenditure = ExpenditureType::FoodDrinkStock;
|
||||
|
@ -3417,22 +3417,22 @@ void Guest::UpdateBuying()
|
|||
{
|
||||
return;
|
||||
}
|
||||
if (ride_type->shop_item_secondary != SHOP_ITEM_NONE)
|
||||
if (ride_type->shop_item[1] != SHOP_ITEM_NONE)
|
||||
{
|
||||
money16 price = ride->price_secondary;
|
||||
money16 price = ride->price[1];
|
||||
|
||||
item_bought = DecideAndBuyItem(ride, ride_type->shop_item_secondary, price);
|
||||
item_bought = DecideAndBuyItem(ride, ride_type->shop_item[1], price);
|
||||
if (item_bought)
|
||||
{
|
||||
ride->no_secondary_items_sold++;
|
||||
}
|
||||
}
|
||||
|
||||
if (!item_bought && ride_type->shop_item != SHOP_ITEM_NONE)
|
||||
if (!item_bought && ride_type->shop_item[0] != SHOP_ITEM_NONE)
|
||||
{
|
||||
money16 price = ride->price;
|
||||
money16 price = ride->price[0];
|
||||
|
||||
item_bought = DecideAndBuyItem(ride, ride_type->shop_item, price);
|
||||
item_bought = DecideAndBuyItem(ride, ride_type->shop_item[0], price);
|
||||
if (item_bought)
|
||||
{
|
||||
ride->no_primary_items_sold++;
|
||||
|
@ -4398,7 +4398,7 @@ void Guest::UpdateRideInExit()
|
|||
if (ride->lifecycle_flags & RIDE_LIFECYCLE_ON_RIDE_PHOTO)
|
||||
{
|
||||
uint8_t secondaryItem = RideTypeDescriptors[ride->type].PhotoItem;
|
||||
if (DecideAndBuyItem(ride, secondaryItem, ride->price_secondary))
|
||||
if (DecideAndBuyItem(ride, secondaryItem, ride->price[1]))
|
||||
{
|
||||
ride->no_secondary_items_sold++;
|
||||
}
|
||||
|
|
|
@ -2958,7 +2958,7 @@ static bool peep_interact_with_shop(Peep* peep, int16_t x, int16_t y, TileElemen
|
|||
return true;
|
||||
}
|
||||
|
||||
money16 cost = ride->price;
|
||||
money16 cost = ride->price[0];
|
||||
if (cost != 0 && !(gParkFlags & PARK_FLAGS_NO_MONEY))
|
||||
{
|
||||
ride->total_profit += cost;
|
||||
|
|
|
@ -937,8 +937,8 @@ private:
|
|||
|
||||
// Finance / customers
|
||||
dst->upkeep_cost = src->upkeep_cost;
|
||||
dst->price = src->price;
|
||||
dst->price_secondary = src->price_secondary;
|
||||
dst->price[0] = src->price;
|
||||
dst->price[1] = src->price_secondary;
|
||||
dst->income_per_hour = src->income_per_hour;
|
||||
dst->total_customers = src->total_customers;
|
||||
dst->profit = src->profit;
|
||||
|
|
|
@ -664,7 +664,7 @@ void S6Exporter::ExportRide(rct2_ride* dst, const Ride* src)
|
|||
dst->num_customers[i] = src->num_customers[i];
|
||||
}
|
||||
|
||||
dst->price = src->price;
|
||||
dst->price = src->price[0];
|
||||
|
||||
for (uint8_t i = 0; i < 2; i++)
|
||||
{
|
||||
|
@ -714,7 +714,7 @@ void S6Exporter::ExportRide(rct2_ride* dst, const Ride* src)
|
|||
dst->broken_car = src->broken_car;
|
||||
dst->breakdown_reason = src->breakdown_reason;
|
||||
|
||||
dst->price_secondary = src->price_secondary;
|
||||
dst->price_secondary = src->price[1];
|
||||
|
||||
dst->reliability = src->reliability;
|
||||
dst->unreliability_factor = src->unreliability_factor;
|
||||
|
|
|
@ -657,7 +657,7 @@ public:
|
|||
dst->num_customers[i] = src->num_customers[i];
|
||||
}
|
||||
|
||||
dst->price = src->price;
|
||||
dst->price[0] = src->price;
|
||||
|
||||
for (uint8_t i = 0; i < 2; i++)
|
||||
{
|
||||
|
@ -708,7 +708,7 @@ public:
|
|||
dst->broken_car = src->broken_car;
|
||||
dst->breakdown_reason = src->breakdown_reason;
|
||||
|
||||
dst->price_secondary = src->price_secondary;
|
||||
dst->price[1] = src->price_secondary;
|
||||
|
||||
dst->reliability = src->reliability;
|
||||
dst->unreliability_factor = src->unreliability_factor;
|
||||
|
|
|
@ -353,21 +353,21 @@ money32 Ride::CalculateIncomePerHour() const
|
|||
money32 customersPerHour = ride_customers_per_hour(this);
|
||||
money32 priceMinusCost = ride_get_price(this);
|
||||
|
||||
int32_t currentShopItem = entry->shop_item;
|
||||
int32_t currentShopItem = entry->shop_item[0];
|
||||
if (currentShopItem != SHOP_ITEM_NONE)
|
||||
{
|
||||
priceMinusCost -= ShopItems[currentShopItem].Cost;
|
||||
}
|
||||
|
||||
currentShopItem = (lifecycle_flags & RIDE_LIFECYCLE_ON_RIDE_PHOTO) ? RideTypeDescriptors[type].PhotoItem
|
||||
: entry->shop_item_secondary;
|
||||
: entry->shop_item[1];
|
||||
|
||||
if (currentShopItem != SHOP_ITEM_NONE)
|
||||
{
|
||||
priceMinusCost += price_secondary;
|
||||
priceMinusCost += price[1];
|
||||
priceMinusCost -= ShopItems[currentShopItem].Cost;
|
||||
|
||||
if (entry->shop_item != SHOP_ITEM_NONE)
|
||||
if (entry->shop_item[0] != SHOP_ITEM_NONE)
|
||||
priceMinusCost /= 2;
|
||||
}
|
||||
|
||||
|
@ -5571,7 +5571,7 @@ money32 ride_get_common_price(Ride* forRide)
|
|||
{
|
||||
if (ride.type == forRide->type && &ride != forRide)
|
||||
{
|
||||
return ride.price;
|
||||
return ride.price[0];
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -7175,7 +7175,7 @@ money16 ride_get_price(const Ride* ride)
|
|||
return 0;
|
||||
}
|
||||
}
|
||||
return ride->price;
|
||||
return ride->price[0];
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -52,6 +52,8 @@ constexpr uint16_t const MAZE_CLEARANCE_HEIGHT = 4 * COORDS_Z_STEP;
|
|||
|
||||
constexpr const ObjectEntryIndex RIDE_ENTRY_INDEX_NULL = OBJECT_ENTRY_INDEX_NULL;
|
||||
|
||||
constexpr const uint8_t NUM_SHOP_ITEMS_PER_RIDE = 2;
|
||||
|
||||
#pragma pack(push, 1)
|
||||
struct TrackColour
|
||||
{
|
||||
|
@ -122,8 +124,7 @@ struct rct_ride_entry
|
|||
int8_t intensity_multiplier;
|
||||
int8_t nausea_multiplier;
|
||||
uint8_t max_height;
|
||||
uint8_t shop_item;
|
||||
uint8_t shop_item_secondary;
|
||||
uint8_t shop_item[NUM_SHOP_ITEMS_PER_RIDE];
|
||||
rct_string_id capacity;
|
||||
void* obj;
|
||||
|
||||
|
@ -271,7 +272,7 @@ struct Ride
|
|||
uint16_t num_customers_timeout;
|
||||
// Customer count in the last 10 * 960 game ticks (sliding window)
|
||||
uint16_t num_customers[CUSTOMER_HISTORY_SIZE];
|
||||
money16 price;
|
||||
money16 price[NUM_SHOP_ITEMS_PER_RIDE];
|
||||
TileCoordsXYZ ChairliftBullwheelLocation[2];
|
||||
union
|
||||
{
|
||||
|
@ -316,7 +317,6 @@ struct Ride
|
|||
uint8_t broken_vehicle;
|
||||
uint8_t broken_car;
|
||||
uint8_t breakdown_reason;
|
||||
money16 price_secondary;
|
||||
union
|
||||
{
|
||||
struct
|
||||
|
|
|
@ -56,8 +56,7 @@ struct RideNameConvention
|
|||
|
||||
struct rct_ride_data_4
|
||||
{
|
||||
uint8_t price;
|
||||
uint8_t price_secondary;
|
||||
uint8_t price[NUM_SHOP_ITEMS_PER_RIDE];
|
||||
uint8_t default_music;
|
||||
};
|
||||
|
||||
|
|
|
@ -19,64 +19,64 @@ uint64_t gSamePriceThroughoutPark;
|
|||
/** rct2: 0x00982164 (cost, base value, hot and cold value); 0x00982358 (default price) */
|
||||
const ShopItemDescriptor ShopItems[SHOP_ITEM_COUNT] = {
|
||||
// Item, Cost, Base value, Hot value, Cold value, Default price, Image, Price label, Singular, Plural, Indefinite, Display (in guest inventory)
|
||||
/* SHOP_ITEM_BALLOON */ { 3, 14, 14, 14, MONEY(0, 90), SPR_SHOP_ITEM_BALLOON, { STR_SHOP_ITEM_PRICE_LABEL_BALLOON, STR_SHOP_ITEM_SINGULAR_BALLOON, STR_SHOP_ITEM_PLURAL_BALLOON, STR_SHOP_ITEM_INDEFINITE_BALLOON, STR_SHOP_ITEM_DISPLAY_BALLOON } },
|
||||
/* SHOP_ITEM_TOY */ { 15, 30, 30, 30, MONEY(2, 50), SPR_SHOP_ITEM_TOY, { STR_SHOP_ITEM_PRICE_LABEL_CUDDLY_TOY, STR_SHOP_ITEM_SINGULAR_CUDDLY_TOY, STR_SHOP_ITEM_PLURAL_CUDDLY_TOY, STR_SHOP_ITEM_INDEFINITE_CUDDLY_TOY, STR_SHOP_ITEM_DISPLAY_CUDDLY_TOY } },
|
||||
/* SHOP_ITEM_MAP */ { 1, 7, 7, 8, MONEY(0, 60), SPR_SHOP_ITEM_MAP, { STR_SHOP_ITEM_PRICE_LABEL_PARK_MAP, STR_SHOP_ITEM_SINGULAR_PARK_MAP, STR_SHOP_ITEM_PLURAL_PARK_MAP, STR_SHOP_ITEM_INDEFINITE_PARK_MAP, STR_SHOP_ITEM_DISPLAY_PARK_MAP } },
|
||||
/* SHOP_ITEM_PHOTO */ { 2, 30, 30, 30, MONEY(0, 00), SPR_SHOP_ITEM_PHOTO, { STR_SHOP_ITEM_PRICE_LABEL_ON_RIDE_PHOTO, STR_SHOP_ITEM_SINGULAR_ON_RIDE_PHOTO, STR_SHOP_ITEM_PLURAL_ON_RIDE_PHOTO, STR_SHOP_ITEM_INDEFINITE_ON_RIDE_PHOTO, STR_SHOP_ITEM_DISPLAY_ON_RIDE_PHOTO } },
|
||||
/* SHOP_ITEM_UMBRELLA */ { 20, 35, 25, 50, MONEY(2, 50), SPR_SHOP_ITEM_UMBRELLA, { STR_SHOP_ITEM_PRICE_LABEL_UMBRELLA, STR_SHOP_ITEM_SINGULAR_UMBRELLA, STR_SHOP_ITEM_PLURAL_UMBRELLA, STR_SHOP_ITEM_INDEFINITE_UMBRELLA, STR_SHOP_ITEM_DISPLAY_UMBRELLA } },
|
||||
/* SHOP_ITEM_DRINK */ { 3, 12, 20, 10, MONEY(1, 20), SPR_SHOP_ITEM_DRINK, { STR_SHOP_ITEM_PRICE_LABEL_DRINK, STR_SHOP_ITEM_SINGULAR_DRINK, STR_SHOP_ITEM_PLURAL_DRINK, STR_SHOP_ITEM_INDEFINITE_DRINK, STR_SHOP_ITEM_DISPLAY_DRINK } },
|
||||
/* SHOP_ITEM_BURGER */ { 5, 19, 19, 22, MONEY(1, 50), SPR_SHOP_ITEM_BURGER, { STR_SHOP_ITEM_PRICE_LABEL_BURGER, STR_SHOP_ITEM_SINGULAR_BURGER, STR_SHOP_ITEM_PLURAL_BURGER, STR_SHOP_ITEM_INDEFINITE_BURGER, STR_SHOP_ITEM_DISPLAY_BURGER } },
|
||||
/* SHOP_ITEM_CHIPS */ { 4, 16, 16, 18, MONEY(1, 50), SPR_SHOP_ITEM_CHIPS, { STR_SHOP_ITEM_PRICE_LABEL_CHIPS, STR_SHOP_ITEM_SINGULAR_CHIPS, STR_SHOP_ITEM_PLURAL_CHIPS, STR_SHOP_ITEM_INDEFINITE_CHIPS, STR_SHOP_ITEM_DISPLAY_CHIPS } },
|
||||
/* SHOP_ITEM_ICE_CREAM */ { 4, 10, 15, 6, MONEY(0, 90), SPR_SHOP_ITEM_ICE_CREAM, { STR_SHOP_ITEM_PRICE_LABEL_ICE_CREAM, STR_SHOP_ITEM_SINGULAR_ICE_CREAM, STR_SHOP_ITEM_PLURAL_ICE_CREAM, STR_SHOP_ITEM_INDEFINITE_ICE_CREAM, STR_SHOP_ITEM_DISPLAY_ICE_CREAM } },
|
||||
/* SHOP_ITEM_CANDYFLOSS */ { 3, 9, 9, 6, MONEY(0, 80), SPR_SHOP_ITEM_CANDYFLOSS, { STR_SHOP_ITEM_PRICE_LABEL_CANDYFLOSS, STR_SHOP_ITEM_SINGULAR_CANDYFLOSS, STR_SHOP_ITEM_PLURAL_CANDYFLOSS, STR_SHOP_ITEM_INDEFINITE_CANDYFLOSS, STR_SHOP_ITEM_DISPLAY_CANDYFLOSS } },
|
||||
/* SHOP_ITEM_EMPTY_CAN */ { 0, 0, 0, 0, MONEY(0, 00), SPR_SHOP_ITEM_EMPTY_CAN, { STR_SHOP_ITEM_PRICE_LABEL_EMPTY_CAN, STR_SHOP_ITEM_SINGULAR_EMPTY_CAN, STR_SHOP_ITEM_PLURAL_EMPTY_CAN, STR_SHOP_ITEM_INDEFINITE_EMPTY_CAN, STR_SHOP_ITEM_DISPLAY_EMPTY_CAN } },
|
||||
/* SHOP_ITEM_RUBBISH */ { 0, 0, 0, 0, MONEY(0, 00), SPR_SHOP_ITEM_RUBBISH, { STR_SHOP_ITEM_PRICE_LABEL_RUBBISH, STR_SHOP_ITEM_SINGULAR_RUBBISH, STR_SHOP_ITEM_PLURAL_RUBBISH, STR_SHOP_ITEM_INDEFINITE_RUBBISH, STR_SHOP_ITEM_DISPLAY_RUBBISH } },
|
||||
/* SHOP_ITEM_EMPTY_BURGER_BOX */ { 0, 0, 0, 0, MONEY(0, 00), SPR_SHOP_ITEM_EMPTY_BURGER_BOX, { STR_SHOP_ITEM_PRICE_LABEL_EMPTY_BURGER_BOX, STR_SHOP_ITEM_SINGULAR_EMPTY_BURGER_BOX, STR_SHOP_ITEM_PLURAL_EMPTY_BURGER_BOX, STR_SHOP_ITEM_INDEFINITE_EMPTY_BURGER_BOX, STR_SHOP_ITEM_DISPLAY_EMPTY_BURGER_BOX } },
|
||||
/* SHOP_ITEM_PIZZA */ { 6, 21, 21, 25, MONEY(1, 60), SPR_SHOP_ITEM_PIZZA, { STR_SHOP_ITEM_PRICE_LABEL_PIZZA, STR_SHOP_ITEM_SINGULAR_PIZZA, STR_SHOP_ITEM_PLURAL_PIZZA, STR_SHOP_ITEM_INDEFINITE_PIZZA, STR_SHOP_ITEM_DISPLAY_PIZZA } },
|
||||
/* SHOP_ITEM_VOUCHER */ { 0, 0, 0, 0, MONEY(0, 00), SPR_SHOP_ITEM_VOUCHER, { STR_SHOP_ITEM_PRICE_LABEL_VOUCHER, STR_SHOP_ITEM_SINGULAR_VOUCHER, STR_SHOP_ITEM_PLURAL_VOUCHER, STR_SHOP_ITEM_INDEFINITE_VOUCHER, STR_SHOP_ITEM_DISPLAY_VOUCHER } },
|
||||
/* SHOP_ITEM_POPCORN */ { 5, 13, 13, 11, MONEY(1, 20), SPR_SHOP_ITEM_POPCORN, { STR_SHOP_ITEM_PRICE_LABEL_POPCORN, STR_SHOP_ITEM_SINGULAR_POPCORN, STR_SHOP_ITEM_PLURAL_POPCORN, STR_SHOP_ITEM_INDEFINITE_POPCORN, STR_SHOP_ITEM_DISPLAY_POPCORN } },
|
||||
/* SHOP_ITEM_HOT_DOG */ { 5, 17, 17, 20, MONEY(1, 00), SPR_SHOP_ITEM_HOT_DOG, { STR_SHOP_ITEM_PRICE_LABEL_HOT_DOG, STR_SHOP_ITEM_SINGULAR_HOT_DOG, STR_SHOP_ITEM_PLURAL_HOT_DOG, STR_SHOP_ITEM_INDEFINITE_HOT_DOG, STR_SHOP_ITEM_DISPLAY_HOT_DOG } },
|
||||
/* SHOP_ITEM_TENTACLE */ { 11, 22, 20, 18, MONEY(1, 50), SPR_SHOP_ITEM_TENTACLE, { STR_SHOP_ITEM_PRICE_LABEL_TENTACLE, STR_SHOP_ITEM_SINGULAR_TENTACLE, STR_SHOP_ITEM_PLURAL_TENTACLE, STR_SHOP_ITEM_INDEFINITE_TENTACLE, STR_SHOP_ITEM_DISPLAY_TENTACLE } },
|
||||
/* SHOP_ITEM_HAT */ { 9, 27, 32, 24, MONEY(1, 50), SPR_SHOP_ITEM_HAT, { STR_SHOP_ITEM_PRICE_LABEL_HAT, STR_SHOP_ITEM_SINGULAR_HAT, STR_SHOP_ITEM_PLURAL_HAT, STR_SHOP_ITEM_INDEFINITE_HAT, STR_SHOP_ITEM_DISPLAY_HAT } },
|
||||
/* SHOP_ITEM_TOFFEE_APPLE */ { 4, 10, 10, 10, MONEY(0, 70), SPR_SHOP_ITEM_TOFFEE_APPLE, { STR_SHOP_ITEM_PRICE_LABEL_TOFFEE_APPLE, STR_SHOP_ITEM_SINGULAR_TOFFEE_APPLE, STR_SHOP_ITEM_PLURAL_TOFFEE_APPLE, STR_SHOP_ITEM_INDEFINITE_TOFFEE_APPLE, STR_SHOP_ITEM_DISPLAY_TOFFEE_APPLE } },
|
||||
/* SHOP_ITEM_TSHIRT */ { 20, 37, 37, 37, MONEY(3, 00), SPR_SHOP_ITEM_TSHIRT, { STR_SHOP_ITEM_PRICE_LABEL_T_SHIRT, STR_SHOP_ITEM_SINGULAR_T_SHIRT, STR_SHOP_ITEM_PLURAL_T_SHIRT, STR_SHOP_ITEM_INDEFINITE_T_SHIRT, STR_SHOP_ITEM_DISPLAY_T_SHIRT } },
|
||||
/* SHOP_ITEM_DOUGHNUT */ { 4, 8, 7, 10, MONEY(0, 70), SPR_SHOP_ITEM_DOUGHNUT, { STR_SHOP_ITEM_PRICE_LABEL_DOUGHNUT, STR_SHOP_ITEM_SINGULAR_DOUGHNUT, STR_SHOP_ITEM_PLURAL_DOUGHNUT, STR_SHOP_ITEM_INDEFINITE_DOUGHNUT, STR_SHOP_ITEM_DISPLAY_DOUGHNUT } },
|
||||
/* SHOP_ITEM_COFFEE */ { 3, 11, 15, 20, MONEY(1, 20), SPR_SHOP_ITEM_COFFEE, { STR_SHOP_ITEM_PRICE_LABEL_COFFEE, STR_SHOP_ITEM_SINGULAR_COFFEE, STR_SHOP_ITEM_PLURAL_COFFEE, STR_SHOP_ITEM_INDEFINITE_COFFEE, STR_SHOP_ITEM_DISPLAY_COFFEE } },
|
||||
/* SHOP_ITEM_EMPTY_CUP */ { 0, 0, 0, 0, MONEY(0, 00), SPR_SHOP_ITEM_EMPTY_CUP, { STR_SHOP_ITEM_PRICE_LABEL_EMPTY_CUP, STR_SHOP_ITEM_SINGULAR_EMPTY_CUP, STR_SHOP_ITEM_PLURAL_EMPTY_CUP, STR_SHOP_ITEM_INDEFINITE_EMPTY_CUP, STR_SHOP_ITEM_DISPLAY_EMPTY_CUP } },
|
||||
/* SHOP_ITEM_CHICKEN */ { 5, 19, 19, 22, MONEY(1, 50), SPR_SHOP_ITEM_CHICKEN, { STR_SHOP_ITEM_PRICE_LABEL_FRIED_CHICKEN, STR_SHOP_ITEM_SINGULAR_FRIED_CHICKEN, STR_SHOP_ITEM_PLURAL_FRIED_CHICKEN, STR_SHOP_ITEM_INDEFINITE_FRIED_CHICKEN, STR_SHOP_ITEM_DISPLAY_FRIED_CHICKEN } },
|
||||
/* SHOP_ITEM_LEMONADE */ { 4, 11, 21, 10, MONEY(1, 20), SPR_SHOP_ITEM_LEMONADE, { STR_SHOP_ITEM_PRICE_LABEL_LEMONADE, STR_SHOP_ITEM_SINGULAR_LEMONADE, STR_SHOP_ITEM_PLURAL_LEMONADE, STR_SHOP_ITEM_INDEFINITE_LEMONADE, STR_SHOP_ITEM_DISPLAY_LEMONADE } },
|
||||
/* SHOP_ITEM_EMPTY_BOX */ { 0, 0, 0, 0, MONEY(0, 00), SPR_SHOP_ITEM_EMPTY_BOX, { STR_SHOP_ITEM_PRICE_LABEL_EMPTY_BOX, STR_SHOP_ITEM_SINGULAR_EMPTY_BOX, STR_SHOP_ITEM_PLURAL_EMPTY_BOX, STR_SHOP_ITEM_INDEFINITE_EMPTY_BOX, STR_SHOP_ITEM_DISPLAY_EMPTY_BOX } },
|
||||
/* SHOP_ITEM_EMPTY_BOTTLE */ { 0, 0, 0, 0, MONEY(0, 00), SPR_SHOP_ITEM_EMPTY_BOTTLE, { STR_SHOP_ITEM_PRICE_LABEL_EMPTY_BOTTLE, STR_SHOP_ITEM_SINGULAR_EMPTY_BOTTLE, STR_SHOP_ITEM_PLURAL_EMPTY_BOTTLE, STR_SHOP_ITEM_INDEFINITE_EMPTY_BOTTLE, STR_SHOP_ITEM_DISPLAY_EMPTY_BOTTLE } },
|
||||
/* 28 */ { 0, 0, 0, 0, MONEY(0, 00), 0, { STR_NONE, STR_NONE, STR_NONE, STR_NONE, STR_NONE } },
|
||||
/* 29 */ { 0, 0, 0, 0, MONEY(0, 00), 0, { STR_NONE, STR_NONE, STR_NONE, STR_NONE, STR_NONE } },
|
||||
/* 30 */ { 0, 0, 0, 0, MONEY(0, 00), 0, { STR_NONE, STR_NONE, STR_NONE, STR_NONE, STR_NONE } },
|
||||
/* SHOP_ITEM_ADMISSION */ { 0, 0, 0, 0, MONEY(0, 00), 0, { STR_NONE, STR_NONE, STR_NONE, STR_NONE, STR_NONE } },
|
||||
/* SHOP_ITEM_PHOTO2 */ { 2, 30, 30, 30, MONEY(0, 00), SPR_SHOP_ITEM_PHOTO2, { STR_SHOP_ITEM_PRICE_LABEL_ON_RIDE_PHOTO, STR_SHOP_ITEM_SINGULAR_ON_RIDE_PHOTO, STR_SHOP_ITEM_PLURAL_ON_RIDE_PHOTO, STR_SHOP_ITEM_INDEFINITE_ON_RIDE_PHOTO, STR_SHOP_ITEM_DISPLAY_ON_RIDE_PHOTO } },
|
||||
/* SHOP_ITEM_PHOTO3 */ { 2, 30, 30, 30, MONEY(0, 00), SPR_SHOP_ITEM_PHOTO3, { STR_SHOP_ITEM_PRICE_LABEL_ON_RIDE_PHOTO, STR_SHOP_ITEM_SINGULAR_ON_RIDE_PHOTO, STR_SHOP_ITEM_PLURAL_ON_RIDE_PHOTO, STR_SHOP_ITEM_INDEFINITE_ON_RIDE_PHOTO, STR_SHOP_ITEM_DISPLAY_ON_RIDE_PHOTO } },
|
||||
/* SHOP_ITEM_PHOTO4 */ { 2, 30, 30, 30, MONEY(0, 00), SPR_SHOP_ITEM_PHOTO4, { STR_SHOP_ITEM_PRICE_LABEL_ON_RIDE_PHOTO, STR_SHOP_ITEM_SINGULAR_ON_RIDE_PHOTO, STR_SHOP_ITEM_PLURAL_ON_RIDE_PHOTO, STR_SHOP_ITEM_INDEFINITE_ON_RIDE_PHOTO, STR_SHOP_ITEM_DISPLAY_ON_RIDE_PHOTO } },
|
||||
/* SHOP_ITEM_PRETZEL */ { 5, 11, 11, 11, MONEY(1, 10), SPR_SHOP_ITEM_PRETZEL, { STR_SHOP_ITEM_PRICE_LABEL_PRETZEL, STR_SHOP_ITEM_SINGULAR_PRETZEL, STR_SHOP_ITEM_PLURAL_PRETZEL, STR_SHOP_ITEM_INDEFINITE_PRETZEL, STR_SHOP_ITEM_DISPLAY_PRETZEL } },
|
||||
/* SHOP_ITEM_CHOCOLATE */ { 4, 13, 13, 20, MONEY(1, 20), SPR_SHOP_ITEM_CHOCOLATE, { STR_SHOP_ITEM_PRICE_LABEL_HOT_CHOCOLATE, STR_SHOP_ITEM_SINGULAR_HOT_CHOCOLATE, STR_SHOP_ITEM_PLURAL_HOT_CHOCOLATE, STR_SHOP_ITEM_INDEFINITE_HOT_CHOCOLATE, STR_SHOP_ITEM_DISPLAY_HOT_CHOCOLATE } },
|
||||
/* SHOP_ITEM_ICED_TEA */ { 3, 10, 20, 10, MONEY(1, 10), SPR_SHOP_ITEM_ICED_TEA, { STR_SHOP_ITEM_PRICE_LABEL_ICED_TEA, STR_SHOP_ITEM_SINGULAR_ICED_TEA, STR_SHOP_ITEM_PLURAL_ICED_TEA, STR_SHOP_ITEM_INDEFINITE_ICED_TEA, STR_SHOP_ITEM_DISPLAY_ICED_TEA } },
|
||||
/* SHOP_ITEM_FUNNEL_CAKE */ { 5, 13, 11, 14, MONEY(1, 20), SPR_SHOP_ITEM_FUNNEL_CAKE, { STR_SHOP_ITEM_PRICE_LABEL_FUNNEL_CAKE, STR_SHOP_ITEM_SINGULAR_FUNNEL_CAKE, STR_SHOP_ITEM_PLURAL_FUNNEL_CAKE, STR_SHOP_ITEM_INDEFINITE_FUNNEL_CAKE, STR_SHOP_ITEM_DISPLAY_FUNNEL_CAKE } },
|
||||
/* SHOP_ITEM_SUNGLASSES */ { 8, 15, 20, 12, MONEY(1, 50), SPR_SHOP_ITEM_SUNGLASSES, { STR_SHOP_ITEM_PRICE_LABEL_SUNGLASSES, STR_SHOP_ITEM_SINGULAR_SUNGLASSES, STR_SHOP_ITEM_PLURAL_SUNGLASSES, STR_SHOP_ITEM_INDEFINITE_SUNGLASSES, STR_SHOP_ITEM_DISPLAY_SUNGLASSES } },
|
||||
/* SHOP_ITEM_BEEF_NOODLES */ { 7, 17, 17, 20, MONEY(1, 50), SPR_SHOP_ITEM_BEEF_NOODLES, { STR_SHOP_ITEM_PRICE_LABEL_BEEF_NOODLES, STR_SHOP_ITEM_SINGULAR_BEEF_NOODLES, STR_SHOP_ITEM_PLURAL_BEEF_NOODLES, STR_SHOP_ITEM_INDEFINITE_BEEF_NOODLES, STR_SHOP_ITEM_DISPLAY_BEEF_NOODLES } },
|
||||
/* SHOP_ITEM_FRIED_RICE_NOODLES */ { 6, 17, 17, 20, MONEY(1, 50), SPR_SHOP_ITEM_FRIED_RICE_NOODLES, { STR_SHOP_ITEM_PRICE_LABEL_FRIED_RICE_NOODLES, STR_SHOP_ITEM_SINGULAR_FRIED_RICE_NOODLES, STR_SHOP_ITEM_PLURAL_FRIED_RICE_NOODLES, STR_SHOP_ITEM_INDEFINITE_FRIED_RICE_NOODLES, STR_SHOP_ITEM_DISPLAY_FRIED_RICE_NOODLES } },
|
||||
/* SHOP_ITEM_WONTON_SOUP */ { 4, 13, 13, 15, MONEY(1, 50), SPR_SHOP_ITEM_WONTON_SOUP, { STR_SHOP_ITEM_PRICE_LABEL_WONTON_SOUP, STR_SHOP_ITEM_SINGULAR_WONTON_SOUP, STR_SHOP_ITEM_PLURAL_WONTON_SOUP, STR_SHOP_ITEM_INDEFINITE_WONTON_SOUP, STR_SHOP_ITEM_DISPLAY_WONTON_SOUP } },
|
||||
/* SHOP_ITEM_MEATBALL_SOUP */ { 5, 14, 14, 16, MONEY(1, 50), SPR_SHOP_ITEM_MEATBALL_SOUP, { STR_SHOP_ITEM_PRICE_LABEL_MEATBALL_SOUP, STR_SHOP_ITEM_SINGULAR_MEATBALL_SOUP, STR_SHOP_ITEM_PLURAL_MEATBALL_SOUP, STR_SHOP_ITEM_INDEFINITE_MEATBALL_SOUP, STR_SHOP_ITEM_DISPLAY_MEATBALL_SOUP } },
|
||||
/* SHOP_ITEM_FRUIT_JUICE */ { 4, 11, 19, 11, MONEY(1, 20), SPR_SHOP_ITEM_FRUIT_JUICE, { STR_SHOP_ITEM_PRICE_LABEL_FRUIT_JUICE, STR_SHOP_ITEM_SINGULAR_FRUIT_JUICE, STR_SHOP_ITEM_PLURAL_FRUIT_JUICE, STR_SHOP_ITEM_INDEFINITE_FRUIT_JUICE, STR_SHOP_ITEM_DISPLAY_FRUIT_JUICE } },
|
||||
/* SHOP_ITEM_SOYBEAN_MILK */ { 4, 10, 14, 10, MONEY(1, 20), SPR_SHOP_ITEM_SOYBEAN_MILK, { STR_SHOP_ITEM_PRICE_LABEL_SOYBEAN_MILK, STR_SHOP_ITEM_SINGULAR_SOYBEAN_MILK, STR_SHOP_ITEM_PLURAL_SOYBEAN_MILK, STR_SHOP_ITEM_INDEFINITE_SOYBEAN_MILK, STR_SHOP_ITEM_DISPLAY_SOYBEAN_MILK } },
|
||||
/* SHOP_ITEM_SUJEONGGWA */ { 3, 11, 14, 11, MONEY(1, 20), SPR_SHOP_ITEM_SUJEONGGWA, { STR_SHOP_ITEM_PRICE_LABEL_SUJONGKWA, STR_SHOP_ITEM_SINGULAR_SUJONGKWA, STR_SHOP_ITEM_PLURAL_SUJONGKWA, STR_SHOP_ITEM_INDEFINITE_SUJONGKWA, STR_SHOP_ITEM_DISPLAY_SUJONGKWA } },
|
||||
/* SHOP_ITEM_SUB_SANDWICH */ { 5, 19, 19, 17, MONEY(1, 50), SPR_SHOP_ITEM_SUB_SANDWICH, { STR_SHOP_ITEM_PRICE_LABEL_SUB_SANDWICH, STR_SHOP_ITEM_SINGULAR_SUB_SANDWICH, STR_SHOP_ITEM_PLURAL_SUB_SANDWICH, STR_SHOP_ITEM_INDEFINITE_SUB_SANDWICH, STR_SHOP_ITEM_DISPLAY_SUB_SANDWICH } },
|
||||
/* SHOP_ITEM_COOKIE */ { 4, 8, 8, 8, MONEY(0, 70), SPR_SHOP_ITEM_COOKIE, { STR_SHOP_ITEM_PRICE_LABEL_COOKIE, STR_SHOP_ITEM_SINGULAR_COOKIE, STR_SHOP_ITEM_PLURAL_COOKIE, STR_SHOP_ITEM_INDEFINITE_COOKIE, STR_SHOP_ITEM_DISPLAY_COOKIE } },
|
||||
/* SHOP_ITEM_EMPTY_BOWL_RED */ { 0, 0, 0, 0, MONEY(0, 00), SPR_SHOP_ITEM_EMPTY_BOWL_RED, { STR_SHOP_ITEM_PRICE_LABEL_EMPTY_BOWL_RED, STR_SHOP_ITEM_SINGULAR_EMPTY_BOWL_RED, STR_SHOP_ITEM_PLURAL_EMPTY_BOWL_RED, STR_SHOP_ITEM_INDEFINITE_EMPTY_BOWL_RED, STR_SHOP_ITEM_DISPLAY_EMPTY_BOWL_RED } },
|
||||
/* SHOP_ITEM_EMPTY_DRINK_CARTON */ { 0, 0, 0, 0, MONEY(0, 00), SPR_SHOP_ITEM_EMPTY_DRINK_CARTON, { STR_SHOP_ITEM_PRICE_LABEL_EMPTY_DRINK_CARTON, STR_SHOP_ITEM_SINGULAR_EMPTY_DRINK_CARTON, STR_SHOP_ITEM_PLURAL_EMPTY_DRINK_CARTON, STR_SHOP_ITEM_INDEFINITE_EMPTY_DRINK_CARTON, STR_SHOP_ITEM_DISPLAY_EMPTY_DRINK_CARTON } },
|
||||
/* SHOP_ITEM_EMPTY_JUICE_CUP */ { 0, 0, 0, 0, MONEY(0, 00), SPR_SHOP_ITEM_EMPTY_JUICE_CUP, { STR_SHOP_ITEM_PRICE_LABEL_EMPTY_JUICE_CUP, STR_SHOP_ITEM_SINGULAR_EMPTY_JUICE_CUP, STR_SHOP_ITEM_PLURAL_EMPTY_JUICE_CUP, STR_SHOP_ITEM_INDEFINITE_EMPTY_JUICE_CUP, STR_SHOP_ITEM_DISPLAY_EMPTY_JUICE_CUP } },
|
||||
/* SHOP_ITEM_ROAST_SAUSAGE */ { 5, 16, 16, 20, MONEY(1, 50), SPR_SHOP_ITEM_ROAST_SAUSAGE, { STR_SHOP_ITEM_PRICE_LABEL_ROAST_SAUSAGE, STR_SHOP_ITEM_SINGULAR_ROAST_SAUSAGE, STR_SHOP_ITEM_PLURAL_ROAST_SAUSAGE, STR_SHOP_ITEM_INDEFINITE_ROAST_SAUSAGE, STR_SHOP_ITEM_DISPLAY_ROAST_SAUSAGE } },
|
||||
/* SHOP_ITEM_EMPTY_BOWL_BLUE */ { 0, 0, 0, 0, MONEY(0, 00), SPR_SHOP_ITEM_EMPTY_BOWL_BLUE, { STR_SHOP_ITEM_PRICE_LABEL_EMPTY_BOWL_BLUE, STR_SHOP_ITEM_SINGULAR_EMPTY_BOWL_BLUE, STR_SHOP_ITEM_PLURAL_EMPTY_BOWL_BLUE, STR_SHOP_ITEM_INDEFINITE_EMPTY_BOWL_BLUE, STR_SHOP_ITEM_DISPLAY_EMPTY_BOWL_BLUE } },
|
||||
/* SHOP_ITEM_BALLOON */ { 3, 14, 14, 14, MONEY(0, 90), SPR_SHOP_ITEM_BALLOON, { STR_SHOP_ITEM_PRICE_LABEL_BALLOON, STR_SHOP_ITEM_SINGULAR_BALLOON, STR_SHOP_ITEM_PLURAL_BALLOON, STR_SHOP_ITEM_INDEFINITE_BALLOON, STR_SHOP_ITEM_DISPLAY_BALLOON }, SHOP_ITEM_FLAG_IS_SOUVENIR },
|
||||
/* SHOP_ITEM_TOY */ { 15, 30, 30, 30, MONEY(2, 50), SPR_SHOP_ITEM_TOY, { STR_SHOP_ITEM_PRICE_LABEL_CUDDLY_TOY, STR_SHOP_ITEM_SINGULAR_CUDDLY_TOY, STR_SHOP_ITEM_PLURAL_CUDDLY_TOY, STR_SHOP_ITEM_INDEFINITE_CUDDLY_TOY, STR_SHOP_ITEM_DISPLAY_CUDDLY_TOY }, SHOP_ITEM_FLAG_IS_SOUVENIR },
|
||||
/* SHOP_ITEM_MAP */ { 1, 7, 7, 8, MONEY(0, 60), SPR_SHOP_ITEM_MAP, { STR_SHOP_ITEM_PRICE_LABEL_PARK_MAP, STR_SHOP_ITEM_SINGULAR_PARK_MAP, STR_SHOP_ITEM_PLURAL_PARK_MAP, STR_SHOP_ITEM_INDEFINITE_PARK_MAP, STR_SHOP_ITEM_DISPLAY_PARK_MAP }, SHOP_ITEM_FLAG_IS_SOUVENIR },
|
||||
/* SHOP_ITEM_PHOTO */ { 2, 30, 30, 30, MONEY(0, 00), SPR_SHOP_ITEM_PHOTO, { STR_SHOP_ITEM_PRICE_LABEL_ON_RIDE_PHOTO, STR_SHOP_ITEM_SINGULAR_ON_RIDE_PHOTO, STR_SHOP_ITEM_PLURAL_ON_RIDE_PHOTO, STR_SHOP_ITEM_INDEFINITE_ON_RIDE_PHOTO, STR_SHOP_ITEM_DISPLAY_ON_RIDE_PHOTO }, SHOP_ITEM_FLAG_IS_PHOTO | SHOP_ITEM_FLAG_IS_SOUVENIR },
|
||||
/* SHOP_ITEM_UMBRELLA */ { 20, 35, 25, 50, MONEY(2, 50), SPR_SHOP_ITEM_UMBRELLA, { STR_SHOP_ITEM_PRICE_LABEL_UMBRELLA, STR_SHOP_ITEM_SINGULAR_UMBRELLA, STR_SHOP_ITEM_PLURAL_UMBRELLA, STR_SHOP_ITEM_INDEFINITE_UMBRELLA, STR_SHOP_ITEM_DISPLAY_UMBRELLA }, SHOP_ITEM_FLAG_IS_SOUVENIR },
|
||||
/* SHOP_ITEM_DRINK */ { 3, 12, 20, 10, MONEY(1, 20), SPR_SHOP_ITEM_DRINK, { STR_SHOP_ITEM_PRICE_LABEL_DRINK, STR_SHOP_ITEM_SINGULAR_DRINK, STR_SHOP_ITEM_PLURAL_DRINK, STR_SHOP_ITEM_INDEFINITE_DRINK, STR_SHOP_ITEM_DISPLAY_DRINK }, SHOP_ITEM_FLAG_IS_DRINK },
|
||||
/* SHOP_ITEM_BURGER */ { 5, 19, 19, 22, MONEY(1, 50), SPR_SHOP_ITEM_BURGER, { STR_SHOP_ITEM_PRICE_LABEL_BURGER, STR_SHOP_ITEM_SINGULAR_BURGER, STR_SHOP_ITEM_PLURAL_BURGER, STR_SHOP_ITEM_INDEFINITE_BURGER, STR_SHOP_ITEM_DISPLAY_BURGER }, SHOP_ITEM_FLAG_IS_FOOD },
|
||||
/* SHOP_ITEM_CHIPS */ { 4, 16, 16, 18, MONEY(1, 50), SPR_SHOP_ITEM_CHIPS, { STR_SHOP_ITEM_PRICE_LABEL_CHIPS, STR_SHOP_ITEM_SINGULAR_CHIPS, STR_SHOP_ITEM_PLURAL_CHIPS, STR_SHOP_ITEM_INDEFINITE_CHIPS, STR_SHOP_ITEM_DISPLAY_CHIPS }, SHOP_ITEM_FLAG_IS_FOOD },
|
||||
/* SHOP_ITEM_ICE_CREAM */ { 4, 10, 15, 6, MONEY(0, 90), SPR_SHOP_ITEM_ICE_CREAM, { STR_SHOP_ITEM_PRICE_LABEL_ICE_CREAM, STR_SHOP_ITEM_SINGULAR_ICE_CREAM, STR_SHOP_ITEM_PLURAL_ICE_CREAM, STR_SHOP_ITEM_INDEFINITE_ICE_CREAM, STR_SHOP_ITEM_DISPLAY_ICE_CREAM }, SHOP_ITEM_FLAG_IS_FOOD },
|
||||
/* SHOP_ITEM_CANDYFLOSS */ { 3, 9, 9, 6, MONEY(0, 80), SPR_SHOP_ITEM_CANDYFLOSS, { STR_SHOP_ITEM_PRICE_LABEL_CANDYFLOSS, STR_SHOP_ITEM_SINGULAR_CANDYFLOSS, STR_SHOP_ITEM_PLURAL_CANDYFLOSS, STR_SHOP_ITEM_INDEFINITE_CANDYFLOSS, STR_SHOP_ITEM_DISPLAY_CANDYFLOSS }, SHOP_ITEM_FLAG_IS_FOOD },
|
||||
/* SHOP_ITEM_EMPTY_CAN */ { 0, 0, 0, 0, MONEY(0, 00), SPR_SHOP_ITEM_EMPTY_CAN, { STR_SHOP_ITEM_PRICE_LABEL_EMPTY_CAN, STR_SHOP_ITEM_SINGULAR_EMPTY_CAN, STR_SHOP_ITEM_PLURAL_EMPTY_CAN, STR_SHOP_ITEM_INDEFINITE_EMPTY_CAN, STR_SHOP_ITEM_DISPLAY_EMPTY_CAN }, 0 },
|
||||
/* SHOP_ITEM_RUBBISH */ { 0, 0, 0, 0, MONEY(0, 00), SPR_SHOP_ITEM_RUBBISH, { STR_SHOP_ITEM_PRICE_LABEL_RUBBISH, STR_SHOP_ITEM_SINGULAR_RUBBISH, STR_SHOP_ITEM_PLURAL_RUBBISH, STR_SHOP_ITEM_INDEFINITE_RUBBISH, STR_SHOP_ITEM_DISPLAY_RUBBISH }, 0 },
|
||||
/* SHOP_ITEM_EMPTY_BURGER_BOX */ { 0, 0, 0, 0, MONEY(0, 00), SPR_SHOP_ITEM_EMPTY_BURGER_BOX, { STR_SHOP_ITEM_PRICE_LABEL_EMPTY_BURGER_BOX, STR_SHOP_ITEM_SINGULAR_EMPTY_BURGER_BOX, STR_SHOP_ITEM_PLURAL_EMPTY_BURGER_BOX, STR_SHOP_ITEM_INDEFINITE_EMPTY_BURGER_BOX, STR_SHOP_ITEM_DISPLAY_EMPTY_BURGER_BOX }, 0 },
|
||||
/* SHOP_ITEM_PIZZA */ { 6, 21, 21, 25, MONEY(1, 60), SPR_SHOP_ITEM_PIZZA, { STR_SHOP_ITEM_PRICE_LABEL_PIZZA, STR_SHOP_ITEM_SINGULAR_PIZZA, STR_SHOP_ITEM_PLURAL_PIZZA, STR_SHOP_ITEM_INDEFINITE_PIZZA, STR_SHOP_ITEM_DISPLAY_PIZZA }, SHOP_ITEM_FLAG_IS_FOOD },
|
||||
/* SHOP_ITEM_VOUCHER */ { 0, 0, 0, 0, MONEY(0, 00), SPR_SHOP_ITEM_VOUCHER, { STR_SHOP_ITEM_PRICE_LABEL_VOUCHER, STR_SHOP_ITEM_SINGULAR_VOUCHER, STR_SHOP_ITEM_PLURAL_VOUCHER, STR_SHOP_ITEM_INDEFINITE_VOUCHER, STR_SHOP_ITEM_DISPLAY_VOUCHER }, 0 },
|
||||
/* SHOP_ITEM_POPCORN */ { 5, 13, 13, 11, MONEY(1, 20), SPR_SHOP_ITEM_POPCORN, { STR_SHOP_ITEM_PRICE_LABEL_POPCORN, STR_SHOP_ITEM_SINGULAR_POPCORN, STR_SHOP_ITEM_PLURAL_POPCORN, STR_SHOP_ITEM_INDEFINITE_POPCORN, STR_SHOP_ITEM_DISPLAY_POPCORN }, SHOP_ITEM_FLAG_IS_FOOD },
|
||||
/* SHOP_ITEM_HOT_DOG */ { 5, 17, 17, 20, MONEY(1, 00), SPR_SHOP_ITEM_HOT_DOG, { STR_SHOP_ITEM_PRICE_LABEL_HOT_DOG, STR_SHOP_ITEM_SINGULAR_HOT_DOG, STR_SHOP_ITEM_PLURAL_HOT_DOG, STR_SHOP_ITEM_INDEFINITE_HOT_DOG, STR_SHOP_ITEM_DISPLAY_HOT_DOG }, SHOP_ITEM_FLAG_IS_FOOD },
|
||||
/* SHOP_ITEM_TENTACLE */ { 11, 22, 20, 18, MONEY(1, 50), SPR_SHOP_ITEM_TENTACLE, { STR_SHOP_ITEM_PRICE_LABEL_TENTACLE, STR_SHOP_ITEM_SINGULAR_TENTACLE, STR_SHOP_ITEM_PLURAL_TENTACLE, STR_SHOP_ITEM_INDEFINITE_TENTACLE, STR_SHOP_ITEM_DISPLAY_TENTACLE }, SHOP_ITEM_FLAG_IS_FOOD },
|
||||
/* SHOP_ITEM_HAT */ { 9, 27, 32, 24, MONEY(1, 50), SPR_SHOP_ITEM_HAT, { STR_SHOP_ITEM_PRICE_LABEL_HAT, STR_SHOP_ITEM_SINGULAR_HAT, STR_SHOP_ITEM_PLURAL_HAT, STR_SHOP_ITEM_INDEFINITE_HAT, STR_SHOP_ITEM_DISPLAY_HAT }, SHOP_ITEM_FLAG_IS_SOUVENIR },
|
||||
/* SHOP_ITEM_TOFFEE_APPLE */ { 4, 10, 10, 10, MONEY(0, 70), SPR_SHOP_ITEM_TOFFEE_APPLE, { STR_SHOP_ITEM_PRICE_LABEL_TOFFEE_APPLE, STR_SHOP_ITEM_SINGULAR_TOFFEE_APPLE, STR_SHOP_ITEM_PLURAL_TOFFEE_APPLE, STR_SHOP_ITEM_INDEFINITE_TOFFEE_APPLE, STR_SHOP_ITEM_DISPLAY_TOFFEE_APPLE }, SHOP_ITEM_FLAG_IS_FOOD },
|
||||
/* SHOP_ITEM_TSHIRT */ { 20, 37, 37, 37, MONEY(3, 00), SPR_SHOP_ITEM_TSHIRT, { STR_SHOP_ITEM_PRICE_LABEL_T_SHIRT, STR_SHOP_ITEM_SINGULAR_T_SHIRT, STR_SHOP_ITEM_PLURAL_T_SHIRT, STR_SHOP_ITEM_INDEFINITE_T_SHIRT, STR_SHOP_ITEM_DISPLAY_T_SHIRT }, SHOP_ITEM_FLAG_IS_SOUVENIR },
|
||||
/* SHOP_ITEM_DOUGHNUT */ { 4, 8, 7, 10, MONEY(0, 70), SPR_SHOP_ITEM_DOUGHNUT, { STR_SHOP_ITEM_PRICE_LABEL_DOUGHNUT, STR_SHOP_ITEM_SINGULAR_DOUGHNUT, STR_SHOP_ITEM_PLURAL_DOUGHNUT, STR_SHOP_ITEM_INDEFINITE_DOUGHNUT, STR_SHOP_ITEM_DISPLAY_DOUGHNUT }, SHOP_ITEM_FLAG_IS_FOOD },
|
||||
/* SHOP_ITEM_COFFEE */ { 3, 11, 15, 20, MONEY(1, 20), SPR_SHOP_ITEM_COFFEE, { STR_SHOP_ITEM_PRICE_LABEL_COFFEE, STR_SHOP_ITEM_SINGULAR_COFFEE, STR_SHOP_ITEM_PLURAL_COFFEE, STR_SHOP_ITEM_INDEFINITE_COFFEE, STR_SHOP_ITEM_DISPLAY_COFFEE }, SHOP_ITEM_FLAG_IS_DRINK },
|
||||
/* SHOP_ITEM_EMPTY_CUP */ { 0, 0, 0, 0, MONEY(0, 00), SPR_SHOP_ITEM_EMPTY_CUP, { STR_SHOP_ITEM_PRICE_LABEL_EMPTY_CUP, STR_SHOP_ITEM_SINGULAR_EMPTY_CUP, STR_SHOP_ITEM_PLURAL_EMPTY_CUP, STR_SHOP_ITEM_INDEFINITE_EMPTY_CUP, STR_SHOP_ITEM_DISPLAY_EMPTY_CUP }, 0 },
|
||||
/* SHOP_ITEM_CHICKEN */ { 5, 19, 19, 22, MONEY(1, 50), SPR_SHOP_ITEM_CHICKEN, { STR_SHOP_ITEM_PRICE_LABEL_FRIED_CHICKEN, STR_SHOP_ITEM_SINGULAR_FRIED_CHICKEN, STR_SHOP_ITEM_PLURAL_FRIED_CHICKEN, STR_SHOP_ITEM_INDEFINITE_FRIED_CHICKEN, STR_SHOP_ITEM_DISPLAY_FRIED_CHICKEN }, SHOP_ITEM_FLAG_IS_FOOD },
|
||||
/* SHOP_ITEM_LEMONADE */ { 4, 11, 21, 10, MONEY(1, 20), SPR_SHOP_ITEM_LEMONADE, { STR_SHOP_ITEM_PRICE_LABEL_LEMONADE, STR_SHOP_ITEM_SINGULAR_LEMONADE, STR_SHOP_ITEM_PLURAL_LEMONADE, STR_SHOP_ITEM_INDEFINITE_LEMONADE, STR_SHOP_ITEM_DISPLAY_LEMONADE }, SHOP_ITEM_FLAG_IS_DRINK },
|
||||
/* SHOP_ITEM_EMPTY_BOX */ { 0, 0, 0, 0, MONEY(0, 00), SPR_SHOP_ITEM_EMPTY_BOX, { STR_SHOP_ITEM_PRICE_LABEL_EMPTY_BOX, STR_SHOP_ITEM_SINGULAR_EMPTY_BOX, STR_SHOP_ITEM_PLURAL_EMPTY_BOX, STR_SHOP_ITEM_INDEFINITE_EMPTY_BOX, STR_SHOP_ITEM_DISPLAY_EMPTY_BOX }, 0 },
|
||||
/* SHOP_ITEM_EMPTY_BOTTLE */ { 0, 0, 0, 0, MONEY(0, 00), SPR_SHOP_ITEM_EMPTY_BOTTLE, { STR_SHOP_ITEM_PRICE_LABEL_EMPTY_BOTTLE, STR_SHOP_ITEM_SINGULAR_EMPTY_BOTTLE, STR_SHOP_ITEM_PLURAL_EMPTY_BOTTLE, STR_SHOP_ITEM_INDEFINITE_EMPTY_BOTTLE, STR_SHOP_ITEM_DISPLAY_EMPTY_BOTTLE }, 0 },
|
||||
/* 28 */ { 0, 0, 0, 0, MONEY(0, 00), 0, { STR_NONE, STR_NONE, STR_NONE, STR_NONE, STR_NONE }, 0 },
|
||||
/* 29 */ { 0, 0, 0, 0, MONEY(0, 00), 0, { STR_NONE, STR_NONE, STR_NONE, STR_NONE, STR_NONE }, 0 },
|
||||
/* 30 */ { 0, 0, 0, 0, MONEY(0, 00), 0, { STR_NONE, STR_NONE, STR_NONE, STR_NONE, STR_NONE }, 0 },
|
||||
/* SHOP_ITEM_ADMISSION */ { 0, 0, 0, 0, MONEY(0, 00), 0, { STR_NONE, STR_NONE, STR_NONE, STR_NONE, STR_NONE }, 0 },
|
||||
/* SHOP_ITEM_PHOTO2 */ { 2, 30, 30, 30, MONEY(0, 00), SPR_SHOP_ITEM_PHOTO2, { STR_SHOP_ITEM_PRICE_LABEL_ON_RIDE_PHOTO, STR_SHOP_ITEM_SINGULAR_ON_RIDE_PHOTO, STR_SHOP_ITEM_PLURAL_ON_RIDE_PHOTO, STR_SHOP_ITEM_INDEFINITE_ON_RIDE_PHOTO, STR_SHOP_ITEM_DISPLAY_ON_RIDE_PHOTO }, SHOP_ITEM_FLAG_IS_PHOTO | SHOP_ITEM_FLAG_IS_SOUVENIR },
|
||||
/* SHOP_ITEM_PHOTO3 */ { 2, 30, 30, 30, MONEY(0, 00), SPR_SHOP_ITEM_PHOTO3, { STR_SHOP_ITEM_PRICE_LABEL_ON_RIDE_PHOTO, STR_SHOP_ITEM_SINGULAR_ON_RIDE_PHOTO, STR_SHOP_ITEM_PLURAL_ON_RIDE_PHOTO, STR_SHOP_ITEM_INDEFINITE_ON_RIDE_PHOTO, STR_SHOP_ITEM_DISPLAY_ON_RIDE_PHOTO }, SHOP_ITEM_FLAG_IS_PHOTO | SHOP_ITEM_FLAG_IS_SOUVENIR },
|
||||
/* SHOP_ITEM_PHOTO4 */ { 2, 30, 30, 30, MONEY(0, 00), SPR_SHOP_ITEM_PHOTO4, { STR_SHOP_ITEM_PRICE_LABEL_ON_RIDE_PHOTO, STR_SHOP_ITEM_SINGULAR_ON_RIDE_PHOTO, STR_SHOP_ITEM_PLURAL_ON_RIDE_PHOTO, STR_SHOP_ITEM_INDEFINITE_ON_RIDE_PHOTO, STR_SHOP_ITEM_DISPLAY_ON_RIDE_PHOTO }, SHOP_ITEM_FLAG_IS_PHOTO | SHOP_ITEM_FLAG_IS_SOUVENIR },
|
||||
/* SHOP_ITEM_PRETZEL */ { 5, 11, 11, 11, MONEY(1, 10), SPR_SHOP_ITEM_PRETZEL, { STR_SHOP_ITEM_PRICE_LABEL_PRETZEL, STR_SHOP_ITEM_SINGULAR_PRETZEL, STR_SHOP_ITEM_PLURAL_PRETZEL, STR_SHOP_ITEM_INDEFINITE_PRETZEL, STR_SHOP_ITEM_DISPLAY_PRETZEL }, SHOP_ITEM_FLAG_IS_FOOD },
|
||||
/* SHOP_ITEM_CHOCOLATE */ { 4, 13, 13, 20, MONEY(1, 20), SPR_SHOP_ITEM_CHOCOLATE, { STR_SHOP_ITEM_PRICE_LABEL_HOT_CHOCOLATE, STR_SHOP_ITEM_SINGULAR_HOT_CHOCOLATE, STR_SHOP_ITEM_PLURAL_HOT_CHOCOLATE, STR_SHOP_ITEM_INDEFINITE_HOT_CHOCOLATE, STR_SHOP_ITEM_DISPLAY_HOT_CHOCOLATE }, SHOP_ITEM_FLAG_IS_DRINK },
|
||||
/* SHOP_ITEM_ICED_TEA */ { 3, 10, 20, 10, MONEY(1, 10), SPR_SHOP_ITEM_ICED_TEA, { STR_SHOP_ITEM_PRICE_LABEL_ICED_TEA, STR_SHOP_ITEM_SINGULAR_ICED_TEA, STR_SHOP_ITEM_PLURAL_ICED_TEA, STR_SHOP_ITEM_INDEFINITE_ICED_TEA, STR_SHOP_ITEM_DISPLAY_ICED_TEA }, SHOP_ITEM_FLAG_IS_DRINK },
|
||||
/* SHOP_ITEM_FUNNEL_CAKE */ { 5, 13, 11, 14, MONEY(1, 20), SPR_SHOP_ITEM_FUNNEL_CAKE, { STR_SHOP_ITEM_PRICE_LABEL_FUNNEL_CAKE, STR_SHOP_ITEM_SINGULAR_FUNNEL_CAKE, STR_SHOP_ITEM_PLURAL_FUNNEL_CAKE, STR_SHOP_ITEM_INDEFINITE_FUNNEL_CAKE, STR_SHOP_ITEM_DISPLAY_FUNNEL_CAKE }, SHOP_ITEM_FLAG_IS_FOOD },
|
||||
/* SHOP_ITEM_SUNGLASSES */ { 8, 15, 20, 12, MONEY(1, 50), SPR_SHOP_ITEM_SUNGLASSES, { STR_SHOP_ITEM_PRICE_LABEL_SUNGLASSES, STR_SHOP_ITEM_SINGULAR_SUNGLASSES, STR_SHOP_ITEM_PLURAL_SUNGLASSES, STR_SHOP_ITEM_INDEFINITE_SUNGLASSES, STR_SHOP_ITEM_DISPLAY_SUNGLASSES }, SHOP_ITEM_FLAG_IS_SOUVENIR },
|
||||
/* SHOP_ITEM_BEEF_NOODLES */ { 7, 17, 17, 20, MONEY(1, 50), SPR_SHOP_ITEM_BEEF_NOODLES, { STR_SHOP_ITEM_PRICE_LABEL_BEEF_NOODLES, STR_SHOP_ITEM_SINGULAR_BEEF_NOODLES, STR_SHOP_ITEM_PLURAL_BEEF_NOODLES, STR_SHOP_ITEM_INDEFINITE_BEEF_NOODLES, STR_SHOP_ITEM_DISPLAY_BEEF_NOODLES }, SHOP_ITEM_FLAG_IS_FOOD },
|
||||
/* SHOP_ITEM_FRIED_RICE_NOODLES */ { 6, 17, 17, 20, MONEY(1, 50), SPR_SHOP_ITEM_FRIED_RICE_NOODLES, { STR_SHOP_ITEM_PRICE_LABEL_FRIED_RICE_NOODLES, STR_SHOP_ITEM_SINGULAR_FRIED_RICE_NOODLES, STR_SHOP_ITEM_PLURAL_FRIED_RICE_NOODLES, STR_SHOP_ITEM_INDEFINITE_FRIED_RICE_NOODLES, STR_SHOP_ITEM_DISPLAY_FRIED_RICE_NOODLES }, SHOP_ITEM_FLAG_IS_FOOD },
|
||||
/* SHOP_ITEM_WONTON_SOUP */ { 4, 13, 13, 15, MONEY(1, 50), SPR_SHOP_ITEM_WONTON_SOUP, { STR_SHOP_ITEM_PRICE_LABEL_WONTON_SOUP, STR_SHOP_ITEM_SINGULAR_WONTON_SOUP, STR_SHOP_ITEM_PLURAL_WONTON_SOUP, STR_SHOP_ITEM_INDEFINITE_WONTON_SOUP, STR_SHOP_ITEM_DISPLAY_WONTON_SOUP }, SHOP_ITEM_FLAG_IS_FOOD },
|
||||
/* SHOP_ITEM_MEATBALL_SOUP */ { 5, 14, 14, 16, MONEY(1, 50), SPR_SHOP_ITEM_MEATBALL_SOUP, { STR_SHOP_ITEM_PRICE_LABEL_MEATBALL_SOUP, STR_SHOP_ITEM_SINGULAR_MEATBALL_SOUP, STR_SHOP_ITEM_PLURAL_MEATBALL_SOUP, STR_SHOP_ITEM_INDEFINITE_MEATBALL_SOUP, STR_SHOP_ITEM_DISPLAY_MEATBALL_SOUP }, SHOP_ITEM_FLAG_IS_FOOD },
|
||||
/* SHOP_ITEM_FRUIT_JUICE */ { 4, 11, 19, 11, MONEY(1, 20), SPR_SHOP_ITEM_FRUIT_JUICE, { STR_SHOP_ITEM_PRICE_LABEL_FRUIT_JUICE, STR_SHOP_ITEM_SINGULAR_FRUIT_JUICE, STR_SHOP_ITEM_PLURAL_FRUIT_JUICE, STR_SHOP_ITEM_INDEFINITE_FRUIT_JUICE, STR_SHOP_ITEM_DISPLAY_FRUIT_JUICE }, SHOP_ITEM_FLAG_IS_DRINK },
|
||||
/* SHOP_ITEM_SOYBEAN_MILK */ { 4, 10, 14, 10, MONEY(1, 20), SPR_SHOP_ITEM_SOYBEAN_MILK, { STR_SHOP_ITEM_PRICE_LABEL_SOYBEAN_MILK, STR_SHOP_ITEM_SINGULAR_SOYBEAN_MILK, STR_SHOP_ITEM_PLURAL_SOYBEAN_MILK, STR_SHOP_ITEM_INDEFINITE_SOYBEAN_MILK, STR_SHOP_ITEM_DISPLAY_SOYBEAN_MILK }, SHOP_ITEM_FLAG_IS_DRINK },
|
||||
/* SHOP_ITEM_SUJEONGGWA */ { 3, 11, 14, 11, MONEY(1, 20), SPR_SHOP_ITEM_SUJEONGGWA, { STR_SHOP_ITEM_PRICE_LABEL_SUJONGKWA, STR_SHOP_ITEM_SINGULAR_SUJONGKWA, STR_SHOP_ITEM_PLURAL_SUJONGKWA, STR_SHOP_ITEM_INDEFINITE_SUJONGKWA, STR_SHOP_ITEM_DISPLAY_SUJONGKWA }, SHOP_ITEM_FLAG_IS_DRINK },
|
||||
/* SHOP_ITEM_SUB_SANDWICH */ { 5, 19, 19, 17, MONEY(1, 50), SPR_SHOP_ITEM_SUB_SANDWICH, { STR_SHOP_ITEM_PRICE_LABEL_SUB_SANDWICH, STR_SHOP_ITEM_SINGULAR_SUB_SANDWICH, STR_SHOP_ITEM_PLURAL_SUB_SANDWICH, STR_SHOP_ITEM_INDEFINITE_SUB_SANDWICH, STR_SHOP_ITEM_DISPLAY_SUB_SANDWICH }, SHOP_ITEM_FLAG_IS_FOOD },
|
||||
/* SHOP_ITEM_COOKIE */ { 4, 8, 8, 8, MONEY(0, 70), SPR_SHOP_ITEM_COOKIE, { STR_SHOP_ITEM_PRICE_LABEL_COOKIE, STR_SHOP_ITEM_SINGULAR_COOKIE, STR_SHOP_ITEM_PLURAL_COOKIE, STR_SHOP_ITEM_INDEFINITE_COOKIE, STR_SHOP_ITEM_DISPLAY_COOKIE }, SHOP_ITEM_FLAG_IS_FOOD },
|
||||
/* SHOP_ITEM_EMPTY_BOWL_RED */ { 0, 0, 0, 0, MONEY(0, 00), SPR_SHOP_ITEM_EMPTY_BOWL_RED, { STR_SHOP_ITEM_PRICE_LABEL_EMPTY_BOWL_RED, STR_SHOP_ITEM_SINGULAR_EMPTY_BOWL_RED, STR_SHOP_ITEM_PLURAL_EMPTY_BOWL_RED, STR_SHOP_ITEM_INDEFINITE_EMPTY_BOWL_RED, STR_SHOP_ITEM_DISPLAY_EMPTY_BOWL_RED }, 0 },
|
||||
/* SHOP_ITEM_EMPTY_DRINK_CARTON */ { 0, 0, 0, 0, MONEY(0, 00), SPR_SHOP_ITEM_EMPTY_DRINK_CARTON, { STR_SHOP_ITEM_PRICE_LABEL_EMPTY_DRINK_CARTON, STR_SHOP_ITEM_SINGULAR_EMPTY_DRINK_CARTON, STR_SHOP_ITEM_PLURAL_EMPTY_DRINK_CARTON, STR_SHOP_ITEM_INDEFINITE_EMPTY_DRINK_CARTON, STR_SHOP_ITEM_DISPLAY_EMPTY_DRINK_CARTON }, 0 },
|
||||
/* SHOP_ITEM_EMPTY_JUICE_CUP */ { 0, 0, 0, 0, MONEY(0, 00), SPR_SHOP_ITEM_EMPTY_JUICE_CUP, { STR_SHOP_ITEM_PRICE_LABEL_EMPTY_JUICE_CUP, STR_SHOP_ITEM_SINGULAR_EMPTY_JUICE_CUP, STR_SHOP_ITEM_PLURAL_EMPTY_JUICE_CUP, STR_SHOP_ITEM_INDEFINITE_EMPTY_JUICE_CUP, STR_SHOP_ITEM_DISPLAY_EMPTY_JUICE_CUP }, 0 },
|
||||
/* SHOP_ITEM_ROAST_SAUSAGE */ { 5, 16, 16, 20, MONEY(1, 50), SPR_SHOP_ITEM_ROAST_SAUSAGE, { STR_SHOP_ITEM_PRICE_LABEL_ROAST_SAUSAGE, STR_SHOP_ITEM_SINGULAR_ROAST_SAUSAGE, STR_SHOP_ITEM_PLURAL_ROAST_SAUSAGE, STR_SHOP_ITEM_INDEFINITE_ROAST_SAUSAGE, STR_SHOP_ITEM_DISPLAY_ROAST_SAUSAGE }, SHOP_ITEM_FLAG_IS_FOOD },
|
||||
/* SHOP_ITEM_EMPTY_BOWL_BLUE */ { 0, 0, 0, 0, MONEY(0, 00), SPR_SHOP_ITEM_EMPTY_BOWL_BLUE, { STR_SHOP_ITEM_PRICE_LABEL_EMPTY_BOWL_BLUE, STR_SHOP_ITEM_SINGULAR_EMPTY_BOWL_BLUE, STR_SHOP_ITEM_PLURAL_EMPTY_BOWL_BLUE, STR_SHOP_ITEM_INDEFINITE_EMPTY_BOWL_BLUE, STR_SHOP_ITEM_DISPLAY_EMPTY_BOWL_BLUE }, 0 },
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
money32 shop_item_get_common_price(Ride* forRide, int32_t shopItem)
|
||||
money32 shop_item_get_common_price(Ride* forRide, const int32_t shopItem)
|
||||
{
|
||||
for (const auto& ride : GetRideManager())
|
||||
{
|
||||
|
@ -87,17 +87,17 @@ money32 shop_item_get_common_price(Ride* forRide, int32_t shopItem)
|
|||
{
|
||||
continue;
|
||||
}
|
||||
if (rideEntry->shop_item == shopItem)
|
||||
if (rideEntry->shop_item[0] == shopItem)
|
||||
{
|
||||
return ride.price;
|
||||
return ride.price[0];
|
||||
}
|
||||
if (rideEntry->shop_item_secondary == shopItem)
|
||||
if (rideEntry->shop_item[1] == shopItem)
|
||||
{
|
||||
return ride.price_secondary;
|
||||
return ride.price[1];
|
||||
}
|
||||
if (shop_item_is_photo(shopItem) && (ride.lifecycle_flags & RIDE_LIFECYCLE_ON_RIDE_PHOTO))
|
||||
if (ShopItems[shopItem].IsPhoto() && (ride.lifecycle_flags & RIDE_LIFECYCLE_ON_RIDE_PHOTO))
|
||||
{
|
||||
return ride.price_secondary;
|
||||
return ride.price[1];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -105,121 +105,37 @@ money32 shop_item_get_common_price(Ride* forRide, int32_t shopItem)
|
|||
return MONEY32_UNDEFINED;
|
||||
}
|
||||
|
||||
bool shop_item_is_photo(int32_t shopItem)
|
||||
{
|
||||
return (
|
||||
shopItem == SHOP_ITEM_PHOTO || shopItem == SHOP_ITEM_PHOTO2 || shopItem == SHOP_ITEM_PHOTO3
|
||||
|| shopItem == SHOP_ITEM_PHOTO4);
|
||||
}
|
||||
|
||||
bool shop_item_has_common_price(int32_t shopItem)
|
||||
bool shop_item_has_common_price(const int32_t shopItem)
|
||||
{
|
||||
return (gSamePriceThroughoutPark & (1ULL << shopItem)) != 0;
|
||||
}
|
||||
|
||||
bool shop_item_is_food_or_drink(int32_t shopItem)
|
||||
bool ShopItemDescriptor::HasFlag(const uint16_t flag) const
|
||||
{
|
||||
switch (shopItem)
|
||||
{
|
||||
case SHOP_ITEM_DRINK:
|
||||
case SHOP_ITEM_BURGER:
|
||||
case SHOP_ITEM_CHIPS:
|
||||
case SHOP_ITEM_ICE_CREAM:
|
||||
case SHOP_ITEM_CANDYFLOSS:
|
||||
case SHOP_ITEM_PIZZA:
|
||||
case SHOP_ITEM_POPCORN:
|
||||
case SHOP_ITEM_HOT_DOG:
|
||||
case SHOP_ITEM_TENTACLE:
|
||||
case SHOP_ITEM_TOFFEE_APPLE:
|
||||
case SHOP_ITEM_DOUGHNUT:
|
||||
case SHOP_ITEM_COFFEE:
|
||||
case SHOP_ITEM_CHICKEN:
|
||||
case SHOP_ITEM_LEMONADE:
|
||||
case SHOP_ITEM_PRETZEL:
|
||||
case SHOP_ITEM_CHOCOLATE:
|
||||
case SHOP_ITEM_ICED_TEA:
|
||||
case SHOP_ITEM_FUNNEL_CAKE:
|
||||
case SHOP_ITEM_BEEF_NOODLES:
|
||||
case SHOP_ITEM_FRIED_RICE_NOODLES:
|
||||
case SHOP_ITEM_WONTON_SOUP:
|
||||
case SHOP_ITEM_MEATBALL_SOUP:
|
||||
case SHOP_ITEM_FRUIT_JUICE:
|
||||
case SHOP_ITEM_SOYBEAN_MILK:
|
||||
case SHOP_ITEM_SUJEONGGWA:
|
||||
case SHOP_ITEM_SUB_SANDWICH:
|
||||
case SHOP_ITEM_COOKIE:
|
||||
case SHOP_ITEM_ROAST_SAUSAGE:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
return (Flags & flag) != 0;
|
||||
}
|
||||
|
||||
bool shop_item_is_food(int32_t shopItem)
|
||||
bool ShopItemDescriptor::IsFood() const
|
||||
{
|
||||
switch (shopItem)
|
||||
{
|
||||
case SHOP_ITEM_BURGER:
|
||||
case SHOP_ITEM_CHIPS:
|
||||
case SHOP_ITEM_ICE_CREAM:
|
||||
case SHOP_ITEM_CANDYFLOSS:
|
||||
case SHOP_ITEM_PIZZA:
|
||||
case SHOP_ITEM_POPCORN:
|
||||
case SHOP_ITEM_HOT_DOG:
|
||||
case SHOP_ITEM_TENTACLE:
|
||||
case SHOP_ITEM_TOFFEE_APPLE:
|
||||
case SHOP_ITEM_DOUGHNUT:
|
||||
case SHOP_ITEM_CHICKEN:
|
||||
case SHOP_ITEM_PRETZEL:
|
||||
case SHOP_ITEM_FUNNEL_CAKE:
|
||||
case SHOP_ITEM_BEEF_NOODLES:
|
||||
case SHOP_ITEM_FRIED_RICE_NOODLES:
|
||||
case SHOP_ITEM_WONTON_SOUP:
|
||||
case SHOP_ITEM_MEATBALL_SOUP:
|
||||
case SHOP_ITEM_SUB_SANDWICH:
|
||||
case SHOP_ITEM_COOKIE:
|
||||
case SHOP_ITEM_ROAST_SAUSAGE:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
return HasFlag(SHOP_ITEM_FLAG_IS_FOOD);
|
||||
}
|
||||
|
||||
bool shop_item_is_drink(int32_t shopItem)
|
||||
bool ShopItemDescriptor::IsDrink() const
|
||||
{
|
||||
switch (shopItem)
|
||||
{
|
||||
case SHOP_ITEM_DRINK:
|
||||
case SHOP_ITEM_COFFEE:
|
||||
case SHOP_ITEM_LEMONADE:
|
||||
case SHOP_ITEM_CHOCOLATE:
|
||||
case SHOP_ITEM_ICED_TEA:
|
||||
case SHOP_ITEM_FRUIT_JUICE:
|
||||
case SHOP_ITEM_SOYBEAN_MILK:
|
||||
case SHOP_ITEM_SUJEONGGWA:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
return HasFlag(SHOP_ITEM_FLAG_IS_DRINK);
|
||||
}
|
||||
|
||||
bool shop_item_is_souvenir(int32_t shopItem)
|
||||
bool ShopItemDescriptor::IsFoodOrDrink() const
|
||||
{
|
||||
switch (shopItem)
|
||||
{
|
||||
case SHOP_ITEM_BALLOON:
|
||||
case SHOP_ITEM_TOY:
|
||||
case SHOP_ITEM_MAP:
|
||||
case SHOP_ITEM_PHOTO:
|
||||
case SHOP_ITEM_UMBRELLA:
|
||||
case SHOP_ITEM_HAT:
|
||||
case SHOP_ITEM_TSHIRT:
|
||||
case SHOP_ITEM_PHOTO2:
|
||||
case SHOP_ITEM_PHOTO3:
|
||||
case SHOP_ITEM_PHOTO4:
|
||||
case SHOP_ITEM_SUNGLASSES:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
return HasFlag(SHOP_ITEM_FLAG_IS_FOOD | SHOP_ITEM_FLAG_IS_DRINK);
|
||||
}
|
||||
|
||||
bool ShopItemDescriptor::IsSouvenir() const
|
||||
{
|
||||
return HasFlag(SHOP_ITEM_FLAG_IS_SOUVENIR);
|
||||
}
|
||||
|
||||
bool ShopItemDescriptor::IsPhoto() const
|
||||
{
|
||||
return HasFlag(SHOP_ITEM_FLAG_IS_PHOTO);
|
||||
}
|
||||
|
|
|
@ -88,15 +88,26 @@ struct ShopItemDescriptor
|
|||
money8 DefaultPrice;
|
||||
uint32_t Image;
|
||||
ShopItemStrings Naming;
|
||||
uint16_t Flags;
|
||||
|
||||
bool HasFlag(const uint16_t flag) const;
|
||||
bool IsFood() const;
|
||||
bool IsDrink() const;
|
||||
bool IsFoodOrDrink() const;
|
||||
bool IsSouvenir() const;
|
||||
bool IsPhoto() const;
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
SHOP_ITEM_FLAG_IS_FOOD = (1 << 0),
|
||||
SHOP_ITEM_FLAG_IS_DRINK = (1 << 1),
|
||||
SHOP_ITEM_FLAG_IS_SOUVENIR = (1 << 2),
|
||||
SHOP_ITEM_FLAG_IS_PHOTO = (1 << 3),
|
||||
};
|
||||
|
||||
extern const ShopItemDescriptor ShopItems[SHOP_ITEM_COUNT];
|
||||
extern uint64_t gSamePriceThroughoutPark;
|
||||
|
||||
money32 shop_item_get_common_price(Ride* forRide, int32_t shopItem);
|
||||
bool shop_item_is_photo(int32_t shopItem);
|
||||
bool shop_item_has_common_price(int32_t shopItem);
|
||||
bool shop_item_is_food_or_drink(int32_t shopItem);
|
||||
bool shop_item_is_food(int32_t shopItem);
|
||||
bool shop_item_is_drink(int32_t shopItem);
|
||||
bool shop_item_is_souvenir(int32_t shopItem);
|
||||
money32 shop_item_get_common_price(Ride* forRide, const int32_t shopItem);
|
||||
bool shop_item_has_common_price(const int32_t shopItem);
|
||||
|
|
|
@ -887,7 +887,7 @@ namespace OpenRCT2::Scripting
|
|||
auto entry = GetLegacyData();
|
||||
if (entry != nullptr)
|
||||
{
|
||||
return entry->shop_item;
|
||||
return entry->shop_item[0];
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
@ -897,7 +897,7 @@ namespace OpenRCT2::Scripting
|
|||
auto entry = GetLegacyData();
|
||||
if (entry != nullptr)
|
||||
{
|
||||
return entry->shop_item_secondary;
|
||||
return entry->shop_item[1];
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -540,7 +540,7 @@ money16 Park::CalculateTotalRideValueForMoney() const
|
|||
// Add ride value
|
||||
if (ride.value != RIDE_VALUE_UNDEFINED)
|
||||
{
|
||||
money16 rideValue = static_cast<money16>(ride.value - ride.price);
|
||||
money16 rideValue = static_cast<money16>(ride.value - ride.price[0]);
|
||||
if (rideValue > 0)
|
||||
{
|
||||
totalRideValue += rideValue * 2;
|
||||
|
|
Loading…
Reference in New Issue