diff --git a/src/ride/ride.c b/src/ride/ride.c index 52bfbd5300..f723d902a7 100644 --- a/src/ride/ride.c +++ b/src/ride/ride.c @@ -4468,7 +4468,7 @@ bool ride_create_cable_lift(int rideIndex, bool isApplying) uint16 var_44 = edx & 0xFFFF; edx = rol32(edx, 10) >> 1; ebx -= edx; - uint32 var_24 = ebx; + sint32 var_24 = ebx; ebx -= edx; rct_vehicle *current = cable_lift_segment_create(rideIndex, x, y, z, direction, var_44, var_24, i == 0); diff --git a/src/ride/ride_data.c b/src/ride/ride_data.c index f70d6a66c2..905b8c68e0 100644 --- a/src/ride/ride_data.c +++ b/src/ride/ride_data.c @@ -1309,5 +1309,6 @@ const rct_ride_lift_data RideLiftData[] = { { SOUND_LIFT_1, 4, 7 }, // Inverted Impulse Coaster { SOUND_LIFT_1, 4, 6 }, // Mini Roller Coaster { 255, 5, 5 }, // Mine Ride - { SOUND_LIFT_6, 4, 6 } // LIM Launched Roller Coaster + { SOUND_LIFT_6, 4, 6 }, // (none) + { 255, 4, 6 } // LIM Launched Roller Coaster }; \ No newline at end of file diff --git a/src/ride/ride_data.h b/src/ride/ride_data.h index 554060b718..f82dce841f 100644 --- a/src/ride/ride_data.h +++ b/src/ride/ride_data.h @@ -93,7 +93,7 @@ extern const uint8 AllRideModesAvailable[]; extern const uint8 RideAvailableBreakdowns[]; extern const rct_ride_entrance_definition RideEntranceDefinitions[RIDE_ENTRANCE_STYLE_COUNT]; -extern const rct_ride_lift_data RideLiftData[90]; +extern const rct_ride_lift_data RideLiftData[91]; extern const rct_ride_data_4 RideData4[91]; diff --git a/src/ride/vehicle.c b/src/ride/vehicle.c index 4cb581f245..bc7021d602 100644 --- a/src/ride/vehicle.c +++ b/src/ride/vehicle.c @@ -3741,7 +3741,7 @@ static int vehicle_update_scream_sound(rct_vehicle *vehicle) produceScream: if (vehicle->scream_sound_id == 255) { r = scenario_rand(); - if (totalNumPeeps >= r % 16) { + if (totalNumPeeps >= (int)(r % 16)) { switch (vehicleEntry->sound_range) { case 0: vehicle->scream_sound_id = byte_9A3A14[r % 2]; @@ -3930,7 +3930,7 @@ bool sub_6DF21B_loop(rct_vehicle* vehicle) { rct_ride* ride = GET_RIDE(vehicle->ride); rct_xyz16 *unk_F64E20 = RCT2_ADDRESS(0x00F64E20, rct_xyz16); - for (; (sint32)vehicle->var_24 < 0; RCT2_GLOBAL(0x00F64E10, uint32)++) { + for (; vehicle->var_24 < 0; RCT2_GLOBAL(0x00F64E10, uint32)++) { uint16 trackProgress = vehicle->track_progress - 1; const rct_vehicle_info *moveInfo; @@ -4005,7 +4005,7 @@ bool sub_6DF21B_loop(rct_vehicle* vehicle) { vehicle->var_20 = moveInfo->var_08; vehicle->var_1F = moveInfo->var_07; - if ((sint32)vehicle->var_24 < 0) { + if (vehicle->var_24 < 0) { vehicle->var_2C += RCT2_ADDRESS(0x009A2970, sint32)[vehicle->var_1F]; } } @@ -4051,7 +4051,7 @@ int vehicle_update_track_motion_cable_lift(rct_vehicle *cableLift) invalidate_sprite_2((rct_sprite*)vehicle); while (true) { - if ((sint32)vehicle->var_24 < 0) { + if (vehicle->var_24 < 0) { if (sub_6DF21B_loop(vehicle) == true) { break; } @@ -4071,7 +4071,7 @@ int vehicle_update_track_motion_cable_lift(rct_vehicle *cableLift) else { RCT2_GLOBAL(0x00F64E18, uint32) |= (1 << 5); RCT2_GLOBAL(0x00F64E0C, uint32) -= vehicle->var_24 + 1; - vehicle->var_24 = (uint32)-1; + vehicle->var_24 = -1; vehicle->var_2C += RCT2_ADDRESS(0x009A2970, uint32)[vehicle->var_1F]; RCT2_GLOBAL(0x00F64E10, uint32)++; } @@ -4128,7 +4128,7 @@ int vehicle_update_track_motion_cable_lift(rct_vehicle *cableLift) //return eax; } -rct_vehicle *cable_lift_segment_create(int rideIndex, int x, int y, int z, int direction, uint16 var_44, uint32 var_24, bool head) +rct_vehicle *cable_lift_segment_create(int rideIndex, int x, int y, int z, int direction, uint16 var_44, sint32 var_24, bool head) { rct_ride *ride = GET_RIDE(rideIndex); rct_vehicle *current = &(create_sprite(1)->vehicle); diff --git a/src/ride/vehicle.h b/src/ride/vehicle.h index 216343e58d..524bd8f659 100644 --- a/src/ride/vehicle.h +++ b/src/ride/vehicle.h @@ -106,7 +106,7 @@ typedef struct { uint8 var_1F; uint8 var_20; uint8 pad_21[3]; - uint32 var_24; + sint32 var_24; sint32 velocity; // 0x28 sint32 var_2C; uint8 ride; // 0x30 @@ -288,7 +288,7 @@ void vehicle_set_map_toolbar(rct_vehicle *vehicle); int vehicle_is_used_in_pairs(rct_vehicle *vehicle); rct_vehicle *vehicle_get_head(rct_vehicle *vehicle); int vehicle_update_track_motion_cable_lift(rct_vehicle *cableLift); -rct_vehicle *cable_lift_segment_create(int rideIndex, int x, int y, int z, int direction, uint16 var_44, uint32 var_24, bool head); +rct_vehicle *cable_lift_segment_create(int rideIndex, int x, int y, int z, int direction, uint16 var_44, sint32 var_24, bool head); bool sub_6DD365(rct_vehicle *vehicle); int sub_6DAB4C(rct_vehicle *vehicle, int *outStation); rct_ride_type_vehicle *vehicle_get_vehicle_entry(rct_vehicle *vehicle);