diff --git a/src/ride/ride.c b/src/ride/ride.c index ad45438f17..4364755580 100644 --- a/src/ride/ride.c +++ b/src/ride/ride.c @@ -5305,7 +5305,7 @@ static int ride_is_valid_for_test(int rideIndex, int goingToBeOpen, int isApplyi if ( (RideData4[ride->type].flags & RIDE_TYPE_FLAG4_10) && - (ride->lifecycle_flags & RIDE_LIFECYCLE_16) && + (ride->lifecycle_flags & RIDE_LIFECYCLE_CABLE_LIFT_HILL_COMPONENT_USED) && !(ride->lifecycle_flags & RIDE_LIFECYCLE_CABLE_LIFT) ) { if (!ride_create_cable_lift(rideIndex, isApplying)) @@ -5436,7 +5436,7 @@ static int ride_is_valid_for_open(int rideIndex, int goingToBeOpen, int isApplyi if ( (RideData4[ride->type].flags & RIDE_TYPE_FLAG4_10) && - (ride->lifecycle_flags & RIDE_LIFECYCLE_16) && + (ride->lifecycle_flags & RIDE_LIFECYCLE_CABLE_LIFT_HILL_COMPONENT_USED) && !(ride->lifecycle_flags & RIDE_LIFECYCLE_CABLE_LIFT) ) { if (!ride_create_cable_lift(rideIndex, isApplying)) diff --git a/src/ride/ride.h b/src/ride/ride.h index 138468df26..9b22be13ad 100644 --- a/src/ride/ride.h +++ b/src/ride/ride.h @@ -403,7 +403,7 @@ enum { RIDE_LIFECYCLE_MUSIC = 1 << 13, RIDE_LIFECYCLE_INDESTRUCTIBLE = 1 << 14, RIDE_LIFECYCLE_INDESTRUCTIBLE_TRACK = 1 << 15, - RIDE_LIFECYCLE_16 = 1 << 16, + RIDE_LIFECYCLE_CABLE_LIFT_HILL_COMPONENT_USED = 1 << 16, RIDE_LIFECYCLE_CABLE_LIFT = 1 << 17, RIDE_LIFECYCLE_NOT_CUSTOM_DESIGN = 1 << 18, // Used for the Award for Best Custom-designed Rides RIDE_LIFECYCLE_SIX_FLAGS_DEPRECATED = 1 << 19 // Not used anymore @@ -781,7 +781,7 @@ enum { RIDE_TYPE_FLAG_SELLS_DRINKS = 1 << 24, RIDE_TYPE_FLAG_IS_BATHROOM = 1 << 25, RIDE_TYPE_FLAG_26 = 1 << 26, // something to do with vehicle colours - RIDE_TYPE_FLAG_27 = 1 << 27, + RIDE_TYPE_FLAG_CHECK_FOR_STALLING = 1 << 27, RIDE_TYPE_FLAG_HAS_TRACK = 1 << 28, RIDE_TYPE_FLAG_29 = 1 << 29, // used only by lift RIDE_TYPE_FLAG_30 = 1 << 30, diff --git a/src/ride/ride_data.c b/src/ride/ride_data.c index 68fede8d3b..cc5c92f9f0 100644 --- a/src/ride/ride_data.c +++ b/src/ride/ride_data.c @@ -1927,35 +1927,35 @@ const rct_ride_properties RideProperties[91] = { RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES | RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | - RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 | + RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_CHECK_FOR_STALLING | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR, 10, 27, 30, 17}, // RIDE_TYPE_SPIRAL_ROLLER_COASTER {RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES | RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | - RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 | + RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_CHECK_FOR_STALLING | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR, 7, 27, 0, 0}, // RIDE_TYPE_STAND_UP_ROLLER_COASTER {RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES | RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | - RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 | + RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_CHECK_FOR_STALLING | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR, 0, 0, 0, 0}, // RIDE_TYPE_SUSPENDED_SWINGING_COASTER {RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES | RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | - RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 | + RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_CHECK_FOR_STALLING | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR, 7, 27, 0, 0}, // RIDE_TYPE_INVERTED_ROLLER_COASTER {RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES | RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | - RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 | + RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_CHECK_FOR_STALLING | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR, 0, 0, 0, 0}, // RIDE_TYPE_JUNIOR_ROLLER_COASTER {RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | @@ -1971,25 +1971,25 @@ const rct_ride_properties RideProperties[91] = { RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES | RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | - RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 | + RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_CHECK_FOR_STALLING | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR, 0, 0, 0, 0}, // RIDE_TYPE_MINI_SUSPENDED_COASTER {RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_6 | - RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | + RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_CHECK_FOR_STALLING | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR, 0, 0, 0, 0}, // RIDE_TYPE_BOAT_RIDE {RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES | RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | - RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | + RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_CHECK_FOR_STALLING | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR, 0, 0, 0, 0}, // RIDE_TYPE_WOODEN_WILD_MOUSE {RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES | RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | - RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 | + RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_CHECK_FOR_STALLING | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR, 0, 0, 0, 0}, // RIDE_TYPE_STEEPLECHASE {RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL | @@ -2006,7 +2006,7 @@ const rct_ride_properties RideProperties[91] = { RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES | RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | - RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | + RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_CHECK_FOR_STALLING | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR, 0, 0, 0, 0}, // RIDE_TYPE_BOBSLEIGH_COASTER {RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL | @@ -2018,21 +2018,21 @@ const rct_ride_properties RideProperties[91] = { RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES | RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | - RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 | + RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_CHECK_FOR_STALLING | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR, 10, 27, 26, 18}, // RIDE_TYPE_LOOPING_ROLLER_COASTER {RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES | RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_TRACK_ELEMENTS_HAVE_TWO_VARIETIES | - RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | + RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_CHECK_FOR_STALLING | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR, 0, 0, 0, 0}, // RIDE_TYPE_DINGHY_SLIDE {RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES | RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | - RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 | + RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_CHECK_FOR_STALLING | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR, 0, 0, 0, 0}, // RIDE_TYPE_MINE_TRAIN_COASTER {RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | @@ -2043,7 +2043,7 @@ const rct_ride_properties RideProperties[91] = { RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES | RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | - RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 | + RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_CHECK_FOR_STALLING | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR, 10, 12, 30, 25}, // RIDE_TYPE_CORKSCREW_ROLLER_COASTER {RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_3 | RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_13 | @@ -2143,7 +2143,7 @@ const rct_ride_properties RideProperties[91] = { {RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES | RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | - RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | + RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_CHECK_FOR_STALLING | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR, 7, 30, 30, 40}, // RIDE_TYPE_REVERSE_FREEFALL_COASTER {RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_3 | @@ -2154,7 +2154,7 @@ const rct_ride_properties RideProperties[91] = { RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES | RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | - RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 | + RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_CHECK_FOR_STALLING | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR, 10, 27, 26, 18}, // RIDE_TYPE_VERTICAL_DROP_ROLLER_COASTER {RIDE_TYPE_FLAG_3 | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_13 | @@ -2186,63 +2186,63 @@ const rct_ride_properties RideProperties[91] = { RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES | RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | - RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 | + RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_CHECK_FOR_STALLING | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR, 10, 27, 30, 17}, // RIDE_TYPE_TWISTER_ROLLER_COASTER {RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES | RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | - RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 | + RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_CHECK_FOR_STALLING | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR, 0, 0, 0, 0}, // RIDE_TYPE_WOODEN_ROLLER_COASTER {RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES | RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | - RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 | + RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_CHECK_FOR_STALLING | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR, 0, 0, 0, 0}, // RIDE_TYPE_SIDE_FRICTION_ROLLER_COASTER {RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES | RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | - RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | + RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_CHECK_FOR_STALLING | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR, 0, 0, 0, 0}, // RIDE_TYPE_WILD_MOUSE {RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES | RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | - RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 | + RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_CHECK_FOR_STALLING | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR, 10, 27, 30, 25}, // RIDE_TYPE_MULTI_DIMENSION_ROLLER_COASTER {RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES | RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | - RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 | + RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_CHECK_FOR_STALLING | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR, 10, 27, 30, 25}, // RIDE_TYPE_MULTI_DIMENSION_ROLLER_COASTER_ALT {RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES | RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | - RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 | + RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_CHECK_FOR_STALLING | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR, 10, 27, 30, 25}, // RIDE_TYPE_FLYING_ROLLER_COASTER {RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES | RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | - RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 | + RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_CHECK_FOR_STALLING | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR, 10, 27, 30, 25}, // RIDE_TYPE_FLYING_ROLLER_COASTER_ALT {RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES | RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | - RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | + RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_CHECK_FOR_STALLING | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR, 0, 0, 0, 0}, // RIDE_TYPE_VIRGINIA_REEL {RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL | @@ -2260,7 +2260,7 @@ const rct_ride_properties RideProperties[91] = { RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES | RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | - RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 | + RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_CHECK_FOR_STALLING | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR, 10, 27, 30, 25}, // RIDE_TYPE_LAY_DOWN_ROLLER_COASTER {RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL | @@ -2272,21 +2272,21 @@ const rct_ride_properties RideProperties[91] = { RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES | RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | - RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 | + RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_CHECK_FOR_STALLING | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR, 10, 27, 30, 25}, // RIDE_TYPE_LAY_DOWN_ROLLER_COASTER_ALT {RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES | RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | - RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | + RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_CHECK_FOR_STALLING | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR, 0, 0, 0, 0}, // RIDE_TYPE_REVERSER_ROLLER_COASTER {RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES | RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | - RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | + RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_CHECK_FOR_STALLING | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR, 10, 27, 30, 25}, // RIDE_TYPE_HEARTLINE_TWISTER_COASTER {RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL | @@ -2297,7 +2297,7 @@ const rct_ride_properties RideProperties[91] = { RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES | RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | - RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 | + RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_CHECK_FOR_STALLING | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR, 10, 27, 30, 17}, // RIDE_TYPE_GIGA_COASTER {RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL | @@ -2323,27 +2323,27 @@ const rct_ride_properties RideProperties[91] = { RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES | RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | - RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 | + RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_CHECK_FOR_STALLING | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR, 7, 27, 0, 0}, // RIDE_TYPE_COMPACT_INVERTED_COASTER {RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES | RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_TRACK_ELEMENTS_HAVE_TWO_VARIETIES | - RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | + RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_CHECK_FOR_STALLING | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR, 0, 0, 0, 0}, // RIDE_TYPE_WATER_COASTER {RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES | RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | - RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | + RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_CHECK_FOR_STALLING | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR, 30, 50, 30, 40}, // RIDE_TYPE_AIR_POWERED_VERTICAL_COASTER {RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES | RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | - RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | + RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_CHECK_FOR_STALLING | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR, 0, 0, 0, 0}, // RIDE_TYPE_INVERTED_HAIRPIN_COASTER {RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL | @@ -2386,42 +2386,42 @@ const rct_ride_properties RideProperties[91] = { RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES | RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | - RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 | + RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_CHECK_FOR_STALLING | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR, 10, 27, 30, 25}, // RIDE_TYPE_55 {RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES | RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | - RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | + RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_CHECK_FOR_STALLING | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR, 10, 33, 30, 25}, // RIDE_TYPE_INVERTED_IMPULSE_COASTER {RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES | RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | - RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 | + RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_CHECK_FOR_STALLING | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR, 0, 0, 0, 0}, // RIDE_TYPE_MINI_ROLLER_COASTER {RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES | RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | - RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 | + RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_CHECK_FOR_STALLING | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR, 0, 0, 0, 0}, // RIDE_TYPE_MINE_RIDE {RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES | RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | - RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | + RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_CHECK_FOR_STALLING | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR, 0, 0, 0, 0}, // RIDE_TYPE_59 {RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES | RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | - RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_27 | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 | + RIDE_TYPE_FLAG_20 | RIDE_TYPE_FLAG_26 | RIDE_TYPE_FLAG_CHECK_FOR_STALLING | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_30 | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR, 10, 31, 26, 18}, // RIDE_TYPE_LIM_LAUNCHED_ROLLER_COASTER }; diff --git a/src/ride/track.c b/src/ride/track.c index 7117908ba8..8675edab66 100644 --- a/src/ride/track.c +++ b/src/ride/track.c @@ -966,7 +966,7 @@ static money32 track_place(int rideIndex, int type, int originX, int originY, in return MONEY32_UNDEFINED; } } else if (type == TRACK_ELEM_CABLE_LIFT_HILL) { - if (ride->lifecycle_flags & RIDE_LIFECYCLE_16) { + if (ride->lifecycle_flags & RIDE_LIFECYCLE_CABLE_LIFT_HILL_COMPONENT_USED) { gGameCommandErrorText = STR_ONLY_ONE_CABLE_LIFT_HILL_PER_RIDE; return MONEY32_UNDEFINED; } @@ -1137,7 +1137,7 @@ static money32 track_place(int rideIndex, int type, int originX, int originY, in gTrackGroundFlags = bh; if (rideTypeFlags & RIDE_TYPE_FLAG_FLAT_RIDE) { - if (FlatTrackFlags[type] & TRACK_ELEM_FLAG_0200) { + if (FlatTrackFlags[type] & TRACK_ELEM_FLAG_ONLY_ABOVE_GROUND) { if (gTrackGroundFlags & TRACK_ELEMENT_LOCATION_IS_UNDERGROUND) { gGameCommandErrorText = STR_CAN_ONLY_BUILD_THIS_ABOVE_GROUND; return MONEY32_UNDEFINED; @@ -1145,7 +1145,7 @@ static money32 track_place(int rideIndex, int type, int originX, int originY, in } } else { - if (TrackFlags[type] & TRACK_ELEM_FLAG_0200) { + if (TrackFlags[type] & TRACK_ELEM_FLAG_ONLY_ABOVE_GROUND) { if (gTrackGroundFlags & TRACK_ELEMENT_LOCATION_IS_UNDERGROUND) { gGameCommandErrorText = STR_CAN_ONLY_BUILD_THIS_ABOVE_GROUND; return MONEY32_UNDEFINED; @@ -1154,7 +1154,7 @@ static money32 track_place(int rideIndex, int type, int originX, int originY, in } if (rideTypeFlags & RIDE_TYPE_FLAG_FLAT_RIDE) { - if (FlatTrackFlags[type] & TRACK_ELEM_FLAG_0001) { + if (FlatTrackFlags[type] & TRACK_ELEM_FLAG_ONLY_UNDERWATER) { if (!(gMapGroundFlags & ELEMENT_IS_UNDERWATER)) { gGameCommandErrorText = STR_CAN_ONLY_BUILD_THIS_UNDERWATER; return MONEY32_UNDEFINED; @@ -1162,7 +1162,7 @@ static money32 track_place(int rideIndex, int type, int originX, int originY, in } } else { - if (TrackFlags[type] & TRACK_ELEM_FLAG_0001) { // No element has this flag + if (TrackFlags[type] & TRACK_ELEM_FLAG_ONLY_UNDERWATER) { // No element has this flag if (gMapGroundFlags & ELEMENT_IS_UNDERWATER) { gGameCommandErrorText = STR_CAN_ONLY_BUILD_THIS_UNDERWATER; return MONEY32_UNDEFINED; @@ -1265,7 +1265,7 @@ static money32 track_place(int rideIndex, int type, int originX, int originY, in case TRACK_ELEM_CABLE_LIFT_HILL: if (trackBlock->index != 0) break; - ride->lifecycle_flags |= RIDE_LIFECYCLE_16; + ride->lifecycle_flags |= RIDE_LIFECYCLE_CABLE_LIFT_HILL_COMPONENT_USED; ride->cable_lift_x = x; ride->cable_lift_y = y; ride->cable_lift_z = baseZ; @@ -1637,7 +1637,7 @@ static money32 track_remove(uint8 type, uint8 sequence, sint16 originX, sint16 o ride->lifecycle_flags &= ~RIDE_LIFECYCLE_ON_RIDE_PHOTO; break; case TRACK_ELEM_CABLE_LIFT_HILL: - ride->lifecycle_flags &= ~RIDE_LIFECYCLE_16; + ride->lifecycle_flags &= ~RIDE_LIFECYCLE_CABLE_LIFT_HILL_COMPONENT_USED; break; case 216: ride->num_block_brakes--; diff --git a/src/ride/track.h b/src/ride/track.h index 323607b39c..187454835b 100644 --- a/src/ride/track.h +++ b/src/ride/track.h @@ -184,7 +184,7 @@ enum { }; enum { - TRACK_ELEM_FLAG_0001 = (1 << 0), + TRACK_ELEM_FLAG_ONLY_UNDERWATER = (1 << 0), TRACK_ELEM_FLAG_TURN_LEFT = (1 << 1), TRACK_ELEM_FLAG_TURN_RIGHT = (1 << 2), TRACK_ELEM_FLAG_TURN_BANKED = (1 << 3), @@ -193,7 +193,7 @@ enum { TRACK_ELEM_FLAG_UP = (1 << 6), TRACK_ELEM_FLAG_INVERSION = (1 << 7), TRACK_ELEM_FLAG_0100 = (1 << 8), - TRACK_ELEM_FLAG_0200 = (1 << 9), + TRACK_ELEM_FLAG_ONLY_ABOVE_GROUND = (1 << 9), TRACK_ELEM_FLAG_0400 = (1 << 10), TRACK_ELEM_FLAG_HELIX = (1 << 11), TRACK_ELEM_FLAG_1000 = (1 << 12), diff --git a/src/ride/track_data.c b/src/ride/track_data.c index 6ca11c6d4d..5137645e27 100644 --- a/src/ride/track_data.c +++ b/src/ride/track_data.c @@ -33033,7 +33033,7 @@ const uint16 FlatTrackFlags[] = { /* */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_TURN_SLOPED | TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_0100, /* */ 0, /* */ 0, - /* */ TRACK_ELEM_FLAG_0200, + /* */ TRACK_ELEM_FLAG_ONLY_ABOVE_GROUND, /* */ TRACK_ELEM_FLAG_TURN_LEFT | TRACK_ELEM_FLAG_HELIX | TRACK_ELEM_FLAG_8000, /* */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_HELIX | TRACK_ELEM_FLAG_8000, /* */ TRACK_ELEM_FLAG_TURN_LEFT | TRACK_ELEM_FLAG_HELIX | TRACK_ELEM_FLAG_8000, @@ -33046,8 +33046,8 @@ const uint16 FlatTrackFlags[] = { /* FLAT_TRACK_ELEM_4_X_4 */ 0, /* */ 0, /* */ 0, - /* */ TRACK_ELEM_FLAG_0200, - /* ??? */ TRACK_ELEM_FLAG_0200, + /* */ TRACK_ELEM_FLAG_ONLY_ABOVE_GROUND, + /* ??? */ TRACK_ELEM_FLAG_ONLY_ABOVE_GROUND, /* FLAT_TRACK_ELEM_1_X_5 */ 0, /* */ 0, /* FLAT_TRACK_ELEM_1_X_1_A */ 0, @@ -33291,7 +33291,7 @@ const uint16 TrackFlags[] = { /* TRACK_ELEM_RIGHT_QUARTER_TURN_1_TILE_60_DEG_DOWN */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_TURN_SLOPED | TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_0100, /* TRACK_ELEM_BRAKES */ 0, /* TRACK_ELEM_ROTATION_CONTROL_TOGGLE */ 0, - /* TRACK_ELEM_INVERTED_90_DEG_UP_TO_FLAT_QUARTER_LOOP */ TRACK_ELEM_FLAG_0200, + /* TRACK_ELEM_INVERTED_90_DEG_UP_TO_FLAT_QUARTER_LOOP */ TRACK_ELEM_FLAG_ONLY_ABOVE_GROUND, /* TRACK_ELEM_LEFT_QUARTER_BANKED_HELIX_LARGE_UP */ TRACK_ELEM_FLAG_TURN_LEFT | TRACK_ELEM_FLAG_HELIX | TRACK_ELEM_FLAG_8000, /* TRACK_ELEM_RIGHT_QUARTER_BANKED_HELIX_LARGE_UP */ TRACK_ELEM_FLAG_TURN_RIGHT | TRACK_ELEM_FLAG_HELIX | TRACK_ELEM_FLAG_8000, /* TRACK_ELEM_LEFT_QUARTER_BANKED_HELIX_LARGE_DOWN */ TRACK_ELEM_FLAG_TURN_LEFT | TRACK_ELEM_FLAG_HELIX | TRACK_ELEM_FLAG_8000, @@ -33304,7 +33304,7 @@ const uint16 TrackFlags[] = { /* TRACK_ELEM_25_DEG_UP_RIGHT_BANKED */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_0100 | TRACK_ELEM_FLAG_8000, /* TRACK_ELEM_WATERFALL */ 0, /* TRACK_ELEM_RAPIDS */ 0, - /* TRACK_ELEM_ON_RIDE_PHOTO */ TRACK_ELEM_FLAG_0200, + /* TRACK_ELEM_ON_RIDE_PHOTO */ 0, /* TRACK_ELEM_25_DEG_DOWN_LEFT_BANKED */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_0100 | TRACK_ELEM_FLAG_8000, /* TRACK_ELEM_25_DEG_DOWN_RIGHT_BANKED */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_0100 | TRACK_ELEM_FLAG_8000, /* TRACK_ELEM_WATER_SPLASH */ 0, diff --git a/src/ride/vehicle.c b/src/ride/vehicle.c index a324319f16..3165ff186a 100644 --- a/src/ride/vehicle.c +++ b/src/ride/vehicle.c @@ -2949,7 +2949,7 @@ static void vehicle_check_if_missing(rct_vehicle* vehicle) { ride->mode == RIDE_MODE_POWERED_LAUNCH_BLOCK_SECTIONED) return; - if (!ride_type_has_flag(ride->type, RIDE_TYPE_FLAG_27)) + if (!ride_type_has_flag(ride->type, RIDE_TYPE_FLAG_CHECK_FOR_STALLING)) return; vehicle->lost_time_out++;