void UI_DrawLoadPanel(qboolean ownerdraw, qboolean uihack) { static qboolean inside = qfalse; // to avoid a flickering screen on widescreens, we erase it before drawing onto it.. if (((float)(DC->glconfig.vidWidth) / DC->glconfig.vidHeight) != RATIO43) { float xoffset = Cui_WideXoffset() * DC->xscale; trap_R_DrawStretchPic(0, 0, xoffset, DC->glconfig.vidHeight, 0, 0, 1, 1, DC->registerShaderNoMip("gfx/2d/backtile")); trap_R_DrawStretchPic(DC->glconfig.vidWidth - xoffset, 0, xoffset, DC->glconfig.vidHeight, 0, 0, 1, 1, DC->registerShaderNoMip("gfx/2d/backtile")); } if (inside) { if (!uihack && trap_Cvar_VariableValue("ui_connecting")) { trap_Cvar_Set("ui_connecting", "0"); } return; } connect_ownerdraw = ownerdraw; inside = qtrue; if (!bg_loadscreeninited) { trap_R_RegisterFont("ariblk", 27, &bg_loadscreenfont1); trap_R_RegisterFont("courbd", 30, &bg_loadscreenfont2); BG_PanelButtonsSetup(loadpanelButtons); C_PanelButtonsSetup(loadpanelButtons, Cui_WideXoffset()); // convert to possible widescreen coordinates.. bg_loadscreeninited = qtrue; } BG_PanelButtonsRender(loadpanelButtons); if (!uihack && trap_Cvar_VariableValue("ui_connecting")) { trap_Cvar_Set("ui_connecting", "0"); } inside = qfalse; }
void UI_DrawLoadPanel(qboolean ownerdraw, qboolean uihack) { static qboolean inside = qfalse; if (inside) { if (!uihack && trap_Cvar_VariableValue("ui_connecting")) { trap_Cvar_Set("ui_connecting", "0"); } return; } connect_ownerdraw = ownerdraw; inside = qtrue; if (!bg_loadscreeninited) { trap_R_RegisterFont("ariblk", 27, &bg_loadscreenfont1); trap_R_RegisterFont("courbd", 30, &bg_loadscreenfont2); BG_PanelButtonsSetup(loadpanelButtons); C_PanelButtonsSetup(loadpanelButtons, Cui_WideXoffset()); // convert to possible widescreen coordinates.. bg_loadscreeninited = qtrue; } BG_PanelButtonsRender(loadpanelButtons); if (!uihack && trap_Cvar_VariableValue("ui_connecting")) { trap_Cvar_Set("ui_connecting", "0"); } inside = qfalse; }
void CG_DrawConnectScreen(qboolean interactive, qboolean forcerefresh) { static qboolean inside = qfalse; char buffer[1024]; if (!DC) { return; } if (inside) { return; } inside = qtrue; if (!bg_loadscreeninited) { trap_Cvar_Set("ui_connecting", "0"); RegisterFont("ariblk", 27, &cgs.media.bg_loadscreenfont1); RegisterFont("courbd", 30, &cgs.media.bg_loadscreenfont2); bg_axispin = DC->registerShaderNoMip("gfx/loading/pin_axis"); bg_alliedpin = DC->registerShaderNoMip("gfx/loading/pin_allied"); bg_neutralpin = DC->registerShaderNoMip("gfx/loading/pin_neutral"); bg_pin = DC->registerShaderNoMip("gfx/loading/pin_shot"); bg_filter_bo = DC->registerShaderNoMip("ui/assets/filter_bots"); bg_filter_ff = DC->registerShaderNoMip("ui/assets/filter_ff"); bg_filter_hw = DC->registerShaderNoMip("ui/assets/filter_weap"); bg_filter_lv = DC->registerShaderNoMip("ui/assets/filter_lives"); bg_filter_al = DC->registerShaderNoMip("ui/assets/filter_antilag"); bg_filter_bt = DC->registerShaderNoMip("ui/assets/filter_balance"); bg_mappic = 0; BG_PanelButtonsSetup(loadpanelButtons); C_PanelButtonsSetup(loadpanelButtons, cgs.wideXoffset); bg_loadscreeninited = qtrue; } BG_PanelButtonsRender(loadpanelButtons); if (interactive) { DC->drawHandlePic(DC->cursorx, DC->cursory, 32, 32, DC->Assets.cursor); } DC->getConfigString(CS_SERVERINFO, buffer, sizeof(buffer)); if (*buffer) { const char *str; float x = 540.0f + cgs.wideXoffset; float y = 322; int i; qboolean enabled = qfalse; CG_Text_Paint_Centred_Ext(x, y, 0.22f, 0.22f, clr3, ("^1" LEGACY_MOD " ^0" ETLEGACY_VERSION), 0, 0, 0, &cgs.media.bg_loadscreenfont1); y = 340; str = Info_ValueForKey(buffer, "sv_hostname"); CG_Text_Paint_Centred_Ext(x, y, 0.2f, 0.2f, colorWhite, str && *str ? str : "ETHost", 0, 26, 0, &cgs.media.bg_loadscreenfont2); y += 14; for (i = 0; i < MAX_MOTDLINES; i++) { str = CG_ConfigString(CS_CUSTMOTD + i); if (!str || !*str) { break; } CG_Text_Paint_Centred_Ext(x, y, 0.2f, 0.2f, colorWhite, str, 0, 26, 0, &cgs.media.bg_loadscreenfont2); y += 10; } y = 417; str = Info_ValueForKey(buffer, "g_friendlyfire"); if (str && *str && atoi(str)) { x = 461 + cgs.wideXoffset; CG_DrawPic(x, y, 16, 16, bg_filter_ff); } if (atoi(Info_ValueForKey(buffer, "g_gametype")) != GT_WOLF_LMS) { str = Info_ValueForKey(buffer, "g_maxlives"); if (str && *str && atoi(str)) { enabled = qtrue; } if (!enabled) { str = Info_ValueForKey(buffer, "g_alliedmaxlives"); if (str && *str && atoi(str)) { enabled = qtrue; } } if (!enabled) { str = Info_ValueForKey(buffer, "g_axismaxlives"); if (str && *str && atoi(str)) { enabled = qtrue; } } } if (enabled) { x = 489 + cgs.wideXoffset; CG_DrawPic(x, y, 16, 16, bg_filter_lv); } str = Info_ValueForKey(buffer, "omnibot_playing"); if (str && *str && atoi(str)) { x = 518 + cgs.wideXoffset; CG_DrawPic(x, y, 16, 16, bg_filter_bo); } str = Info_ValueForKey(buffer, "g_heavyWeaponRestriction"); if (str && *str && atoi(str) != 100) { x = 546 + cgs.wideXoffset; CG_DrawPic(x, y, 16, 16, bg_filter_hw); } str = Info_ValueForKey(buffer, "g_antilag"); if (str && *str && atoi(str)) { x = 575 + cgs.wideXoffset; CG_DrawPic(x, y, 16, 16, bg_filter_al); } str = Info_ValueForKey(buffer, "g_balancedteams"); if (str && *str && atoi(str)) { x = 604 + cgs.wideXoffset; CG_DrawPic(x, y, 16, 16, bg_filter_bt); } } if (*cgs.rawmapname) { float x = 16 + cgs.wideXoffset + 1; if (!bg_mappic) { bg_mappic = DC->registerShaderNoMip(va("levelshots/%s", cgs.rawmapname)); if (!bg_mappic) { bg_mappic = DC->registerShaderNoMip("levelshots/unknownmap"); } } trap_R_SetColor(colorBlack); CG_DrawPic(x, 2 + 1, 192, 144, bg_mappic); trap_R_SetColor(NULL); x = 16 + cgs.wideXoffset; CG_DrawPic(x, 2, 192, 144, bg_mappic); x = 16 + cgs.wideXoffset + 80; CG_DrawPic(x, 2 + 6, 20, 20, bg_pin); } if (forcerefresh) { DC->updateScreen(); } inside = qfalse; }