/* ================= GraphicsOptions_GetResolutions ================= */ static void GraphicsOptions_GetResolutions( void ) { Q_strncpyz(resbuf, CG_Cvar_VariableString("r_availableModes"), sizeof(resbuf)); if(*resbuf) { char* s = resbuf; unsigned int i = 0; static char displayRes[64]; // Add display resolution video mode Com_sprintf(displayRes, sizeof(displayRes), "Auto (%dx%d)", cgs.glconfig.displayWidth, cgs.glconfig.displayHeight); detectedResolutions[i++] = displayRes; // Use display resolution in "Very High Quality" template s_ivo_templates[0].mode = -2; while( s && i < ARRAY_LEN(detectedResolutions)-1 ) { detectedResolutions[i++] = s; s = strchr(s, ' '); if( s ) *s++ = '\0'; } detectedResolutions[ i ] = NULL; if( i > 0 ) { resolutions = detectedResolutions; resolutionsDetected = qtrue; } } }
/* ================= GraphicsOptions_SetMenuItems ================= */ static void GraphicsOptions_SetMenuItems( void ) { s_graphicsoptions.mode.curvalue = GraphicsOptions_FindDetectedResolution( trap_Cvar_VariableValue( "r_mode" ) ); if ( s_graphicsoptions.mode.curvalue < 0 ) { if( resolutionsDetected ) { int i; char buf[MAX_STRING_CHARS]; trap_Cvar_VariableStringBuffer("r_customwidth", buf, sizeof(buf)-2); buf[strlen(buf)+1] = 0; buf[strlen(buf)] = 'x'; trap_Cvar_VariableStringBuffer("r_customheight", buf+strlen(buf), sizeof(buf)-strlen(buf)); for(i = 0; detectedResolutions[i]; ++i) { if(!Q_stricmp(buf, detectedResolutions[i])) { s_graphicsoptions.mode.curvalue = i; break; } } if ( s_graphicsoptions.mode.curvalue < 0 ) s_graphicsoptions.mode.curvalue = 0; } else { s_graphicsoptions.mode.curvalue = 3; } } s_graphicsoptions.ratio.curvalue = resToRatio[ s_graphicsoptions.mode.curvalue ]; s_graphicsoptions.fs.curvalue = trap_Cvar_VariableValue("r_fullscreen"); s_graphicsoptions.tq.curvalue = 3-trap_Cvar_VariableValue( "r_picmip"); if ( s_graphicsoptions.tq.curvalue < 0 ) { s_graphicsoptions.tq.curvalue = 0; } else if ( s_graphicsoptions.tq.curvalue > 3 ) { s_graphicsoptions.tq.curvalue = 3; } s_graphicsoptions.lighting.curvalue = trap_Cvar_VariableValue( "r_vertexLight" ) != 0; s_graphicsoptions.flares.curvalue = trap_Cvar_VariableValue( "r_flares" ) != 0; switch ( ( int ) trap_Cvar_VariableValue( "r_texturebits" ) ) { default: case 0: s_graphicsoptions.texturebits.curvalue = 0; break; case 16: s_graphicsoptions.texturebits.curvalue = 1; break; case 32: s_graphicsoptions.texturebits.curvalue = 2; break; } if ( trap_Cvar_VariableIntegerValue( "r_ext_texture_filter_anisotropic" ) != 0 ) { switch ( ( int ) trap_Cvar_VariableValue( "r_ext_max_anisotropy" ) ) { default: case 2: s_graphicsoptions.filter.curvalue = 2; break; case 4: s_graphicsoptions.filter.curvalue = 3; break; case 8: s_graphicsoptions.filter.curvalue = 4; break; case 16: s_graphicsoptions.filter.curvalue = 5; break; } } else if ( !Q_stricmp( CG_Cvar_VariableString( "r_textureMode" ), "GL_LINEAR_MIPMAP_NEAREST" ) ) { s_graphicsoptions.filter.curvalue = 0; } else { s_graphicsoptions.filter.curvalue = 1; } if ( trap_Cvar_VariableValue( "r_lodBias" ) > 0 ) { if ( trap_Cvar_VariableValue( "r_subdivisions" ) >= 20 ) { s_graphicsoptions.geometry.curvalue = 0; } else { s_graphicsoptions.geometry.curvalue = 1; } } else if ( trap_Cvar_VariableValue( "r_lodBias" ) == 0 ) { s_graphicsoptions.geometry.curvalue = 2; } else { s_graphicsoptions.geometry.curvalue = 3; } switch ( trap_Cvar_VariableIntegerValue( "r_ext_multisample" ) ) { case 0: default: s_graphicsoptions.multisample.curvalue = 0; break; case 2: s_graphicsoptions.multisample.curvalue = 1; break; case 4: s_graphicsoptions.multisample.curvalue = 2; break; } }
/* ================= SpecifyLeague_MenuInit ================= */ void SpecifyLeague_MenuInit( void ) { int i; // zero set all our globals memset( &s_specifyleague, 0 ,sizeof(specifyleague_t) ); SpecifyLeague_Cache(); s_specifyleague.menu.wrapAround = qtrue; s_specifyleague.menu.fullscreen = qtrue; s_specifyleague.banner.generic.type = MTYPE_BTEXT; s_specifyleague.banner.generic.x = 320; s_specifyleague.banner.generic.y = 16; s_specifyleague.banner.string = "CHOOSE LEAGUE"; s_specifyleague.banner.color = color_white; s_specifyleague.banner.style = UI_CENTER; s_specifyleague.framel.generic.type = MTYPE_BITMAP; s_specifyleague.framel.generic.name = SPECIFYLEAGUE_FRAMEL; s_specifyleague.framel.generic.flags = QMF_INACTIVE; s_specifyleague.framel.generic.x = 0; s_specifyleague.framel.generic.y = 78; s_specifyleague.framel.width = 256; s_specifyleague.framel.height = 334; s_specifyleague.framer.generic.type = MTYPE_BITMAP; s_specifyleague.framer.generic.name = SPECIFYLEAGUE_FRAMER; s_specifyleague.framer.generic.flags = QMF_INACTIVE; s_specifyleague.framer.generic.x = 376; s_specifyleague.framer.generic.y = 76; s_specifyleague.framer.width = 256; s_specifyleague.framer.height = 334; s_specifyleague.grlogo.generic.type = MTYPE_BITMAP; s_specifyleague.grlogo.generic.name = GLOBALRANKINGS_LOGO; s_specifyleague.grlogo.generic.flags = QMF_INACTIVE; s_specifyleague.grlogo.generic.x = 0; s_specifyleague.grlogo.generic.y = 0; s_specifyleague.grlogo.width = 64; s_specifyleague.grlogo.height = 128; s_specifyleague.rankname.generic.type = MTYPE_FIELD; s_specifyleague.rankname.generic.name = "Player Name:"; s_specifyleague.rankname.generic.flags = QMF_PULSEIFFOCUS|QMF_SMALLFONT; s_specifyleague.rankname.generic.callback = SpecifyLeague_Event; s_specifyleague.rankname.generic.id = ID_SPECIFYLEAGUENAME; s_specifyleague.rankname.generic.x = 226; s_specifyleague.rankname.generic.y = 128; s_specifyleague.rankname.field.widthInChars = 32; s_specifyleague.rankname.field.maxchars = 80; s_specifyleague.list.generic.type = MTYPE_SCROLLLIST; s_specifyleague.list.generic.flags = QMF_HIGHLIGHT_IF_FOCUS; s_specifyleague.list.generic.id = ID_SPECIFYLEAGUELIST; s_specifyleague.list.generic.callback = SpecifyLeague_Event; s_specifyleague.list.generic.x = 160; s_specifyleague.list.generic.y = 200; s_specifyleague.list.width = MAX_LISTBOXWIDTH; s_specifyleague.list.height = 8; s_specifyleague.list.itemnames = (const char **)leaguename_items; s_specifyleague.list.numitems = 0; for( i = 0; i < MAX_LISTBOXITEMS; i++ ) { league_table[i].buff[0] = 0; league_table[i].leaguename[0] = 0; leaguename_items[i] = league_table[i].buff; } s_specifyleague.arrows.generic.type = MTYPE_BITMAP; s_specifyleague.arrows.generic.name = SPECIFYLEAGUE_ARROWS0; s_specifyleague.arrows.generic.flags = QMF_LEFT_JUSTIFY|QMF_INACTIVE; s_specifyleague.arrows.generic.callback = SpecifyLeague_Event; s_specifyleague.arrows.generic.x = 512; s_specifyleague.arrows.generic.y = 240-64+16; s_specifyleague.arrows.width = 64; s_specifyleague.arrows.height = 128; s_specifyleague.up.generic.type = MTYPE_BITMAP; s_specifyleague.up.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS|QMF_MOUSEONLY; s_specifyleague.up.generic.callback = SpecifyLeague_Event; s_specifyleague.up.generic.id = ID_SPECIFYLEAGUEUP; s_specifyleague.up.generic.x = 512; s_specifyleague.up.generic.y = 240-64+16; s_specifyleague.up.width = 64; s_specifyleague.up.height = 64; s_specifyleague.up.focuspic = SPECIFYLEAGUE_UP; s_specifyleague.down.generic.type = MTYPE_BITMAP; s_specifyleague.down.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS|QMF_MOUSEONLY; s_specifyleague.down.generic.callback = SpecifyLeague_Event; s_specifyleague.down.generic.id = ID_SPECIFYLEAGUEDOWN; s_specifyleague.down.generic.x = 512; s_specifyleague.down.generic.y = 240+16; s_specifyleague.down.width = 64; s_specifyleague.down.height = 64; s_specifyleague.down.focuspic = SPECIFYLEAGUE_DOWN; s_specifyleague.back.generic.type = MTYPE_BITMAP; s_specifyleague.back.generic.name = SPECIFYLEAGUE_BACK0; s_specifyleague.back.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS; s_specifyleague.back.generic.callback = SpecifyLeague_Event; s_specifyleague.back.generic.id = ID_SPECIFYLEAGUEBACK; s_specifyleague.back.generic.x = 0; s_specifyleague.back.generic.y = 480-64; s_specifyleague.back.width = 128; s_specifyleague.back.height = 64; s_specifyleague.back.focuspic = SPECIFYLEAGUE_BACK1; Menu_AddItem( &s_specifyleague.menu, &s_specifyleague.banner ); Menu_AddItem( &s_specifyleague.menu, &s_specifyleague.framel ); Menu_AddItem( &s_specifyleague.menu, &s_specifyleague.framer ); Menu_AddItem( &s_specifyleague.menu, &s_specifyleague.grlogo ); Menu_AddItem( &s_specifyleague.menu, &s_specifyleague.rankname ); Menu_AddItem( &s_specifyleague.menu, &s_specifyleague.list ); Menu_AddItem( &s_specifyleague.menu, &s_specifyleague.arrows ); Menu_AddItem( &s_specifyleague.menu, &s_specifyleague.up ); Menu_AddItem( &s_specifyleague.menu, &s_specifyleague.down ); Menu_AddItem( &s_specifyleague.menu, &s_specifyleague.back ); // initialize any menu variables Q_strncpyz( s_specifyleague.rankname.field.buffer, CG_Cvar_VariableString("name"), sizeof(s_specifyleague.rankname.field.buffer) ); Q_strncpyz( playername, CG_Cvar_VariableString("name"), sizeof(playername) ); SpecifyLeague_GetList(); }