1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-02-01 19:25:12 +01:00

Fix #8079: Crash when unloading buggy custom rides

This commit is contained in:
Gymnasiast
2019-04-20 22:43:28 +02:00
parent 5a906b2378
commit ec6b738317
2 changed files with 20 additions and 15 deletions

View File

@@ -13,6 +13,7 @@
- Fix: [#6006] Objects higher than 6 metres are considered trees (original bug).
- Fix: [#7884] Unfinished preserved rides can be demolished with quick demolish.
- Fix: [#7913] RCT1/RCT2 title sequence timing is off.
- Fix: [#8079, #8969] Crash when unloading buggy custom rides.
- Fix: [#8219] Faulty folder recreation in "save" folder.
- Fix: [#8537] Imported RCT1 rides/shops are all numbered 1.
- Fix: [#8649] Setting date does not work in multiplayer.

View File

@@ -4028,22 +4028,26 @@ void Guest::UpdateRideLeaveVehicle()
platformLocation.x = vehicle->x + word_981D6C[platformLocation.direction].x * 12;
platformLocation.y = vehicle->y + word_981D6C[platformLocation.direction].y * 12;
int8_t loadPosition = vehicle_entry->peep_loading_positions[current_seat];
switch (vehicle->sprite_direction / 8)
// This can evaluate to false with buggy custom rides.
if (current_seat < vehicle_entry->peep_loading_positions.size())
{
case 0:
platformLocation.x -= loadPosition;
break;
case 1:
platformLocation.y += loadPosition;
break;
case 2:
platformLocation.x += loadPosition;
break;
case 3:
platformLocation.y -= loadPosition;
break;
int8_t loadPosition = vehicle_entry->peep_loading_positions[current_seat];
switch (vehicle->sprite_direction / 8)
{
case 0:
platformLocation.x -= loadPosition;
break;
case 1:
platformLocation.y += loadPosition;
break;
case 2:
platformLocation.x += loadPosition;
break;
case 3:
platformLocation.y -= loadPosition;
break;
}
}
platformLocation.z = ride->stations[current_ride_station].Height * 8;