diff --git a/src/openrct2-ui/interface/ViewportInteraction.cpp b/src/openrct2-ui/interface/ViewportInteraction.cpp index 736c611b21..277ece1273 100644 --- a/src/openrct2-ui/interface/ViewportInteraction.cpp +++ b/src/openrct2-ui/interface/ViewportInteraction.cpp @@ -327,15 +327,17 @@ int32_t viewport_interaction_get_item_right(const ScreenCoordsXY& screenCoords, if (sceneryEntry->wall.scrolling_mode != SCROLLING_MODE_NONE) { auto banner = tileElement->AsWall()->GetBanner(); - - size_t argPos = 0; - set_map_tooltip_format_arg(argPos, rct_string_id, STR_MAP_TOOLTIP_BANNER_STRINGID_STRINGID); - argPos += sizeof(rct_string_id); - argPos += banner->FormatTextTo(gMapTooltipFormatArgs + argPos); - set_map_tooltip_format_arg(argPos, rct_string_id, STR_MAP_TOOLTIP_STRINGID_CLICK_TO_MODIFY); - argPos += sizeof(rct_string_id); - set_map_tooltip_format_arg(argPos, rct_string_id, sceneryEntry->name); - return info->type; + if (banner != nullptr) + { + size_t argPos = 0; + set_map_tooltip_format_arg(argPos, rct_string_id, STR_MAP_TOOLTIP_BANNER_STRINGID_STRINGID); + argPos += sizeof(rct_string_id); + argPos += banner->FormatTextTo(gMapTooltipFormatArgs + argPos); + set_map_tooltip_format_arg(argPos, rct_string_id, STR_MAP_TOOLTIP_STRINGID_CLICK_TO_MODIFY); + argPos += sizeof(rct_string_id); + set_map_tooltip_format_arg(argPos, rct_string_id, sceneryEntry->name); + return info->type; + } } break; @@ -344,15 +346,17 @@ int32_t viewport_interaction_get_item_right(const ScreenCoordsXY& screenCoords, if (sceneryEntry->large_scenery.scrolling_mode != SCROLLING_MODE_NONE) { auto banner = tileElement->AsLargeScenery()->GetBanner(); - - size_t argPos = 0; - set_map_tooltip_format_arg(argPos, rct_string_id, STR_MAP_TOOLTIP_BANNER_STRINGID_STRINGID); - argPos += sizeof(rct_string_id); - argPos += banner->FormatTextTo(gMapTooltipFormatArgs + argPos); - set_map_tooltip_format_arg(argPos, rct_string_id, STR_MAP_TOOLTIP_STRINGID_CLICK_TO_MODIFY); - argPos += sizeof(rct_string_id); - set_map_tooltip_format_arg(argPos, rct_string_id, sceneryEntry->name); - return info->type; + if (banner != nullptr) + { + size_t argPos = 0; + set_map_tooltip_format_arg(argPos, rct_string_id, STR_MAP_TOOLTIP_BANNER_STRINGID_STRINGID); + argPos += sizeof(rct_string_id); + argPos += banner->FormatTextTo(gMapTooltipFormatArgs + argPos); + set_map_tooltip_format_arg(argPos, rct_string_id, STR_MAP_TOOLTIP_STRINGID_CLICK_TO_MODIFY); + argPos += sizeof(rct_string_id); + set_map_tooltip_format_arg(argPos, rct_string_id, sceneryEntry->name); + return info->type; + } } break; diff --git a/src/openrct2-ui/windows/Sign.cpp b/src/openrct2-ui/windows/Sign.cpp index 42d0eb967b..aee4ce143a 100644 --- a/src/openrct2-ui/windows/Sign.cpp +++ b/src/openrct2-ui/windows/Sign.cpp @@ -156,8 +156,10 @@ rct_window* window_sign_open(rct_windownumber number) window_init_scroll_widgets(w); auto banner = GetBanner(w->number); - auto signViewPos = banner->position.ToCoordsXY().ToTileCentre(); + if (banner == nullptr) + return nullptr; + auto signViewPos = banner->position.ToCoordsXY().ToTileCentre(); TileElement* tile_element = map_get_first_element_at(signViewPos); if (tile_element == nullptr) return nullptr;