mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-20 21:43:06 +01:00
Fix #5489: Sprite index crash for car view on car ride
This commit is contained in:
@@ -18,6 +18,7 @@
|
||||
- Fix: [#4055] Sort rides by track type: Sorting rule is not really clear (inconsistent?)
|
||||
- Fix: [#5400] New Ride window does not focus properly on newly invented ride.
|
||||
- Fix: [#5009] Ride rating calculations can overflow
|
||||
- Fix: [#5489] Sprite index crash for car view on car ride.
|
||||
- Fix: Non-invented vehicles can be used via track designs in select-by-track-type mode.
|
||||
- Fix: Track components added by OpenRCT2 are now usable in older scenarios.
|
||||
- Technical: [#5047] Add ride ratings tests
|
||||
|
||||
@@ -1789,9 +1789,13 @@ static void window_ride_init_viewport(rct_window *w)
|
||||
rct_ride_entry* ride_entry = get_ride_entry_by_ride(ride);
|
||||
if (ride_entry && ride_entry->tab_vehicle != 0){
|
||||
rct_vehicle* vehicle = GET_VEHICLE(focus.sprite.sprite_id);
|
||||
focus.sprite.sprite_id = vehicle->next_vehicle_on_train;
|
||||
if (vehicle->next_vehicle_on_train != SPRITE_INDEX_NULL) {
|
||||
focus.sprite.sprite_id = vehicle->next_vehicle_on_train;
|
||||
}
|
||||
}
|
||||
if (focus.sprite.sprite_id != SPRITE_INDEX_NULL) {
|
||||
focus.sprite.type |= VIEWPORT_FOCUS_TYPE_SPRITE;
|
||||
}
|
||||
focus.sprite.type |= 0xC0;
|
||||
}
|
||||
else if (eax >= ride->num_vehicles && eax < (ride->num_vehicles + ride->num_stations)){
|
||||
sint32 stationIndex = -1;
|
||||
@@ -1807,7 +1811,7 @@ static void window_ride_init_viewport(rct_window *w)
|
||||
focus.coordinate.x = (eax & 0xFF) << 5;
|
||||
focus.coordinate.y = (eax & 0xFF00) >> 3;
|
||||
focus.coordinate.z = ride->station_heights[stationIndex] << 3;
|
||||
focus.sprite.type |= 0x40;
|
||||
focus.sprite.type |= VIEWPORT_FOCUS_TYPE_COORDINATE;
|
||||
}
|
||||
else{
|
||||
if (eax > 0){
|
||||
@@ -1821,7 +1825,7 @@ static void window_ride_init_viewport(rct_window *w)
|
||||
focus.coordinate.z = view->z;
|
||||
focus.coordinate.zoom = view->zoom;
|
||||
|
||||
focus.sprite.type |= 0x40;
|
||||
focus.sprite.type |= VIEWPORT_FOCUS_TYPE_COORDINATE;
|
||||
}
|
||||
focus.coordinate.var_480 = w->viewport_focus_coordinates.var_480;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user