Пример #1
0
/*
=================
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;
		}
	}
}
Пример #2
0
/*
=================
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;
	}
}
Пример #3
0
/*
=================
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();
}