diff --git a/distribution/changelog.txt b/distribution/changelog.txt index ecee6c3e2b..b72053ac31 100644 --- a/distribution/changelog.txt +++ b/distribution/changelog.txt @@ -30,6 +30,7 @@ - Fix: [#7884] Unfinished preserved rides can be demolished with quick demolish. - Fix: [#7913] RCT1/RCT2 title sequence timing is off. - Fix: [#7700, #8079, #8969] Crash when unloading buggy custom rides. +- Fix: [#7829] Rotated information kiosk can cause 'unreachable' messages. - Fix: [#7878] Scroll shortcut keys ignore SHIFT/CTRL/ALT modifiers. - Fix: [#8219] Faulty folder recreation in "save" folder. - Fix: [#8480, #8535] Crash when mirroring track design. diff --git a/src/openrct2/ride/Ride.cpp b/src/openrct2/ride/Ride.cpp index c464f35783..6ddcdcc923 100644 --- a/src/openrct2/ride/Ride.cpp +++ b/src/openrct2/ride/Ride.cpp @@ -3503,7 +3503,7 @@ static void ride_shop_connected(Ride* ride) if (trackElement == nullptr) return; - uint16_t entrance_directions = 0; + uint8_t entrance_directions = 0; uint8_t track_type = trackElement->GetTrackType(); ride = get_ride(trackElement->GetRideIndex()); if (ride == nullptr) @@ -3512,16 +3512,15 @@ static void ride_shop_connected(Ride* ride) } if (ride_type_has_flag(ride->type, RIDE_TYPE_FLAG_FLAT_RIDE)) { - entrance_directions = FlatRideTrackSequenceProperties[track_type][0]; + entrance_directions = FlatRideTrackSequenceProperties[track_type][0] & 0xF; } else { - entrance_directions = TrackSequenceProperties[track_type][0]; + entrance_directions = TrackSequenceProperties[track_type][0] & 0xF; } uint8_t tile_direction = trackElement->GetDirection(); - entrance_directions <<= tile_direction; - entrance_directions = ((entrance_directions >> 12) | entrance_directions) & 0xF; + entrance_directions = rol4(entrance_directions, tile_direction); // Now each bit in entrance_directions stands for an entrance direction to check if (entrance_directions == 0)