mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-19 21:13:05 +01:00
Guard against null banners (#11078)
This commit is contained in:
committed by
GitHub
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;
|
||||
|
||||
Reference in New Issue
Block a user