void UI_DrawLoadPanel( qboolean forcerefresh, 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 ); bg_loadscreeninited = qtrue; } BG_PanelButtonsRender( loadpanelButtons ); if ( forcerefresh ) { //trap_UpdateScreen(); } 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; // 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 cdraw::trap_R_DrawStringExt(const char * text, int type, LPSTR font, float x, float y, float scalex, float scaley, float * colour, int style) { ( ( void (*)( const char * text, int type, int font, float x, float y, float scalex, float scaley, float * colour, int style ) )d_DrawStringExt )( text, type, trap_R_RegisterFont((char*)font, 3), x, y, scalex, scaley, colour, style ); }
/* ================= CG_Init Called after every level change or subsystem restart Will perform callbacks to make the loading info screen update. ================= */ void CG_Init( int serverMessageNum, int serverCommandSequence, int clientNum, int randomSeed ) { const char *s; // clear everything memset( &cgs, 0, sizeof( cgs ) ); memset( &cg, 0, sizeof( cg ) ); memset( cg_entities, 0, sizeof(cg_entities) ); srand( randomSeed ); cg.clientNum = clientNum; cgs.processedSnapshotNum = serverMessageNum; cgs.serverCommandSequence = serverCommandSequence; trap_R_RegisterFont( "facfont-20", 0, &cgs.media.facfont ); trap_R_RegisterFont( "verdana-14", 0, &cgs.media.verdana ); // load a few needed things before we do any screen updates // cgs.media.charsetShader = trap_R_RegisterShader( "gfx/2d/bigchars" ); cgs.media.whiteShader = trap_R_RegisterShader( "*white" ); // cgs.media.charsetProp = trap_R_RegisterShaderNoMip( "menu/art/font1_prop.tga" ); // cgs.media.charsetPropGlow = trap_R_RegisterShaderNoMip( "menu/art/font1_prop_glo.tga" ); // cgs.media.charsetPropB = trap_R_RegisterShaderNoMip( "menu/art/font2_prop.tga" ); cgs.media.blackShader = trap_R_RegisterShaderNoMip( "textures/mohmenu/black.tga" ); CG_RegisterCvars(); CG_InitConsoleCommands(); // get the rendering configuration from the client system trap_GetGlconfig( &cgs.glconfig ); cgs.screenXScale = cgs.glconfig.vidWidth / 640.0; cgs.screenYScale = cgs.glconfig.vidHeight / 480.0; // get the gamestate from the client system trap_GetGameState( &cgs.gameState ); // check version s = CG_ConfigString( CS_GAME_VERSION ); if ( strcmp( s, GAME_VERSION ) ) { CG_Error( "Client/Server game mismatch: %s/%s", GAME_VERSION, s ); } s = CG_ConfigString( CS_LEVEL_START_TIME ); cgs.levelStartTime = atoi( s ); CG_ParseServerinfo(); // load the new map CG_LoadingString( "collision map" ); trap_CM_LoadMap( cgs.mapname ); CG_LoadingString( "sounds" ); CG_RegisterSounds(); CG_LoadUbersound(); CG_LoadingString( "graphics" ); CG_RegisterGraphics(); CG_LoadingString( "clients" ); CG_RegisterClients(); // if low on memory, some clients will be deferred CG_InitLocalEntities(); CG_InitMarkPolys(); CG_InitEventSystem(); CG_InitBeams(); CG_InitRainEffect(); // remove the last loading update cg.infoScreenText[0] = 0; // Make sure we have update values (scores) CG_SetConfigValues(); CG_StartMusic(); CG_LoadingString( "" ); trap_S_ClearLoopingSounds( qtrue ); }