Сповіщення
Очистити все

Список шрифтів у грі (ПП)


NazarTmm
Ранг:
Досвідчений
Роль:
Модмейкер
Угруповання:
Бандити
Записи:
35
Приєднався:
9 місяців тому
Початок теми  

Детальна інформація:

Реєстрація шрифтів відбувається у файлі 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"

   
Цитата
Теги теми