From 3a3694a480fb19d0f9449598530d1feb6d3d987d Mon Sep 17 00:00:00 2001 From: lnz Date: Mon, 26 May 2014 18:19:34 +0200 Subject: [PATCH] More critical bugfixes for the reachability code. --- src/ride.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/ride.c b/src/ride.c index 005b776d47..261dfc752c 100644 --- a/src/ride.c +++ b/src/ride.c @@ -256,13 +256,17 @@ void ride_entrance_exit_connected(rct_ride* ride, int ride_idx) void ride_is_shop_reachable(rct_ride* ride, int ride_idx) { - uint16 coordinate = ride->station_starts[ride_idx]; + uint16 coordinate = ride->station_starts[0]; + if (coordinate == 0xFFFF) + return; + int x = ((coordinate >> 8) & 0xFF) << 5, // cx y = (coordinate & 0xFF) << 5; // ax uint16 magic = 0; int tile_idx = ((x << 8) | y) >> 5, count = 0; rct_map_element* tile = RCT2_ADDRESS(RCT2_ADDRESS_TILE_MAP_ELEMENT_POINTERS, rct_map_element*)[tile_idx]; + while (1) { uint8 element_type = tile->type & MAP_ELEMENT_TYPE_MASK; if(element_type == MAP_ELEMENT_TYPE_TRACK && tile->properties.track.ride_index == ride_idx)