/*** * * Copyright (c) 2016-2019 Marco 'eukara' Hladik. All rights reserved. * * See the file LICENSE attached with the sources for usage details. * ****/ void m_init(void) { vector g_btnsize; 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", -1 ); font_label_b = loadfont( "label_b", "gfx/shell/arialbd.ttf", "14 12 16", -1 ); 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]; Strings_Init(); Colors_Init(); main_init(); } void m_shutdown(void) { } void m_draw(vector screensize) { static float oldtime; frametime = time - oldtime; if (!g_active) { return; } if ((screensize[0] != g_vidsize[0]) || (screensize[1] != g_vidsize[1])) { g_vidsize[0] = screensize[0]; g_vidsize[1] = screensize[1]; g_menuofs[0] = (g_vidsize[0] / 2) - 320; g_menuofs[1] = (g_vidsize[1] / 2) - 240; } if (clientstate() == 2) { drawfill([0,0], screensize, [0,0,0], 0.75f); } else { drawfill([0,0], screensize, [0,0,0], 1.0f); drawpic([g_menuofs[0],g_menuofs[1]], g_bmp[SPLASH], [640,480], [1,1,1], 1.0f); } main_draw(); oldtime = time; } /*void m_drawloading(vector screensize, float opaque) { }*/ float Menu_InputEvent(float evtype, float scanx, float chary, float devid) { switch (evtype) { case IE_KEYDOWN: if (chary == K_ESCAPE) { if (clientstate() == 2) { m_toggle(0); } } break; case IE_MOUSEABS: g_mousepos[0] = scanx; g_mousepos[1] = chary; break; case IE_MOUSEDELTA: g_mousepos[0] += scanx; g_mousepos[1] += chary; break; } main_input(evtype, scanx, chary, devid); return TRUE; } void m_display(void) { g_active = TRUE; setkeydest(KEY_MENU); setmousetarget(TARGET_MENU); setcursormode(TRUE, "gfx/cursor"); } /* ================= m_hide ================= */ void m_hide(void) { g_active = FALSE; setkeydest(KEY_GAME); setmousetarget(TARGET_CLIENT); setcursormode(FALSE); } /* ================= m_toggle ================= */ void m_toggle(float fMode) { if (fMode == FALSE) { m_hide(); } else { m_display(); } } float m_consolecommand(string cmd) { tokenize(cmd); switch (argv(0)) { case "togglemenu": m_display(); break; default: return FALSE; } return TRUE; }