Guard against null banners (#11078)

This commit is contained in:
Michael Steenbeek 2020-03-27 13:04:45 +01:00 committed by GitHub
parent c6e42ac313
commit 47b6139546
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 25 additions and 19 deletions

View File

@ -327,7 +327,8 @@ int32_t viewport_interaction_get_item_right(const ScreenCoordsXY& screenCoords,
if (sceneryEntry->wall.scrolling_mode != SCROLLING_MODE_NONE)
{
auto banner = tileElement->AsWall()->GetBanner();
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);
@ -337,6 +338,7 @@ int32_t viewport_interaction_get_item_right(const ScreenCoordsXY& screenCoords,
set_map_tooltip_format_arg(argPos, rct_string_id, sceneryEntry->name);
return info->type;
}
}
break;
case VIEWPORT_INTERACTION_ITEM_LARGE_SCENERY:
@ -344,7 +346,8 @@ int32_t viewport_interaction_get_item_right(const ScreenCoordsXY& screenCoords,
if (sceneryEntry->large_scenery.scrolling_mode != SCROLLING_MODE_NONE)
{
auto banner = tileElement->AsLargeScenery()->GetBanner();
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);
@ -354,6 +357,7 @@ int32_t viewport_interaction_get_item_right(const ScreenCoordsXY& screenCoords,
set_map_tooltip_format_arg(argPos, rct_string_id, sceneryEntry->name);
return info->type;
}
}
break;
case VIEWPORT_INTERACTION_ITEM_BANNER:

View File

@ -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;