From 9540e804b37eb9d23f7c39ae8910f408df49bd29 Mon Sep 17 00:00:00 2001 From: Yaroslav Tretyakov Date: Tue, 1 Nov 2016 02:14:46 -0600 Subject: [PATCH] Fix #4728: Crash when trying to remove invalid provisional track piece --- src/world/map.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/world/map.c b/src/world/map.c index d2c1b3fa90..e589c1a7bf 100644 --- a/src/world/map.c +++ b/src/world/map.c @@ -4452,8 +4452,11 @@ void map_remove_provisional_elements() footpath_provisional_remove(); gFootpathProvisionalFlags |= PROVISIONAL_PATH_FLAG_1; } - ride_remove_provisional_track_piece(); - ride_remove_provisional_entrance_or_exit(); + if (window_find_by_class(WC_CONSTRUCT_RIDE) != NULL) + { + ride_remove_provisional_track_piece(); + ride_remove_provisional_entrance_or_exit(); + } } void map_restore_provisional_elements() @@ -4467,8 +4470,11 @@ void map_restore_provisional_elements() gFootpathProvisionalPosition.z, gFootpathProvisionalSlope); } - ride_restore_provisional_track_piece(); - ride_restore_provisional_entrance_or_exit(); + if (window_find_by_class(WC_CONSTRUCT_RIDE) != NULL) + { + ride_restore_provisional_track_piece(); + ride_restore_provisional_entrance_or_exit(); + } } int map_element_get_banner_index(rct_map_element *mapElement)