mirror of https://github.com/OpenRCT2/OpenRCT2.git
Guard against null banners (#11078)
This commit is contained in:
parent
c6e42ac313
commit
47b6139546
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue