Сповіщення
Очистити все
Початок теми
05.09.2023 17:22
Детальна інформація:
Реєстрація шрифтів відбувається у файлі UIXmlInit.cpp. Рядки 29-43 містять визначення змінних для великої частини назв шрифтів (трохи нижче ми побачимо, як ці змінні використовуються):
#define ARIAL_FONT_NAME "arial"
#define MEDIUM_FONT_NAME "medium"
#define SMALL_FONT_NAME "small"
#define GRAFFITI19_FONT_NAME "graffiti19"
#define GRAFFITI22_FONT_NAME "graffiti22"
#define GRAFFITI32_FONT_NAME "graffiti32"
#define GRAFFITI50_FONT_NAME "graffiti50"
#define LETTERICA16_FONT_NAME "letterica16"
#define LETTERICA18_FONT_NAME "letterica18"
#define LETTERICA25_FONT_NAME "letterica25"
#define DI_FONT_NAME "di"
Структура:
#define ЗМІННА "назва"
Сама реєстрація, відбувається в цьому ж файлі, у функції InitFont:
bool CUIXmlInit::InitFont(CUIXml &xml_doc, LPCSTR path, int index, u32 &color, CGameFont *&pFnt)
{
color = GetColor (xml_doc, path, index, 0xff);
LPCSTR font_name = xml_doc.ReadAttrib(path, index, "font", NULL);
if(!font_name)
{
pFnt = NULL;
return false;
}else
{
if(!xr_strcmp(font_name, GRAFFITI19_FONT_NAME))
{
pFnt = UI().Font().pFontGraffiti19Russian;
}
else if(!xr_strcmp(font_name, GRAFFITI22_FONT_NAME))
{
pFnt = UI().Font().pFontGraffiti22Russian;
}
else if(!xr_strcmp(font_name, GRAFFITI32_FONT_NAME))
{
pFnt = UI().Font().pFontGraffiti32Russian;
}
else if(!xr_strcmp(font_name, GRAFFITI50_FONT_NAME))
{
pFnt = UI().Font().pFontGraffiti50Russian;
}
else if(!xr_strcmp(font_name, "arial_14"))
{
pFnt = UI().Font().pFontArial14;
}
else if(!xr_strcmp(font_name, MEDIUM_FONT_NAME))
{
pFnt = UI().Font().pFontMedium;
}
else if(!xr_strcmp(font_name, SMALL_FONT_NAME))
{
pFnt = UI().Font().pFontStat;
}
else if(!xr_strcmp(font_name, LETTERICA16_FONT_NAME))
{
pFnt = UI().Font().pFontLetterica16Russian;
}
else if(!xr_strcmp(font_name, LETTERICA18_FONT_NAME))
{
pFnt = UI().Font().pFontLetterica18Russian;
}
else if(!xr_strcmp(font_name, LETTERICA25_FONT_NAME))
{
pFnt = UI().Font().pFontLetterica25;
}
else if(!xr_strcmp(font_name, DI_FONT_NAME))
{
pFnt = UI().Font().pFontDI;
}else
{
R_ASSERT3(0,"unknown font",font_name);
pFnt = NULL;
}
}
return true;
}
- arial_14 не використовує змінну, як інші шрифти (вилітає)
- є функція R_ASSERT:
R_ASSERT3(0,"unknown font",font_name);
pFnt = NULL;
Список шрифтів:
"arial_14"
"medium"
"small"
"graffiti19"
"graffiti22"
"graffiti32"
"graffiti50"
"letterica16"
"letterica18"
"letterica25"
"di"