From bda7550e33837891851ee3b0c675792fd9702743 Mon Sep 17 00:00:00 2001 From: IntelOrca Date: Thu, 10 Sep 2015 20:06:13 +0100 Subject: [PATCH] fix #1913 --- src/peep/peep.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/peep/peep.c b/src/peep/peep.c index 0ac27206f2..9d15b9e1f2 100644 --- a/src/peep/peep.c +++ b/src/peep/peep.c @@ -7974,9 +7974,12 @@ static bool sub_6960AB(rct_peep *peep, int rideIndex, int dh, int bp) } } } - if (!(RCT2_ADDRESS(0x0097D4F2, uint16)[ride->type * 8] & 0x1000) || ride->value == 0xFFFF || ride->price != 0) { + + // Check price, safety, ratings etc. + if (!(RCT2_GLOBAL(0x0097D4F2 + (ride->type * 8), uint16) & 0x1000) || ride->value == 0xFFFF || ride->price != 0) { if (peep->previous_ride == rideIndex) goto loc_69666E; + if (ride->price != 0 && !peep_has_voucher_for_free_ride(peep, rideIndex)) { if (peep->cash_in_pocket <= 0) { if (!(bp & 4)) { @@ -8049,8 +8052,9 @@ static bool sub_6960AB(rct_peep *peep, int rideIndex, int dh, int bp) goto loc_696387; } - if (RCT2_ADDRESS(0x0097D4F2, uint16)[ride->type * 8] & 0x10) { - if (scenario_rand() > 0x1999U) goto loc_69666E; + // Check G forces (basic intensity look check) + if (RCT2_GLOBAL(0x0097D4F2 + (ride->type * 8), uint16) & 0x10) { + if ((scenario_rand() & 0xFFFF) > 0x1999U) goto loc_69666E; if (ride->max_positive_vertical_g > 500 && !gConfigCheat.ignore_ride_intensity) goto loc_69666E; if (ride->max_negative_vertical_g < -400 && !gConfigCheat.ignore_ride_intensity) goto loc_69666E; if (ride->max_lateral_g > 400 && !gConfigCheat.ignore_ride_intensity) goto loc_69666E;