From 53a1d93ec38f6aa4266020b48ef1068319188ed9 Mon Sep 17 00:00:00 2001 From: duncanspumpkin Date: Tue, 15 Dec 2015 22:59:15 +0000 Subject: [PATCH] Fix infinite loop. Backwards still not working --- src/ride/vehicle.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/ride/vehicle.c b/src/ride/vehicle.c index 99e02c6cb2..591e4096b4 100644 --- a/src/ride/vehicle.c +++ b/src/ride/vehicle.c @@ -6538,9 +6538,8 @@ loc_6DBC3B: ); // There are two bytes before the move info list - uint16 unk16 = *((uint16*)((int)moveInfo - 2)); - unk16--; - regs.ax = unk16; + trackTotalProgress = *((uint16*)((int)moveInfo - 2)); + regs.ax = trackTotalProgress - 1; loc_6DBD42: vehicle->track_progress = regs.ax; @@ -6649,9 +6648,12 @@ loc_6DC0F7: if (vehicle == RCT2_GLOBAL(0x00F64E04, rct_vehicle*)) { goto loc_6DC144; } + if (vehicle->prev_vehicle_on_ride == SPRITE_INDEX_NULL) { + goto loc_6DC144; + } + vehicle = GET_VEHICLE(vehicle->prev_vehicle_on_ride); } goto loc_6DAE27; - loc_6DC144: vehicle = RCT2_GLOBAL(0x00F64E04, rct_vehicle*); regs.eax = 0;