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)
|
if (sceneryEntry->wall.scrolling_mode != SCROLLING_MODE_NONE)
|
||||||
{
|
{
|
||||||
auto banner = tileElement->AsWall()->GetBanner();
|
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);
|
size_t argPos = 0;
|
||||||
argPos += sizeof(rct_string_id);
|
set_map_tooltip_format_arg(argPos, rct_string_id, STR_MAP_TOOLTIP_BANNER_STRINGID_STRINGID);
|
||||||
argPos += banner->FormatTextTo(gMapTooltipFormatArgs + argPos);
|
argPos += sizeof(rct_string_id);
|
||||||
set_map_tooltip_format_arg(argPos, rct_string_id, STR_MAP_TOOLTIP_STRINGID_CLICK_TO_MODIFY);
|
argPos += banner->FormatTextTo(gMapTooltipFormatArgs + argPos);
|
||||||
argPos += sizeof(rct_string_id);
|
set_map_tooltip_format_arg(argPos, rct_string_id, STR_MAP_TOOLTIP_STRINGID_CLICK_TO_MODIFY);
|
||||||
set_map_tooltip_format_arg(argPos, rct_string_id, sceneryEntry->name);
|
argPos += sizeof(rct_string_id);
|
||||||
return info->type;
|
set_map_tooltip_format_arg(argPos, rct_string_id, sceneryEntry->name);
|
||||||
|
return info->type;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -344,15 +346,17 @@ int32_t viewport_interaction_get_item_right(const ScreenCoordsXY& screenCoords,
|
||||||
if (sceneryEntry->large_scenery.scrolling_mode != SCROLLING_MODE_NONE)
|
if (sceneryEntry->large_scenery.scrolling_mode != SCROLLING_MODE_NONE)
|
||||||
{
|
{
|
||||||
auto banner = tileElement->AsLargeScenery()->GetBanner();
|
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);
|
size_t argPos = 0;
|
||||||
argPos += sizeof(rct_string_id);
|
set_map_tooltip_format_arg(argPos, rct_string_id, STR_MAP_TOOLTIP_BANNER_STRINGID_STRINGID);
|
||||||
argPos += banner->FormatTextTo(gMapTooltipFormatArgs + argPos);
|
argPos += sizeof(rct_string_id);
|
||||||
set_map_tooltip_format_arg(argPos, rct_string_id, STR_MAP_TOOLTIP_STRINGID_CLICK_TO_MODIFY);
|
argPos += banner->FormatTextTo(gMapTooltipFormatArgs + argPos);
|
||||||
argPos += sizeof(rct_string_id);
|
set_map_tooltip_format_arg(argPos, rct_string_id, STR_MAP_TOOLTIP_STRINGID_CLICK_TO_MODIFY);
|
||||||
set_map_tooltip_format_arg(argPos, rct_string_id, sceneryEntry->name);
|
argPos += sizeof(rct_string_id);
|
||||||
return info->type;
|
set_map_tooltip_format_arg(argPos, rct_string_id, sceneryEntry->name);
|
||||||
|
return info->type;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
@ -156,8 +156,10 @@ rct_window* window_sign_open(rct_windownumber number)
|
||||||
window_init_scroll_widgets(w);
|
window_init_scroll_widgets(w);
|
||||||
|
|
||||||
auto banner = GetBanner(w->number);
|
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);
|
TileElement* tile_element = map_get_first_element_at(signViewPos);
|
||||||
if (tile_element == nullptr)
|
if (tile_element == nullptr)
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
Loading…
Reference in New Issue