2017-06-01 21:55:10 +02:00
|
|
|
#pragma region Copyright (c) 2014-2017 OpenRCT2 Developers
|
2014-05-23 11:14:52 +02:00
|
|
|
/*****************************************************************************
|
|
|
|
* OpenRCT2, an open source clone of Roller Coaster Tycoon 2.
|
|
|
|
*
|
2016-05-04 19:24:41 +02:00
|
|
|
* 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
|
2014-05-23 11:14:52 +02:00
|
|
|
*
|
|
|
|
* 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.
|
2016-05-04 19:24:41 +02:00
|
|
|
*
|
|
|
|
* A full copy of the GNU General Public License can be found in licence.txt
|
2014-05-23 11:14:52 +02:00
|
|
|
*****************************************************************************/
|
2016-05-04 19:24:41 +02:00
|
|
|
#pragma endregion
|
2014-05-23 11:14:52 +02:00
|
|
|
|
2014-05-24 15:31:42 +02:00
|
|
|
#ifndef _RIDE_DATA_H_
|
|
|
|
#define _RIDE_DATA_H_
|
|
|
|
|
2014-10-06 18:36:58 +02:00
|
|
|
#include "../common.h"
|
2015-08-05 02:24:18 +02:00
|
|
|
#include "ride.h"
|
2014-09-01 13:04:34 +02:00
|
|
|
|
2016-07-14 14:07:49 +02:00
|
|
|
typedef struct ride_component_name {
|
|
|
|
rct_string_id singular;
|
|
|
|
rct_string_id plural;
|
|
|
|
rct_string_id capitalised;
|
|
|
|
rct_string_id capitalised_plural;
|
|
|
|
rct_string_id count;
|
|
|
|
rct_string_id count_plural;
|
|
|
|
rct_string_id number;
|
|
|
|
} ride_component_name;
|
|
|
|
|
|
|
|
typedef enum {
|
|
|
|
RIDE_COMPONENT_TYPE_TRAIN,
|
|
|
|
RIDE_COMPONENT_TYPE_BOAT,
|
|
|
|
RIDE_COMPONENT_TYPE_TRACK,
|
|
|
|
RIDE_COMPONENT_TYPE_DOCKING_PLATFORM,
|
|
|
|
RIDE_COMPONENT_TYPE_STATION,
|
|
|
|
RIDE_COMPONENT_TYPE_CAR,
|
|
|
|
RIDE_COMPONENT_TYPE_BUILDING,
|
|
|
|
RIDE_COMPONENT_TYPE_STRUCTURE,
|
|
|
|
RIDE_COMPONENT_TYPE_SHIP,
|
|
|
|
RIDE_COMPONENT_TYPE_CABIN,
|
|
|
|
RIDE_COMPONENT_TYPE_WHEEL,
|
|
|
|
RIDE_COMPONENT_TYPE_RING,
|
|
|
|
RIDE_COMPONENT_TYPE_PLAYER,
|
|
|
|
RIDE_COMPONENT_TYPE_COURSE,
|
|
|
|
RIDE_COMPONENT_TYPE_COUNT
|
|
|
|
} ride_component_type;
|
|
|
|
|
2016-05-12 23:57:40 +02:00
|
|
|
typedef struct rct_ride_name_convention {
|
2016-07-14 14:07:49 +02:00
|
|
|
ride_component_type vehicle;
|
|
|
|
ride_component_type structure;
|
|
|
|
ride_component_type station;
|
2014-09-01 13:04:34 +02:00
|
|
|
} rct_ride_name_convention;
|
2014-05-23 14:18:58 +02:00
|
|
|
|
2016-07-27 00:02:10 +02:00
|
|
|
typedef struct rct_ride_name {
|
|
|
|
rct_string_id name;
|
|
|
|
rct_string_id description;
|
|
|
|
} rct_ride_name;
|
|
|
|
|
2016-05-12 23:57:40 +02:00
|
|
|
typedef struct rct_ride_entrance_definition {
|
2015-08-05 02:24:18 +02:00
|
|
|
uint32 sprite_index;
|
2015-03-18 20:52:27 +01:00
|
|
|
uint16 height;
|
2015-08-05 02:24:18 +02:00
|
|
|
uint16 scrolling_mode;
|
2016-05-18 23:00:26 +02:00
|
|
|
uint32 base_image_id;
|
2016-11-06 21:06:02 +01:00
|
|
|
rct_string_id string_id;
|
2015-08-05 02:24:18 +02:00
|
|
|
uint16 colour_use_flags;
|
2015-03-18 20:52:27 +01:00
|
|
|
} rct_ride_entrance_definition;
|
|
|
|
|
2016-05-12 23:57:40 +02:00
|
|
|
typedef struct rct_shop_item_string_types {
|
2016-07-14 14:07:49 +02:00
|
|
|
rct_string_id price_label; // Balloon price:
|
2015-08-05 20:17:37 +02:00
|
|
|
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;
|
|
|
|
|
2016-05-12 23:57:40 +02:00
|
|
|
typedef struct rct_ride_data_4 {
|
2016-04-03 03:37:34 +02:00
|
|
|
uint8 price;
|
|
|
|
uint8 price_secondary;
|
2015-09-10 23:16:41 +02:00
|
|
|
uint16 flags;
|
|
|
|
uint8 default_music;
|
2016-08-07 14:01:20 +02:00
|
|
|
uint8 alternate_type;
|
2016-04-03 03:37:34 +02:00
|
|
|
uint8 pad[2];
|
2015-09-10 23:16:41 +02:00
|
|
|
} rct_ride_data_4;
|
|
|
|
|
2016-05-12 23:57:40 +02:00
|
|
|
typedef struct ride_cost {
|
2016-04-03 13:41:00 +02:00
|
|
|
uint16 track_price;
|
|
|
|
uint16 support_price;
|
|
|
|
} ride_cost;
|
|
|
|
|
2016-05-12 23:57:40 +02:00
|
|
|
typedef struct rct_ride_data_5 {
|
2016-04-03 14:53:17 +02:00
|
|
|
uint8 max_height;
|
|
|
|
uint8 clearance_height;
|
|
|
|
sint8 z_offset;
|
|
|
|
uint8 max_friction;
|
|
|
|
uint8 z;
|
|
|
|
uint8 price;
|
|
|
|
uint8 bonus_value; // Deprecated. Use rideBonusValue instead
|
|
|
|
uint8 pad;
|
|
|
|
} rct_ride_data_5;
|
|
|
|
|
2016-05-12 23:57:40 +02:00
|
|
|
typedef struct rct_ride_lift_data {
|
2015-11-21 16:53:56 +01:00
|
|
|
uint8 sound_id;
|
|
|
|
uint8 minimum_speed;
|
|
|
|
uint8 maximum_speed;
|
|
|
|
} rct_ride_lift_data;
|
|
|
|
|
2015-09-10 23:16:41 +02:00
|
|
|
enum {
|
|
|
|
RIDE_TYPE_FLAG4_0 = (1 << 0),
|
|
|
|
RIDE_TYPE_FLAG4_MUSIC_ON_DEFAULT = (1 << 1),
|
|
|
|
RIDE_TYPE_FLAG4_ALLOW_MUSIC = (1 << 2),
|
2017-05-16 19:11:51 +02:00
|
|
|
RIDE_TYPE_FLAG4_HAS_ALTERNATIVE_TRACK_TYPE = (1 << 3), // Used by the Flying RC, Lay-down RC, Multi-dimension RC
|
2015-09-10 23:16:41 +02:00
|
|
|
RIDE_TYPE_FLAG4_PEEP_CHECK_GFORCES = (1 << 4),
|
|
|
|
RIDE_TYPE_FLAG4_HAS_ENTRANCE_EXIT = (1 << 5),
|
2017-05-16 16:09:50 +02:00
|
|
|
RIDE_TYPE_FLAG4_ALLOW_MORE_VEHICLES_THAN_STATION_FITS = (1 << 6),
|
2015-09-10 23:16:41 +02:00
|
|
|
RIDE_TYPE_FLAG4_HAS_AIR_TIME = (1 << 7),
|
|
|
|
RIDE_TYPE_FLAG4_SINGLE_SESSION = (1 << 8),
|
|
|
|
RIDE_TYPE_FLAG4_ALLOW_MULTIPLE_CIRCUITS = (1 << 9),
|
2017-05-16 16:09:50 +02:00
|
|
|
RIDE_TYPE_FLAG4_ALLOW_CABLE_LIFT_HILL = (1 << 10),
|
|
|
|
RIDE_TYPE_FLAG4_SHOW_IN_TRACK_DESIGNER = (1 << 11),
|
2015-09-10 23:16:41 +02:00
|
|
|
RIDE_TYPE_FLAG4_TRANSPORT_RIDE = (1 << 12),
|
2017-05-16 16:09:50 +02:00
|
|
|
RIDE_TYPE_FLAG4_INTERESTING_TO_LOOK_AT = (1 << 13),
|
|
|
|
RIDE_TYPE_FLAG4_SLIGHTLY_INTERESTING_TO_LOOK_AT = (1 << 14),
|
|
|
|
RIDE_TYPE_FLAG4_START_CONSTRUCTION_INVERTED = (1 << 15), // This is only set on the Flying RC and its alternative type.
|
2015-09-10 23:16:41 +02:00
|
|
|
};
|
|
|
|
|
2017-05-16 19:11:51 +02:00
|
|
|
enum {
|
|
|
|
RIDE_TYPE_NO_ALTERNATIVES = 0,
|
|
|
|
RIDE_TYPE_ALTERNATIVE_TRACK_PIECES = 1, // Dinghy slide and Water Coaster
|
|
|
|
RIDE_TYPE_ALTERNATIVE_TRACK_TYPE = 2, // Flying RC, Lay-down RC, Multi-dimension RC
|
|
|
|
};
|
|
|
|
|
2016-08-05 00:36:51 +02:00
|
|
|
typedef struct rct_shop_item_stats {
|
|
|
|
uint16 cost;
|
|
|
|
uint16 base_value;
|
|
|
|
uint16 hot_value;
|
|
|
|
uint16 cold_value;
|
|
|
|
} rct_shop_item_stats;
|
|
|
|
|
2017-05-16 23:09:27 +02:00
|
|
|
extern const bool hasRunningTrack[RIDE_TYPE_COUNT];
|
|
|
|
extern const uint8 initialUpkeepCosts[RIDE_TYPE_COUNT];
|
|
|
|
extern const uint8 costPerTrackPiece[RIDE_TYPE_COUNT];
|
2014-05-23 13:57:50 +02:00
|
|
|
|
2017-05-16 23:09:27 +02:00
|
|
|
extern const uint8 costPerVehicle[RIDE_TYPE_COUNT];
|
|
|
|
extern const bool chargeUpkeepForTrainLength[RIDE_TYPE_COUNT];
|
|
|
|
extern const uint8 costPerStation[RIDE_TYPE_COUNT];
|
|
|
|
extern const uint8 rideBonusValue[RIDE_TYPE_COUNT];
|
2014-05-24 15:31:42 +02:00
|
|
|
|
2016-07-14 14:07:49 +02:00
|
|
|
extern const ride_component_name RideComponentNames[RIDE_COMPONENT_TYPE_COUNT];
|
2017-05-16 23:09:27 +02:00
|
|
|
extern const rct_ride_name_convention RideNameConvention[RIDE_TYPE_COUNT];
|
2017-01-05 09:19:22 +01:00
|
|
|
extern const rct_ride_name RideNaming[RIDE_TYPE_COUNT];
|
2014-09-09 18:17:08 +02:00
|
|
|
extern const uint8 RideAvailableModes[];
|
2015-09-18 10:54:48 +02:00
|
|
|
extern const uint8 AllRideModesAvailable[];
|
2014-11-01 23:21:28 +01:00
|
|
|
extern const uint8 RideAvailableBreakdowns[];
|
2014-09-01 13:04:34 +02:00
|
|
|
|
2015-08-05 02:24:18 +02:00
|
|
|
extern const rct_ride_entrance_definition RideEntranceDefinitions[RIDE_ENTRANCE_STYLE_COUNT];
|
2017-01-05 09:19:22 +01:00
|
|
|
extern const rct_ride_lift_data RideLiftData[RIDE_TYPE_COUNT];
|
2015-03-18 20:52:27 +01:00
|
|
|
|
2017-01-05 09:19:22 +01:00
|
|
|
extern const rct_ride_data_4 RideData4[RIDE_TYPE_COUNT];
|
2017-01-04 22:17:08 +01:00
|
|
|
extern const sint32 RidePhotoItems[RIDE_TYPE_COUNT];
|
2017-01-05 09:19:22 +01:00
|
|
|
extern const ride_cost RideTrackCosts[RIDE_TYPE_COUNT];
|
|
|
|
extern const rct_ride_data_5 RideData5[RIDE_TYPE_COUNT];
|
2015-09-10 23:16:41 +02:00
|
|
|
|
2015-08-04 03:08:39 +02:00
|
|
|
extern const money8 DefaultShopItemPrice[SHOP_ITEM_COUNT];
|
2015-08-05 20:17:37 +02:00
|
|
|
extern const rct_shop_item_string_types ShopItemStringIds[SHOP_ITEM_COUNT];
|
|
|
|
extern const uint32 ShopItemImage[SHOP_ITEM_COUNT];
|
2015-08-04 03:08:39 +02:00
|
|
|
|
2016-02-25 13:33:19 +01:00
|
|
|
extern const rct_ride_entry_vehicle CableLiftVehicle;
|
2015-10-18 15:01:16 +02:00
|
|
|
|
2015-11-19 21:28:07 +01:00
|
|
|
extern const uint16 RideFilmLength[3];
|
2015-11-25 21:39:59 +01:00
|
|
|
extern const uint16 RideCrookedHouseLength[1];
|
2015-11-19 21:28:07 +01:00
|
|
|
|
2017-01-05 09:19:22 +01:00
|
|
|
extern const rating_tuple RideRatings[RIDE_TYPE_COUNT];
|
2016-04-03 15:43:12 +02:00
|
|
|
|
2016-08-05 00:36:51 +02:00
|
|
|
extern const rct_shop_item_stats ShopItemStats[SHOP_ITEM_COUNT];
|
|
|
|
|
2017-01-05 09:19:22 +01:00
|
|
|
extern const uint8 RideConstructionDefaultTrackType[RIDE_TYPE_COUNT];
|
2016-08-05 14:11:25 +02:00
|
|
|
|
2017-01-05 09:19:22 +01:00
|
|
|
extern const track_colour_preset_list RideColourPresets[RIDE_TYPE_COUNT];
|
2016-08-05 11:33:04 +02:00
|
|
|
|
2017-05-28 19:49:32 +02:00
|
|
|
extern const rct_string_id RideModeNames[RIDE_MODE_COUNT];
|
|
|
|
|
2015-04-10 08:24:33 +02:00
|
|
|
#endif
|