Crashlog: Fix crash log when font caches not initialised

This commit is contained in:
Jonathan G Rennison
2023-06-11 16:48:01 +01:00
parent 417abcccff
commit aa8b60da15

View File

@@ -223,16 +223,25 @@ char *CrashLog::LogConfiguration(char *buffer, const char *last) const
pathfinder_name(_settings_game.pf.pathfinder_for_trains), pathfinder_name(_settings_game.pf.pathfinder_for_roadvehs), pathfinder_name(_settings_game.pf.pathfinder_for_ships) pathfinder_name(_settings_game.pf.pathfinder_for_trains), pathfinder_name(_settings_game.pf.pathfinder_for_roadvehs), pathfinder_name(_settings_game.pf.pathfinder_for_ships)
); );
auto log_font = [&](FontSize fs) -> const char * {
FontCache *fc = FontCache::Get(fs);
if (fc != nullptr) {
return fc->GetFontName();
} else {
return "[NULL]";
}
};
buffer += seprintf(buffer, last, buffer += seprintf(buffer, last,
"Fonts:\n" "Fonts:\n"
" Small: %s\n" " Small: %s\n"
" Medium: %s\n" " Medium: %s\n"
" Large: %s\n" " Large: %s\n"
" Mono: %s\n\n", " Mono: %s\n\n",
FontCache::Get(FS_SMALL)->GetFontName(), log_font(FS_SMALL),
FontCache::Get(FS_NORMAL)->GetFontName(), log_font(FS_NORMAL),
FontCache::Get(FS_LARGE)->GetFontName(), log_font(FS_LARGE),
FontCache::Get(FS_MONO)->GetFontName() log_font(FS_MONO)
); );
buffer += seprintf(buffer, last, "Map size: 0x%X (%u x %u)%s\n\n", MapSize(), MapSizeX(), MapSizeY(), (!_m || !_me) ? ", NO MAP ALLOCATED" : ""); buffer += seprintf(buffer, last, "Map size: 0x%X (%u x %u)%s\n\n", MapSize(), MapSizeX(), MapSizeY(), (!_m || !_me) ? ", NO MAP ALLOCATED" : "");