From 616a3ada722e1d603904360b2e35fdb8d4389a99 Mon Sep 17 00:00:00 2001 From: Kevin Burke Date: Sat, 4 Apr 2015 21:57:53 -0700 Subject: [PATCH] Move var_112 accessors into their own methods --- src/ride/ride.c | 16 ++++++++++++++++ src/ride/ride.h | 4 ++++ src/ride/ride_ratings.c | 23 ++++++++++++----------- 3 files changed, 32 insertions(+), 11 deletions(-) diff --git a/src/ride/ride.c b/src/ride/ride.c index e83714b864..e654112c75 100644 --- a/src/ride/ride.c +++ b/src/ride/ride.c @@ -3624,6 +3624,22 @@ int get_var_110_unk_3(rct_ride* ride) { return ride->var_110 & 0x1F; } +int get_var_112_unk_1(rct_ride* ride) { + return (ride->var_112 >> 11) & 0x3F; +} + +int get_var_112_unk_2(rct_ride* ride) { + return (ride->var_112 >> 8) & 7; +} + +int get_var_112_unk_3(rct_ride* ride) { + return (ride->var_112 >> 5) & 7; +} + +int get_var_112_unk_4(rct_ride* ride) { + return ride->var_112 & 0x1F; +} + bool ride_has_spinning_tunnel(rct_ride *ride) { return ride->special_track_elements & RIDE_ELEMENT_TUNNEL_SPLASH_OR_RAPIDS; } diff --git a/src/ride/ride.h b/src/ride/ride.h index 47ccb3923d..d89e4bd701 100644 --- a/src/ride/ride.h +++ b/src/ride/ride.h @@ -770,6 +770,10 @@ int get_var_10E_unk_3(rct_ride* ride); int get_var_110_unk_1(rct_ride* ride); int get_var_110_unk_2(rct_ride* ride); int get_var_110_unk_3(rct_ride* ride); +int get_var_112_unk_1(rct_ride* ride); +int get_var_112_unk_2(rct_ride* ride); +int get_var_112_unk_3(rct_ride* ride); +int get_var_112_unk_4(rct_ride* ride); uint8 ride_get_helix_sections(rct_ride *ride); bool ride_has_spinning_tunnel(rct_ride *ride); diff --git a/src/ride/ride_ratings.c b/src/ride/ride_ratings.c index 7b8cd55775..e891bb1241 100644 --- a/src/ride/ride_ratings.c +++ b/src/ride/ride_ratings.c @@ -647,26 +647,27 @@ static rating_tuple get_var_110_rating(rct_ride* ride) { /** * rct2: 0x0065E047 */ -static rating_tuple get_var_112_rating(uint16 var_112) { +static rating_tuple get_var_112_rating(rct_ride *ride) { int al; - al = var_112 >> 11; - al = min(al & 0x3F, 4); + al = get_var_112_unk_1(ride); + al = min(al, 4); int excitement = (al * 0x78000) >> 16; - al = var_112 >> 11; - al = min(al & 0x3F, 8); + al = get_var_112_unk_1(ride); + al = min(al, 8); int nausea = (al * 0x78000) >> 16; - al = var_112 >> 8; - al = min(al & 7, 6); + al = get_var_112_unk_2(ride); + al = min(al, 6); excitement += (al * 273066) >> 16; - al = var_112 >> 5; - al = min(al & 7, 6); + al = get_var_112_unk_3(ride); + al = min(al, 6); excitement += (al * 0x3aaaa) >> 16; - al = min(var_112 & 0x1F, 7); + al = get_var_112_unk_4(ride); + al = min(al, 7); excitement += (al * 187245) >> 16; rating_tuple rating = { excitement, 0, nausea }; @@ -760,7 +761,7 @@ static rating_tuple sub_65DDD1(rct_ride *ride) intensity += var_110_rating.intensity; nausea += var_110_rating.nausea; - rating_tuple var_112_rating = get_var_112_rating(ride->var_112); + rating_tuple var_112_rating = get_var_112_rating(ride); excitement += var_112_rating.excitement; intensity += var_112_rating.intensity; nausea += var_112_rating.nausea;