From 2d770093e9232e97a153bd8bf058bb85fc8ee13e Mon Sep 17 00:00:00 2001 From: IntelOrca Date: Wed, 5 Aug 2015 13:01:25 +0100 Subject: [PATCH] fix #1630 --- src/openrct2.c | 5 +++++ src/ride/ride_ratings.c | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/openrct2.c b/src/openrct2.c index 4fbbca5d6f..1a83f95a91 100644 --- a/src/openrct2.c +++ b/src/openrct2.c @@ -301,6 +301,11 @@ static void openrct2_loop() openrct2_reset_object_tween_locations(); } + // Limit number of updates per loop (any long pauses or debugging can make this update for a very long time) + if (currentTick - uncapTick > 25 * 60) { + uncapTick = currentTick - 25 - 1; + } + while (uncapTick <= currentTick && currentTick - uncapTick > 25) { // Get the original position of each sprite for (uint16 i = 0; i < MAX_SPRITES; i++) { diff --git a/src/ride/ride_ratings.c b/src/ride/ride_ratings.c index 67de73fa2c..3120eaac56 100644 --- a/src/ride/ride_ratings.c +++ b/src/ride/ride_ratings.c @@ -299,6 +299,7 @@ static void ride_ratings_update_state_5() x = trackBeginEnd.begin_x; y = trackBeginEnd.begin_y; + z = trackBeginEnd.begin_z; if (x == _rideRatingsProximityStartX && y == _rideRatingsProximityStartY && z == _rideRatingsProximityStartZ) { _rideRatingsState = RIDE_RATINGS_STATE_CALCULATE; return; @@ -306,7 +307,7 @@ static void ride_ratings_update_state_5() _rideRatingsProximityX = x; _rideRatingsProximityY = y; _rideRatingsProximityZ = z; - _rideRatingsProximityTrackType = mapElement->properties.track.type; + _rideRatingsProximityTrackType = trackBeginEnd.begin_element->properties.track.type; return; } } while (!map_element_is_last_for_tile(mapElement++));