From 9314b8b793bef0b325753e0d4be68caeb451691d Mon Sep 17 00:00:00 2001 From: Hielke Morsink Date: Wed, 19 Apr 2017 07:56:46 +0200 Subject: [PATCH] Fix #5375: Use mask for fetching large scenery id, fix picking banner elements --- src/openrct2/windows/top_toolbar.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/openrct2/windows/top_toolbar.c b/src/openrct2/windows/top_toolbar.c index 9af833ccc4..ae57bf505a 100644 --- a/src/openrct2/windows/top_toolbar.c +++ b/src/openrct2/windows/top_toolbar.c @@ -1049,7 +1049,7 @@ static void scenery_eyedropper_tool_down(sint16 x, sint16 y, sint16 widgetIndex) } case VIEWPORT_INTERACTION_ITEM_LARGE_SCENERY: { - sint32 entryIndex = mapElement->properties.scenerymultiple.type; + sint32 entryIndex = mapElement->properties.scenerymultiple.type & MAP_ELEMENT_LARGE_TYPE_MASK; rct_scenery_entry * sceneryEntry = get_large_scenery_entry(entryIndex); if (sceneryEntry != NULL || sceneryEntry != (rct_scenery_entry *)-1) { sint32 sceneryId = get_scenery_id_from_entry_index(OBJECT_TYPE_LARGE_SCENERY, entryIndex); @@ -1064,10 +1064,11 @@ static void scenery_eyedropper_tool_down(sint16 x, sint16 y, sint16 widgetIndex) } case VIEWPORT_INTERACTION_ITEM_BANNER: { - sint32 entryIndex = mapElement->properties.banner.index; - rct_scenery_entry * sceneryEntry = get_large_scenery_entry(entryIndex); + sint32 bannerIndex = mapElement->properties.banner.index; + rct_banner *banner = &gBanners[bannerIndex]; + rct_scenery_entry * sceneryEntry = get_banner_entry(banner->type); if (sceneryEntry != NULL || sceneryEntry != (rct_scenery_entry *)-1) { - sint32 sceneryId = get_scenery_id_from_entry_index(OBJECT_TYPE_BANNERS, entryIndex); + sint32 sceneryId = get_scenery_id_from_entry_index(OBJECT_TYPE_BANNERS, banner->type); if (sceneryId != -1 && window_scenery_set_selected_item(sceneryId)) { gWindowSceneryEyedropperEnabled = false; }