mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-29 09:44:52 +01:00
Fix #6761: An assertion failed - Invalid Font index 65675
Special font bases were not converted in font_sprite_get_codepoint_width. Assert converted to safe warning.
This commit is contained in:
@@ -121,13 +121,24 @@ sint32 font_sprite_get_codepoint_offset(sint32 codepoint)
|
||||
}
|
||||
}
|
||||
|
||||
sint32 font_sprite_get_codepoint_width(sint32 fontSpriteBase, sint32 codepoint)
|
||||
sint32 font_sprite_get_codepoint_width(uint16 fontSpriteBase, sint32 codepoint)
|
||||
{
|
||||
uint32 spriteFontIdx = fontSpriteBase + font_sprite_get_codepoint_offset(codepoint);
|
||||
#ifdef NO_RCT2
|
||||
openrct2_assert(spriteFontIdx < countof(_spriteFontCharacterWidths), "Invalid font index %u", spriteFontIdx);
|
||||
#endif
|
||||
return _spriteFontCharacterWidths[spriteFontIdx];
|
||||
if (fontSpriteBase == (uint16)FONT_SPRITE_BASE_MEDIUM_DARK ||
|
||||
fontSpriteBase == (uint16)FONT_SPRITE_BASE_MEDIUM_EXTRA_DARK)
|
||||
{
|
||||
fontSpriteBase = (uint16)FONT_SPRITE_BASE_MEDIUM;
|
||||
}
|
||||
|
||||
sint32 spriteFontIdx = fontSpriteBase + font_sprite_get_codepoint_offset(codepoint);
|
||||
if (spriteFontIdx >= 0 && spriteFontIdx < countof(_spriteFontCharacterWidths))
|
||||
{
|
||||
return _spriteFontCharacterWidths[spriteFontIdx];
|
||||
}
|
||||
else
|
||||
{
|
||||
log_warning("Invalid font index %u", spriteFontIdx);
|
||||
return _spriteFontCharacterWidths[0];
|
||||
}
|
||||
}
|
||||
|
||||
sint32 font_sprite_get_codepoint_sprite(sint32 fontSpriteBase, sint32 codepoint)
|
||||
|
||||
@@ -72,7 +72,7 @@ extern "C" {
|
||||
|
||||
void font_sprite_initialise_characters();
|
||||
sint32 font_sprite_get_codepoint_offset(sint32 codepoint);
|
||||
sint32 font_sprite_get_codepoint_width(sint32 fontSpriteBase, sint32 codepoint);
|
||||
sint32 font_sprite_get_codepoint_width(uint16 fontSpriteBase, sint32 codepoint);
|
||||
sint32 font_sprite_get_codepoint_sprite(sint32 fontSpriteBase, sint32 codepoint);
|
||||
sint32 font_get_size_from_sprite_base(uint16 spriteBase);
|
||||
sint32 font_get_line_height(sint32 fontSpriteBase);
|
||||
|
||||
Reference in New Issue
Block a user