From a7c103261ad79fe331cf0deeecfdb0c6ac023df1 Mon Sep 17 00:00:00 2001 From: Tulio Leao Date: Mon, 20 Apr 2020 23:28:59 -0300 Subject: [PATCH 1/2] Use BaseZ and ClearanceZ on ride_ratings_score_close_proximity_in_direction() --- src/openrct2/ride/RideRatings.cpp | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/openrct2/ride/RideRatings.cpp b/src/openrct2/ride/RideRatings.cpp index 859781b4a9..ff51f48e50 100644 --- a/src/openrct2/ride/RideRatings.cpp +++ b/src/openrct2/ride/RideRatings.cpp @@ -454,8 +454,7 @@ static void ride_ratings_score_close_proximity_in_direction(TileElement* inputTi } break; case TILE_ELEMENT_TYPE_PATH: - if (abs(static_cast(inputTileElement->base_height) - static_cast(tileElement->base_height)) - <= 2) + if (abs(inputTileElement->GetBaseZ() - tileElement->GetBaseZ()) <= 2 * COORDS_Z_STEP) { proximity_score_increment(PROXIMITY_PATH_SIDE_CLOSE); } @@ -463,9 +462,7 @@ static void ride_ratings_score_close_proximity_in_direction(TileElement* inputTi case TILE_ELEMENT_TYPE_TRACK: if (inputTileElement->AsTrack()->GetRideIndex() != tileElement->AsTrack()->GetRideIndex()) { - if (abs(static_cast(inputTileElement->base_height) - - static_cast(tileElement->base_height)) - <= 2) + if (abs(inputTileElement->GetBaseZ() - tileElement->GetBaseZ()) <= 2 * COORDS_Z_STEP) { proximity_score_increment(PROXIMITY_FOREIGN_TRACK_SIDE_CLOSE); } @@ -473,9 +470,9 @@ static void ride_ratings_score_close_proximity_in_direction(TileElement* inputTi break; case TILE_ELEMENT_TYPE_SMALL_SCENERY: case TILE_ELEMENT_TYPE_LARGE_SCENERY: - if (tileElement->base_height < inputTileElement->clearance_height) + if (tileElement->GetBaseZ() < inputTileElement->GetClearanceZ()) { - if (inputTileElement->base_height > tileElement->clearance_height) + if (inputTileElement->GetBaseZ() > tileElement->GetClearanceZ()) { proximity_score_increment(PROXIMITY_SCENERY_SIDE_ABOVE); } From dedd0cd54f58b47a0be83e0462051c7e88215955 Mon Sep 17 00:00:00 2001 From: Tulio Leao Date: Mon, 20 Apr 2020 23:33:56 -0300 Subject: [PATCH 2/2] Use CoordsXY on ride_ratings_score_close_proximity_in_direction() --- src/openrct2/ride/RideRatings.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/openrct2/ride/RideRatings.cpp b/src/openrct2/ride/RideRatings.cpp index ff51f48e50..68f3436ac2 100644 --- a/src/openrct2/ride/RideRatings.cpp +++ b/src/openrct2/ride/RideRatings.cpp @@ -429,12 +429,12 @@ static void proximity_score_increment(int32_t type) */ static void ride_ratings_score_close_proximity_in_direction(TileElement* inputTileElement, int32_t direction) { - int32_t x = gRideRatingsCalcData.proximity_x + CoordsDirectionDelta[direction].x; - int32_t y = gRideRatingsCalcData.proximity_y + CoordsDirectionDelta[direction].y; - if (x < 0 || y < 0 || x >= (32 * 256) || y >= (32 * 256)) + auto scorePos = CoordsXY{ gRideRatingsCalcData.proximity_x + CoordsDirectionDelta[direction].x, + gRideRatingsCalcData.proximity_y + CoordsDirectionDelta[direction].y }; + if (!map_is_location_valid(scorePos)) return; - TileElement* tileElement = map_get_first_element_at({ x, y }); + TileElement* tileElement = map_get_first_element_at(scorePos); if (tileElement == nullptr) return; do