2016-05-04 19:24:41 +02:00
|
|
|
/*****************************************************************************
|
2020-07-21 15:04:34 +02:00
|
|
|
* Copyright (c) 2014-2020 OpenRCT2 developers
|
2016-05-04 19:24:41 +02:00
|
|
|
*
|
2018-06-15 14:07:34 +02:00
|
|
|
* For a complete list of all authors, please refer to contributors.md
|
|
|
|
* Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2
|
2016-05-04 19:24:41 +02:00
|
|
|
*
|
2018-06-15 14:07:34 +02:00
|
|
|
* OpenRCT2 is licensed under the GNU General Public License version 3.
|
2016-05-04 19:24:41 +02:00
|
|
|
*****************************************************************************/
|
|
|
|
|
2015-12-11 16:38:37 +01:00
|
|
|
/**
|
2014-05-23 11:26:49 +02:00
|
|
|
* Whether a particular ride has a running track or not. Will probably end up
|
|
|
|
* being used in various places in the game.
|
|
|
|
*
|
|
|
|
* Data source is 0x0097E3AC
|
2014-05-23 12:09:16 +02:00
|
|
|
*
|
2015-07-29 10:43:13 +02:00
|
|
|
* Generating function is here
|
2014-05-23 12:09:16 +02:00
|
|
|
* https://gist.github.com/kevinburke/eaeb1d8149a6eef0dcc1
|
2014-05-23 11:26:49 +02:00
|
|
|
*/
|
2014-05-23 14:37:52 +02:00
|
|
|
|
2018-06-22 23:14:18 +02:00
|
|
|
#include "RideData.h"
|
|
|
|
|
2020-04-19 13:32:43 +02:00
|
|
|
#include "../Cheats.h"
|
2018-01-09 16:55:19 +01:00
|
|
|
#include "../audio/audio.h"
|
|
|
|
#include "../interface/Colour.h"
|
2018-01-06 18:32:25 +01:00
|
|
|
#include "../localisation/Localisation.h"
|
2020-10-24 22:10:44 +02:00
|
|
|
#include "../management/Research.h"
|
2018-01-09 16:55:19 +01:00
|
|
|
#include "../sprites.h"
|
2017-12-31 13:21:34 +01:00
|
|
|
#include "Ride.h"
|
2018-05-14 19:21:43 +02:00
|
|
|
#include "ShopItem.h"
|
2018-06-22 23:14:18 +02:00
|
|
|
#include "Track.h"
|
2021-02-23 09:30:16 +01:00
|
|
|
#include "Vehicle.h"
|
2020-02-22 20:13:44 +01:00
|
|
|
#include "coaster/meta/AirPoweredVerticalCoaster.h"
|
|
|
|
#include "coaster/meta/BobsleighCoaster.h"
|
2020-06-20 02:32:52 +02:00
|
|
|
#include "coaster/meta/ClassicMiniRollerCoaster.h"
|
2020-02-22 20:13:44 +01:00
|
|
|
#include "coaster/meta/CompactInvertedCoaster.h"
|
|
|
|
#include "coaster/meta/CorkscrewRollerCoaster.h"
|
|
|
|
#include "coaster/meta/FlyingRollerCoaster.h"
|
|
|
|
#include "coaster/meta/GigaCoaster.h"
|
|
|
|
#include "coaster/meta/HeartlineTwisterCoaster.h"
|
2020-10-10 21:27:12 +02:00
|
|
|
#include "coaster/meta/HybridCoaster.h"
|
2020-06-20 02:32:52 +02:00
|
|
|
#include "coaster/meta/HyperTwister.h"
|
|
|
|
#include "coaster/meta/Hypercoaster.h"
|
2020-02-22 20:13:44 +01:00
|
|
|
#include "coaster/meta/InvertedHairpinCoaster.h"
|
|
|
|
#include "coaster/meta/InvertedImpulseCoaster.h"
|
|
|
|
#include "coaster/meta/InvertedRollerCoaster.h"
|
|
|
|
#include "coaster/meta/JuniorRollerCoaster.h"
|
|
|
|
#include "coaster/meta/LIMLaunchedRollerCoaster.h"
|
|
|
|
#include "coaster/meta/LayDownRollerCoaster.h"
|
|
|
|
#include "coaster/meta/LoopingRollerCoaster.h"
|
|
|
|
#include "coaster/meta/MineRide.h"
|
|
|
|
#include "coaster/meta/MineTrainCoaster.h"
|
|
|
|
#include "coaster/meta/MiniRollerCoaster.h"
|
|
|
|
#include "coaster/meta/MiniSuspendedCoaster.h"
|
|
|
|
#include "coaster/meta/MultiDimensionRollerCoaster.h"
|
|
|
|
#include "coaster/meta/ReverseFreefallCoaster.h"
|
|
|
|
#include "coaster/meta/ReverserRollerCoaster.h"
|
|
|
|
#include "coaster/meta/SideFrictionRollerCoaster.h"
|
2021-01-06 21:10:15 +01:00
|
|
|
#include "coaster/meta/SingleRailRollerCoaster.h"
|
2020-06-20 02:32:52 +02:00
|
|
|
#include "coaster/meta/SpinningWildMouse.h"
|
2020-02-22 20:13:44 +01:00
|
|
|
#include "coaster/meta/SpiralRollerCoaster.h"
|
|
|
|
#include "coaster/meta/StandUpRollerCoaster.h"
|
|
|
|
#include "coaster/meta/SteelWildMouse.h"
|
|
|
|
#include "coaster/meta/Steeplechase.h"
|
|
|
|
#include "coaster/meta/SuspendedSwingingCoaster.h"
|
|
|
|
#include "coaster/meta/TwisterRollerCoaster.h"
|
|
|
|
#include "coaster/meta/VerticalDropCoaster.h"
|
|
|
|
#include "coaster/meta/VirginiaReel.h"
|
|
|
|
#include "coaster/meta/WaterCoaster.h"
|
|
|
|
#include "coaster/meta/WoodenRollerCoaster.h"
|
|
|
|
#include "coaster/meta/WoodenWildMouse.h"
|
|
|
|
#include "gentle/meta/CarRide.h"
|
|
|
|
#include "gentle/meta/Circus.h"
|
|
|
|
#include "gentle/meta/CrookedHouse.h"
|
|
|
|
#include "gentle/meta/Dodgems.h"
|
|
|
|
#include "gentle/meta/FerrisWheel.h"
|
|
|
|
#include "gentle/meta/FlyingSaucers.h"
|
|
|
|
#include "gentle/meta/GhostTrain.h"
|
|
|
|
#include "gentle/meta/HauntedHouse.h"
|
|
|
|
#include "gentle/meta/Maze.h"
|
|
|
|
#include "gentle/meta/MerryGoRound.h"
|
|
|
|
#include "gentle/meta/MiniGolf.h"
|
|
|
|
#include "gentle/meta/MiniHelicopters.h"
|
|
|
|
#include "gentle/meta/MonorailCycles.h"
|
2020-06-20 02:32:52 +02:00
|
|
|
#include "gentle/meta/MonsterTrucks.h"
|
2020-02-22 20:13:44 +01:00
|
|
|
#include "gentle/meta/ObservationTower.h"
|
|
|
|
#include "gentle/meta/SpaceRings.h"
|
|
|
|
#include "gentle/meta/SpiralSlide.h"
|
|
|
|
#include "shops/meta/CashMachine.h"
|
|
|
|
#include "shops/meta/DrinkStall.h"
|
|
|
|
#include "shops/meta/FirstAid.h"
|
|
|
|
#include "shops/meta/FoodStall.h"
|
|
|
|
#include "shops/meta/InformationKiosk.h"
|
|
|
|
#include "shops/meta/Shop.h"
|
|
|
|
#include "shops/meta/Toilets.h"
|
|
|
|
#include "thrill/meta/3DCinema.h"
|
|
|
|
#include "thrill/meta/Enterprise.h"
|
|
|
|
#include "thrill/meta/GoKarts.h"
|
|
|
|
#include "thrill/meta/LaunchedFreefall.h"
|
|
|
|
#include "thrill/meta/MagicCarpet.h"
|
|
|
|
#include "thrill/meta/MotionSimulator.h"
|
|
|
|
#include "thrill/meta/RotoDrop.h"
|
|
|
|
#include "thrill/meta/SwingingInverterShip.h"
|
|
|
|
#include "thrill/meta/SwingingShip.h"
|
|
|
|
#include "thrill/meta/TopSpin.h"
|
|
|
|
#include "thrill/meta/Twist.h"
|
|
|
|
#include "transport/meta/Chairlift.h"
|
|
|
|
#include "transport/meta/Lift.h"
|
|
|
|
#include "transport/meta/MiniatureRailway.h"
|
|
|
|
#include "transport/meta/Monorail.h"
|
|
|
|
#include "transport/meta/SuspendedMonorail.h"
|
|
|
|
#include "water/meta/BoatHire.h"
|
|
|
|
#include "water/meta/DinghySlide.h"
|
|
|
|
#include "water/meta/LogFlume.h"
|
|
|
|
#include "water/meta/RiverRafts.h"
|
|
|
|
#include "water/meta/RiverRapids.h"
|
|
|
|
#include "water/meta/SplashBoats.h"
|
|
|
|
#include "water/meta/SubmarineRide.h"
|
2014-05-23 14:37:52 +02:00
|
|
|
|
2018-11-21 23:16:04 +01:00
|
|
|
#include <iterator>
|
|
|
|
|
2018-01-09 17:05:19 +01:00
|
|
|
// clang-format off
|
2015-12-27 18:28:10 +01:00
|
|
|
|
2016-02-25 13:33:19 +01:00
|
|
|
const rct_ride_entry_vehicle CableLiftVehicle = {
|
2018-01-09 22:23:44 +01:00
|
|
|
/* .rotation_frame_mask = */ 31,
|
|
|
|
/* .num_vertical_frames = */ 0,
|
|
|
|
/* .num_horizontal_frames = */ 0,
|
|
|
|
/* .spacing = */ 0,
|
|
|
|
/* .car_mass = */ 0,
|
|
|
|
/* .tab_height = */ 0,
|
|
|
|
/* .num_seats = */ 0,
|
|
|
|
/* .sprite_flags = */ VEHICLE_SPRITE_FLAG_FLAT | VEHICLE_SPRITE_FLAG_GENTLE_SLOPES | VEHICLE_SPRITE_FLAG_STEEP_SLOPES,
|
|
|
|
/* .sprite_width = */ 0,
|
|
|
|
/* .sprite_height_negative = */ 0,
|
|
|
|
/* .sprite_height_positive = */ 0,
|
2018-01-17 22:05:19 +01:00
|
|
|
/* .animation = */ 0,
|
2018-01-09 22:23:44 +01:00
|
|
|
/* .flags = */ 0,
|
|
|
|
/* .base_num_frames = */ 1,
|
|
|
|
/* .base_image_id = */ 29110,
|
2018-01-17 21:39:16 +01:00
|
|
|
/* .restraint_image_id = */ 0,
|
|
|
|
/* .gentle_slope_image_id = */ 29142,
|
|
|
|
/* .steep_slope_image_id = */ 29214,
|
|
|
|
/* .vertical_slope_image_id = */ 0,
|
|
|
|
/* .diagonal_slope_image_id = */ 0,
|
|
|
|
/* .banked_image_id = */ 0,
|
|
|
|
/* .inline_twist_image_id = */ 0,
|
|
|
|
/* .flat_to_gentle_bank_image_id = */ 0,
|
|
|
|
/* .diagonal_to_gentle_slope_bank_image_id = */ 0,
|
|
|
|
/* .gentle_slope_to_bank_image_id = */ 0,
|
|
|
|
/* .gentle_slope_bank_turn_image_id = */ 0,
|
|
|
|
/* .flat_bank_to_gentle_slope_image_id = */ 0,
|
|
|
|
/* .corkscrew_image_id = */ 0,
|
2018-01-09 22:23:44 +01:00
|
|
|
/* .no_vehicle_images = */ 0,
|
|
|
|
/* .no_seating_rows = */ 0,
|
|
|
|
/* .spinning_inertia = */ 0,
|
|
|
|
/* .spinning_friction = */ 255,
|
2020-10-06 23:34:42 +02:00
|
|
|
/* .friction_sound_id = */ OpenRCT2::Audio::SoundId::LiftClassic,
|
2018-01-17 21:39:16 +01:00
|
|
|
/* .log_flume_reverser_vehicle_type = */ 0,
|
2018-01-09 22:23:44 +01:00
|
|
|
/* .sound_range = */ 0,
|
|
|
|
/* .double_sound_frequency = */ 0,
|
|
|
|
/* .powered_acceleration = */ 0,
|
|
|
|
/* .powered_max_speed = */ 0,
|
|
|
|
/* .car_visual = */ 0,
|
|
|
|
/* .effect_visual = */ 1,
|
|
|
|
/* .draw_order = */ 14,
|
|
|
|
/* .num_vertical_frames_override = */ 0,
|
2018-03-03 11:21:42 +01:00
|
|
|
/* .peep_loading_positions = */ 0
|
2015-10-28 08:02:30 +01:00
|
|
|
};
|
2015-11-19 21:28:07 +01:00
|
|
|
|
|
|
|
/* rct2: 0x009A0AA0 */
|
2018-06-20 17:28:51 +02:00
|
|
|
const uint16_t RideFilmLength[3] = {
|
2017-06-06 23:24:18 +02:00
|
|
|
5000, // MOUSE_TAILS
|
|
|
|
6000, // STORM_CHASERS
|
2021-10-17 15:31:56 +02:00
|
|
|
7000, // SPACE_RAIDERS
|
2015-11-19 21:28:07 +01:00
|
|
|
};
|
2015-11-21 16:53:56 +01:00
|
|
|
|
2017-05-28 19:49:32 +02:00
|
|
|
const rct_string_id RideModeNames[] = {
|
|
|
|
STR_RIDE_MODE_NORMAL,
|
|
|
|
STR_RIDE_MODE_CONTINUOUS_CIRCUIT,
|
|
|
|
STR_RIDE_MODE_REVERSE_INCLINE_LAUNCHED_SHUTTLE,
|
|
|
|
STR_RIDE_MODE_POWERED_LAUNCH_PASSTROUGH,
|
|
|
|
STR_RIDE_MODE_SHUTTLE,
|
|
|
|
STR_RIDE_MODE_BOAT_HIRE,
|
|
|
|
STR_RIDE_MODE_UPWARD_LAUNCH,
|
|
|
|
STR_RIDE_MODE_ROTATING_LIFT,
|
|
|
|
STR_RIDE_MODE_STATION_TO_STATION,
|
|
|
|
STR_RIDE_MODE_SINGLE_RIDE_PER_ADMISSION,
|
|
|
|
STR_RIDE_MODE_UNLIMITED_RIDES_PER_ADMISSION,
|
|
|
|
STR_RIDE_MODE_MAZE,
|
|
|
|
STR_RIDE_MODE_RACE,
|
|
|
|
STR_RIDE_MODE_DODGEMS,
|
|
|
|
STR_RIDE_MODE_SWING,
|
|
|
|
STR_RIDE_MODE_SHOP_STALL,
|
|
|
|
STR_RIDE_MODE_ROTATION,
|
|
|
|
STR_RIDE_MODE_FORWARD_ROTATION,
|
|
|
|
STR_RIDE_MODE_BACKWARD_ROTATION,
|
|
|
|
STR_RIDE_MODE_FILM_AVENGING_AVIATORS,
|
|
|
|
STR_RIDE_MODE_3D_FILM_MOUSE_TAILS,
|
|
|
|
STR_RIDE_MODE_SPACE_RINGS,
|
|
|
|
STR_RIDE_MODE_BEGINNERS,
|
|
|
|
STR_RIDE_MODE_LIM_POWERED_LAUNCH,
|
|
|
|
STR_RIDE_MODE_FILM_THRILL_RIDERS,
|
|
|
|
STR_RIDE_MODE_3D_FILM_STORM_CHASERS,
|
|
|
|
STR_RIDE_MODE_3D_FILM_SPACE_RAIDERS,
|
|
|
|
STR_RIDE_MODE_INTENSE,
|
|
|
|
STR_RIDE_MODE_BERSERK,
|
|
|
|
STR_RIDE_MODE_HAUNTED_HOUSE,
|
|
|
|
STR_RIDE_MODE_CIRCUS_SHOW,
|
|
|
|
STR_RIDE_MODE_DOWNWARD_LAUNCH,
|
|
|
|
STR_RIDE_MODE_CROOKED_HOUSE,
|
|
|
|
STR_RIDE_MODE_FREEFALL_DROP,
|
|
|
|
STR_RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED,
|
|
|
|
STR_RIDE_MODE_POWERED_LAUNCH,
|
|
|
|
STR_RIDE_MODE_POWERED_LAUNCH_BLOCK_SECTIONED_MODE,
|
|
|
|
};
|
2020-02-22 20:13:44 +01:00
|
|
|
// clang-format on
|
|
|
|
|
2020-02-20 11:00:03 +01:00
|
|
|
constexpr const RideTypeDescriptor RideTypeDescriptors[RIDE_TYPE_COUNT] = {
|
|
|
|
/* RIDE_TYPE_SPIRAL_ROLLER_COASTER */ SpiralRollerCoasterRTD,
|
2020-02-22 20:13:44 +01:00
|
|
|
/* RIDE_TYPE_STAND_UP_ROLLER_COASTER */ StandUpRollerCoasterRTD,
|
|
|
|
/* RIDE_TYPE_SUSPENDED_SWINGING_COASTER */ SuspendedSwingingCoasterRTD,
|
|
|
|
/* RIDE_TYPE_INVERTED_ROLLER_COASTER */ InvertedRollerCoasterRTD,
|
|
|
|
/* RIDE_TYPE_JUNIOR_ROLLER_COASTER */ JuniorRollerCoasterRTD,
|
|
|
|
/* RIDE_TYPE_MINIATURE_RAILWAY */ MiniatureRailwayRTD,
|
|
|
|
/* RIDE_TYPE_MONORAIL */ MonorailRTD,
|
|
|
|
/* RIDE_TYPE_MINI_SUSPENDED_COASTER */ MiniSuspendedCoasterRTD,
|
|
|
|
/* RIDE_TYPE_BOAT_HIRE */ BoatHireRTD,
|
|
|
|
/* RIDE_TYPE_WOODEN_WILD_MOUSE */ WoodenWildMouseRTD,
|
|
|
|
/* RIDE_TYPE_STEEPLECHASE */ SteeplechaseRTD,
|
|
|
|
/* RIDE_TYPE_CAR_RIDE */ CarRideRTD,
|
|
|
|
/* RIDE_TYPE_LAUNCHED_FREEFALL */ LaunchedFreefallRTD,
|
|
|
|
/* RIDE_TYPE_BOBSLEIGH_COASTER */ BobsleighCoasterRTD,
|
|
|
|
/* RIDE_TYPE_OBSERVATION_TOWER */ ObservationTowerRTD,
|
|
|
|
/* RIDE_TYPE_LOOPING_ROLLER_COASTER */ LoopingRollerCoasterRTD,
|
|
|
|
/* RIDE_TYPE_DINGHY_SLIDE */ DinghySlideRTD,
|
|
|
|
/* RIDE_TYPE_MINE_TRAIN_COASTER */ MineTrainCoasterRTD,
|
|
|
|
/* RIDE_TYPE_CHAIRLIFT */ ChairliftRTD,
|
|
|
|
/* RIDE_TYPE_CORKSCREW_ROLLER_COASTER */ CorkscrewRollerCoasterRTD,
|
|
|
|
/* RIDE_TYPE_MAZE */ MazeRTD,
|
|
|
|
/* RIDE_TYPE_SPIRAL_SLIDE */ SpiralSlideRTD,
|
|
|
|
/* RIDE_TYPE_GO_KARTS */ GoKartsRTD,
|
|
|
|
/* RIDE_TYPE_LOG_FLUME */ LogFlumeRTD,
|
|
|
|
/* RIDE_TYPE_RIVER_RAPIDS */ RiverRapidsRTD,
|
|
|
|
/* RIDE_TYPE_DODGEMS */ DodgemsRTD,
|
|
|
|
/* RIDE_TYPE_SWINGING_SHIP */ SwingingShipRTD,
|
|
|
|
/* RIDE_TYPE_SWINGING_INVERTER_SHIP */ SwingingInverterShipRTD,
|
|
|
|
/* RIDE_TYPE_FOOD_STALL */ FoodStallRTD,
|
|
|
|
/* RIDE_TYPE_1D */ DummyRTD,
|
|
|
|
/* RIDE_TYPE_DRINK_STALL */ DrinkStallRTD,
|
|
|
|
/* RIDE_TYPE_1F */ DummyRTD,
|
|
|
|
/* RIDE_TYPE_SHOP */ ShopRTD,
|
|
|
|
/* RIDE_TYPE_MERRY_GO_ROUND */ MerryGoRoundRTD,
|
|
|
|
/* RIDE_TYPE_22 */ DummyRTD,
|
|
|
|
/* RIDE_TYPE_INFORMATION_KIOSK */ InformationKioskRTD,
|
|
|
|
/* RIDE_TYPE_TOILETS */ ToiletsRTD,
|
|
|
|
/* RIDE_TYPE_FERRIS_WHEEL */ FerrisWheelRTD,
|
|
|
|
/* RIDE_TYPE_MOTION_SIMULATOR */ MotionSimulatorRTD,
|
|
|
|
/* RIDE_TYPE_3D_CINEMA */ CinemaRTD,
|
|
|
|
/* RIDE_TYPE_TOP_SPIN */ TopSpinRTD,
|
|
|
|
/* RIDE_TYPE_SPACE_RINGS */ SpaceRingsRTD,
|
|
|
|
/* RIDE_TYPE_REVERSE_FREEFALL_COASTER */ ReverseFreefallCoasterRTD,
|
|
|
|
/* RIDE_TYPE_LIFT */ LiftRTD,
|
|
|
|
/* RIDE_TYPE_VERTICAL_DROP_ROLLER_COASTER */ VerticalDropCoasterRTD,
|
|
|
|
/* RIDE_TYPE_CASH_MACHINE */ CashMachineRTD,
|
|
|
|
/* RIDE_TYPE_TWIST */ TwistRTD,
|
|
|
|
/* RIDE_TYPE_HAUNTED_HOUSE */ HauntedHouseRTD,
|
|
|
|
/* RIDE_TYPE_FIRST_AID */ FirstAidRTD,
|
|
|
|
/* RIDE_TYPE_CIRCUS */ CircusRTD,
|
|
|
|
/* RIDE_TYPE_GHOST_TRAIN */ GhostTrainRTD,
|
|
|
|
/* RIDE_TYPE_TWISTER_ROLLER_COASTER */ TwisterRollerCoasterRTD,
|
|
|
|
/* RIDE_TYPE_WOODEN_ROLLER_COASTER */ WoodenRollerCoasterRTD,
|
|
|
|
/* RIDE_TYPE_SIDE_FRICTION_ROLLER_COASTER */ SideFrictionRollerCoasterRTD,
|
|
|
|
/* RIDE_TYPE_STEEL_WILD_MOUSE */ SteelWildMouseRTD,
|
|
|
|
/* RIDE_TYPE_MULTI_DIMENSION_ROLLER_COASTER */ MultiDimensionRollerCoasterRTD,
|
|
|
|
/* RIDE_TYPE_MULTI_DIMENSION_ROLLER_COASTER_ALT */ MultiDimensionRollerCoasterAltRTD,
|
2020-02-20 11:00:03 +01:00
|
|
|
/* RIDE_TYPE_FLYING_ROLLER_COASTER */ FlyingRollerCoasterRTD,
|
2020-02-22 20:13:44 +01:00
|
|
|
/* RIDE_TYPE_FLYING_ROLLER_COASTER_ALT */ FlyingRollerCoasterAltRTD,
|
|
|
|
/* RIDE_TYPE_VIRGINIA_REEL */ VirginiaReelRTD,
|
|
|
|
/* RIDE_TYPE_SPLASH_BOATS */ SplashBoatsRTD,
|
|
|
|
/* RIDE_TYPE_MINI_HELICOPTERS */ MiniHelicoptersRTD,
|
|
|
|
/* RIDE_TYPE_LAY_DOWN_ROLLER_COASTER */ LayDownRollerCoasterRTD,
|
|
|
|
/* RIDE_TYPE_SUSPENDED_MONORAIL */ SuspendedMonorailRTD,
|
|
|
|
/* RIDE_TYPE_LAY_DOWN_ROLLER_COASTER_ALT */ LayDownRollerCoasterAltRTD,
|
|
|
|
/* RIDE_TYPE_REVERSER_ROLLER_COASTER */ ReverserRollerCoasterRTD,
|
|
|
|
/* RIDE_TYPE_HEARTLINE_TWISTER_COASTER */ HeartlineTwisterCoasterRTD,
|
|
|
|
/* RIDE_TYPE_MINI_GOLF */ MiniGolfRTD,
|
|
|
|
/* RIDE_TYPE_GIGA_COASTER */ GigaCoasterRTD,
|
|
|
|
/* RIDE_TYPE_ROTO_DROP */ RotoDropRTD,
|
|
|
|
/* RIDE_TYPE_FLYING_SAUCERS */ FlyingSaucersRTD,
|
|
|
|
/* RIDE_TYPE_CROOKED_HOUSE */ CrookedHouseRTD,
|
|
|
|
/* RIDE_TYPE_MONORAIL_CYCLES */ MonorailCyclesRTD,
|
|
|
|
/* RIDE_TYPE_COMPACT_INVERTED_COASTER */ CompactInvertedCoasterRTD,
|
|
|
|
/* RIDE_TYPE_WATER_COASTER */ WaterCoasterRTD,
|
|
|
|
/* RIDE_TYPE_AIR_POWERED_VERTICAL_COASTER */ AirPoweredVerticalCoasterRTD,
|
|
|
|
/* RIDE_TYPE_INVERTED_HAIRPIN_COASTER */ InvertedHairpinCoasterRTD,
|
|
|
|
/* RIDE_TYPE_MAGIC_CARPET */ MagicCarpetRTD,
|
|
|
|
/* RIDE_TYPE_SUBMARINE_RIDE */ SubmarineRideRTD,
|
|
|
|
/* RIDE_TYPE_RIVER_RAFTS */ RiverRaftsRTD,
|
|
|
|
/* RIDE_TYPE_50 */ DummyRTD,
|
|
|
|
/* RIDE_TYPE_ENTERPRISE */ EnterpriseRTD,
|
|
|
|
/* RIDE_TYPE_52 */ DummyRTD,
|
|
|
|
/* RIDE_TYPE_53 */ DummyRTD,
|
|
|
|
/* RIDE_TYPE_54 */ DummyRTD,
|
|
|
|
/* RIDE_TYPE_55 */ DummyRTD,
|
|
|
|
/* RIDE_TYPE_INVERTED_IMPULSE_COASTER */ InvertedImpulseCoasterRTD,
|
2020-02-20 11:00:03 +01:00
|
|
|
/* RIDE_TYPE_MINI_ROLLER_COASTER */ MiniRollerCoasterRTD,
|
2020-02-22 20:13:44 +01:00
|
|
|
/* RIDE_TYPE_MINE_RIDE */ MineRideRTD,
|
|
|
|
/* RIDE_TYPE_59 */ DummyRTD,
|
|
|
|
/* RIDE_TYPE_LIM_LAUNCHED_ROLLER_COASTER */ LIMLaunchedRollerCoasterRTD,
|
2020-06-20 02:32:52 +02:00
|
|
|
/* RIDE_TYPE_HYPERCOASTER, */ HypercoasterRTD,
|
|
|
|
/* RIDE_TYPE_HYPER_TWISTER, */ HyperTwisterRTD,
|
|
|
|
/* RIDE_TYPE_MONSTER_TRUCKS, */ MonsterTrucksRTD,
|
|
|
|
/* RIDE_TYPE_SPINNING_WILD_MOUSE, */ SpinningWildMouseRTD,
|
|
|
|
/* RIDE_TYPE_CLASSIC_MINI_ROLLER_COASTER, */ ClassicMiniRollerCoasterRTD,
|
2020-10-10 21:27:12 +02:00
|
|
|
/* RIDE_TYPE_HYBRID_COASTER */ HybridCoasterRTD,
|
2021-01-06 21:10:15 +01:00
|
|
|
/* RIDE_TYPE_SINGLE_RAIL_ROLLER_COASTER */ SingleRailRollerCoasterRTD,
|
2020-02-20 11:00:03 +01:00
|
|
|
};
|
2020-04-18 15:19:45 +02:00
|
|
|
|
|
|
|
bool RideTypeDescriptor::HasFlag(uint64_t flag) const
|
|
|
|
{
|
|
|
|
return Flags & flag;
|
|
|
|
}
|
2020-04-19 13:32:43 +02:00
|
|
|
|
|
|
|
uint64_t RideTypeDescriptor::GetAvailableTrackPieces() const
|
|
|
|
{
|
|
|
|
if (gCheatsEnableAllDrawableTrackPieces)
|
|
|
|
{
|
|
|
|
return EnabledTrackPieces | ExtraTrackPieces;
|
|
|
|
}
|
|
|
|
return EnabledTrackPieces;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool RideTypeDescriptor::SupportsTrackPiece(const uint64_t trackPiece) const
|
|
|
|
{
|
|
|
|
return GetAvailableTrackPieces() & (1ULL << trackPiece);
|
|
|
|
}
|
2020-10-24 22:10:44 +02:00
|
|
|
|
|
|
|
ResearchCategory RideTypeDescriptor::GetResearchCategory() const
|
|
|
|
{
|
|
|
|
switch (Category)
|
|
|
|
{
|
|
|
|
case RIDE_CATEGORY_TRANSPORT:
|
|
|
|
return ResearchCategory::Transport;
|
|
|
|
case RIDE_CATEGORY_GENTLE:
|
|
|
|
return ResearchCategory::Gentle;
|
|
|
|
case RIDE_CATEGORY_ROLLERCOASTER:
|
|
|
|
return ResearchCategory::Rollercoaster;
|
|
|
|
case RIDE_CATEGORY_THRILL:
|
|
|
|
return ResearchCategory::Thrill;
|
|
|
|
case RIDE_CATEGORY_WATER:
|
|
|
|
return ResearchCategory::Water;
|
|
|
|
case RIDE_CATEGORY_SHOP:
|
|
|
|
return ResearchCategory::Shop;
|
|
|
|
case RIDE_CATEGORY_NONE:
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
log_error("Cannot get Research Category of invalid RideCategory");
|
|
|
|
return ResearchCategory::Transport;
|
|
|
|
}
|