Fix code to determine number of golf holes

This commit is contained in:
Gymnasiast 2019-03-27 12:29:15 +01:00
parent 64e51cd34b
commit 2a99c42242
4 changed files with 22 additions and 12 deletions

View File

@ -1261,7 +1261,8 @@ static rating_tuple ride_ratings_get_turns_ratings(Ride* ride)
intensity += var_112_rating.intensity;
nausea += var_112_rating.nausea;
rating_tuple inversions_rating = get_inversions_ratings(ride->inversions);
auto inversions = (ride->type == RIDE_TYPE_MINI_GOLF) ? ride->holes : ride->inversions;
rating_tuple inversions_rating = get_inversions_ratings(inversions);
excitement += inversions_rating.excitement;
intensity += inversions_rating.intensity;
nausea += inversions_rating.nausea;

View File

@ -197,6 +197,7 @@ enum
TRACK_ELEM_FLAG_DOWN = (1 << 5),
TRACK_ELEM_FLAG_UP = (1 << 6),
TRACK_ELEM_FLAG_NORMAL_TO_INVERSION = (1 << 7),
TRACK_ELEM_FLAG_IS_GOLF_HOLE = (1 << 7),
TRACK_ELEM_FLAG_STARTS_AT_HALF_HEIGHT = (1 << 8),
TRACK_ELEM_FLAG_ONLY_ABOVE_GROUND = (1 << 9),
TRACK_ELEM_FLAG_IS_STEEP_UP = (1 << 10), // Used to allow steep backwards lifts on roller coasters that do not allow steep

View File

@ -32250,11 +32250,11 @@ const uint16_t TrackFlags[] = {
/* TRACK_ELEM_HEARTLINE_TRANSFER_DOWN */ 0,
/* TRACK_ELEM_LEFT_HEARTLINE_ROLL */ TRACK_ELEM_FLAG_NORMAL_TO_INVERSION | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* TRACK_ELEM_RIGHT_HEARTLINE_ROLL */ TRACK_ELEM_FLAG_NORMAL_TO_INVERSION | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* TRACK_ELEM_MINI_GOLF_HOLE_A */ TRACK_ELEM_FLAG_NORMAL_TO_INVERSION,
/* TRACK_ELEM_MINI_GOLF_HOLE_B */ TRACK_ELEM_FLAG_NORMAL_TO_INVERSION,
/* TRACK_ELEM_MINI_GOLF_HOLE_C */ TRACK_ELEM_FLAG_NORMAL_TO_INVERSION,
/* TRACK_ELEM_MINI_GOLF_HOLE_D */ TRACK_ELEM_FLAG_NORMAL_TO_INVERSION,
/* TRACK_ELEM_MINI_GOLF_HOLE_E */ TRACK_ELEM_FLAG_NORMAL_TO_INVERSION,
/* TRACK_ELEM_MINI_GOLF_HOLE_A */ TRACK_ELEM_FLAG_IS_GOLF_HOLE,
/* TRACK_ELEM_MINI_GOLF_HOLE_B */ TRACK_ELEM_FLAG_IS_GOLF_HOLE,
/* TRACK_ELEM_MINI_GOLF_HOLE_C */ TRACK_ELEM_FLAG_IS_GOLF_HOLE,
/* TRACK_ELEM_MINI_GOLF_HOLE_D */ TRACK_ELEM_FLAG_IS_GOLF_HOLE,
/* TRACK_ELEM_MINI_GOLF_HOLE_E */ TRACK_ELEM_FLAG_IS_GOLF_HOLE,
/* TRACK_ELEM_MULTIDIM_INVERTED_FLAT_TO_90_DEG_QUARTER_LOOP_DOWN */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* TRACK_ELEM_90_DEG_TO_INVERTED_FLAT_QUARTER_LOOP_UP */ TRACK_ELEM_FLAG_UP | TRACK_ELEM_FLAG_NORMAL_TO_INVERSION | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,
/* TRACK_ELEM_INVERTED_FLAT_TO_90_DEG_QUARTER_LOOP_DOWN */ TRACK_ELEM_FLAG_DOWN | TRACK_ELEM_FLAG_INVERSION_TO_NORMAL,

View File

@ -1781,13 +1781,21 @@ static void vehicle_update_measurements(rct_vehicle* vehicle)
ride->start_drop_height = vehicle->z / 8;
}
if (track_flags & TRACK_ELEM_FLAG_NORMAL_TO_INVERSION)
if (ride->type == RIDE_TYPE_MINI_GOLF)
{
uint8_t inversions = ride->inversions;
if (inversions != 255)
inversions++;
ride->inversions = inversions;
if (track_flags & TRACK_ELEM_FLAG_IS_GOLF_HOLE)
{
if (ride->holes < 255)
ride->holes++;
}
}
else
{
if (track_flags & TRACK_ELEM_FLAG_NORMAL_TO_INVERSION)
{
if (ride->inversions < 255)
ride->inversions++;
}
}
if (track_flags & TRACK_ELEM_FLAG_HELIX)