diff --git a/OpenRCT2.xcodeproj/project.pbxproj b/OpenRCT2.xcodeproj/project.pbxproj index 03d5e79f5a..273ce9109e 100644 --- a/OpenRCT2.xcodeproj/project.pbxproj +++ b/OpenRCT2.xcodeproj/project.pbxproj @@ -26,6 +26,7 @@ 4C3B423820591513000C5BB7 /* StdInOutConsole.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C3B423720591513000C5BB7 /* StdInOutConsole.cpp */; }; 4C93F1AD1F8CD9F000A9330D /* Input.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C93F1AC1F8CD9F000A9330D /* Input.cpp */; }; 4C93F1AF1F8CD9F600A9330D /* KeyboardShortcut.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C93F1AE1F8CD9F600A9330D /* KeyboardShortcut.cpp */; }; + 4CDCB0BE20A9902F00321367 /* ShopItem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CDCB0BC20A9902E00321367 /* ShopItem.cpp */; }; 4CE9AAAD1FDA7B14004093C6 /* ObjectJsonHelpers.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE9AAAB1FDA7B14004093C6 /* ObjectJsonHelpers.cpp */; }; 4CF67197206B7E720034ADDD /* object in Resources */ = {isa = PBXBuildFile; fileRef = 4CF67196206B7E720034ADDD /* object */; }; 9308D9FE209908090079EE96 /* TileElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9308D9FA209908080079EE96 /* TileElement.cpp */; }; @@ -36,16 +37,16 @@ 9308DA03209908090079EE96 /* Surface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9308D9FB209908080079EE96 /* Surface.cpp */; }; 9308DA04209908090079EE96 /* TileElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 9308D9FC209908080079EE96 /* TileElement.h */; }; 9308DA05209908090079EE96 /* Surface.h in Headers */ = {isa = PBXBuildFile; fileRef = 9308D9FD209908090079EE96 /* Surface.h */; }; + 933F2CB720935653001B33FD /* LocalisationService.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 933F2CB620935653001B33FD /* LocalisationService.cpp */; }; + 933F2CB820935653001B33FD /* LocalisationService.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 933F2CB620935653001B33FD /* LocalisationService.cpp */; }; + 933F2CB920935653001B33FD /* LocalisationService.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 933F2CB620935653001B33FD /* LocalisationService.cpp */; }; + 933F2CBB20935668001B33FD /* LocalisationService.h in Headers */ = {isa = PBXBuildFile; fileRef = 933F2CBA20935668001B33FD /* LocalisationService.h */; }; 9346F9D8208A191900C77D91 /* Guest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9346F9D6208A191900C77D91 /* Guest.cpp */; }; 9346F9D9208A191900C77D91 /* Guest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9346F9D6208A191900C77D91 /* Guest.cpp */; }; 9346F9DA208A191900C77D91 /* Guest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9346F9D6208A191900C77D91 /* Guest.cpp */; }; 9346F9DB208A191900C77D91 /* GuestPathfinding.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9346F9D7208A191900C77D91 /* GuestPathfinding.cpp */; }; 9346F9DC208A191900C77D91 /* GuestPathfinding.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9346F9D7208A191900C77D91 /* GuestPathfinding.cpp */; }; 9346F9DD208A191900C77D91 /* GuestPathfinding.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9346F9D7208A191900C77D91 /* GuestPathfinding.cpp */; }; - 933F2CB720935653001B33FD /* LocalisationService.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 933F2CB620935653001B33FD /* LocalisationService.cpp */; }; - 933F2CB820935653001B33FD /* LocalisationService.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 933F2CB620935653001B33FD /* LocalisationService.cpp */; }; - 933F2CB920935653001B33FD /* LocalisationService.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 933F2CB620935653001B33FD /* LocalisationService.cpp */; }; - 933F2CBB20935668001B33FD /* LocalisationService.h in Headers */ = {isa = PBXBuildFile; fileRef = 933F2CBA20935668001B33FD /* LocalisationService.h */; }; 93CBA4C020A74FF200867D56 /* BitmapReader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 93CBA4BF20A74FF200867D56 /* BitmapReader.cpp */; }; 93CBA4C320A7502E00867D56 /* Imaging.h in Headers */ = {isa = PBXBuildFile; fileRef = 93CBA4C120A7502D00867D56 /* Imaging.h */; }; 93CBA4C420A7502E00867D56 /* Imaging.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 93CBA4C220A7502E00867D56 /* Imaging.cpp */; }; @@ -848,6 +849,8 @@ 4CC4B8E91FE00C5D00660D62 /* Input.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Input.h; sourceTree = ""; }; 4CC4B8EA1FE00C5D00660D62 /* Intro.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Intro.cpp; sourceTree = ""; }; 4CC4B8EB1FE00C5D00660D62 /* Intro.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Intro.h; sourceTree = ""; }; + 4CDCB0BC20A9902E00321367 /* ShopItem.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ShopItem.cpp; sourceTree = ""; }; + 4CDCB0BD20A9902F00321367 /* ShopItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ShopItem.h; sourceTree = ""; }; 4CE4623F1FD0710E0001CD98 /* Game.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Game.cpp; sourceTree = ""; }; 4CE462401FD0710E0001CD98 /* Game.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Game.h; sourceTree = ""; }; 4CE462441FD161360001CD98 /* Platform.Android.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Platform.Android.cpp; sourceTree = ""; }; @@ -873,10 +876,10 @@ 9308D9FB209908080079EE96 /* Surface.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Surface.cpp; sourceTree = ""; }; 9308D9FC209908080079EE96 /* TileElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TileElement.h; sourceTree = ""; }; 9308D9FD209908090079EE96 /* Surface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Surface.h; sourceTree = ""; }; - 9346F9D6208A191900C77D91 /* Guest.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Guest.cpp; sourceTree = ""; }; - 9346F9D7208A191900C77D91 /* GuestPathfinding.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GuestPathfinding.cpp; sourceTree = ""; }; 933F2CB620935653001B33FD /* LocalisationService.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LocalisationService.cpp; sourceTree = ""; }; 933F2CBA20935668001B33FD /* LocalisationService.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LocalisationService.h; sourceTree = ""; }; + 9346F9D6208A191900C77D91 /* Guest.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Guest.cpp; sourceTree = ""; }; + 9346F9D7208A191900C77D91 /* GuestPathfinding.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GuestPathfinding.cpp; sourceTree = ""; }; 93CBA4BE20A74FF200867D56 /* BitmapReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BitmapReader.h; sourceTree = ""; }; 93CBA4BF20A74FF200867D56 /* BitmapReader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BitmapReader.cpp; sourceTree = ""; }; 93CBA4C120A7502D00867D56 /* Imaging.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Imaging.h; sourceTree = ""; }; @@ -2277,6 +2280,8 @@ 4C7B541520060D8E00A52E21 /* RideData.h */, 4C8667801EEFDCDF0024AAB8 /* RideGroupManager.cpp */, 4C8667811EEFDCDF0024AAB8 /* RideGroupManager.h */, + 4CDCB0BC20A9902E00321367 /* ShopItem.cpp */, + 4CDCB0BD20A9902F00321367 /* ShopItem.h */, 4C6AC20D1F9E1693004324AA /* Station.cpp */, 4C6AC20E1F9E1693004324AA /* Station.h */, 4CFE4E8E1F9625B0005243C2 /* Track.cpp */, @@ -3062,6 +3067,7 @@ F76C887A1EC5324E00FA49E2 /* AudioMixer.cpp in Sources */, C68313C81FDB4ED4006DB3D8 /* MouseInput.cpp in Sources */, C68878C920289B710084B384 /* TextureCache.cpp in Sources */, + 4CDCB0BE20A9902F00321367 /* ShopItem.cpp in Sources */, C61ADB1F1FB6A0A70024F2EF /* TopToolbar.cpp in Sources */, 4C1A53ED205FD1A0000F8EF5 /* SceneryObject.cpp in Sources */, F76C887B1EC5324E00FA49E2 /* FileAudioSource.cpp in Sources */, diff --git a/src/openrct2-ui/windows/Finances.cpp b/src/openrct2-ui/windows/Finances.cpp index a8e3d5fe7d..39fd2ffe5f 100644 --- a/src/openrct2-ui/windows/Finances.cpp +++ b/src/openrct2-ui/windows/Finances.cpp @@ -26,6 +26,7 @@ #include #include #include +#include #include #include #include diff --git a/src/openrct2-ui/windows/Guest.cpp b/src/openrct2-ui/windows/Guest.cpp index f8fd94e7f2..e2e33beda4 100644 --- a/src/openrct2-ui/windows/Guest.cpp +++ b/src/openrct2-ui/windows/Guest.cpp @@ -28,6 +28,7 @@ #include #include #include +#include #include #include #include diff --git a/src/openrct2-ui/windows/NewCampaign.cpp b/src/openrct2-ui/windows/NewCampaign.cpp index f34bd71a31..ab5c3843dd 100644 --- a/src/openrct2-ui/windows/NewCampaign.cpp +++ b/src/openrct2-ui/windows/NewCampaign.cpp @@ -14,18 +14,18 @@ *****************************************************************************/ #pragma endregion +#include #include #include -#include - -#include +#include #include #include -#include #include #include +#include #include -#include +#include +#include #define SELECTED_RIDE_UNDEFINED ((uint16)0xFFFF) diff --git a/src/openrct2-ui/windows/Ride.cpp b/src/openrct2-ui/windows/Ride.cpp index 12fa8de611..7316fdcd6a 100644 --- a/src/openrct2-ui/windows/Ride.cpp +++ b/src/openrct2-ui/windows/Ride.cpp @@ -41,6 +41,7 @@ #include #include #include +#include #include #include #include diff --git a/src/openrct2/actions/RideCreateAction.hpp b/src/openrct2/actions/RideCreateAction.hpp index 14cb3d6bcc..e8b13473d1 100644 --- a/src/openrct2/actions/RideCreateAction.hpp +++ b/src/openrct2/actions/RideCreateAction.hpp @@ -29,6 +29,7 @@ #include "../rct1/RCT1.h" #include "../ride/RideData.h" #include "../ride/Ride.h" +#include "../ride/ShopItem.h" #include "../ride/Station.h" #include "../scenario/Scenario.h" diff --git a/src/openrct2/management/Marketing.cpp b/src/openrct2/management/Marketing.cpp index d9a63871d4..ce562e3a56 100644 --- a/src/openrct2/management/Marketing.cpp +++ b/src/openrct2/management/Marketing.cpp @@ -21,6 +21,7 @@ #include "../localisation/Localisation.h" #include "../ride/Ride.h" #include "../ride/RideData.h" +#include "../ride/ShopItem.h" #include "../world/Park.h" #include "../Cheats.h" #include "Finance.h" diff --git a/src/openrct2/object/RideObject.cpp b/src/openrct2/object/RideObject.cpp index 1c9fb60a50..b142bad575 100644 --- a/src/openrct2/object/RideObject.cpp +++ b/src/openrct2/object/RideObject.cpp @@ -28,6 +28,7 @@ #include "../localisation/Language.h" #include "../rct2/RCT2.h" #include "../ride/Ride.h" +#include "../ride/ShopItem.h" #include "../ride/Track.h" #include "../OpenRCT2.h" #include "ObjectJsonHelpers.h" diff --git a/src/openrct2/peep/Guest.cpp b/src/openrct2/peep/Guest.cpp index 19ae1ef2f5..60fd2d2721 100644 --- a/src/openrct2/peep/Guest.cpp +++ b/src/openrct2/peep/Guest.cpp @@ -29,6 +29,7 @@ #include "../OpenRCT2.h" #include "../ride/Ride.h" #include "../ride/RideData.h" +#include "../ride/ShopItem.h" #include "../ride/Station.h" #include "../ride/Track.h" #include "../scenario/Scenario.h" diff --git a/src/openrct2/peep/Peep.cpp b/src/openrct2/peep/Peep.cpp index fc6256affb..5648828d53 100644 --- a/src/openrct2/peep/Peep.cpp +++ b/src/openrct2/peep/Peep.cpp @@ -37,9 +37,11 @@ #include "../ride/Track.h" #include "../ride/Ride.h" #include "../ride/RideData.h" +#include "../ride/ShopItem.h" #include "../scenario/Scenario.h" #include "../sprites.h" #include "../util/Util.h" +#include "../windows/Intent.h" #include "../world/Climate.h" #include "../world/Entrance.h" #include "../world/Footpath.h" @@ -52,7 +54,6 @@ #include "../world/Surface.h" #include "Peep.h" #include "Staff.h" -#include "../windows/Intent.h" #if defined(DEBUG_LEVEL_1) && DEBUG_LEVEL_1 bool gPathFindDebug = false; diff --git a/src/openrct2/rct2/S6Exporter.cpp b/src/openrct2/rct2/S6Exporter.cpp index bbb9b4c74a..2af25a6249 100644 --- a/src/openrct2/rct2/S6Exporter.cpp +++ b/src/openrct2/rct2/S6Exporter.cpp @@ -14,38 +14,38 @@ *****************************************************************************/ #pragma endregion +#include "S6Exporter.h" #include #include +#include #include "../common.h" +#include "../config/Config.h" #include "../Context.h" #include "../core/FileStream.hpp" #include "../core/IStream.hpp" #include "../core/String.hpp" #include "../core/Util.hpp" -#include "../management/Award.h" -#include "../object/Object.h" -#include "../object/ObjectManager.h" -#include "../object/ObjectRepository.h" -#include "../rct12/SawyerChunkWriter.h" -#include "S6Exporter.h" -#include - -#include "../config/Config.h" #include "../Game.h" #include "../interface/Viewport.h" #include "../interface/Window.h" #include "../localisation/Date.h" #include "../localisation/Localisation.h" +#include "../management/Award.h" #include "../management/Finance.h" #include "../management/Marketing.h" #include "../management/NewsItem.h" #include "../management/Research.h" #include "../object/Object.h" #include "../object/ObjectLimits.h" +#include "../object/ObjectManager.h" +#include "../object/ObjectRepository.h" #include "../OpenRCT2.h" #include "../peep/Staff.h" +#include "../rct12/SawyerChunkWriter.h" #include "../ride/Ride.h" #include "../ride/RideRatings.h" +#include "../ride/ShopItem.h" +#include "../ride/Station.h" #include "../ride/TrackData.h" #include "../scenario/Scenario.h" #include "../util/SawyerCoding.h" @@ -54,7 +54,6 @@ #include "../world/MapAnimation.h" #include "../world/Park.h" #include "../world/Sprite.h" -#include "../ride/Station.h" S6Exporter::S6Exporter() { diff --git a/src/openrct2/rct2/S6Importer.cpp b/src/openrct2/rct2/S6Importer.cpp index ea1e11e175..08e85956e7 100644 --- a/src/openrct2/rct2/S6Importer.cpp +++ b/src/openrct2/rct2/S6Importer.cpp @@ -15,35 +15,35 @@ #pragma endregion #include +#include "../config/Config.h" #include "../Context.h" #include "../core/Console.hpp" #include "../core/FileStream.hpp" #include "../core/IStream.hpp" #include "../core/Path.hpp" #include "../core/String.hpp" -#include "../management/Award.h" -#include "../network/network.h" -#include "../object/ObjectLimits.h" -#include "../object/ObjectManager.h" -#include "../object/ObjectRepository.h" -#include "../ParkImporter.h" -#include "../rct12/SawyerChunkReader.h" -#include "../rct12/SawyerEncoding.h" -#include "../ride/Station.h" - -#include "../config/Config.h" #include "../Game.h" #include "../interface/Viewport.h" #include "../localisation/Date.h" #include "../localisation/Localisation.h" +#include "../management/Award.h" #include "../management/Finance.h" #include "../management/Marketing.h" #include "../management/NewsItem.h" #include "../management/Research.h" +#include "../network/network.h" +#include "../object/ObjectLimits.h" +#include "../object/ObjectManager.h" +#include "../object/ObjectRepository.h" #include "../OpenRCT2.h" +#include "../ParkImporter.h" #include "../peep/Staff.h" +#include "../rct12/SawyerChunkReader.h" +#include "../rct12/SawyerEncoding.h" #include "../ride/Ride.h" #include "../ride/RideRatings.h" +#include "../ride/ShopItem.h" +#include "../ride/Station.h" #include "../scenario/Scenario.h" #include "../scenario/ScenarioRepository.h" #include "../util/SawyerCoding.h" diff --git a/src/openrct2/ride/Ride.cpp b/src/openrct2/ride/Ride.cpp index 3305528654..cc671901bd 100644 --- a/src/openrct2/ride/Ride.cpp +++ b/src/openrct2/ride/Ride.cpp @@ -57,6 +57,7 @@ #include "Ride.h" #include "RideData.h" #include "RideGroupManager.h" +#include "ShopItem.h" #include "Station.h" #include "Track.h" #include "TrackData.h" @@ -156,8 +157,6 @@ sint32 gRideRemoveTrackPieceCallbackDirection; sint32 gRideRemoveTrackPieceCallbackType; money16 gTotalRideValueForMoney; -uint32 gSamePriceThroughoutParkA; -uint32 gSamePriceThroughoutParkB; money32 _currentTrackPrice; @@ -431,26 +430,6 @@ void ride_update_favourited_stat() window_invalidate_by_class(WC_RIDE_LIST); } -money32 get_shop_item_cost(sint32 shopItem) -{ - return ShopItemStats[shopItem].cost; -} - -money16 get_shop_base_value(sint32 shopItem) -{ - return ShopItemStats[shopItem].base_value; -} - -money16 get_shop_cold_value(sint32 shopItem) -{ - return ShopItemStats[shopItem].cold_value; -} - -money16 get_shop_hot_value(sint32 shopItem) -{ - return ShopItemStats[shopItem].hot_value; -} - /** * * rct2: 0x006AC3AB @@ -5742,50 +5721,6 @@ money32 ride_get_common_price(Ride *forRide) return MONEY32_UNDEFINED; } -money32 shop_item_get_common_price(Ride *forRide, sint32 shopItem) -{ - rct_ride_entry *rideEntry; - Ride *ride; - sint32 i; - - FOR_ALL_RIDES(i, ride) { - if (ride != forRide) { - rideEntry = get_ride_entry(ride->subtype); - if (rideEntry == nullptr) { - continue; - } - if (rideEntry->shop_item == shopItem) { - return ride->price; - } - if (rideEntry->shop_item_secondary == shopItem) { - return ride->price_secondary; - } - if (shop_item_is_photo(shopItem) && (ride->lifecycle_flags & RIDE_LIFECYCLE_ON_RIDE_PHOTO)) { - return ride->price_secondary; - } - } - } - - return MONEY32_UNDEFINED; -} - -bool shop_item_is_photo(sint32 shopItem) -{ - return ( - shopItem == SHOP_ITEM_PHOTO || shopItem == SHOP_ITEM_PHOTO2 || - shopItem == SHOP_ITEM_PHOTO3 || shopItem == SHOP_ITEM_PHOTO4 - ); -} - -bool shop_item_has_common_price(sint32 shopItem) -{ - if (shopItem < 32) { - return gSamePriceThroughoutParkA & (1u << shopItem); - } else { - return gSamePriceThroughoutParkB & (1u << (shopItem - 32)); - } -} - void ride_set_name_to_default(Ride * ride, rct_ride_entry * rideEntry) { if (RideGroupManager::RideTypeIsIndependent(ride->type)) @@ -7729,109 +7664,6 @@ void ride_crash(uint8 rideIndex, uint8 vehicleIndex) } } -bool shop_item_is_food_or_drink(sint32 shopItem) -{ - 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; - } -} - -bool shop_item_is_food(sint32 shopItem) -{ - 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; - } -} - -bool shop_item_is_drink(sint32 shopItem) -{ - 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; - } -} - -bool shop_item_is_souvenir(sint32 shopItem) -{ - 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; - } -} - void ride_reset_all_names() { sint32 i; diff --git a/src/openrct2/ride/Ride.h b/src/openrct2/ride/Ride.h index aedce37fc8..504140d4c3 100644 --- a/src/openrct2/ride/Ride.h +++ b/src/openrct2/ride/Ride.h @@ -816,62 +816,6 @@ enum { RIDE_SET_VEHICLES_COMMAND_TYPE_RIDE_ENTRY }; -enum { - SHOP_ITEM_BALLOON, - SHOP_ITEM_TOY, - SHOP_ITEM_MAP, - SHOP_ITEM_PHOTO, - SHOP_ITEM_UMBRELLA, - SHOP_ITEM_DRINK, - SHOP_ITEM_BURGER, - SHOP_ITEM_CHIPS, - SHOP_ITEM_ICE_CREAM, - SHOP_ITEM_CANDYFLOSS, - SHOP_ITEM_EMPTY_CAN, - SHOP_ITEM_RUBBISH, - SHOP_ITEM_EMPTY_BURGER_BOX, - SHOP_ITEM_PIZZA, - SHOP_ITEM_VOUCHER, - SHOP_ITEM_POPCORN, - SHOP_ITEM_HOT_DOG, - SHOP_ITEM_TENTACLE, - SHOP_ITEM_HAT, - SHOP_ITEM_TOFFEE_APPLE, - SHOP_ITEM_TSHIRT, - SHOP_ITEM_DOUGHNUT, - SHOP_ITEM_COFFEE, - SHOP_ITEM_EMPTY_CUP, - SHOP_ITEM_CHICKEN, - SHOP_ITEM_LEMONADE, - SHOP_ITEM_EMPTY_BOX, - SHOP_ITEM_EMPTY_BOTTLE = 27, - SHOP_ITEM_ADMISSION = 31, - SHOP_ITEM_PHOTO2 = 32, - SHOP_ITEM_PHOTO3, - SHOP_ITEM_PHOTO4, - SHOP_ITEM_PRETZEL, - SHOP_ITEM_CHOCOLATE, - SHOP_ITEM_ICED_TEA, - SHOP_ITEM_FUNNEL_CAKE, - SHOP_ITEM_SUNGLASSES, - SHOP_ITEM_BEEF_NOODLES, - SHOP_ITEM_FRIED_RICE_NOODLES, - SHOP_ITEM_WONTON_SOUP, - SHOP_ITEM_MEATBALL_SOUP, - SHOP_ITEM_FRUIT_JUICE, - SHOP_ITEM_SOYBEAN_MILK, - SHOP_ITEM_SUJEONGGWA, - SHOP_ITEM_SUB_SANDWICH, - SHOP_ITEM_COOKIE, - SHOP_ITEM_EMPTY_BOWL_RED, - SHOP_ITEM_EMPTY_DRINK_CARTON, - SHOP_ITEM_EMPTY_JUICE_CUP, - SHOP_ITEM_ROAST_SAUSAGE, - SHOP_ITEM_EMPTY_BOWL_BLUE, - SHOP_ITEM_COUNT = 56, - SHOP_ITEM_NONE = 255 -}; - enum { RIDE_SETTING_MODE, RIDE_SETTING_DEPARTURE, @@ -943,8 +887,6 @@ rct_ride_measurement * get_ride_measurement(sint32 index); if ((ride = get_ride(i))->type != RIDE_TYPE_NULL) extern money16 gTotalRideValueForMoney; -extern uint32 gSamePriceThroughoutParkA; -extern uint32 gSamePriceThroughoutParkB; extern const uint8 gRideClassifications[MAX_RIDES]; @@ -1019,10 +961,6 @@ void ride_update_all(); void ride_check_all_reachable(); void ride_update_satisfaction(Ride* ride, uint8 happiness); void ride_update_popularity(Ride* ride, uint8 pop_amount); -money32 get_shop_item_cost(sint32 shopItem); -money16 get_shop_base_value(sint32 shopItem); -money16 get_shop_hot_value(sint32 shopItem); -money16 get_shop_cold_value(sint32 shopItem); bool ride_try_get_origin_element(sint32 rideIndex, CoordsXYE *output); sint32 ride_find_track_gap(CoordsXYE *input, CoordsXYE *output); void ride_construct_new(ride_list_item listItem); @@ -1066,9 +1004,6 @@ sint32 ride_get_refund_price(sint32 ride_id); sint32 ride_get_random_colour_preset_index(uint8 ride_type); void ride_set_colour_preset(Ride *ride, uint8 index); money32 ride_get_common_price(Ride *forRide); -money32 shop_item_get_common_price(Ride *forRide, sint32 shopItem); -bool shop_item_is_photo(sint32 shopItem); -bool shop_item_has_common_price(sint32 shopItem); rct_ride_name get_ride_naming(const uint8 rideType, rct_ride_entry * rideEntry); void game_command_create_ride(sint32 *eax, sint32 *ebx, sint32 *ecx, sint32 *edx, sint32 *esi, sint32 *edi, sint32 *ebp); void game_command_callback_ride_construct_new(sint32 eax, sint32 ebx, sint32 ecx, sint32 edx, sint32 esi, sint32 edi, sint32 ebp); @@ -1157,10 +1092,6 @@ void ride_crash(uint8 rideIndex, uint8 vehicleIndex); void sub_6C94D8(); -bool shop_item_is_food_or_drink(sint32 shopItem); -bool shop_item_is_food(sint32 shopItem); -bool shop_item_is_drink(sint32 shopItem); -bool shop_item_is_souvenir(sint32 shopItem); void ride_reset_all_names(); const uint8* ride_seek_available_modes(Ride *ride); diff --git a/src/openrct2/ride/RideData.cpp b/src/openrct2/ride/RideData.cpp index 603d131c27..5fefe89d0d 100644 --- a/src/openrct2/ride/RideData.cpp +++ b/src/openrct2/ride/RideData.cpp @@ -32,6 +32,7 @@ #include "Ride.h" #include "Track.h" #include "RideData.h" +#include "ShopItem.h" // clang-format off const bool hasRunningTrack[RIDE_TYPE_COUNT] = { @@ -1411,181 +1412,6 @@ const rct_ride_data_5 RideData5[RIDE_TYPE_COUNT] = { { 35, 24, 5, 18, 7, 50, 95, 0 }, // RIDE_TYPE_LIM_LAUNCHED_ROLLER_COASTER }; - -// rct2: 0x00982358 -const money8 DefaultShopItemPrice[SHOP_ITEM_COUNT] = { - MONEY(0,90), // SHOP_ITEM_BALLOON - MONEY(2,50), // SHOP_ITEM_TOY - MONEY(0,60), // SHOP_ITEM_MAP - MONEY(0,00), // SHOP_ITEM_PHOTO - MONEY(2,50), // SHOP_ITEM_UMBRELLA - MONEY(1,20), // SHOP_ITEM_DRINK - MONEY(1,50), // SHOP_ITEM_BURGER - MONEY(1,50), // SHOP_ITEM_CHIPS - MONEY(0,90), // SHOP_ITEM_ICE_CREAM - MONEY(0,80), // SHOP_ITEM_CANDYFLOSS - MONEY(0,00), // SHOP_ITEM_EMPTY_CAN - MONEY(0,00), // SHOP_ITEM_RUBBISH - MONEY(0,00), // SHOP_ITEM_EMPTY_BURGER_BOX - MONEY(1,60), // SHOP_ITEM_PIZZA - MONEY(0,00), // SHOP_ITEM_VOUCHER - MONEY(1,20), // SHOP_ITEM_POPCORN - MONEY(1,00), // SHOP_ITEM_HOT_DOG - MONEY(1,50), // SHOP_ITEM_TENTACLE - MONEY(1,50), // SHOP_ITEM_HAT - MONEY(0,70), // SHOP_ITEM_TOFFEE_APPLE - MONEY(3,00), // SHOP_ITEM_TSHIRT - MONEY(0,70), // SHOP_ITEM_DOUGHNUT - MONEY(1,20), // SHOP_ITEM_COFFEE - MONEY(0,00), // SHOP_ITEM_EMPTY_CUP - MONEY(1,50), // SHOP_ITEM_CHICKEN - MONEY(1,20), // SHOP_ITEM_LEMONADE - MONEY(0,00), // SHOP_ITEM_EMPTY_BOX - MONEY(0,00), // SHOP_ITEM_EMPTY_BOTTLE - MONEY(0,00), // 28 - MONEY(0,00), // 29 - MONEY(0,00), // 30 - MONEY(0,00), // 31 - MONEY(0,00), // SHOP_ITEM_PHOTO2 - MONEY(0,00), // SHOP_ITEM_PHOTO3 - MONEY(0,00), // SHOP_ITEM_PHOTO4 - MONEY(1,10), // SHOP_ITEM_PRETZEL - MONEY(1,20), // SHOP_ITEM_CHOCOLATE - MONEY(1,10), // SHOP_ITEM_ICED_TEA - MONEY(1,20), // SHOP_ITEM_FUNNEL_CAKE - MONEY(1,50), // SHOP_ITEM_SUNGLASSES - MONEY(1,50), // SHOP_ITEM_BEEF_NOODLES - MONEY(1,50), // SHOP_ITEM_FRIED_RICE_NOODLES - MONEY(1,50), // SHOP_ITEM_WONTON_SOUP - MONEY(1,50), // SHOP_ITEM_MEATBALL_SOUP - MONEY(1,20), // SHOP_ITEM_FRUIT_JUICE - MONEY(1,20), // SHOP_ITEM_SOYBEAN_MILK - MONEY(1,20), // SHOP_ITEM_SUJEONGGWA - MONEY(1,50), // SHOP_ITEM_SUB_SANDWICH - MONEY(0,70), // SHOP_ITEM_COOKIE - MONEY(0,00), // SHOP_ITEM_EMPTY_BOWL_RED - MONEY(0,00), // SHOP_ITEM_EMPTY_DRINK_CARTON - MONEY(0,00), // SHOP_ITEM_EMPTY_JUICE_CUP - MONEY(1,50), // SHOP_ITEM_ROAST_SAUSAGE - MONEY(0,00), // SHOP_ITEM_EMPTY_BOWL_BLUE - MONEY(0,00), // 54 - MONEY(0,00), // 55 -}; - -const rct_shop_item_string_types ShopItemStringIds[SHOP_ITEM_COUNT] = { - { 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 }, - { 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 }, - { 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 }, - { 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 }, - { 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 }, - { 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 }, - { 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 }, - { 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 }, - { 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 }, - { 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 }, - { 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 }, - { 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 }, - { 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 }, - { 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 }, - { 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 }, - { 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 }, - { 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 }, - { 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 }, - { 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 }, - { 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 }, - { 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 }, - { 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 }, - { 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 }, - { 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 }, - { 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 }, - { 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 }, - { 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 }, - { 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 }, - { 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_NONE, STR_NONE, STR_NONE, STR_NONE }, - { 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 }, - { 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 }, - { 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 }, - { 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 }, - { 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 }, - { 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 }, - { 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 }, - { 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 }, - { 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 }, - { 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 }, - { 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 }, - { 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 }, - { 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 }, - { 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 }, - { 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 }, - { 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 }, - { 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 }, - { 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 }, - { 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 }, - { 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 }, - { 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 }, - { 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 }, -}; - -const uint32 ShopItemImage[SHOP_ITEM_COUNT] = { - SPR_SHOP_ITEM_BALLOON, - SPR_SHOP_ITEM_TOY, - SPR_SHOP_ITEM_MAP, - SPR_SHOP_ITEM_PHOTO, - SPR_SHOP_ITEM_UMBRELLA, - SPR_SHOP_ITEM_DRINK, - SPR_SHOP_ITEM_BURGER, - SPR_SHOP_ITEM_CHIPS, - SPR_SHOP_ITEM_ICE_CREAM, - SPR_SHOP_ITEM_CANDYFLOSS, - SPR_SHOP_ITEM_EMPTY_CAN, - SPR_SHOP_ITEM_RUBBISH, - SPR_SHOP_ITEM_EMPTY_BURGER_BOX, - SPR_SHOP_ITEM_PIZZA, - SPR_SHOP_ITEM_VOUCHER, - SPR_SHOP_ITEM_POPCORN, - SPR_SHOP_ITEM_HOT_DOG, - SPR_SHOP_ITEM_TENTACLE, - SPR_SHOP_ITEM_HAT, - SPR_SHOP_ITEM_TOFFEE_APPLE, - SPR_SHOP_ITEM_TSHIRT, - SPR_SHOP_ITEM_DOUGHNUT, - SPR_SHOP_ITEM_COFFEE, - SPR_SHOP_ITEM_EMPTY_CUP, - SPR_SHOP_ITEM_CHICKEN, - SPR_SHOP_ITEM_LEMONADE, - SPR_SHOP_ITEM_EMPTY_BOX, - SPR_SHOP_ITEM_EMPTY_BOTTLE, - 0, // 28 - 0, // 29 - 0, // 30 - 0, // 31 - SPR_SHOP_ITEM_PHOTO2, - SPR_SHOP_ITEM_PHOTO3, - SPR_SHOP_ITEM_PHOTO4, - SPR_SHOP_ITEM_PRETZEL, - SPR_SHOP_ITEM_CHOCOLATE, - SPR_SHOP_ITEM_ICED_TEA, - SPR_SHOP_ITEM_FUNNEL_CAKE, - SPR_SHOP_ITEM_SUNGLASSES, - SPR_SHOP_ITEM_BEEF_NOODLES, - SPR_SHOP_ITEM_FRIED_RICE_NOODLES, - SPR_SHOP_ITEM_WONTON_SOUP, - SPR_SHOP_ITEM_MEATBALL_SOUP, - SPR_SHOP_ITEM_FRUIT_JUICE, - SPR_SHOP_ITEM_SOYBEAN_MILK, - SPR_SHOP_ITEM_SUJEONGGWA, - SPR_SHOP_ITEM_SUB_SANDWICH, - SPR_SHOP_ITEM_COOKIE, - SPR_SHOP_ITEM_EMPTY_BOWL_RED, - SPR_SHOP_ITEM_EMPTY_DRINK_CARTON, - SPR_SHOP_ITEM_EMPTY_JUICE_CUP, - SPR_SHOP_ITEM_ROAST_SAUSAGE, - SPR_SHOP_ITEM_EMPTY_BOWL_BLUE, -}; - const rct_ride_entry_vehicle CableLiftVehicle = { /* .rotation_frame_mask = */ 31, /* .num_vertical_frames = */ 0, @@ -2434,64 +2260,6 @@ const rct_ride_properties RideProperties[RIDE_TYPE_COUNT] = { 10, 31, 26, 18, 18, 0 }, // RIDE_TYPE_LIM_LAUNCHED_ROLLER_COASTER }; -/** rct2: 0x00982164 */ -const rct_shop_item_stats ShopItemStats[SHOP_ITEM_COUNT] = { - { 3, 14, 14, 14 }, // SHOP_ITEM_BALLOON - { 15, 30, 30, 30 }, // SHOP_ITEM_TOY - { 1, 7, 7, 8 }, // SHOP_ITEM_MAP - { 2, 30, 30, 30 }, // SHOP_ITEM_PHOTO - { 20, 35, 25, 50 }, // SHOP_ITEM_UMBRELLA - { 3, 12, 20, 10 }, // SHOP_ITEM_DRINK - { 5, 19, 19, 22 }, // SHOP_ITEM_BURGER - { 4, 16, 16, 18 }, // SHOP_ITEM_CHIPS - { 4, 10, 15, 6 }, // SHOP_ITEM_ICE_CREAM - { 3, 9, 9, 6 }, // SHOP_ITEM_CANDYFLOSS - { 0, 0, 0, 0 }, // SHOP_ITEM_EMPTY_CAN - { 0, 0, 0, 0 }, // SHOP_ITEM_RUBBISH - { 0, 0, 0, 0 }, // SHOP_ITEM_EMPTY_BURGER_BOX - { 6, 21, 21, 25 }, // SHOP_ITEM_PIZZA - { 0, 0, 0, 0 }, // SHOP_ITEM_VOUCHER - { 5, 13, 13, 11 }, // SHOP_ITEM_POPCORN - { 5, 17, 17, 20 }, // SHOP_ITEM_HOT_DOG - { 11, 22, 20, 18 }, // SHOP_ITEM_TENTACLE - { 9, 27, 32, 24 }, // SHOP_ITEM_HAT - { 4, 10, 10, 10 }, // SHOP_ITEM_TOFFEE_APPLE - { 20, 37, 37, 37 }, // SHOP_ITEM_TSHIRT - { 4, 8, 7, 10 }, // SHOP_ITEM_DOUGHNUT - { 3, 11, 15, 20 }, // SHOP_ITEM_COFFEE - { 0, 0, 0, 0 }, // SHOP_ITEM_EMPTY_CUP - { 5, 19, 19, 22 }, // SHOP_ITEM_CHICKEN - { 4, 11, 21, 10 }, // SHOP_ITEM_LEMONADE - { 0, 0, 0, 0 }, // SHOP_ITEM_EMPTY_BOX - { 0, 0, 0, 0 }, // SHOP_ITEM_EMPTY_BOTTLE - { 0, 0, 0, 0 }, // 28 - { 0, 0, 0, 0 }, // 29 - { 0, 0, 0, 0 }, // 30 - { 0, 0, 0, 0 }, // SHOP_ITEM_ADMISSION - { 2, 30, 30, 30 }, // SHOP_ITEM_PHOTO2 - { 2, 30, 30, 30 }, // SHOP_ITEM_PHOTO3 - { 2, 30, 30, 30 }, // SHOP_ITEM_PHOTO4 - { 5, 11, 11, 11 }, // SHOP_ITEM_PRETZEL - { 4, 13, 13, 20 }, // SHOP_ITEM_CHOCOLATE - { 3, 10, 20, 10 }, // SHOP_ITEM_ICED_TEA - { 5, 13, 11, 14 }, // SHOP_ITEM_FUNNEL_CAKE - { 8, 15, 20, 12 }, // SHOP_ITEM_SUNGLASSES - { 7, 17, 17, 20 }, // SHOP_ITEM_BEEF_NOODLES - { 6, 17, 17, 20 }, // SHOP_ITEM_FRIED_RICE_NOODLES - { 4, 13, 13, 15 }, // SHOP_ITEM_WONTON_SOUP - { 5, 14, 14, 16 }, // SHOP_ITEM_MEATBALL_SOUP - { 4, 11, 19, 11 }, // SHOP_ITEM_FRUIT_JUICE - { 4, 10, 14, 10 }, // SHOP_ITEM_SOYBEAN_MILK - { 3, 11, 14, 11 }, // SHOP_ITEM_SUJEONGGWA - { 5, 19, 19, 17 }, // SHOP_ITEM_SUB_SANDWICH - { 4, 8, 8, 8 }, // SHOP_ITEM_COOKIE - { 0, 0, 0, 0 }, // SHOP_ITEM_EMPTY_BOWL_RED - { 0, 0, 0, 0 }, // SHOP_ITEM_EMPTY_DRINK_CARTON - { 0, 0, 0, 0 }, // SHOP_ITEM_EMPTY_JUICE_CUP - { 5, 16, 16, 20 }, // SHOP_ITEM_ROAST_SAUSAGE - { 0, 0, 0, 0 }, // SHOP_ITEM_EMPTY_BOWL_BLUE -}; - /** rct2: 0x0097CC68 */ const uint8 RideConstructionDefaultTrackType[] = { TRACK_ELEM_END_STATION, // RIDE_TYPE_SPIRAL_ROLLER_COASTER diff --git a/src/openrct2/ride/RideData.h b/src/openrct2/ride/RideData.h index 6fb12b97f8..20056972fa 100644 --- a/src/openrct2/ride/RideData.h +++ b/src/openrct2/ride/RideData.h @@ -63,14 +63,6 @@ struct rct_ride_entrance_definition { uint16 colour_use_flags; }; -struct rct_shop_item_string_types { - rct_string_id price_label; // Balloon price: - rct_string_id singular; // Balloon - rct_string_id plural; // Balloons - rct_string_id indefinite; // a Balloon - rct_string_id display; // "Diamond Heights" Balloon -}; - struct rct_ride_data_4 { uint8 price; uint8 price_secondary; @@ -127,13 +119,6 @@ enum { RIDE_TYPE_ALTERNATIVE_TRACK_TYPE = 2, // Flying RC, Lay-down RC, Multi-dimension RC }; -struct rct_shop_item_stats { - uint16 cost; - uint16 base_value; - uint16 hot_value; - uint16 cold_value; -}; - extern const bool hasRunningTrack[RIDE_TYPE_COUNT]; extern const uint8 initialUpkeepCosts[RIDE_TYPE_COUNT]; extern const uint8 costPerTrackPiece[RIDE_TYPE_COUNT]; @@ -158,10 +143,6 @@ extern const sint32 RidePhotoItems[RIDE_TYPE_COUNT]; extern const ride_cost RideTrackCosts[RIDE_TYPE_COUNT]; extern const rct_ride_data_5 RideData5[RIDE_TYPE_COUNT]; -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]; - extern const rct_ride_entry_vehicle CableLiftVehicle; extern const uint16 RideFilmLength[3]; @@ -169,8 +150,6 @@ extern const uint16 RideCrookedHouseLength[1]; extern const rating_tuple RideRatings[RIDE_TYPE_COUNT]; -extern const rct_shop_item_stats ShopItemStats[SHOP_ITEM_COUNT]; - extern const uint8 RideConstructionDefaultTrackType[RIDE_TYPE_COUNT]; extern const track_colour_preset_list RideColourPresets[RIDE_TYPE_COUNT]; diff --git a/src/openrct2/ride/ShopItem.cpp b/src/openrct2/ride/ShopItem.cpp new file mode 100644 index 0000000000..d7c6549442 --- /dev/null +++ b/src/openrct2/ride/ShopItem.cpp @@ -0,0 +1,438 @@ +#pragma region Copyright (c) 2014-2018 OpenRCT2 Developers +/***************************************************************************** + * OpenRCT2, an open source clone of Roller Coaster Tycoon 2. + * + * OpenRCT2 is the work of many authors, a full list can be found in contributors.md + * For more information, visit https://github.com/OpenRCT2/OpenRCT2 + * + * OpenRCT2 is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * A full copy of the GNU General Public License can be found in licence.txt + *****************************************************************************/ +#pragma endregion + +#include "../common.h" +#include "../localisation/StringIds.h" +#include "../sprites.h" +#include "ShopItem.h" + +uint32 gSamePriceThroughoutParkA; +uint32 gSamePriceThroughoutParkB; + +/** rct2: 0x00982164 */ +static const rct_shop_item_stats ShopItemStats[SHOP_ITEM_COUNT] = +{ + { 3, 14, 14, 14 }, // SHOP_ITEM_BALLOON + { 15, 30, 30, 30 }, // SHOP_ITEM_TOY + { 1, 7, 7, 8 }, // SHOP_ITEM_MAP + { 2, 30, 30, 30 }, // SHOP_ITEM_PHOTO + { 20, 35, 25, 50 }, // SHOP_ITEM_UMBRELLA + { 3, 12, 20, 10 }, // SHOP_ITEM_DRINK + { 5, 19, 19, 22 }, // SHOP_ITEM_BURGER + { 4, 16, 16, 18 }, // SHOP_ITEM_CHIPS + { 4, 10, 15, 6 }, // SHOP_ITEM_ICE_CREAM + { 3, 9, 9, 6 }, // SHOP_ITEM_CANDYFLOSS + { 0, 0, 0, 0 }, // SHOP_ITEM_EMPTY_CAN + { 0, 0, 0, 0 }, // SHOP_ITEM_RUBBISH + { 0, 0, 0, 0 }, // SHOP_ITEM_EMPTY_BURGER_BOX + { 6, 21, 21, 25 }, // SHOP_ITEM_PIZZA + { 0, 0, 0, 0 }, // SHOP_ITEM_VOUCHER + { 5, 13, 13, 11 }, // SHOP_ITEM_POPCORN + { 5, 17, 17, 20 }, // SHOP_ITEM_HOT_DOG + { 11, 22, 20, 18 }, // SHOP_ITEM_TENTACLE + { 9, 27, 32, 24 }, // SHOP_ITEM_HAT + { 4, 10, 10, 10 }, // SHOP_ITEM_TOFFEE_APPLE + { 20, 37, 37, 37 }, // SHOP_ITEM_TSHIRT + { 4, 8, 7, 10 }, // SHOP_ITEM_DOUGHNUT + { 3, 11, 15, 20 }, // SHOP_ITEM_COFFEE + { 0, 0, 0, 0 }, // SHOP_ITEM_EMPTY_CUP + { 5, 19, 19, 22 }, // SHOP_ITEM_CHICKEN + { 4, 11, 21, 10 }, // SHOP_ITEM_LEMONADE + { 0, 0, 0, 0 }, // SHOP_ITEM_EMPTY_BOX + { 0, 0, 0, 0 }, // SHOP_ITEM_EMPTY_BOTTLE + { 0, 0, 0, 0 }, // 28 + { 0, 0, 0, 0 }, // 29 + { 0, 0, 0, 0 }, // 30 + { 0, 0, 0, 0 }, // SHOP_ITEM_ADMISSION + { 2, 30, 30, 30 }, // SHOP_ITEM_PHOTO2 + { 2, 30, 30, 30 }, // SHOP_ITEM_PHOTO3 + { 2, 30, 30, 30 }, // SHOP_ITEM_PHOTO4 + { 5, 11, 11, 11 }, // SHOP_ITEM_PRETZEL + { 4, 13, 13, 20 }, // SHOP_ITEM_CHOCOLATE + { 3, 10, 20, 10 }, // SHOP_ITEM_ICED_TEA + { 5, 13, 11, 14 }, // SHOP_ITEM_FUNNEL_CAKE + { 8, 15, 20, 12 }, // SHOP_ITEM_SUNGLASSES + { 7, 17, 17, 20 }, // SHOP_ITEM_BEEF_NOODLES + { 6, 17, 17, 20 }, // SHOP_ITEM_FRIED_RICE_NOODLES + { 4, 13, 13, 15 }, // SHOP_ITEM_WONTON_SOUP + { 5, 14, 14, 16 }, // SHOP_ITEM_MEATBALL_SOUP + { 4, 11, 19, 11 }, // SHOP_ITEM_FRUIT_JUICE + { 4, 10, 14, 10 }, // SHOP_ITEM_SOYBEAN_MILK + { 3, 11, 14, 11 }, // SHOP_ITEM_SUJEONGGWA + { 5, 19, 19, 17 }, // SHOP_ITEM_SUB_SANDWICH + { 4, 8, 8, 8 }, // SHOP_ITEM_COOKIE + { 0, 0, 0, 0 }, // SHOP_ITEM_EMPTY_BOWL_RED + { 0, 0, 0, 0 }, // SHOP_ITEM_EMPTY_DRINK_CARTON + { 0, 0, 0, 0 }, // SHOP_ITEM_EMPTY_JUICE_CUP + { 5, 16, 16, 20 }, // SHOP_ITEM_ROAST_SAUSAGE + { 0, 0, 0, 0 }, // SHOP_ITEM_EMPTY_BOWL_BLUE +}; + +// rct2: 0x00982358 +const money8 DefaultShopItemPrice[SHOP_ITEM_COUNT] = +{ + MONEY(0,90), // SHOP_ITEM_BALLOON + MONEY(2,50), // SHOP_ITEM_TOY + MONEY(0,60), // SHOP_ITEM_MAP + MONEY(0,00), // SHOP_ITEM_PHOTO + MONEY(2,50), // SHOP_ITEM_UMBRELLA + MONEY(1,20), // SHOP_ITEM_DRINK + MONEY(1,50), // SHOP_ITEM_BURGER + MONEY(1,50), // SHOP_ITEM_CHIPS + MONEY(0,90), // SHOP_ITEM_ICE_CREAM + MONEY(0,80), // SHOP_ITEM_CANDYFLOSS + MONEY(0,00), // SHOP_ITEM_EMPTY_CAN + MONEY(0,00), // SHOP_ITEM_RUBBISH + MONEY(0,00), // SHOP_ITEM_EMPTY_BURGER_BOX + MONEY(1,60), // SHOP_ITEM_PIZZA + MONEY(0,00), // SHOP_ITEM_VOUCHER + MONEY(1,20), // SHOP_ITEM_POPCORN + MONEY(1,00), // SHOP_ITEM_HOT_DOG + MONEY(1,50), // SHOP_ITEM_TENTACLE + MONEY(1,50), // SHOP_ITEM_HAT + MONEY(0,70), // SHOP_ITEM_TOFFEE_APPLE + MONEY(3,00), // SHOP_ITEM_TSHIRT + MONEY(0,70), // SHOP_ITEM_DOUGHNUT + MONEY(1,20), // SHOP_ITEM_COFFEE + MONEY(0,00), // SHOP_ITEM_EMPTY_CUP + MONEY(1,50), // SHOP_ITEM_CHICKEN + MONEY(1,20), // SHOP_ITEM_LEMONADE + MONEY(0,00), // SHOP_ITEM_EMPTY_BOX + MONEY(0,00), // SHOP_ITEM_EMPTY_BOTTLE + MONEY(0,00), // 28 + MONEY(0,00), // 29 + MONEY(0,00), // 30 + MONEY(0,00), // 31 + MONEY(0,00), // SHOP_ITEM_PHOTO2 + MONEY(0,00), // SHOP_ITEM_PHOTO3 + MONEY(0,00), // SHOP_ITEM_PHOTO4 + MONEY(1,10), // SHOP_ITEM_PRETZEL + MONEY(1,20), // SHOP_ITEM_CHOCOLATE + MONEY(1,10), // SHOP_ITEM_ICED_TEA + MONEY(1,20), // SHOP_ITEM_FUNNEL_CAKE + MONEY(1,50), // SHOP_ITEM_SUNGLASSES + MONEY(1,50), // SHOP_ITEM_BEEF_NOODLES + MONEY(1,50), // SHOP_ITEM_FRIED_RICE_NOODLES + MONEY(1,50), // SHOP_ITEM_WONTON_SOUP + MONEY(1,50), // SHOP_ITEM_MEATBALL_SOUP + MONEY(1,20), // SHOP_ITEM_FRUIT_JUICE + MONEY(1,20), // SHOP_ITEM_SOYBEAN_MILK + MONEY(1,20), // SHOP_ITEM_SUJEONGGWA + MONEY(1,50), // SHOP_ITEM_SUB_SANDWICH + MONEY(0,70), // SHOP_ITEM_COOKIE + MONEY(0,00), // SHOP_ITEM_EMPTY_BOWL_RED + MONEY(0,00), // SHOP_ITEM_EMPTY_DRINK_CARTON + MONEY(0,00), // SHOP_ITEM_EMPTY_JUICE_CUP + MONEY(1,50), // SHOP_ITEM_ROAST_SAUSAGE + MONEY(0,00), // SHOP_ITEM_EMPTY_BOWL_BLUE + MONEY(0,00), // 54 + MONEY(0,00), // 55 +}; + +const rct_shop_item_string_types ShopItemStringIds[SHOP_ITEM_COUNT] = +{ + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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_NONE, STR_NONE, STR_NONE, STR_NONE }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, + { 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 }, +}; + +const uint32 ShopItemImage[SHOP_ITEM_COUNT] = +{ + SPR_SHOP_ITEM_BALLOON, + SPR_SHOP_ITEM_TOY, + SPR_SHOP_ITEM_MAP, + SPR_SHOP_ITEM_PHOTO, + SPR_SHOP_ITEM_UMBRELLA, + SPR_SHOP_ITEM_DRINK, + SPR_SHOP_ITEM_BURGER, + SPR_SHOP_ITEM_CHIPS, + SPR_SHOP_ITEM_ICE_CREAM, + SPR_SHOP_ITEM_CANDYFLOSS, + SPR_SHOP_ITEM_EMPTY_CAN, + SPR_SHOP_ITEM_RUBBISH, + SPR_SHOP_ITEM_EMPTY_BURGER_BOX, + SPR_SHOP_ITEM_PIZZA, + SPR_SHOP_ITEM_VOUCHER, + SPR_SHOP_ITEM_POPCORN, + SPR_SHOP_ITEM_HOT_DOG, + SPR_SHOP_ITEM_TENTACLE, + SPR_SHOP_ITEM_HAT, + SPR_SHOP_ITEM_TOFFEE_APPLE, + SPR_SHOP_ITEM_TSHIRT, + SPR_SHOP_ITEM_DOUGHNUT, + SPR_SHOP_ITEM_COFFEE, + SPR_SHOP_ITEM_EMPTY_CUP, + SPR_SHOP_ITEM_CHICKEN, + SPR_SHOP_ITEM_LEMONADE, + SPR_SHOP_ITEM_EMPTY_BOX, + SPR_SHOP_ITEM_EMPTY_BOTTLE, + 0, // 28 + 0, // 29 + 0, // 30 + 0, // 31 + SPR_SHOP_ITEM_PHOTO2, + SPR_SHOP_ITEM_PHOTO3, + SPR_SHOP_ITEM_PHOTO4, + SPR_SHOP_ITEM_PRETZEL, + SPR_SHOP_ITEM_CHOCOLATE, + SPR_SHOP_ITEM_ICED_TEA, + SPR_SHOP_ITEM_FUNNEL_CAKE, + SPR_SHOP_ITEM_SUNGLASSES, + SPR_SHOP_ITEM_BEEF_NOODLES, + SPR_SHOP_ITEM_FRIED_RICE_NOODLES, + SPR_SHOP_ITEM_WONTON_SOUP, + SPR_SHOP_ITEM_MEATBALL_SOUP, + SPR_SHOP_ITEM_FRUIT_JUICE, + SPR_SHOP_ITEM_SOYBEAN_MILK, + SPR_SHOP_ITEM_SUJEONGGWA, + SPR_SHOP_ITEM_SUB_SANDWICH, + SPR_SHOP_ITEM_COOKIE, + SPR_SHOP_ITEM_EMPTY_BOWL_RED, + SPR_SHOP_ITEM_EMPTY_DRINK_CARTON, + SPR_SHOP_ITEM_EMPTY_JUICE_CUP, + SPR_SHOP_ITEM_ROAST_SAUSAGE, + SPR_SHOP_ITEM_EMPTY_BOWL_BLUE, +}; + +money32 get_shop_item_cost(sint32 shopItem) +{ + return ShopItemStats[shopItem].cost; +} + +money16 get_shop_base_value(sint32 shopItem) +{ + return ShopItemStats[shopItem].base_value; +} + +money16 get_shop_cold_value(sint32 shopItem) +{ + return ShopItemStats[shopItem].cold_value; +} + +money16 get_shop_hot_value(sint32 shopItem) +{ + return ShopItemStats[shopItem].hot_value; +} + +money32 shop_item_get_common_price(Ride* forRide, sint32 shopItem) +{ + rct_ride_entry* rideEntry; + Ride* ride; + sint32 i; + + FOR_ALL_RIDES(i, ride) + { + if (ride != forRide) + { + rideEntry = get_ride_entry(ride->subtype); + if (rideEntry == nullptr) + { + continue; + } + if (rideEntry->shop_item == shopItem) + { + return ride->price; + } + if (rideEntry->shop_item_secondary == shopItem) + { + return ride->price_secondary; + } + if (shop_item_is_photo(shopItem) && (ride->lifecycle_flags & RIDE_LIFECYCLE_ON_RIDE_PHOTO)) + { + return ride->price_secondary; + } + } + } + + return MONEY32_UNDEFINED; +} + +bool shop_item_is_photo(sint32 shopItem) +{ + return ( + shopItem == SHOP_ITEM_PHOTO || shopItem == SHOP_ITEM_PHOTO2 || + shopItem == SHOP_ITEM_PHOTO3 || shopItem == SHOP_ITEM_PHOTO4); +} + +bool shop_item_has_common_price(sint32 shopItem) +{ + if (shopItem < 32) + { + return (gSamePriceThroughoutParkA & (1u << shopItem)) != 0; + } + else + { + return (gSamePriceThroughoutParkB & (1u << (shopItem - 32))) != 0; + } +} + +bool shop_item_is_food_or_drink(sint32 shopItem) +{ + 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; + } +} + +bool shop_item_is_food(sint32 shopItem) +{ + 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; + } +} + +bool shop_item_is_drink(sint32 shopItem) +{ + 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; + } +} + +bool shop_item_is_souvenir(sint32 shopItem) +{ + 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; + } +} diff --git a/src/openrct2/ride/ShopItem.h b/src/openrct2/ride/ShopItem.h new file mode 100644 index 0000000000..2ce8354fcd --- /dev/null +++ b/src/openrct2/ride/ShopItem.h @@ -0,0 +1,112 @@ +#pragma region Copyright (c) 2014-2018 OpenRCT2 Developers +/***************************************************************************** + * OpenRCT2, an open source clone of Roller Coaster Tycoon 2. + * + * OpenRCT2 is the work of many authors, a full list can be found in contributors.md + * For more information, visit https://github.com/OpenRCT2/OpenRCT2 + * + * OpenRCT2 is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * A full copy of the GNU General Public License can be found in licence.txt + *****************************************************************************/ +#pragma endregion + +#pragma once + +#include "../common.h" + +enum +{ + SHOP_ITEM_BALLOON, + SHOP_ITEM_TOY, + SHOP_ITEM_MAP, + SHOP_ITEM_PHOTO, + SHOP_ITEM_UMBRELLA, + SHOP_ITEM_DRINK, + SHOP_ITEM_BURGER, + SHOP_ITEM_CHIPS, + SHOP_ITEM_ICE_CREAM, + SHOP_ITEM_CANDYFLOSS, + SHOP_ITEM_EMPTY_CAN, + SHOP_ITEM_RUBBISH, + SHOP_ITEM_EMPTY_BURGER_BOX, + SHOP_ITEM_PIZZA, + SHOP_ITEM_VOUCHER, + SHOP_ITEM_POPCORN, + SHOP_ITEM_HOT_DOG, + SHOP_ITEM_TENTACLE, + SHOP_ITEM_HAT, + SHOP_ITEM_TOFFEE_APPLE, + SHOP_ITEM_TSHIRT, + SHOP_ITEM_DOUGHNUT, + SHOP_ITEM_COFFEE, + SHOP_ITEM_EMPTY_CUP, + SHOP_ITEM_CHICKEN, + SHOP_ITEM_LEMONADE, + SHOP_ITEM_EMPTY_BOX, + SHOP_ITEM_EMPTY_BOTTLE = 27, + SHOP_ITEM_ADMISSION = 31, + SHOP_ITEM_PHOTO2 = 32, + SHOP_ITEM_PHOTO3, + SHOP_ITEM_PHOTO4, + SHOP_ITEM_PRETZEL, + SHOP_ITEM_CHOCOLATE, + SHOP_ITEM_ICED_TEA, + SHOP_ITEM_FUNNEL_CAKE, + SHOP_ITEM_SUNGLASSES, + SHOP_ITEM_BEEF_NOODLES, + SHOP_ITEM_FRIED_RICE_NOODLES, + SHOP_ITEM_WONTON_SOUP, + SHOP_ITEM_MEATBALL_SOUP, + SHOP_ITEM_FRUIT_JUICE, + SHOP_ITEM_SOYBEAN_MILK, + SHOP_ITEM_SUJEONGGWA, + SHOP_ITEM_SUB_SANDWICH, + SHOP_ITEM_COOKIE, + SHOP_ITEM_EMPTY_BOWL_RED, + SHOP_ITEM_EMPTY_DRINK_CARTON, + SHOP_ITEM_EMPTY_JUICE_CUP, + SHOP_ITEM_ROAST_SAUSAGE, + SHOP_ITEM_EMPTY_BOWL_BLUE, + SHOP_ITEM_COUNT = 56, + SHOP_ITEM_NONE = 255 +}; + +struct rct_shop_item_stats +{ + uint16 cost; + uint16 base_value; + uint16 hot_value; + uint16 cold_value; +}; + +struct rct_shop_item_string_types +{ + rct_string_id price_label; // Balloon price: + rct_string_id singular; // Balloon + rct_string_id plural; // Balloons + rct_string_id indefinite; // a Balloon + rct_string_id display; // "Diamond Heights" Balloon +}; + +extern uint32 gSamePriceThroughoutParkA; +extern uint32 gSamePriceThroughoutParkB; + +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]; + +money32 get_shop_item_cost(sint32 shopItem); +money16 get_shop_base_value(sint32 shopItem); +money16 get_shop_hot_value(sint32 shopItem); +money16 get_shop_cold_value(sint32 shopItem); +money32 shop_item_get_common_price(Ride *forRide, sint32 shopItem); +bool shop_item_is_photo(sint32 shopItem); +bool shop_item_has_common_price(sint32 shopItem); +bool shop_item_is_food_or_drink(sint32 shopItem); +bool shop_item_is_food(sint32 shopItem); +bool shop_item_is_drink(sint32 shopItem); +bool shop_item_is_souvenir(sint32 shopItem); diff --git a/src/openrct2/world/Park.cpp b/src/openrct2/world/Park.cpp index 6f6e2ce41c..db33468581 100644 --- a/src/openrct2/world/Park.cpp +++ b/src/openrct2/world/Park.cpp @@ -34,6 +34,7 @@ #include "../peep/Staff.h" #include "../ride/Ride.h" #include "../ride/RideData.h" +#include "../ride/ShopItem.h" #include "../scenario/Scenario.h" #include "Entrance.h" #include "Map.h"