From 844c29bf23709a1df6daf70e940b53269aaa09b1 Mon Sep 17 00:00:00 2001 From: Marco Hladik Date: Sun, 8 Aug 2021 13:54:05 +0200 Subject: [PATCH] Menu-FN: Off-load font definitions into external .font files, like cgame --- .../fonts/menu_header.font | 3 +++ .../base_scripts.pk3dir/fonts/menu_label.font | 3 +++ .../fonts/menu_label_bold.font | 3 +++ .../base_scripts.pk3dir/fonts/menu_main.font | 3 +++ src/menu-fn/bitmaps.h | 8 ++++--- src/menu-fn/colors.qc | 22 +++++++++++++++++++ src/menu-fn/entry.qc | 11 ++++------ src/menu-fn/includes.src | 2 ++ src/menu-fn/m_chatrooms.qc | 2 +- src/menu-fn/m_chatroomslist.qc | 2 +- src/menu-fn/m_creategame_inet.qc | 2 +- src/menu-fn/m_internetgames.qc | 2 +- src/menu-fn/m_main.qc | 6 +++-- src/menu-fn/w_mainbutton.qc | 8 +++---- 14 files changed, 57 insertions(+), 20 deletions(-) create mode 100644 platform/base_scripts.pk3dir/fonts/menu_header.font create mode 100644 platform/base_scripts.pk3dir/fonts/menu_label.font create mode 100644 platform/base_scripts.pk3dir/fonts/menu_label_bold.font create mode 100644 platform/base_scripts.pk3dir/fonts/menu_main.font diff --git a/platform/base_scripts.pk3dir/fonts/menu_header.font b/platform/base_scripts.pk3dir/fonts/menu_header.font new file mode 100644 index 00000000..d08cef83 --- /dev/null +++ b/platform/base_scripts.pk3dir/fonts/menu_header.font @@ -0,0 +1,3 @@ +name "label_p" +font "gfx/shell/arialbd.ttf" +size "16 21" diff --git a/platform/base_scripts.pk3dir/fonts/menu_label.font b/platform/base_scripts.pk3dir/fonts/menu_label.font new file mode 100644 index 00000000..cd65727b --- /dev/null +++ b/platform/base_scripts.pk3dir/fonts/menu_label.font @@ -0,0 +1,3 @@ +name "label" +font "gfx/shell/mssansserif.ttf" +size "10 12 14" diff --git a/platform/base_scripts.pk3dir/fonts/menu_label_bold.font b/platform/base_scripts.pk3dir/fonts/menu_label_bold.font new file mode 100644 index 00000000..a9ab1a1e --- /dev/null +++ b/platform/base_scripts.pk3dir/fonts/menu_label_bold.font @@ -0,0 +1,3 @@ +name "label_b" +font "gfx/shell/arialbd.ttf" +size "14 12" diff --git a/platform/base_scripts.pk3dir/fonts/menu_main.font b/platform/base_scripts.pk3dir/fonts/menu_main.font new file mode 100644 index 00000000..86b7745a --- /dev/null +++ b/platform/base_scripts.pk3dir/fonts/menu_main.font @@ -0,0 +1,3 @@ +name "label" +font "gfx/shell/arial.ttf" +size "14 11 12" diff --git a/src/menu-fn/bitmaps.h b/src/menu-fn/bitmaps.h index f4dc98a5..17a08233 100644 --- a/src/menu-fn/bitmaps.h +++ b/src/menu-fn/bitmaps.h @@ -14,7 +14,7 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -string g_bmp[76] = { +string g_bmp[77] = { "gfx/shell/btns_main", "gfx/shell/cb_checked", "gfx/shell/cb_disabled", @@ -90,7 +90,8 @@ string g_bmp[76] = { "gfx/shell/uparrowp", "gfx/shell/up", "gfx/shell/windows", - "gfx/shell/won_logo" + "gfx/shell/fragnet", + "gfx/shell/logo" }; enum @@ -170,5 +171,6 @@ enum UPARROWP, UP, WINDOWS, - WON_LOGO + FN_LOGO, + LOGO }; diff --git a/src/menu-fn/colors.qc b/src/menu-fn/colors.qc index e114c02a..3398a5f0 100644 --- a/src/menu-fn/colors.qc +++ b/src/menu-fn/colors.qc @@ -24,6 +24,11 @@ vector col_refresh_title; vector col_refresh_text; vector col_refresh_bg; +vector col_button_bg; /* 1,1,1 */ +vector col_button_select; /* 1,0,0 */ +vector col_button_click; /* 1,1,0 */ +vector col_button_disabled; /* 0.25, 0.25, 0.25 */ + string Colors_RGB8_to_HEX(vector color) { @@ -84,6 +89,11 @@ Colors_Init(void) col_refresh_title = [240,180,24] / 255; col_refresh_text = [255,255,255] / 255; col_refresh_bg = [56,56,56] / 255; + + col_button_bg = [1,1,1]; + col_button_select = [1,0,0]; + col_button_click = [1,1,0]; + col_button_disabled = [0.25, 0.25, 0.25]; fs_colors = fopen("gfx/shell/colors.lst", FILE_READ); @@ -132,6 +142,18 @@ Colors_Init(void) case "REFRESH_BG_COLOR": col_refresh_bg = coltmp; break; + case "BUTTON_BG_COLOR": + col_button_bg = coltmp; + break; + case "BUTTON_SELECT_COLOR": + col_button_select = coltmp; + break; + case "BUTTON_CLICK_COLOR": + col_button_click = coltmp; + break; + case "BUTTON_DISABLED_COLOR": + col_button_disabled = coltmp; + break; } } fclose(fs_colors); diff --git a/src/menu-fn/entry.qc b/src/menu-fn/entry.qc index 9d909a0a..eafc7618 100644 --- a/src/menu-fn/entry.qc +++ b/src/menu-fn/entry.qc @@ -119,22 +119,19 @@ m_init(void) registercommand("menu_musicstart"); font_console = loadfont("font", "", "12", -1); - font_label = loadfont("label", "gfx/shell/mssansserif.ttf", "10 12 14", -1); - font_arial = loadfont("label", "gfx/shell/arial.ttf", "14 11 12", -1); - font_label_b = loadfont("label_b", "gfx/shell/arialbd.ttf", "14 12", -1); - font_label_p = loadfont("label_p", "gfx/shell/arialbd.ttf", "16 21", -1); + font_label = Font_LoadFont("fonts/menu_label.font"); + font_arial = Font_LoadFont("fonts/menu_main.font"); + font_label_b = Font_LoadFont("fonts/menu_label_bold.font"); + font_label_p = Font_LoadFont("fonts/menu_header.font"); localcmd("plug_load ffmpeg\n"); - shaderforname("logo_avi", "{\n{\nvideomap av:media/logo.avi\n}\n}"); - for (int i = 0; i < g_bmp.length; i++) { precache_pic(g_bmp[i]); } g_btnsize = drawgetimagesize(g_bmp[BTNS_MAIN]); g_btnofs = 26 / g_btnsize[1]; - precache_pic("gfx/shell/fragnet"); games_init(); main_init(); diff --git a/src/menu-fn/includes.src b/src/menu-fn/includes.src index c285e346..f9fbeee1 100644 --- a/src/menu-fn/includes.src +++ b/src/menu-fn/includes.src @@ -67,5 +67,7 @@ m_main.qc music.qc menu.qc background.qc + +../client/font.qc entry.qc #endlist diff --git a/src/menu-fn/m_chatrooms.qc b/src/menu-fn/m_chatrooms.qc index 43b9855b..d3e34075 100644 --- a/src/menu-fn/m_chatrooms.qc +++ b/src/menu-fn/m_chatrooms.qc @@ -400,7 +400,7 @@ menu_chatrooms_draw(void) static float timeout; Widget_Draw(fn_chatrooms); - drawpic([g_menuofs[0]+550,g_menuofs[1]+10], "gfx/shell/fragnet",[80,80], [1,1,1], 1.0f, 0); + drawpic([g_menuofs[0]+550,g_menuofs[1]+10], g_bmp[FN_LOGO],[80,80], [1,1,1], 1.0f, 0); if (!g_ircroom.m_iStatus) { cr_makeconnection(); diff --git a/src/menu-fn/m_chatroomslist.qc b/src/menu-fn/m_chatroomslist.qc index 3b9359f9..c158e40f 100644 --- a/src/menu-fn/m_chatroomslist.qc +++ b/src/menu-fn/m_chatroomslist.qc @@ -133,7 +133,7 @@ menu_chatroomslist_draw(void) { Widget_Draw(fn_chatroomslist); Header_Draw(HEAD_ROOMS); - drawpic([g_menuofs[0]+550,g_menuofs[1]+10], "gfx/shell/fragnet",[80,80], [1,1,1], 1.0f, 0); + drawpic([g_menuofs[0]+550,g_menuofs[1]+10], g_bmp[FN_LOGO],[80,80], [1,1,1], 1.0f, 0); if (crl_iLoading) { cr_dgConnect.Draw(); diff --git a/src/menu-fn/m_creategame_inet.qc b/src/menu-fn/m_creategame_inet.qc index 324449d6..50227c9a 100644 --- a/src/menu-fn/m_creategame_inet.qc +++ b/src/menu-fn/m_creategame_inet.qc @@ -91,7 +91,7 @@ void menu_creategameinet_draw(void) { Header_Draw(HEAD_CREATEGAME); - drawpic([g_menuofs[0]+550,g_menuofs[1]+10], "gfx/shell/fragnet",[80,80], [1,1,1], 1.0f, 0); + drawpic([g_menuofs[0]+550,g_menuofs[1]+10], g_bmp[FN_LOGO],[80,80], [1,1,1], 1.0f, 0); WLabel_Static(216, 143, m_reslbl[IDS_CREATESERVER_NAME], 14, 14, [1,1,1], 1.0f, 0, font_arial); diff --git a/src/menu-fn/m_internetgames.qc b/src/menu-fn/m_internetgames.qc index d06da352..c6ea067f 100644 --- a/src/menu-fn/m_internetgames.qc +++ b/src/menu-fn/m_internetgames.qc @@ -286,7 +286,7 @@ menu_internetgames_draw(void) Widget_Draw(fn_inet); resorthostcache(); Header_Draw(HEAD_INETGAMES); - drawpic([g_menuofs[0]+550,g_menuofs[1]+10], "gfx/shell/fragnet",[80,80], [1,1,1], 1.0f, 0); + drawpic([g_menuofs[0]+550,g_menuofs[1]+10], g_bmp[FN_LOGO],[80,80], [1,1,1], 1.0f, 0); /* Labels */ WLabel_Static(252, 128, m_reslbl[IDS_SERVER_GAMESERVER], 10, 10, [1,1,1], diff --git a/src/menu-fn/m_main.qc b/src/menu-fn/m_main.qc index 31f783de..6e60604d 100644 --- a/src/menu-fn/m_main.qc +++ b/src/menu-fn/m_main.qc @@ -375,10 +375,12 @@ menu_main_draw(void) } else { /* Don't even attempt to display the logo.avi otherwise */ if (games[gameinfo_current].steambg == 0 && checkcommand("ffmpeg_videobitrate")) { - drawpic([g_menuofs[0],g_menuofs[1] + 70], "logo_avi", + drawpic([g_menuofs[0],g_menuofs[1] + 70], g_bmp[LOGO], g_logosize, [1,1,1], 1.0f); - g_logosize = gecko_get_texture_extent("logo_avi"); + g_logosize = gecko_get_texture_extent(g_bmp[LOGO]); } + drawpic([g_menuofs[0],g_menuofs[1] + 48], g_bmp[LOGO], + [512, 128], [1,1,1], 1.0f); Widget_Draw(fn_main); WLabel_Static(235, 216, m_reslbl[IDS_MAIN_NEWGAMEHELP], HELPTXT_SIZE, HELPTXT_SIZE, diff --git a/src/menu-fn/w_mainbutton.qc b/src/menu-fn/w_mainbutton.qc index 06fa9216..a6bcfe39 100644 --- a/src/menu-fn/w_mainbutton.qc +++ b/src/menu-fn/w_mainbutton.qc @@ -222,16 +222,16 @@ CMainButton::Draw(void) } else { drawfont = font_label_p; if (!m_execute) { - drawstring([g_menuofs[0]+m_x,g_menuofs[1]+m_y], g_mainbtn_text[m_bitmap], [16,16], [0.25,0.25,0.25], 1.0, 0); + drawstring([g_menuofs[0]+m_x,g_menuofs[1]+m_y], g_mainbtn_text[m_bitmap], [16,16], col_button_disabled, 1.0, 0); return; } if (m_click) { - drawstring([g_menuofs[0]+m_x,g_menuofs[1]+m_y], g_mainbtn_text[m_bitmap], [16,16], [1,1,0], 1.0, 0); + drawstring([g_menuofs[0]+m_x,g_menuofs[1]+m_y], g_mainbtn_text[m_bitmap], [16,16], col_button_click, 1.0, 0); return; } - drawstring([g_menuofs[0]+m_x,g_menuofs[1]+m_y], g_mainbtn_text[m_bitmap], [16,16], [1,1,1], 1.0, 0); - drawstring([g_menuofs[0]+m_x,g_menuofs[1]+m_y], g_mainbtn_text[m_bitmap], [16,16], [1,0,0], 1 - m_alpha, 0); + drawstring([g_menuofs[0]+m_x,g_menuofs[1]+m_y], g_mainbtn_text[m_bitmap], [16,16], col_button_bg, 1.0, 0); + drawstring([g_menuofs[0]+m_x,g_menuofs[1]+m_y], g_mainbtn_text[m_bitmap], [16,16], col_button_select, 1 - m_alpha, 0); } if (m_hover) {