refactor shop item strings

This commit is contained in:
IntelOrca 2015-08-05 19:17:37 +01:00
parent 19f94b54e1
commit 6b72f9a555
11 changed files with 459 additions and 175 deletions

View File

@ -114,7 +114,7 @@ const char *language_get_string(rct_string_id id)
if (_languageCurrent.num_strings > id)
openrctString = _languageCurrent.strings[id];
else if (_languageFallback.num_strings > id)
if (openrctString == NULL && _languageFallback.num_strings > id)
openrctString = _languageFallback.strings[id];
if (id >= STR_OPENRCT2_BEGIN_STRING_ID) {

View File

@ -731,6 +731,7 @@ enum {
STR_LAST_BREAKDOWN = 1808,
STR_CURRENT_BREAKDOWN = 1809,
STR_CARRYING = 1810,
STR_CANT_BUILD_PARK_ENTRANCE_HERE = 1811,
STR_ACTIONS = 1814,
@ -795,7 +796,7 @@ enum {
STR_INCOME_PER_HOUR = 1873,
STR_PROFIT_PER_HOUR = 1874,
STR_GUEST_ITEM_FORMAT = 1875,
STR_INSPECT_RIDES = 1876,
STR_FIX_RIDES = 1877,
STR_INSPECTION = 1878,
@ -877,10 +878,198 @@ enum {
STR_ALTERNATIVE_COLOUR_SCHEME_2 = 2973,
STR_ALTERNATIVE_COLOUR_SCHEME_3 = 2974,
STR_ITEM_START = 1988,
STR_ITEM_SINGULAR_START = 2044,
STR_ITEM2_START = 2090,
STR_ITEM2_SINGULAR_START = 2134,
STR_SHOP_ITEM_SINGULAR_BALLOON = 1988,
STR_SHOP_ITEM_SINGULAR_CUDDLY_TOY = 1989,
STR_SHOP_ITEM_SINGULAR_PARK_MAP = 1990,
STR_SHOP_ITEM_SINGULAR_ON_RIDE_PHOTO = 1991,
STR_SHOP_ITEM_SINGULAR_UMBRELLA = 1992,
STR_SHOP_ITEM_SINGULAR_DRINK = 1993,
STR_SHOP_ITEM_SINGULAR_BURGER = 1994,
STR_SHOP_ITEM_SINGULAR_CHIPS = 1995,
STR_SHOP_ITEM_SINGULAR_ICE_CREAM = 1996,
STR_SHOP_ITEM_SINGULAR_CANDYFLOSS = 1997,
STR_SHOP_ITEM_SINGULAR_EMPTY_CAN = 1998,
STR_SHOP_ITEM_SINGULAR_RUBBISH = 1999,
STR_SHOP_ITEM_SINGULAR_EMPTY_BURGER_BOX = 2000,
STR_SHOP_ITEM_SINGULAR_PIZZA = 2001,
STR_SHOP_ITEM_SINGULAR_VOUCHER = 2002,
STR_SHOP_ITEM_SINGULAR_POPCORN = 2003,
STR_SHOP_ITEM_SINGULAR_HOT_DOG = 2004,
STR_SHOP_ITEM_SINGULAR_TENTACLE = 2005,
STR_SHOP_ITEM_SINGULAR_HAT = 2006,
STR_SHOP_ITEM_SINGULAR_TOFFEE_APPLE = 2007,
STR_SHOP_ITEM_SINGULAR_T_SHIRT = 2008,
STR_SHOP_ITEM_SINGULAR_DOUGHNUT = 2009,
STR_SHOP_ITEM_SINGULAR_COFFEE = 2010,
STR_SHOP_ITEM_SINGULAR_EMPTY_CUP = 2011,
STR_SHOP_ITEM_SINGULAR_FRIED_CHICKEN = 2012,
STR_SHOP_ITEM_SINGULAR_LEMONADE = 2013,
STR_SHOP_ITEM_SINGULAR_EMPTY_BOX = 2014,
STR_SHOP_ITEM_SINGULAR_EMPTY_BOTTLE = 2015,
STR_SHOP_ITEM_SINGULAR_PRETZEL = 2125,
STR_SHOP_ITEM_SINGULAR_HOT_CHOCOLATE = 2126,
STR_SHOP_ITEM_SINGULAR_ICED_TEA = 2127,
STR_SHOP_ITEM_SINGULAR_FUNNEL_CAKE = 2128,
STR_SHOP_ITEM_SINGULAR_SUNGLASSES = 2129,
STR_SHOP_ITEM_SINGULAR_BEEF_NOODLES = 2130,
STR_SHOP_ITEM_SINGULAR_FRIED_RICE_NOODLES = 2131,
STR_SHOP_ITEM_SINGULAR_WONTON_SOUP = 2132,
STR_SHOP_ITEM_SINGULAR_MEATBALL_SOUP = 2133,
STR_SHOP_ITEM_SINGULAR_FRUIT_JUICE = 2134,
STR_SHOP_ITEM_SINGULAR_SOYBEAN_MILK = 2135,
STR_SHOP_ITEM_SINGULAR_SUJONGKWA = 2136,
STR_SHOP_ITEM_SINGULAR_SUB_SANDWICH = 2137,
STR_SHOP_ITEM_SINGULAR_COOKIE = 2138,
STR_SHOP_ITEM_SINGULAR_EMPTY_BOWL_RED = 2139,
STR_SHOP_ITEM_SINGULAR_EMPTY_DRINK_CARTON = 2140,
STR_SHOP_ITEM_SINGULAR_EMPTY_JUICE_CUP = 2141,
STR_SHOP_ITEM_SINGULAR_ROAST_SAUSAGE = 2142,
STR_SHOP_ITEM_SINGULAR_EMPTY_BOWL_BLUE = 2143,
STR_SHOP_ITEM_PLURAL_BALLOON = 2016,
STR_SHOP_ITEM_PLURAL_CUDDLY_TOY = 2017,
STR_SHOP_ITEM_PLURAL_PARK_MAP = 2018,
STR_SHOP_ITEM_PLURAL_ON_RIDE_PHOTO = 2019,
STR_SHOP_ITEM_PLURAL_UMBRELLA = 2020,
STR_SHOP_ITEM_PLURAL_DRINK = 2021,
STR_SHOP_ITEM_PLURAL_BURGER = 2022,
STR_SHOP_ITEM_PLURAL_CHIPS = 2023,
STR_SHOP_ITEM_PLURAL_ICE_CREAM = 2024,
STR_SHOP_ITEM_PLURAL_CANDYFLOSS = 2025,
STR_SHOP_ITEM_PLURAL_EMPTY_CAN = 2026,
STR_SHOP_ITEM_PLURAL_RUBBISH = 2027,
STR_SHOP_ITEM_PLURAL_EMPTY_BURGER_BOX = 2028,
STR_SHOP_ITEM_PLURAL_PIZZA = 2029,
STR_SHOP_ITEM_PLURAL_VOUCHER = 2030,
STR_SHOP_ITEM_PLURAL_POPCORN = 2031,
STR_SHOP_ITEM_PLURAL_HOT_DOG = 2032,
STR_SHOP_ITEM_PLURAL_TENTACLE = 2033,
STR_SHOP_ITEM_PLURAL_HAT = 2034,
STR_SHOP_ITEM_PLURAL_TOFFEE_APPLE = 2035,
STR_SHOP_ITEM_PLURAL_T_SHIRT = 2036,
STR_SHOP_ITEM_PLURAL_DOUGHNUT = 2037,
STR_SHOP_ITEM_PLURAL_COFFEE = 2038,
STR_SHOP_ITEM_PLURAL_EMPTY_CUP = 2039,
STR_SHOP_ITEM_PLURAL_FRIED_CHICKEN = 2040,
STR_SHOP_ITEM_PLURAL_LEMONADE = 2041,
STR_SHOP_ITEM_PLURAL_EMPTY_BOX = 2042,
STR_SHOP_ITEM_PLURAL_EMPTY_BOTTLE = 2043,
STR_SHOP_ITEM_PLURAL_PRETZEL = 2147,
STR_SHOP_ITEM_PLURAL_HOT_CHOCOLATE = 2148,
STR_SHOP_ITEM_PLURAL_ICED_TEA = 2149,
STR_SHOP_ITEM_PLURAL_FUNNEL_CAKE = 2150,
STR_SHOP_ITEM_PLURAL_SUNGLASSES = 2151,
STR_SHOP_ITEM_PLURAL_BEEF_NOODLES = 2152,
STR_SHOP_ITEM_PLURAL_FRIED_RICE_NOODLES = 2153,
STR_SHOP_ITEM_PLURAL_WONTON_SOUP = 2154,
STR_SHOP_ITEM_PLURAL_MEATBALL_SOUP = 2155,
STR_SHOP_ITEM_PLURAL_FRUIT_JUICE = 2156,
STR_SHOP_ITEM_PLURAL_SOYBEAN_MILK = 2157,
STR_SHOP_ITEM_PLURAL_SUJONGKWA = 2158,
STR_SHOP_ITEM_PLURAL_SUB_SANDWICH = 2159,
STR_SHOP_ITEM_PLURAL_COOKIE = 2160,
STR_SHOP_ITEM_PLURAL_EMPTY_BOWL_RED = 2161,
STR_SHOP_ITEM_PLURAL_EMPTY_DRINK_CARTON = 2162,
STR_SHOP_ITEM_PLURAL_EMPTY_JUICE_CUP = 2163,
STR_SHOP_ITEM_PLURAL_ROAST_SAUSAGE = 2164,
STR_SHOP_ITEM_PLURAL_EMPTY_BOWL_BLUE = 2165,
STR_SHOP_ITEM_INDEFINITE_BALLOON = 2044,
STR_SHOP_ITEM_INDEFINITE_CUDDLY_TOY = 2045,
STR_SHOP_ITEM_INDEFINITE_PARK_MAP = 2046,
STR_SHOP_ITEM_INDEFINITE_ON_RIDE_PHOTO = 2047,
STR_SHOP_ITEM_INDEFINITE_UMBRELLA = 2048,
STR_SHOP_ITEM_INDEFINITE_DRINK = 2049,
STR_SHOP_ITEM_INDEFINITE_BURGER = 2050,
STR_SHOP_ITEM_INDEFINITE_CHIPS = 2051,
STR_SHOP_ITEM_INDEFINITE_ICE_CREAM = 2052,
STR_SHOP_ITEM_INDEFINITE_CANDYFLOSS = 2053,
STR_SHOP_ITEM_INDEFINITE_EMPTY_CAN = 2054,
STR_SHOP_ITEM_INDEFINITE_RUBBISH = 2055,
STR_SHOP_ITEM_INDEFINITE_EMPTY_BURGER_BOX = 2056,
STR_SHOP_ITEM_INDEFINITE_PIZZA = 2057,
STR_SHOP_ITEM_INDEFINITE_VOUCHER = 2058,
STR_SHOP_ITEM_INDEFINITE_POPCORN = 2059,
STR_SHOP_ITEM_INDEFINITE_HOT_DOG = 2060,
STR_SHOP_ITEM_INDEFINITE_TENTACLE = 2061,
STR_SHOP_ITEM_INDEFINITE_HAT = 2062,
STR_SHOP_ITEM_INDEFINITE_TOFFEE_APPLE = 2063,
STR_SHOP_ITEM_INDEFINITE_T_SHIRT = 2064,
STR_SHOP_ITEM_INDEFINITE_DOUGHNUT = 2065,
STR_SHOP_ITEM_INDEFINITE_COFFEE = 2066,
STR_SHOP_ITEM_INDEFINITE_EMPTY_CUP = 2067,
STR_SHOP_ITEM_INDEFINITE_FRIED_CHICKEN = 2068,
STR_SHOP_ITEM_INDEFINITE_LEMONADE = 2069,
STR_SHOP_ITEM_INDEFINITE_EMPTY_BOX = 2070,
STR_SHOP_ITEM_INDEFINITE_EMPTY_BOTTLE = 2071,
STR_SHOP_ITEM_INDEFINITE_PRETZEL = 2169,
STR_SHOP_ITEM_INDEFINITE_HOT_CHOCOLATE = 2170,
STR_SHOP_ITEM_INDEFINITE_ICED_TEA = 2171,
STR_SHOP_ITEM_INDEFINITE_FUNNEL_CAKE = 2172,
STR_SHOP_ITEM_INDEFINITE_SUNGLASSES = 2173,
STR_SHOP_ITEM_INDEFINITE_BEEF_NOODLES = 2174,
STR_SHOP_ITEM_INDEFINITE_FRIED_RICE_NOODLES = 2175,
STR_SHOP_ITEM_INDEFINITE_WONTON_SOUP = 2176,
STR_SHOP_ITEM_INDEFINITE_MEATBALL_SOUP = 2177,
STR_SHOP_ITEM_INDEFINITE_FRUIT_JUICE = 2178,
STR_SHOP_ITEM_INDEFINITE_SOYBEAN_MILK = 2179,
STR_SHOP_ITEM_INDEFINITE_SUJONGKWA = 2180,
STR_SHOP_ITEM_INDEFINITE_SUB_SANDWICH = 2181,
STR_SHOP_ITEM_INDEFINITE_COOKIE = 2182,
STR_SHOP_ITEM_INDEFINITE_EMPTY_BOWL_RED = 2183,
STR_SHOP_ITEM_INDEFINITE_EMPTY_DRINK_CARTON = 2184,
STR_SHOP_ITEM_INDEFINITE_EMPTY_JUICE_CUP = 2185,
STR_SHOP_ITEM_INDEFINITE_ROAST_SAUSAGE = 2186,
STR_SHOP_ITEM_INDEFINITE_EMPTY_BOWL_BLUE = 2187,
STR_SHOP_ITEM_DISPLAY_BALLOON = 2072,
STR_SHOP_ITEM_DISPLAY_CUDDLY_TOY = 2073,
STR_SHOP_ITEM_DISPLAY_PARK_MAP = 2074,
STR_SHOP_ITEM_DISPLAY_ON_RIDE_PHOTO = 2075,
STR_SHOP_ITEM_DISPLAY_UMBRELLA = 2076,
STR_SHOP_ITEM_DISPLAY_DRINK = 2077,
STR_SHOP_ITEM_DISPLAY_BURGER = 2078,
STR_SHOP_ITEM_DISPLAY_CHIPS = 2079,
STR_SHOP_ITEM_DISPLAY_ICE_CREAM = 2080,
STR_SHOP_ITEM_DISPLAY_CANDYFLOSS = 2081,
STR_SHOP_ITEM_DISPLAY_EMPTY_CAN = 2082,
STR_SHOP_ITEM_DISPLAY_RUBBISH = 2083,
STR_SHOP_ITEM_DISPLAY_EMPTY_BURGER_BOX = 2084,
STR_SHOP_ITEM_DISPLAY_PIZZA = 2085,
STR_SHOP_ITEM_DISPLAY_VOUCHER = 2086,
STR_SHOP_ITEM_DISPLAY_POPCORN = 2087,
STR_SHOP_ITEM_DISPLAY_HOT_DOG = 2088,
STR_SHOP_ITEM_DISPLAY_TENTACLE = 2089,
STR_SHOP_ITEM_DISPLAY_HAT = 2090,
STR_SHOP_ITEM_DISPLAY_TOFFEE_APPLE = 2091,
STR_SHOP_ITEM_DISPLAY_T_SHIRT = 2092,
STR_SHOP_ITEM_DISPLAY_DOUGHNUT = 2093,
STR_SHOP_ITEM_DISPLAY_COFFEE = 2094,
STR_SHOP_ITEM_DISPLAY_EMPTY_CUP = 2095,
STR_SHOP_ITEM_DISPLAY_FRIED_CHICKEN = 2096,
STR_SHOP_ITEM_DISPLAY_LEMONADE = 2097,
STR_SHOP_ITEM_DISPLAY_EMPTY_BOX = 2098,
STR_SHOP_ITEM_DISPLAY_EMPTY_BOTTLE = 2099,
STR_SHOP_ITEM_DISPLAY_PRETZEL = 2191,
STR_SHOP_ITEM_DISPLAY_HOT_CHOCOLATE = 2192,
STR_SHOP_ITEM_DISPLAY_ICED_TEA = 2193,
STR_SHOP_ITEM_DISPLAY_FUNNEL_CAKE = 2194,
STR_SHOP_ITEM_DISPLAY_SUNGLASSES = 2195,
STR_SHOP_ITEM_DISPLAY_BEEF_NOODLES = 2196,
STR_SHOP_ITEM_DISPLAY_FRIED_RICE_NOODLES = 2197,
STR_SHOP_ITEM_DISPLAY_WONTON_SOUP = 2198,
STR_SHOP_ITEM_DISPLAY_MEATBALL_SOUP = 2199,
STR_SHOP_ITEM_DISPLAY_FRUIT_JUICE = 2200,
STR_SHOP_ITEM_DISPLAY_SOYBEAN_MILK = 2201,
STR_SHOP_ITEM_DISPLAY_SUJONGKWA = 2202,
STR_SHOP_ITEM_DISPLAY_SUB_SANDWICH = 2203,
STR_SHOP_ITEM_DISPLAY_COOKIE = 2204,
STR_SHOP_ITEM_DISPLAY_EMPTY_BOWL_RED = 2205,
STR_SHOP_ITEM_DISPLAY_EMPTY_DRINK_CARTON = 2206,
STR_SHOP_ITEM_DISPLAY_EMPTY_JUICE_CUP = 2207,
STR_SHOP_ITEM_DISPLAY_ROAST_SAUSAGE = 2208,
STR_SHOP_ITEM_DISPLAY_EMPTY_BOWL_BLUE = 2209,
STR_STAFF_HANDYMEN_TAB_TIP = 2210,
STR_STAFF_MECHANICS_TAB_TIP = 2211,
@ -971,6 +1160,7 @@ enum {
STR_SELECT_SCENARIO = 2291,
STR_NOTHING = 2293,
STR_CHANGE_BASE_LAND_TIP = 2294,
STR_CHANGE_VERTICAL_LAND_TIP = 2295,

View File

@ -24,6 +24,7 @@
#include "../localisation/localisation.h"
#include "../management/finance.h"
#include "../ride/ride.h"
#include "../ride/ride_data.h"
#include "marketing.h"
#include "news_item.h"
@ -96,10 +97,7 @@ void marketing_update()
RCT2_GLOBAL(0x013CE952, uint16) = ride->name;
RCT2_GLOBAL(0x013CE954, uint32) = ride->name_arguments;
} else if (campaign == ADVERTISING_CAMPAIGN_FOOD_OR_DRINK_FREE) {
campaignItem += 2016;
if (campaignItem >= 2048)
campaignItem += 96;
RCT2_GLOBAL(0x013CE952, uint16) = campaignItem;
RCT2_GLOBAL(0x013CE952, uint16) = ShopItemStringIds[campaignItem].plural;
}
news_item_add_to_queue(NEWS_ITEM_MONEY, STR_MARKETING_FINISHED_BASE + campaign, 0);

View File

@ -29,6 +29,7 @@
#include "../config.h"
#include "../openrct2.h"
#include "../ride/ride.h"
#include "../ride/ride_data.h"
#include "../scenario.h"
#include "../sprites.h"
#include "../world/sprite.h"
@ -5567,32 +5568,19 @@ void get_arguments_from_action(rct_peep* peep, uint32 *argument_1, uint32* argum
* argument_1 (esi & ebx)
* argument_2 (esi+2)
*/
void get_arguments_from_thought(rct_peep_thought thought, uint32* argument_1, uint32* argument_2){
int esi = 0x9AC86C;
void get_arguments_from_thought(rct_peep_thought thought, uint32* argument_1, uint32* argument_2)
{
int esi = 0x009AC86C;
if ((RCT2_ADDRESS(0x981DB1, uint16)[thought.type] & 0xFF) & 1){
if ((RCT2_ADDRESS(0x00981DB1, uint16)[thought.type] & 0xFF) & 1) {
rct_ride* ride = &g_ride_list[thought.item];
esi = (int)(&(ride->name));
}
else if ((RCT2_ADDRESS(0x981DB1, uint16)[thought.type] & 0xFF) & 2){
if (thought.item < 0x20){
RCT2_GLOBAL(0x9AC86C, uint16) = thought.item + STR_ITEM_START;
}
else{
RCT2_GLOBAL(0x9AC86C, uint16) = thought.item + STR_ITEM2_START;
}
}
else if ((RCT2_ADDRESS(0x981DB1, uint16)[thought.type] & 0xFF) & 4){
if (thought.item < 0x20){
RCT2_GLOBAL(0x9AC86C, uint16) = thought.item + STR_ITEM_SINGULAR_START;
}
else
{
RCT2_GLOBAL(0x9AC86C, uint16) = thought.item + STR_ITEM2_SINGULAR_START;
}
}
else{
esi = 0x9AC864; //No thought?
} else if ((RCT2_ADDRESS(0x00981DB1, uint16)[thought.type] & 0xFF) & 2) {
RCT2_GLOBAL(0x009AC86C, uint16) = ShopItemStringIds[thought.item].singular;
} else if ((RCT2_ADDRESS(0x00981DB1, uint16)[thought.type] & 0xFF) & 4) {
RCT2_GLOBAL(0x009AC86C, uint16) = ShopItemStringIds[thought.item].indefinite;
} else {
esi = 0x009AC864; //No thought?
}
*argument_1 = ((thought.type + STR_THOUGHT_START) & 0xFFFF) | (*((uint16*)esi) << 16);
*argument_2 = *((uint32*)(esi + 2)); //Always 0 apart from on rides?
@ -5739,6 +5727,15 @@ int peep_is_mechanic(rct_peep *peep)
);
}
bool peep_has_item(rct_peep *peep, int peepItem)
{
if (peepItem < 32) {
return peep->item_standard_flags & (1 << peepItem);
} else {
return peep->item_extra_flags & (1 << peepItem);
}
}
static int peep_has_food_standard_flag(rct_peep* peep){
return peep->item_standard_flags &(
PEEP_ITEM_DRINK |

View File

@ -589,6 +589,7 @@ int get_peep_face_sprite_large(rct_peep *peep);
int peep_check_easteregg_name(int index, rct_peep *peep);
int peep_get_easteregg_name_id(rct_peep *peep);
int peep_is_mechanic(rct_peep *peep);
bool peep_has_item(rct_peep *peep, int peepItem);
int peep_has_food(rct_peep* peep);
void peep_sprite_remove(rct_peep* peep);
void peep_remove(rct_peep* peep);

View File

@ -1038,3 +1038,117 @@ const money8 DefaultShopItemPrice[SHOP_ITEM_COUNT] = {
MONEY(0,00), // 54
MONEY(0,00), // 55
};
const rct_shop_item_string_types ShopItemStringIds[SHOP_ITEM_COUNT] = {
{ STR_SHOP_ITEM_SINGULAR_BALLOON, STR_SHOP_ITEM_PLURAL_BALLOON, STR_SHOP_ITEM_INDEFINITE_BALLOON, STR_SHOP_ITEM_DISPLAY_BALLOON },
{ STR_SHOP_ITEM_SINGULAR_CUDDLY_TOY, STR_SHOP_ITEM_PLURAL_CUDDLY_TOY, STR_SHOP_ITEM_INDEFINITE_CUDDLY_TOY, STR_SHOP_ITEM_DISPLAY_CUDDLY_TOY },
{ STR_SHOP_ITEM_SINGULAR_PARK_MAP, STR_SHOP_ITEM_PLURAL_PARK_MAP, STR_SHOP_ITEM_INDEFINITE_PARK_MAP, STR_SHOP_ITEM_DISPLAY_PARK_MAP },
{ 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 },
{ STR_SHOP_ITEM_SINGULAR_UMBRELLA, STR_SHOP_ITEM_PLURAL_UMBRELLA, STR_SHOP_ITEM_INDEFINITE_UMBRELLA, STR_SHOP_ITEM_DISPLAY_UMBRELLA },
{ STR_SHOP_ITEM_SINGULAR_DRINK, STR_SHOP_ITEM_PLURAL_DRINK, STR_SHOP_ITEM_INDEFINITE_DRINK, STR_SHOP_ITEM_DISPLAY_DRINK },
{ STR_SHOP_ITEM_SINGULAR_BURGER, STR_SHOP_ITEM_PLURAL_BURGER, STR_SHOP_ITEM_INDEFINITE_BURGER, STR_SHOP_ITEM_DISPLAY_BURGER },
{ STR_SHOP_ITEM_SINGULAR_CHIPS, STR_SHOP_ITEM_PLURAL_CHIPS, STR_SHOP_ITEM_INDEFINITE_CHIPS, STR_SHOP_ITEM_DISPLAY_CHIPS },
{ STR_SHOP_ITEM_SINGULAR_ICE_CREAM, STR_SHOP_ITEM_PLURAL_ICE_CREAM, STR_SHOP_ITEM_INDEFINITE_ICE_CREAM, STR_SHOP_ITEM_DISPLAY_ICE_CREAM },
{ STR_SHOP_ITEM_SINGULAR_CANDYFLOSS, STR_SHOP_ITEM_PLURAL_CANDYFLOSS, STR_SHOP_ITEM_INDEFINITE_CANDYFLOSS, STR_SHOP_ITEM_DISPLAY_CANDYFLOSS },
{ STR_SHOP_ITEM_SINGULAR_EMPTY_CAN, STR_SHOP_ITEM_PLURAL_EMPTY_CAN, STR_SHOP_ITEM_INDEFINITE_EMPTY_CAN, STR_SHOP_ITEM_DISPLAY_EMPTY_CAN },
{ STR_SHOP_ITEM_SINGULAR_RUBBISH, STR_SHOP_ITEM_PLURAL_RUBBISH, STR_SHOP_ITEM_INDEFINITE_RUBBISH, STR_SHOP_ITEM_DISPLAY_RUBBISH },
{ 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 },
{ STR_SHOP_ITEM_SINGULAR_PIZZA, STR_SHOP_ITEM_PLURAL_PIZZA, STR_SHOP_ITEM_INDEFINITE_PIZZA, STR_SHOP_ITEM_DISPLAY_PIZZA },
{ STR_SHOP_ITEM_SINGULAR_VOUCHER, STR_SHOP_ITEM_PLURAL_VOUCHER, STR_SHOP_ITEM_INDEFINITE_VOUCHER, STR_SHOP_ITEM_DISPLAY_VOUCHER },
{ STR_SHOP_ITEM_SINGULAR_POPCORN, STR_SHOP_ITEM_PLURAL_POPCORN, STR_SHOP_ITEM_INDEFINITE_POPCORN, STR_SHOP_ITEM_DISPLAY_POPCORN },
{ STR_SHOP_ITEM_SINGULAR_HOT_DOG, STR_SHOP_ITEM_PLURAL_HOT_DOG, STR_SHOP_ITEM_INDEFINITE_HOT_DOG, STR_SHOP_ITEM_DISPLAY_HOT_DOG },
{ STR_SHOP_ITEM_SINGULAR_TENTACLE, STR_SHOP_ITEM_PLURAL_TENTACLE, STR_SHOP_ITEM_INDEFINITE_TENTACLE, STR_SHOP_ITEM_DISPLAY_TENTACLE },
{ STR_SHOP_ITEM_SINGULAR_HAT, STR_SHOP_ITEM_PLURAL_HAT, STR_SHOP_ITEM_INDEFINITE_HAT, STR_SHOP_ITEM_DISPLAY_HAT },
{ STR_SHOP_ITEM_SINGULAR_TOFFEE_APPLE, STR_SHOP_ITEM_PLURAL_TOFFEE_APPLE, STR_SHOP_ITEM_INDEFINITE_TOFFEE_APPLE, STR_SHOP_ITEM_DISPLAY_TOFFEE_APPLE },
{ STR_SHOP_ITEM_SINGULAR_T_SHIRT, STR_SHOP_ITEM_PLURAL_T_SHIRT, STR_SHOP_ITEM_INDEFINITE_T_SHIRT, STR_SHOP_ITEM_DISPLAY_T_SHIRT },
{ STR_SHOP_ITEM_SINGULAR_DOUGHNUT, STR_SHOP_ITEM_PLURAL_DOUGHNUT, STR_SHOP_ITEM_INDEFINITE_DOUGHNUT, STR_SHOP_ITEM_DISPLAY_DOUGHNUT },
{ STR_SHOP_ITEM_SINGULAR_COFFEE, STR_SHOP_ITEM_PLURAL_COFFEE, STR_SHOP_ITEM_INDEFINITE_COFFEE, STR_SHOP_ITEM_DISPLAY_COFFEE },
{ STR_SHOP_ITEM_SINGULAR_EMPTY_CUP, STR_SHOP_ITEM_PLURAL_EMPTY_CUP, STR_SHOP_ITEM_INDEFINITE_EMPTY_CUP, STR_SHOP_ITEM_DISPLAY_EMPTY_CUP },
{ STR_SHOP_ITEM_SINGULAR_FRIED_CHICKEN, STR_SHOP_ITEM_PLURAL_FRIED_CHICKEN, STR_SHOP_ITEM_INDEFINITE_FRIED_CHICKEN, STR_SHOP_ITEM_DISPLAY_FRIED_CHICKEN },
{ STR_SHOP_ITEM_SINGULAR_LEMONADE, STR_SHOP_ITEM_PLURAL_LEMONADE, STR_SHOP_ITEM_INDEFINITE_LEMONADE, STR_SHOP_ITEM_DISPLAY_LEMONADE },
{ STR_SHOP_ITEM_SINGULAR_EMPTY_BOX, STR_SHOP_ITEM_PLURAL_EMPTY_BOX, STR_SHOP_ITEM_INDEFINITE_EMPTY_BOX, STR_SHOP_ITEM_DISPLAY_EMPTY_BOX },
{ STR_SHOP_ITEM_SINGULAR_EMPTY_BOTTLE, STR_SHOP_ITEM_PLURAL_EMPTY_BOTTLE, STR_SHOP_ITEM_INDEFINITE_EMPTY_BOTTLE, STR_SHOP_ITEM_DISPLAY_EMPTY_BOTTLE },
{ STR_NONE, STR_NONE, STR_NONE, STR_NONE },
{ STR_NONE, STR_NONE, STR_NONE, STR_NONE },
{ STR_NONE, STR_NONE, STR_NONE, STR_NONE },
{ STR_NONE, STR_NONE, STR_NONE, STR_NONE },
{ 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 },
{ 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 },
{ 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 },
{ STR_SHOP_ITEM_SINGULAR_PRETZEL, STR_SHOP_ITEM_PLURAL_PRETZEL, STR_SHOP_ITEM_INDEFINITE_PRETZEL, STR_SHOP_ITEM_DISPLAY_PRETZEL },
{ STR_SHOP_ITEM_SINGULAR_HOT_CHOCOLATE, STR_SHOP_ITEM_PLURAL_HOT_CHOCOLATE, STR_SHOP_ITEM_INDEFINITE_HOT_CHOCOLATE, STR_SHOP_ITEM_DISPLAY_HOT_CHOCOLATE },
{ STR_SHOP_ITEM_SINGULAR_ICED_TEA, STR_SHOP_ITEM_PLURAL_ICED_TEA, STR_SHOP_ITEM_INDEFINITE_ICED_TEA, STR_SHOP_ITEM_DISPLAY_ICED_TEA },
{ STR_SHOP_ITEM_SINGULAR_FUNNEL_CAKE, STR_SHOP_ITEM_PLURAL_FUNNEL_CAKE, STR_SHOP_ITEM_INDEFINITE_FUNNEL_CAKE, STR_SHOP_ITEM_DISPLAY_FUNNEL_CAKE },
{ STR_SHOP_ITEM_SINGULAR_SUNGLASSES, STR_SHOP_ITEM_PLURAL_SUNGLASSES, STR_SHOP_ITEM_INDEFINITE_SUNGLASSES, STR_SHOP_ITEM_DISPLAY_SUNGLASSES },
{ STR_SHOP_ITEM_SINGULAR_BEEF_NOODLES, STR_SHOP_ITEM_PLURAL_BEEF_NOODLES, STR_SHOP_ITEM_INDEFINITE_BEEF_NOODLES, STR_SHOP_ITEM_DISPLAY_BEEF_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 },
{ STR_SHOP_ITEM_SINGULAR_WONTON_SOUP, STR_SHOP_ITEM_PLURAL_WONTON_SOUP, STR_SHOP_ITEM_INDEFINITE_WONTON_SOUP, STR_SHOP_ITEM_DISPLAY_WONTON_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 },
{ STR_SHOP_ITEM_SINGULAR_FRUIT_JUICE, STR_SHOP_ITEM_PLURAL_FRUIT_JUICE, STR_SHOP_ITEM_INDEFINITE_FRUIT_JUICE, STR_SHOP_ITEM_DISPLAY_FRUIT_JUICE },
{ STR_SHOP_ITEM_SINGULAR_SOYBEAN_MILK, STR_SHOP_ITEM_PLURAL_SOYBEAN_MILK, STR_SHOP_ITEM_INDEFINITE_SOYBEAN_MILK, STR_SHOP_ITEM_DISPLAY_SOYBEAN_MILK },
{ STR_SHOP_ITEM_SINGULAR_SUJONGKWA, STR_SHOP_ITEM_PLURAL_SUJONGKWA, STR_SHOP_ITEM_INDEFINITE_SUJONGKWA, STR_SHOP_ITEM_DISPLAY_SUJONGKWA },
{ STR_SHOP_ITEM_SINGULAR_SUB_SANDWICH, STR_SHOP_ITEM_PLURAL_SUB_SANDWICH, STR_SHOP_ITEM_INDEFINITE_SUB_SANDWICH, STR_SHOP_ITEM_DISPLAY_SUB_SANDWICH },
{ STR_SHOP_ITEM_SINGULAR_COOKIE, STR_SHOP_ITEM_PLURAL_COOKIE, STR_SHOP_ITEM_INDEFINITE_COOKIE, STR_SHOP_ITEM_DISPLAY_COOKIE },
{ 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 },
{ 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 },
{ 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 },
{ STR_SHOP_ITEM_SINGULAR_ROAST_SAUSAGE, STR_SHOP_ITEM_PLURAL_ROAST_SAUSAGE, STR_SHOP_ITEM_INDEFINITE_ROAST_SAUSAGE, STR_SHOP_ITEM_DISPLAY_ROAST_SAUSAGE },
{ 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 },
};
const uint32 ShopItemImage[SHOP_ITEM_COUNT] = {
5061, // SHOP_ITEM_BALLOON
5062, // SHOP_ITEM_TOY
5063, // SHOP_ITEM_MAP
5064, // SHOP_ITEM_PHOTO
5065, // SHOP_ITEM_UMBRELLA
5066, // SHOP_ITEM_DRINK
5067, // SHOP_ITEM_BURGER
5068, // SHOP_ITEM_FRIES
5069, // SHOP_ITEM_ICE_CREAM
5070, // SHOP_ITEM_COTTON_CANDY
5071, // SHOP_ITEM_EMPTY_CAN
5072, // SHOP_ITEM_RUBBISH
5073, // SHOP_ITEM_EMPTY_BURGER_BOX
5074, // SHOP_ITEM_PIZZA
5075, // SHOP_ITEM_VOUCHER
5076, // SHOP_ITEM_POPCORN
5077, // SHOP_ITEM_HOT_DOG
5078, // SHOP_ITEM_TENTACLE
5079, // SHOP_ITEM_HAT
5080, // SHOP_ITEM_CANDY_APPLE
5081, // SHOP_ITEM_TSHIRT
5082, // SHOP_ITEM_DONUT
5083, // SHOP_ITEM_COFFEE
5084, // SHOP_ITEM_EMPTY_CUP
5085, // SHOP_ITEM_CHICKEN
5086, // SHOP_ITEM_LEMONADE
5087, // SHOP_ITEM_EMPTY_BOX
5088, // SHOP_ITEM_EMPTY_BOTTLE
0, // 28
0, // 29
0, // 30
0, // 31
5089, // SHOP_ITEM_PHOTO2
5090, // SHOP_ITEM_PHOTO3
5091, // SHOP_ITEM_PHOTO4
5092, // SHOP_ITEM_PRETZEL
5093, // SHOP_ITEM_CHOCOLATE
5094, // SHOP_ITEM_ICED_TEA
5095, // SHOP_ITEM_FUNNEL_CAKE
5096, // SHOP_ITEM_SUNGLASSES
5097, // SHOP_ITEM_BEEF_NOODLES
5098, // SHOP_ITEM_FRIED_RICE_NOODLES
5099, // SHOP_ITEM_WONTON_SOUP
5100, // SHOP_ITEM_MEATBALL_SOUP
5101, // SHOP_ITEM_FRUIT_JUICE
5102, // SHOP_ITEM_SOYBEAN_MILK
5103, // SHOP_ITEM_SU_JONGKWA
5104, // SHOP_ITEM_SUB_SANDWICH
5105, // SHOP_ITEM_COOKIE
5106, // SHOP_ITEM_EMPTY_BOWL_RED
5107, // SHOP_ITEM_EMPTY_DRINK_CARTON
5108, // SHOP_ITEM_EMPTY_JUICE_CUP
5109, // SHOP_ITEM_ROAST_SAUSAGE
5110, // SHOP_ITEM_EMPTY_BOWL_BLUE
};

View File

@ -40,6 +40,13 @@ typedef struct {
uint16 colour_use_flags;
} rct_ride_entrance_definition;
typedef struct {
rct_string_id singular; // Balloon
rct_string_id plural; // Balloons
rct_string_id indefinite; // a Balloon
rct_string_id display; // "Diamond Heights" Balloon
} rct_shop_item_string_types;
extern const bool hasRunningTrack[0x60];
extern const uint8 initialUpkeepCosts[0x60];
extern const uint8 costPerTrackPiece[0x60];
@ -56,5 +63,7 @@ extern const rct_ride_entrance_definition RideEntranceDefinitions[RIDE_ENTRANCE_
extern const uint8 RideLiftHillAdjustments[0x60];
extern const money8 DefaultShopItemPrice[SHOP_ITEM_COUNT];
extern const rct_shop_item_string_types ShopItemStringIds[SHOP_ITEM_COUNT];
extern const uint32 ShopItemImage[SHOP_ITEM_COUNT];
#endif

View File

@ -30,6 +30,7 @@
#include "../management/marketing.h"
#include "../management/research.h"
#include "../ride/ride.h"
#include "../ride/ride_data.h"
#include "../scenario.h"
#include "../sprites.h"
#include "dropdown.h"
@ -1201,10 +1202,7 @@ static void window_finances_marketing_paint(rct_window *w, rct_drawpixelinfo *dp
RCT2_GLOBAL(0x013CE952 + 2, uint32) = ride->name_arguments;
break;
case ADVERTISING_CAMPAIGN_FOOD_OR_DRINK_FREE:
shopString = gMarketingCampaignRideIndex[i] + 2016; // STR_BALLOONS+
if (shopString >= 2048) // STR_AN_UMBRELLA
shopString += 96; // STR_ON_RIDE_PHOTOS+
RCT2_GLOBAL(0x013CE952, uint16) = shopString;
RCT2_GLOBAL(0x013CE952, uint16) = ShopItemStringIds[gMarketingCampaignRideIndex[i]].plural;
break;
}

View File

@ -21,23 +21,24 @@
#include "../addresses.h"
#include "../config.h"
#include "../game.h"
#include "../world/map.h"
#include "../input.h"
#include "../management/marketing.h"
#include "../peep/peep.h"
#include "../peep/staff.h"
#include "../ride/ride.h"
#include "../ride/ride_data.h"
#include "../scenario.h"
#include "../localisation/localisation.h"
#include "../world/sprite.h"
#include "../sprites.h"
#include "../interface/themes.h"
#include "../interface/viewport.h"
#include "../interface/widget.h"
#include "../interface/window.h"
#include "../world/footpath.h"
#include "../input.h"
#include "../world/map.h"
#include "../world/sprite.h"
#include "dropdown.h"
#include "error.h"
#include "../interface/themes.h"
enum WINDOW_GUEST_PAGE {
WINDOW_GUEST_OVERVIEW,
@ -1949,6 +1950,79 @@ void window_guest_inventory_invalidate(rct_window *w)
window_align_tabs(w, WIDX_TAB_1, WIDX_TAB_6);
}
static rct_string_id window_guest_inventory_format_item(rct_peep *peep, int item, uint8 *args)
{
rct_ride *ride;
// Default arguments
RCT2_GLOBAL(args + 0, uint32) = ShopItemImage[item];
RCT2_GLOBAL(args + 4, uint16) = ShopItemStringIds[item].display;
RCT2_GLOBAL(args + 6, uint16) = RCT2_GLOBAL(RCT2_ADDRESS_PARK_NAME, uint16);
RCT2_GLOBAL(args + 8, uint32) = RCT2_GLOBAL(RCT2_ADDRESS_PARK_NAME_ARGS, uint32);
// Special overrides
switch (item) {
case SHOP_ITEM_BALLOON:
RCT2_GLOBAL(args + 0, uint32) |= 0x20000000 | peep->balloon_colour << 19;
break;
case SHOP_ITEM_PHOTO:
ride = GET_RIDE(peep->photo1_ride_ref);
RCT2_GLOBAL(args + 6, uint16) = ride->name;
RCT2_GLOBAL(args + 8, uint32) = ride->name_arguments;
break;
case SHOP_ITEM_UMBRELLA:
RCT2_GLOBAL(args + 0, uint32) |= 0x20000000 | peep->umbrella_colour << 19;
break;
case SHOP_ITEM_VOUCHER:
switch (peep->voucher_type) {
case VOUCHER_TYPE_PARK_ENTRY_FREE:
RCT2_GLOBAL(args + 6, uint16) = 2418;
RCT2_GLOBAL(args + 8, uint16) = RCT2_GLOBAL(RCT2_ADDRESS_PARK_NAME, uint16);
RCT2_GLOBAL(args + 10, uint32) = RCT2_GLOBAL(RCT2_ADDRESS_PARK_NAME_ARGS, uint32);
break;
case VOUCHER_TYPE_RIDE_FREE:
ride = GET_RIDE(peep->voucher_arguments);
RCT2_GLOBAL(args + 6, uint16) = 2419;
RCT2_GLOBAL(args + 8, uint16) = ride->name;
RCT2_GLOBAL(args + 10, uint32) = ride->name_arguments;
break;
case VOUCHER_TYPE_PARK_ENTRY_HALF_PRICE:
RCT2_GLOBAL(args + 6, uint16) = 2420;
RCT2_GLOBAL(args + 8, uint16) = RCT2_GLOBAL(RCT2_ADDRESS_PARK_NAME, uint16);
RCT2_GLOBAL(args + 10, uint32) = RCT2_GLOBAL(RCT2_ADDRESS_PARK_NAME_ARGS, uint32);
break;
case VOUCHER_TYPE_FOOD_OR_DRINK_FREE:
RCT2_GLOBAL(args + 6, uint16) = 2421;
RCT2_GLOBAL(args + 8, uint16) = ShopItemStringIds[peep->voucher_arguments].singular;
break;
}
break;
case SHOP_ITEM_HAT:
RCT2_GLOBAL(args + 0, uint32) |= 0x20000000 | peep->hat_colour << 19;
break;
case SHOP_ITEM_TSHIRT:
RCT2_GLOBAL(args + 0, uint32) |= 0x20000000 | peep->tshirt_colour << 19;
break;
case SHOP_ITEM_PHOTO2:
ride = GET_RIDE(peep->photo2_ride_ref);
RCT2_GLOBAL(args + 6, uint16) = ride->name;
RCT2_GLOBAL(args + 8, uint32) = ride->name_arguments;
break;
case SHOP_ITEM_PHOTO3:
ride = GET_RIDE(peep->photo3_ride_ref);
RCT2_GLOBAL(args + 6, uint16) = ride->name;
RCT2_GLOBAL(args + 8, uint32) = ride->name_arguments;
break;
case SHOP_ITEM_PHOTO4:
ride = GET_RIDE(peep->photo4_ride_ref);
RCT2_GLOBAL(args + 6, uint16) = ride->name;
RCT2_GLOBAL(args + 8, uint32) = ride->name_arguments;
break;
}
return STR_GUEST_ITEM_FORMAT;
}
/* rct2: 0x00697F81 */
void window_guest_inventory_paint(rct_window *w, rct_drawpixelinfo *dpi)
{
@ -1960,120 +2034,30 @@ void window_guest_inventory_paint(rct_window *w, rct_drawpixelinfo *dpi)
window_guest_thoughts_tab_paint(w, dpi);
window_guest_inventory_tab_paint(w, dpi);
rct_peep* peep = GET_PEEP(w->number);
rct_peep *peep = GET_PEEP(w->number);
//cx
int x = w->x + window_guest_inventory_widgets[WIDX_PAGE_BACKGROUND].left + 4;
//dx
int y = w->y + window_guest_inventory_widgets[WIDX_PAGE_BACKGROUND].top + 2;
rct_widget *pageBackgroundWidget = &window_guest_inventory_widgets[WIDX_PAGE_BACKGROUND];
int x = w->x + pageBackgroundWidget->left + 4;
int y = w->y + pageBackgroundWidget->top + 2;
int itemNameWidth = pageBackgroundWidget->right - pageBackgroundWidget->left - 8;
int max_y = w->y + w->height - 22;
int no_items = 0;
gfx_draw_string_left(dpi, 1810, (void*)0, 0, x, y);
int maxY = w->y + w->height - 22;
int numItems = 0;
gfx_draw_string_left(dpi, STR_CARRYING, NULL, 0, x, y);
y += 10;
for (int i = 0; y < max_y && i < 28; ++i){
int item_flag = 1 << i;
if (!(peep->item_standard_flags & item_flag))continue;
no_items++;
RCT2_GLOBAL(0x13CE952, uint32) = 5061 + i;
switch (item_flag){
case PEEP_ITEM_TSHIRT:
RCT2_GLOBAL(0x13CE952, uint32) |= 0x20000000 | peep->tshirt_colour << 19;
break;
case PEEP_ITEM_HAT:
RCT2_GLOBAL(0x13CE952, uint32) |= 0x20000000 | peep->hat_colour << 19;
break;
case PEEP_ITEM_BALLOON:
RCT2_GLOBAL(0x13CE952, uint32) |= 0x20000000 | peep->balloon_colour << 19;
break;
case PEEP_ITEM_UMBRELLA:
RCT2_GLOBAL(0x13CE952, uint32) |= 0x20000000 | peep->umbrella_colour << 19;
break;
}
int string_format = 2072 + i;
if (string_format >= 2104) string_format += 84; //??? i is never 32
RCT2_GLOBAL(0x13CE956, uint16) = string_format;
RCT2_GLOBAL(0x13CE958, uint16) = RCT2_GLOBAL(0x13573D4, uint16);
RCT2_GLOBAL(0x13CE95A, uint32) = RCT2_GLOBAL(0x13573D8, uint32);
rct_ride* ride;
switch (item_flag){
case PEEP_ITEM_PHOTO:
ride = GET_RIDE(peep->photo1_ride_ref);
RCT2_GLOBAL(0x13CE958, uint16) = ride->name;
RCT2_GLOBAL(0x13CE95A, uint32) = ride->name_arguments;
break;
case PEEP_ITEM_VOUCHER:
RCT2_GLOBAL(0x13CE958, uint16) = peep->voucher_type + 2418;
RCT2_GLOBAL(0x13CE95A, uint16) = RCT2_GLOBAL(0x13573D4, uint16);
RCT2_GLOBAL(0x13CE95C, uint32) = RCT2_GLOBAL(0x13573D8, uint32);
if (peep->voucher_type == VOUCHER_TYPE_PARK_ENTRY_FREE || peep->voucher_type == VOUCHER_TYPE_PARK_ENTRY_HALF_PRICE)break;
int voucher_id = peep->voucher_arguments + 1988;
if (voucher_id >= 2020) voucher_id += 102;
RCT2_GLOBAL(0x13CE95A, uint16) = voucher_id;
if (peep->voucher_type == VOUCHER_TYPE_FOOD_OR_DRINK_FREE)break;
ride = GET_RIDE(peep->voucher_arguments);
RCT2_GLOBAL(0x13CE95A, uint16) = ride->name;
RCT2_GLOBAL(0x13CE95C, uint32) = ride->name_arguments;
break;
}
int width = window_guest_inventory_widgets[WIDX_PAGE_BACKGROUND].right
- window_guest_inventory_widgets[WIDX_PAGE_BACKGROUND].left
- 8;
y += gfx_draw_string_left_wrapped(dpi, (void*)0x13CE952, x, y, width, 1875, 0);
for (int item = 0; item < SHOP_ITEM_COUNT; item++) {
if (y >= maxY) break;
if (!peep_has_item(peep, item)) continue;
void *args = (void*)0x013CE952;
rct_string_id stringId = window_guest_inventory_format_item(peep, item, (uint8*)args);
y += gfx_draw_string_left_wrapped(dpi, args, x, y, itemNameWidth, stringId, 0);
numItems++;
}
for (int i = 0; y < max_y && i < 22; ++i){
int item_flag = 1 << i;
if (!(peep->item_extra_flags & item_flag))continue;
no_items++;
RCT2_GLOBAL(0x13CE952, uint32) = 5089 + i;
RCT2_GLOBAL(0x13CE956, uint16) = 2188 + i;
RCT2_GLOBAL(0x13CE958, uint16) = RCT2_GLOBAL(0x13573D4, uint16);
RCT2_GLOBAL(0x13CE95A, uint32) = RCT2_GLOBAL(0x13573D8, uint32);
if (i < 3){
int ride_id = 0;
switch (item_flag){
case PEEP_ITEM_PHOTO2:
ride_id = peep->photo2_ride_ref;
break;
case PEEP_ITEM_PHOTO3:
ride_id = peep->photo3_ride_ref;
break;
case PEEP_ITEM_PHOTO4:
ride_id = peep->photo4_ride_ref;
break;
}
rct_ride* ride = GET_RIDE(ride_id);
RCT2_GLOBAL(0x13CE958, uint16) = ride->name;
RCT2_GLOBAL(0x13CE95A, uint32) = ride->name_arguments;
}
int width = window_guest_inventory_widgets[WIDX_PAGE_BACKGROUND].right
- window_guest_inventory_widgets[WIDX_PAGE_BACKGROUND].left
- 8;
y += gfx_draw_string_left_wrapped(dpi, (void*)0x13CE952, x, y, width, 1875, 0);
}
if (!no_items){
gfx_draw_string_left(dpi, 2293, (void*)0, 0, x, y);
if (numItems == 0) {
gfx_draw_string_left(dpi, STR_NOTHING, (void*)0, 0, x, y);
}
}

View File

@ -26,6 +26,7 @@
#include "../interface/window.h"
#include "../management/marketing.h"
#include "../ride/ride.h"
#include "../ride/ride_data.h"
#include "dropdown.h"
#include "../interface/themes.h"
@ -252,12 +253,8 @@ static void window_new_campaign_mousedown(int widgetIndex, rct_window *w, rct_wi
if (window_new_campaign_shop_items[i] == 255)
break;
rct_string_id itemStringId = window_new_campaign_shop_items[i] + 2016;
if (itemStringId >= 2048)
itemStringId += 96;
gDropdownItemsFormat[i] = 1142;
gDropdownItemsArgs[i] = itemStringId;
gDropdownItemsArgs[i] = ShopItemStringIds[window_new_campaign_shop_items[i]].plural;
numItems++;
}
@ -316,10 +313,7 @@ static void window_new_campaign_dropdown(rct_window *w, int widgetIndex, int dro
return;
if (w->campaign.campaign_type == ADVERTISING_CAMPAIGN_FOOD_OR_DRINK_FREE) {
rct_string_id itemStringId = (uint16)gDropdownItemsArgs[dropdownIndex] - 2016;
if (itemStringId >= 32)
itemStringId -= 96;
w->campaign.ride_id = itemStringId;
w->campaign.ride_id = window_new_campaign_shop_items[dropdownIndex];
} else {
w->campaign.ride_id = window_new_campaign_rides[dropdownIndex];
}
@ -358,17 +352,13 @@ static void window_new_campaign_invalidate(rct_window *w)
window_new_campaign_widgets[WIDX_RIDE_DROPDOWN_BUTTON].type = WWT_DROPDOWN_BUTTON;
window_new_campaign_widgets[WIDX_RIDE_LABEL].image = STR_MARKETING_ITEM;
if (w->campaign.ride_id != SELECTED_RIDE_UNDEFINED) {
rct_string_id itemStringId = w->campaign.ride_id + 2016;
if (itemStringId >= 2048)
itemStringId += 96;
window_new_campaign_widgets[WIDX_RIDE_DROPDOWN].image = itemStringId;
window_new_campaign_widgets[WIDX_RIDE_DROPDOWN].image = ShopItemStringIds[w->campaign.ride_id].plural;
}
break;
}
// Set current number of weeks spinner
RCT2_GLOBAL(RCT2_ADDRESS_COMMON_FORMAT_ARGS, uint16) = w->campaign.no_weeks;
window_new_campaign_widgets[WIDX_WEEKS_SPINNER].image = w->campaign.no_weeks == 1 ? STR_MARKETING_1_WEEK : STR_X_WEEKS;
// Set current number of weeks spinner (moved to paint due to required parameter)
window_new_campaign_widgets[WIDX_WEEKS_SPINNER].image = STR_NONE;
// Enable / disable start button based on ride dropdown
w->disabled_widgets &= ~(1 << WIDX_START_BUTTON);
@ -386,6 +376,17 @@ static void window_new_campaign_paint(rct_window *w, rct_drawpixelinfo *dpi)
window_draw_widgets(w, dpi);
// Number of weeks
rct_widget *spinnerWidget = &window_new_campaign_widgets[WIDX_WEEKS_SPINNER];
gfx_draw_string_left(
dpi,
w->campaign.no_weeks == 1 ? STR_MARKETING_1_WEEK : STR_X_WEEKS,
&w->campaign.no_weeks,
w->colours[0],
w->x + spinnerWidget->left + 1,
w->y + spinnerWidget->top
);
x = w->x + 14;
y = w->y + 60;

View File

@ -5966,11 +5966,7 @@ static void window_ride_customer_paint(rct_window *w, rct_drawpixelinfo *dpi)
// Primary shop items sold
shopItem = ride_get_entry(ride)->shop_item;
if (shopItem != 0xFF) {
stringId = 2016 + shopItem;
if (stringId >= 2048)
stringId += 96;
RCT2_GLOBAL(0x013CE952 + 0, uint16) = stringId;
RCT2_GLOBAL(0x013CE952 + 0, uint16) = ShopItemStringIds[shopItem].plural;
RCT2_GLOBAL(0x013CE952 + 2, uint32) = ride->no_primary_items_sold;
gfx_draw_string_left(dpi, STR_ITEMS_SOLD, (void*)0x013CE952, 0, x, y);
y += 10;
@ -5981,11 +5977,7 @@ static void window_ride_customer_paint(rct_window *w, rct_drawpixelinfo *dpi)
RCT2_GLOBAL(0x0097D7CB + (ride->type * 4), uint8) :
ride_get_entry(ride)->shop_item_secondary;
if (shopItem != 0xFF) {
stringId = 2016 + shopItem;
if (stringId >= 2048)
stringId += 96;
RCT2_GLOBAL(0x013CE952 + 0, uint16) = stringId;
RCT2_GLOBAL(0x013CE952 + 0, uint16) = ShopItemStringIds[shopItem].plural;
RCT2_GLOBAL(0x013CE952 + 2, uint32) = ride->no_secondary_items_sold;
gfx_draw_string_left(dpi, STR_ITEMS_SOLD, (void*)0x013CE952, 0, x, y);
y += 10;