Merge pull request #48 from petr666/feature/menu-update

More menu updates
This commit is contained in:
Simon 2022-04-05 00:02:29 +01:00 committed by GitHub
commit 239a348c68
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 156 additions and 1674 deletions

View File

@ -2594,7 +2594,6 @@ Q3UIOBJ_ = \
$(B)/$(BASEGAME)/ui/ui_team.o \
$(B)/$(BASEGAME)/ui/ui_teamorders.o \
$(B)/$(BASEGAME)/ui/ui_video.o \
$(B)/$(BASEGAME)/ui/ui_vr.o \
$(B)/$(BASEGAME)/ui/ui_controls3.o \
$(B)/$(BASEGAME)/ui/ui_comfort.o \
\

View File

@ -405,12 +405,6 @@ extern void PlayerSettings_Cache( void );
extern void UI_PreferencesMenu( void );
extern void Preferences_Cache( void );
//
// ui_vr.c
//
extern void UI_VRMenu( void );
extern void VR_Cache( void );
//
// ui_controls3.c
//

View File

@ -41,22 +41,18 @@ GAME OPTIONS MENU
#define ID_CROSSHAIR 127
#define ID_SIMPLEITEMS 128
#define ID_HIGHQUALITYSKY 129
#define ID_EJECTINGBRASS 130
#define ID_WALLMARKS 131
#define ID_DYNAMICLIGHTS 132
#define ID_IDENTIFYTARGET 133
#define ID_SYNCEVERYFRAME 134
#define ID_FORCEMODEL 135
#define ID_DRAWTEAMOVERLAY 136
#define ID_ALLOWDOWNLOAD 137
#define ID_LASERSIGHT 138
#define ID_DRAWHUD 139
#define ID_HOLSTER2D 140
#define ID_GORE 141
#define ID_SHOWINHAND 142
#define ID_SELECTORWITHHUD 143
#define ID_BACK 144
#define ID_EJECTINGBRASS 129
#define ID_WALLMARKS 130
#define ID_IDENTIFYTARGET 131
#define ID_FORCEMODEL 132
#define ID_DRAWTEAMOVERLAY 133
#define ID_LASERSIGHT 134
#define ID_DRAWHUD 135
#define ID_HOLSTER2D 136
#define ID_GORE 137
#define ID_SHOWINHAND 138
#define ID_SELECTORWITHHUD 139
#define ID_BACK 140
#define NUM_CROSSHAIRS 10
#define NUM_GORE 4
@ -74,14 +70,10 @@ typedef struct {
menuradiobutton_s simpleitems;
menuradiobutton_s brass;
menuradiobutton_s wallmarks;
menuradiobutton_s dynamiclights;
menuradiobutton_s identifytarget;
menuradiobutton_s highqualitysky;
menuradiobutton_s synceveryframe;
menuradiobutton_s forcemodel;
menulist_s drawteamoverlay;
menulist_s drawhud;
menuradiobutton_s allowdownload;
menuradiobutton_s holster2d;
menulist_s gore;
menuradiobutton_s showinhand;
@ -95,18 +87,18 @@ static preferences_t s_preferences;
static const char *hud_names[] =
{
"off",
"floating",
"static (performance)",
"Off",
"Floating",
"Simple",
NULL
};
static const char *teamoverlay_names[] =
{
"off",
"upper right",
"lower right",
"lower left",
"Off",
"Upper Right",
"Lower Right",
"Lower Left",
NULL
};
@ -126,13 +118,9 @@ static void Preferences_SetMenuItems( void ) {
s_preferences.brass.curvalue = trap_Cvar_VariableValue( "cg_brassTime" ) != 0;
s_preferences.wallmarks.curvalue = trap_Cvar_VariableValue( "cg_marks" ) != 0;
s_preferences.identifytarget.curvalue = trap_Cvar_VariableValue( "cg_drawCrosshairNames" ) != 0;
// s_preferences.dynamiclights.curvalue = trap_Cvar_VariableValue( "r_dynamiclight" ) != 0;
s_preferences.highqualitysky.curvalue = trap_Cvar_VariableValue ( "r_fastsky" ) == 0;
// s_preferences.synceveryframe.curvalue = trap_Cvar_VariableValue( "r_finish" ) != 0;
s_preferences.forcemodel.curvalue = trap_Cvar_VariableValue( "cg_forcemodel" ) != 0;
s_preferences.drawteamoverlay.curvalue = Com_Clamp( 0, 3, trap_Cvar_VariableValue( "cg_drawTeamOverlay" ) );
s_preferences.drawhud.curvalue = trap_Cvar_VariableValue( "vr_hudDrawStatus" );
// s_preferences.allowdownload.curvalue = trap_Cvar_VariableValue( "cl_allowDownload" ) != 0;
s_preferences.holster2d.curvalue = trap_Cvar_VariableValue( "cg_weaponSelectorSimple2DIcons" ) != 0;
s_preferences.gore.curvalue = trap_Cvar_VariableValue( "vr_goreLevel" );
s_preferences.showinhand.curvalue = trap_Cvar_VariableValue( "vr_showItemInHand" ) != 0;
@ -154,10 +142,6 @@ static void Preferences_Event( void* ptr, int notification ) {
trap_Cvar_SetValue( "cg_simpleItems", s_preferences.simpleitems.curvalue );
break;
case ID_HIGHQUALITYSKY:
trap_Cvar_SetValue( "r_fastsky", !s_preferences.highqualitysky.curvalue );
break;
case ID_EJECTINGBRASS:
if ( s_preferences.brass.curvalue )
trap_Cvar_Reset( "cg_brassTime" );
@ -169,18 +153,10 @@ static void Preferences_Event( void* ptr, int notification ) {
trap_Cvar_SetValue( "cg_marks", s_preferences.wallmarks.curvalue );
break;
case ID_DYNAMICLIGHTS:
trap_Cvar_SetValue( "r_dynamiclight", s_preferences.dynamiclights.curvalue );
break;
case ID_IDENTIFYTARGET:
trap_Cvar_SetValue( "cg_drawCrosshairNames", s_preferences.identifytarget.curvalue );
break;
case ID_SYNCEVERYFRAME:
trap_Cvar_SetValue( "r_finish", s_preferences.synceveryframe.curvalue );
break;
case ID_FORCEMODEL:
trap_Cvar_SetValue( "cg_forcemodel", s_preferences.forcemodel.curvalue );
break;
@ -189,11 +165,6 @@ static void Preferences_Event( void* ptr, int notification ) {
trap_Cvar_SetValue( "cg_drawTeamOverlay", s_preferences.drawteamoverlay.curvalue );
break;
case ID_ALLOWDOWNLOAD:
trap_Cvar_SetValue( "cl_allowDownload", s_preferences.allowdownload.curvalue );
trap_Cvar_SetValue( "sv_allowDownload", s_preferences.allowdownload.curvalue );
break;
case ID_LASERSIGHT:
trap_Cvar_SetValue( "vr_lasersight", s_preferences.lasersight.curvalue);
break;
@ -330,7 +301,7 @@ static void Preferences_MenuInit( void ) {
s_preferences.framer.width = 256;
s_preferences.framer.height = 334;
y = 92;
y = 110;
s_preferences.crosshair.generic.type = MTYPE_SPINCONTROL;
s_preferences.crosshair.generic.flags = QMF_PULSEIFFOCUS|QMF_SMALLFONT|QMF_NODEFAULTINIT|QMF_OWNERDRAW;
s_preferences.crosshair.generic.x = PREFERENCES_X_POS;
@ -399,15 +370,6 @@ static void Preferences_MenuInit( void ) {
s_preferences.brass.generic.x = PREFERENCES_X_POS;
s_preferences.brass.generic.y = y;
// y += BIGCHAR_HEIGHT+2;
// s_preferences.dynamiclights.generic.type = MTYPE_RADIOBUTTON;
// s_preferences.dynamiclights.generic.name = "Dynamic Lights:";
// s_preferences.dynamiclights.generic.flags = QMF_PULSEIFFOCUS|QMF_SMALLFONT;
// s_preferences.dynamiclights.generic.callback = Preferences_Event;
// s_preferences.dynamiclights.generic.id = ID_DYNAMICLIGHTS;
// s_preferences.dynamiclights.generic.x = PREFERENCES_X_POS;
// s_preferences.dynamiclights.generic.y = y;
y += BIGCHAR_HEIGHT+2;
s_preferences.identifytarget.generic.type = MTYPE_RADIOBUTTON;
s_preferences.identifytarget.generic.name = "Identify Target:";
@ -417,24 +379,6 @@ static void Preferences_MenuInit( void ) {
s_preferences.identifytarget.generic.x = PREFERENCES_X_POS;
s_preferences.identifytarget.generic.y = y;
y += BIGCHAR_HEIGHT+2;
s_preferences.highqualitysky.generic.type = MTYPE_RADIOBUTTON;
s_preferences.highqualitysky.generic.name = "High Quality Sky:";
s_preferences.highqualitysky.generic.flags = QMF_PULSEIFFOCUS|QMF_SMALLFONT;
s_preferences.highqualitysky.generic.callback = Preferences_Event;
s_preferences.highqualitysky.generic.id = ID_HIGHQUALITYSKY;
s_preferences.highqualitysky.generic.x = PREFERENCES_X_POS;
s_preferences.highqualitysky.generic.y = y;
// y += BIGCHAR_HEIGHT+2;
// s_preferences.synceveryframe.generic.type = MTYPE_RADIOBUTTON;
// s_preferences.synceveryframe.generic.name = "Sync Every Frame:";
// s_preferences.synceveryframe.generic.flags = QMF_PULSEIFFOCUS|QMF_SMALLFONT;
// s_preferences.synceveryframe.generic.callback = Preferences_Event;
// s_preferences.synceveryframe.generic.id = ID_SYNCEVERYFRAME;
// s_preferences.synceveryframe.generic.x = PREFERENCES_X_POS;
// s_preferences.synceveryframe.generic.y = y;
y += BIGCHAR_HEIGHT+2;
s_preferences.forcemodel.generic.type = MTYPE_RADIOBUTTON;
s_preferences.forcemodel.generic.name = "Force Player Models:";
@ -473,15 +417,6 @@ static void Preferences_MenuInit( void ) {
s_preferences.selectorwithhud.generic.x = PREFERENCES_X_POS;
s_preferences.selectorwithhud.generic.y = y;
// y += BIGCHAR_HEIGHT+2;
// s_preferences.allowdownload.generic.type = MTYPE_RADIOBUTTON;
// s_preferences.allowdownload.generic.name = "Automatic Downloading:";
// s_preferences.allowdownload.generic.flags = QMF_PULSEIFFOCUS|QMF_SMALLFONT;
// s_preferences.allowdownload.generic.callback = Preferences_Event;
// s_preferences.allowdownload.generic.id = ID_ALLOWDOWNLOAD;
// s_preferences.allowdownload.generic.x = PREFERENCES_X_POS;
// s_preferences.allowdownload.generic.y = y;
y += BIGCHAR_HEIGHT+16;
s_preferences.gore.generic.type = MTYPE_SPINCONTROL;
s_preferences.gore.generic.flags = QMF_PULSEIFFOCUS|QMF_SMALLFONT;
@ -513,15 +448,11 @@ static void Preferences_MenuInit( void ) {
Menu_AddItem( &s_preferences.menu, &s_preferences.simpleitems );
Menu_AddItem( &s_preferences.menu, &s_preferences.wallmarks );
Menu_AddItem( &s_preferences.menu, &s_preferences.brass );
// Menu_AddItem( &s_preferences.menu, &s_preferences.dynamiclights );
Menu_AddItem( &s_preferences.menu, &s_preferences.identifytarget );
Menu_AddItem( &s_preferences.menu, &s_preferences.highqualitysky );
// Menu_AddItem( &s_preferences.menu, &s_preferences.synceveryframe );
Menu_AddItem( &s_preferences.menu, &s_preferences.forcemodel );
Menu_AddItem( &s_preferences.menu, &s_preferences.drawteamoverlay );
Menu_AddItem( &s_preferences.menu, &s_preferences.drawhud );
Menu_AddItem( &s_preferences.menu, &s_preferences.holster2d );
// Menu_AddItem( &s_preferences.menu, &s_preferences.allowdownload );
Menu_AddItem( &s_preferences.menu, &s_preferences.gore );
Menu_AddItem( &s_preferences.menu, &s_preferences.showinhand );
Menu_AddItem( &s_preferences.menu, &s_preferences.selectorwithhud );

View File

@ -44,12 +44,11 @@ SETUP MENU
#define ID_COMFORT 12
#define ID_GAME 13
#define ID_SYSTEMCONFIG 14
#define ID_VR 15
#define ID_CDKEY 16
#define ID_LOAD 17
#define ID_SAVE 18
#define ID_DEFAULTS 19
#define ID_BACK 20
#define ID_CDKEY 15
#define ID_LOAD 16
#define ID_SAVE 17
#define ID_DEFAULTS 18
#define ID_BACK 19
typedef struct {
@ -63,7 +62,6 @@ typedef struct {
menutext_s comfort;
menutext_s game;
menutext_s setupsystem;
// menutext_s vr;
// menutext_s cdkey;
// menutext_s load;
// menutext_s save;
@ -131,10 +129,6 @@ static void UI_SetupMenu_Event( void *ptr, int event ) {
UI_GraphicsOptionsMenu();
break;
// case ID_VR:
// UI_VRMenu();
// break;
// case ID_CDKEY:
// UI_CDKeyMenu();
// break;

View File

@ -239,21 +239,16 @@ GRAPHICS OPTIONS MENU
#define GRAPHICSOPTIONS_ACCEPT1 "menu/art/accept_1"
#define ID_BACK2 101
#define ID_FULLSCREEN 102
#define ID_LIST 103
#define ID_MODE 104
#define ID_DRIVERINFO 105
#define ID_GRAPHICS 106
#define ID_DISPLAY 107
#define ID_SOUND 108
#define ID_NETWORK 109
#define ID_RATIO 110
#define ID_REFRESHRATE 111
#define ID_DYNAMICLIGHTS 112
#define ID_RAILGUN 113
#define ID_SHADOWS 114
#define ID_PLAYERSHADOW 115
#define ID_GAMMA 116
#define ID_DRIVERINFO 102
#define ID_GRAPHICS 103
#define ID_SOUND 104
#define ID_NETWORK 105
#define ID_REFRESHRATE 106
#define ID_RAILGUN 107
#define ID_SHADOWS 108
#define ID_PLAYERSHADOW 109
#define ID_GAMMA 110
#define ID_HIGHQUALITYSKY 111
#define NUM_REFRESHRATE 4
#define NUM_SHADOWS 3
@ -271,25 +266,16 @@ typedef struct {
menutext_s sound;
menutext_s network;
menulist_s list;
menulist_s ratio;
menulist_s mode;
menulist_s driver;
menuslider_s tq;
menulist_s fs;
menulist_s lighting;
menulist_s allow_extensions;
menulist_s texturebits;
menulist_s colordepth;
menulist_s geometry;
menulist_s filter;
menutext_s driverinfo;
menulist_s refreshrate;
menuradiobutton_s dynamiclights;
menulist_s railgun;
menulist_s shadows;
menulist_s playershadow;
menuslider_s gamma;
menuradiobutton_s highqualitysky;
menubitmap_s apply;
menubitmap_s back;
@ -297,193 +283,20 @@ typedef struct {
typedef struct
{
int mode;
qboolean fullscreen;
int tq;
int lighting;
int colordepth;
int texturebits;
int geometry;
int filter;
int driver;
qboolean extensions;
int refreshrate;
qboolean dynamiclights;
int railgun;
int shadows;
int playershadow;
float gamma;
int highqualitysky;
} InitialVideoOptions_s;
static InitialVideoOptions_s s_ivo;
static graphicsoptions_t s_graphicsoptions;
static InitialVideoOptions_s s_ivo_templates[] =
{
{
6, qtrue, 3, 0, 2, 2, 2, 1, 0, qtrue
},
{
4, qtrue, 2, 0, 2, 2, 1, 1, 0, qtrue // JDC: this was tq 3
},
{
3, qtrue, 2, 0, 0, 0, 1, 0, 0, qtrue
},
{
2, qtrue, 1, 0, 1, 0, 0, 0, 0, qtrue
},
{
2, qtrue, 1, 1, 1, 0, 0, 0, 0, qtrue
},
{
3, qtrue, 1, 0, 0, 0, 1, 0, 0, qtrue
}
};
#define NUM_IVO_TEMPLATES ( ARRAY_LEN( s_ivo_templates ) )
static const char *builtinResolutions[ ] =
{
"320x240",
"400x300",
"512x384",
"640x480",
"800x600",
"960x720",
"1024x768",
"1152x864",
"1280x1024",
"1600x1200",
"2048x1536",
"856x480",
NULL
};
static const char *knownRatios[ ][2] =
{
{ "1.25:1", "5:4" },
{ "1.33:1", "4:3" },
{ "1.50:1", "3:2" },
{ "1.56:1", "14:9" },
{ "1.60:1", "16:10" },
{ "1.67:1", "5:3" },
{ "1.78:1", "16:9" },
{ NULL , NULL }
};
#define MAX_RESOLUTIONS 32
static const char* ratios[ MAX_RESOLUTIONS ];
static char ratioBuf[ MAX_RESOLUTIONS ][ 8 ];
static int ratioToRes[ MAX_RESOLUTIONS ];
static int resToRatio[ MAX_RESOLUTIONS ];
static char resbuf[ MAX_STRING_CHARS ];
static const char* detectedResolutions[ MAX_RESOLUTIONS ];
static char currentResolution[ 20 ];
static const char** resolutions = builtinResolutions;
static qboolean resolutionsDetected = qfalse;
/*
=================
GraphicsOptions_FindBuiltinResolution
=================
*/
// static int GraphicsOptions_FindBuiltinResolution( int mode )
// {
// int i;
//
// if( !resolutionsDetected )
// return mode;
//
// if( mode < 0 )
// return -1;
//
// for( i = 0; builtinResolutions[ i ]; i++ )
// {
// if( !Q_stricmp( builtinResolutions[ i ], detectedResolutions[ mode ] ) )
// return i;
// }
//
// return -1;
// }
/*
=================
GraphicsOptions_FindDetectedResolution
=================
*/
// static int GraphicsOptions_FindDetectedResolution( int mode )
// {
// int i;
//
// if( !resolutionsDetected )
// return mode;
//
// if( mode < 0 )
// return -1;
//
// for( i = 0; detectedResolutions[ i ]; i++ )
// {
// if( !Q_stricmp( builtinResolutions[ mode ], detectedResolutions[ i ] ) )
// return i;
// }
//
// return -1;
// }
/*
=================
GraphicsOptions_GetAspectRatios
=================
*/
// static void GraphicsOptions_GetAspectRatios( void )
// {
// int i, r;
//
// // build ratio list from resolutions
// for( r = 0; resolutions[r]; r++ )
// {
// int w, h;
// char *x;
// char str[ sizeof(ratioBuf[0]) ];
//
// // calculate resolution's aspect ratio
// x = strchr( resolutions[r], 'x' ) + 1;
// Q_strncpyz( str, resolutions[r], x-resolutions[r] );
// w = atoi( str );
// h = atoi( x );
// Com_sprintf( str, sizeof(str), "%.2f:1", (float)w / (float)h );
//
// // rename common ratios ("1.33:1" -> "4:3")
// for( i = 0; knownRatios[i][0]; i++ ) {
// if( !Q_stricmp( str, knownRatios[i][0] ) ) {
// Q_strncpyz( str, knownRatios[i][1], sizeof( str ) );
// break;
// }
// }
//
// // add ratio to list if it is new
// // establish res/ratio relationship
// for( i = 0; ratioBuf[i][0]; i++ )
// {
// if( !Q_stricmp( str, ratioBuf[i] ) )
// break;
// }
// if( !ratioBuf[i][0] )
// {
// Q_strncpyz( ratioBuf[i], str, sizeof(ratioBuf[i]) );
// ratioToRes[i] = r;
// }
//
// ratios[r] = ratioBuf[r];
// resToRatio[r] = i;
// }
//
// ratios[r] = NULL;
// }
/*
=================
GraphicsOptions_GetInitialVideo
@ -491,105 +304,17 @@ GraphicsOptions_GetInitialVideo
*/
static void GraphicsOptions_GetInitialVideo( void )
{
// s_ivo.colordepth = s_graphicsoptions.colordepth.curvalue;
// s_ivo.driver = s_graphicsoptions.driver.curvalue;
// s_ivo.mode = s_graphicsoptions.mode.curvalue;
// s_ivo.fullscreen = s_graphicsoptions.fs.curvalue;
// s_ivo.extensions = s_graphicsoptions.allow_extensions.curvalue;
s_ivo.tq = s_graphicsoptions.tq.curvalue;
s_ivo.lighting = s_graphicsoptions.lighting.curvalue;
s_ivo.geometry = s_graphicsoptions.geometry.curvalue;
// s_ivo.filter = s_graphicsoptions.filter.curvalue;
// s_ivo.texturebits = s_graphicsoptions.texturebits.curvalue;
s_ivo.refreshrate = s_graphicsoptions.refreshrate.curvalue;
s_ivo.dynamiclights = s_graphicsoptions.dynamiclights.curvalue;
s_ivo.railgun = s_graphicsoptions.railgun.curvalue;
s_ivo.shadows = s_graphicsoptions.refreshrate.curvalue;
s_ivo.playershadow = s_graphicsoptions.playershadow.curvalue;
s_ivo.gamma = s_graphicsoptions.gamma.curvalue;
s_ivo.highqualitysky = s_graphicsoptions.highqualitysky.curvalue;
}
/*
=================
GraphicsOptions_GetResolutions
=================
*/
// static void GraphicsOptions_GetResolutions( void )
// {
// trap_Cvar_VariableStringBuffer("r_availableModes", resbuf, sizeof(resbuf));
// if(*resbuf)
// {
// char* s = resbuf;
// unsigned int i = 0;
// while( s && i < ARRAY_LEN(detectedResolutions)-1 )
// {
// detectedResolutions[i++] = s;
// s = strchr(s, ' ');
// if( s )
// *s++ = '\0';
// }
// detectedResolutions[ i ] = NULL;
//
// // add custom resolution if not in mode list
// if ( i < ARRAY_LEN(detectedResolutions)-1 )
// {
// Com_sprintf( currentResolution, sizeof ( currentResolution ), "%dx%d", uis.glconfig.vidWidth, uis.glconfig.vidHeight );
//
// for( i = 0; detectedResolutions[ i ]; i++ )
// {
// if ( strcmp( detectedResolutions[ i ], currentResolution ) == 0 )
// break;
// }
//
// if ( detectedResolutions[ i ] == NULL )
// {
// detectedResolutions[ i++ ] = currentResolution;
// detectedResolutions[ i ] = NULL;
// }
// }
//
// resolutions = detectedResolutions;
// resolutionsDetected = qtrue;
// }
// }
/*
=================
GraphicsOptions_CheckConfig
=================
*/
// static void GraphicsOptions_CheckConfig( void )
// {
// int i;
//
// for ( i = 0; i < NUM_IVO_TEMPLATES-1; i++ )
// {
// if ( s_ivo_templates[i].colordepth != s_graphicsoptions.colordepth.curvalue )
// continue;
// if ( s_ivo_templates[i].driver != s_graphicsoptions.driver.curvalue )
// continue;
// if ( GraphicsOptions_FindDetectedResolution(s_ivo_templates[i].mode) != s_graphicsoptions.mode.curvalue )
// continue;
// if ( s_ivo_templates[i].fullscreen != s_graphicsoptions.fs.curvalue )
// continue;
// if ( s_ivo_templates[i].tq != s_graphicsoptions.tq.curvalue )
// continue;
// if ( s_ivo_templates[i].lighting != s_graphicsoptions.lighting.curvalue )
// continue;
// if ( s_ivo_templates[i].geometry != s_graphicsoptions.geometry.curvalue )
// continue;
// if ( s_ivo_templates[i].filter != s_graphicsoptions.filter.curvalue )
// continue;
// if ( s_ivo_templates[i].texturebits != s_graphicsoptions.texturebits.curvalue )
// continue;
// s_graphicsoptions.list.curvalue = i;
// return;
// }
//
// // return 'Custom' ivo template
// s_graphicsoptions.list.curvalue = NUM_IVO_TEMPLATES - 1;
// }
/*
=================
GraphicsOptions_UpdateMenuItems
@ -597,49 +322,8 @@ GraphicsOptions_UpdateMenuItems
*/
static void GraphicsOptions_UpdateMenuItems( void )
{
// if ( s_graphicsoptions.driver.curvalue == 1 )
// {
// s_graphicsoptions.fs.curvalue = 1;
// s_graphicsoptions.fs.generic.flags |= QMF_GRAYED;
// s_graphicsoptions.colordepth.curvalue = 1;
// }
// else
// {
// s_graphicsoptions.fs.generic.flags &= ~QMF_GRAYED;
// }
// if ( s_graphicsoptions.fs.curvalue == 0 || s_graphicsoptions.driver.curvalue == 1 )
// {
// s_graphicsoptions.colordepth.curvalue = 0;
// s_graphicsoptions.colordepth.generic.flags |= QMF_GRAYED;
// }
// else
// {
// s_graphicsoptions.colordepth.generic.flags &= ~QMF_GRAYED;
// }
// if ( s_graphicsoptions.allow_extensions.curvalue == 0 )
// {
// if ( s_graphicsoptions.texturebits.curvalue == 0 )
// {
// s_graphicsoptions.texturebits.curvalue = 1;
// }
// }
s_graphicsoptions.apply.generic.flags |= QMF_HIDDEN|QMF_INACTIVE;
// if ( s_ivo.mode != s_graphicsoptions.mode.curvalue )
// {
// s_graphicsoptions.apply.generic.flags &= ~(QMF_HIDDEN|QMF_INACTIVE);
// }
// if ( s_ivo.fullscreen != s_graphicsoptions.fs.curvalue )
// {
// s_graphicsoptions.apply.generic.flags &= ~(QMF_HIDDEN|QMF_INACTIVE);
// }
// if ( s_ivo.extensions != s_graphicsoptions.allow_extensions.curvalue )
// {
// s_graphicsoptions.apply.generic.flags &= ~(QMF_HIDDEN|QMF_INACTIVE);
// }
if ( s_ivo.tq != s_graphicsoptions.tq.curvalue )
{
s_graphicsoptions.apply.generic.flags &= ~(QMF_HIDDEN|QMF_INACTIVE);
@ -648,32 +332,14 @@ static void GraphicsOptions_UpdateMenuItems( void )
{
s_graphicsoptions.apply.generic.flags &= ~(QMF_HIDDEN|QMF_INACTIVE);
}
// if ( s_ivo.colordepth != s_graphicsoptions.colordepth.curvalue )
// {
// s_graphicsoptions.apply.generic.flags &= ~(QMF_HIDDEN|QMF_INACTIVE);
// }
// if ( s_ivo.driver != s_graphicsoptions.driver.curvalue )
// {
// s_graphicsoptions.apply.generic.flags &= ~(QMF_HIDDEN|QMF_INACTIVE);
// }
// if ( s_ivo.texturebits != s_graphicsoptions.texturebits.curvalue )
// {
// s_graphicsoptions.apply.generic.flags &= ~(QMF_HIDDEN|QMF_INACTIVE);
// }
if ( s_ivo.geometry != s_graphicsoptions.geometry.curvalue )
{
s_graphicsoptions.apply.generic.flags &= ~(QMF_HIDDEN|QMF_INACTIVE);
}
// if ( s_ivo.filter != s_graphicsoptions.filter.curvalue )
// {
// s_graphicsoptions.apply.generic.flags &= ~(QMF_HIDDEN|QMF_INACTIVE);
// }
if ( s_ivo.gamma != s_graphicsoptions.gamma.curvalue )
{
s_graphicsoptions.apply.generic.flags &= ~(QMF_HIDDEN|QMF_INACTIVE);
}
// GraphicsOptions_CheckConfig();
}
/*
@ -686,68 +352,7 @@ static void GraphicsOptions_ApplyChanges( void *unused, int notification )
if (notification != QM_ACTIVATED)
return;
switch ( s_graphicsoptions.texturebits.curvalue )
{
case 0:
trap_Cvar_SetValue( "r_texturebits", 0 );
break;
case 1:
trap_Cvar_SetValue( "r_texturebits", 16 );
break;
case 2:
trap_Cvar_SetValue( "r_texturebits", 32 );
break;
}
trap_Cvar_SetValue( "r_picmip", 3 - s_graphicsoptions.tq.curvalue );
// trap_Cvar_SetValue( "r_allowExtensions", s_graphicsoptions.allow_extensions.curvalue );
// if( resolutionsDetected )
// {
// // search for builtin mode that matches the detected mode
// int mode;
// if ( s_graphicsoptions.mode.curvalue == -1
// || s_graphicsoptions.mode.curvalue >= ARRAY_LEN( detectedResolutions ) )
// s_graphicsoptions.mode.curvalue = 0;
//
// mode = GraphicsOptions_FindBuiltinResolution( s_graphicsoptions.mode.curvalue );
// if( mode == -1 )
// {
// char w[ 16 ], h[ 16 ];
// Q_strncpyz( w, detectedResolutions[ s_graphicsoptions.mode.curvalue ], sizeof( w ) );
// *strchr( w, 'x' ) = 0;
// Q_strncpyz( h,
// strchr( detectedResolutions[ s_graphicsoptions.mode.curvalue ], 'x' ) + 1, sizeof( h ) );
// trap_Cvar_Set( "r_customwidth", w );
// trap_Cvar_Set( "r_customheight", h );
// }
//
// trap_Cvar_SetValue( "r_mode", mode );
// }
// else
// trap_Cvar_SetValue( "r_mode", s_graphicsoptions.mode.curvalue );
// trap_Cvar_SetValue( "r_fullscreen", s_graphicsoptions.fs.curvalue );
switch ( s_graphicsoptions.colordepth.curvalue )
{
case 0:
trap_Cvar_SetValue( "r_colorbits", 0 );
trap_Cvar_SetValue( "r_depthbits", 0 );
trap_Cvar_Reset( "r_stencilbits" );
break;
case 1:
trap_Cvar_SetValue( "r_colorbits", 16 );
trap_Cvar_SetValue( "r_depthbits", 16 );
trap_Cvar_SetValue( "r_stencilbits", 0 );
break;
case 2:
trap_Cvar_SetValue( "r_colorbits", 32 );
trap_Cvar_SetValue( "r_depthbits", 24 );
trap_Cvar_SetValue( "r_stencilbits", 8 );
break;
}
trap_Cvar_SetValue( "r_vertexLight", s_graphicsoptions.lighting.curvalue );
if ( s_graphicsoptions.geometry.curvalue == 2 )
@ -766,15 +371,6 @@ static void GraphicsOptions_ApplyChanges( void *unused, int notification )
trap_Cvar_SetValue( "r_subdivisions", 80 );
}
if ( s_graphicsoptions.filter.curvalue )
{
trap_Cvar_Set( "r_textureMode", "GL_LINEAR_MIPMAP_LINEAR" );
}
else
{
trap_Cvar_Set( "r_textureMode", "GL_LINEAR_MIPMAP_NEAREST" );
}
trap_Cmd_ExecuteText( EXEC_APPEND, "vid_restart\n" );
}
@ -784,30 +380,11 @@ GraphicsOptions_Event
=================
*/
static void GraphicsOptions_Event( void* ptr, int event ) {
InitialVideoOptions_s *ivo;
if( event != QM_ACTIVATED ) {
return;
}
switch( ((menucommon_s*)ptr)->id ) {
case ID_RATIO:
s_graphicsoptions.mode.curvalue =
ratioToRes[ s_graphicsoptions.ratio.curvalue ];
// fall through to apply mode constraints
case ID_MODE:
// clamp 3dfx video modes
if ( s_graphicsoptions.driver.curvalue == 1 )
{
if ( s_graphicsoptions.mode.curvalue < 2 )
s_graphicsoptions.mode.curvalue = 2;
else if ( s_graphicsoptions.mode.curvalue > 6 )
s_graphicsoptions.mode.curvalue = 6;
}
s_graphicsoptions.ratio.curvalue =
resToRatio[ s_graphicsoptions.mode.curvalue ];
break;
case ID_REFRESHRATE: {
int refresh;
@ -829,10 +406,6 @@ static void GraphicsOptions_Event( void* ptr, int event ) {
}
break;
case ID_DYNAMICLIGHTS:
trap_Cvar_SetValue( "r_dynamiclight", s_graphicsoptions.dynamiclights.curvalue );
break;
case ID_RAILGUN:
trap_Cvar_SetValue( "cg_oldRail", s_graphicsoptions.railgun.curvalue );
break;
@ -875,21 +448,9 @@ static void GraphicsOptions_Event( void* ptr, int event ) {
trap_Cvar_SetValue( "r_gamma", s_graphicsoptions.gamma.curvalue );
break;
// case ID_LIST:
// ivo = &s_ivo_templates[s_graphicsoptions.list.curvalue];
//
// s_graphicsoptions.mode.curvalue = GraphicsOptions_FindDetectedResolution(ivo->mode);
// s_graphicsoptions.ratio.curvalue =
// resToRatio[ s_graphicsoptions.mode.curvalue ];
// s_graphicsoptions.tq.curvalue = ivo->tq;
// s_graphicsoptions.lighting.curvalue = ivo->lighting;
// s_graphicsoptions.colordepth.curvalue = ivo->colordepth;
// s_graphicsoptions.texturebits.curvalue = ivo->texturebits;
// s_graphicsoptions.geometry.curvalue = ivo->geometry;
// s_graphicsoptions.filter.curvalue = ivo->filter;
// s_graphicsoptions.fs.curvalue = ivo->fullscreen;
// s_graphicsoptions.refreshrate.curvalue = ivo->refreshrate;
// break;
case ID_HIGHQUALITYSKY:
trap_Cvar_SetValue( "r_fastsky", !s_graphicsoptions.highqualitysky.curvalue );
break;
case ID_DRIVERINFO:
UI_DriverInfo_Menu();
@ -902,11 +463,6 @@ static void GraphicsOptions_Event( void* ptr, int event ) {
case ID_GRAPHICS:
break;
// case ID_DISPLAY:
// UI_PopMenu();
// UI_DisplayOptionsMenu();
// break;
case ID_SOUND:
UI_PopMenu();
UI_SoundOptionsMenu();
@ -953,40 +509,6 @@ 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.allow_extensions.curvalue = trap_Cvar_VariableValue("r_allowExtensions");
s_graphicsoptions.tq.curvalue = 3-trap_Cvar_VariableValue( "r_picmip");
if ( s_graphicsoptions.tq.curvalue < 0 )
{
@ -997,30 +519,6 @@ static void GraphicsOptions_SetMenuItems( void )
s_graphicsoptions.tq.curvalue = 3;
}
s_graphicsoptions.lighting.curvalue = trap_Cvar_VariableValue( "r_vertexLight" ) != 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 ( !Q_stricmp( UI_Cvar_VariableString( "r_textureMode" ), "GL_LINEAR_MIPMAP_NEAREST" ) )
{
s_graphicsoptions.filter.curvalue = 0;
}
else
{
s_graphicsoptions.filter.curvalue = 1;
}
int lodbias = trap_Cvar_VariableValue( "r_lodBias" );
if (lodbias == -1) {
s_graphicsoptions.geometry.curvalue = 2;
@ -1030,29 +528,6 @@ static void GraphicsOptions_SetMenuItems( void )
s_graphicsoptions.geometry.curvalue = 0;
}
switch ( ( int ) trap_Cvar_VariableValue( "r_colorbits" ) )
{
default:
case 0:
s_graphicsoptions.colordepth.curvalue = 0;
break;
case 16:
s_graphicsoptions.colordepth.curvalue = 1;
break;
case 32:
s_graphicsoptions.colordepth.curvalue = 2;
break;
}
// if ( s_graphicsoptions.fs.curvalue == 0 )
// {
// s_graphicsoptions.colordepth.curvalue = 0;
//}
//if ( s_graphicsoptions.driver.curvalue == 1 )
//{
// s_graphicsoptions.colordepth.curvalue = 1;
// }
switch ( (int) trap_Cvar_VariableValue( "vr_refreshrate" ) )
{
case 60:
@ -1095,9 +570,10 @@ static void GraphicsOptions_SetMenuItems( void )
break;
}
s_graphicsoptions.dynamiclights.curvalue = trap_Cvar_VariableValue( "r_dynamiclight" ) != 0;
s_graphicsoptions.lighting.curvalue = trap_Cvar_VariableValue( "r_vertexLight" ) != 0;
s_graphicsoptions.railgun.curvalue = trap_Cvar_VariableValue( "cg_oldRail" );
s_graphicsoptions.gamma.curvalue = trap_Cvar_VariableValue( "r_gamma" );
s_graphicsoptions.highqualitysky.curvalue = trap_Cvar_VariableValue( "r_fastsky" ) == 0;
}
/*
@ -1107,53 +583,14 @@ GraphicsOptions_MenuInit
*/
void GraphicsOptions_MenuInit( void )
{
/* static const char *s_driver_names[] =
{
"Default",
"Voodoo",
NULL
};
*/
static const char *tq_names[] =
{
"Default",
"16 bit",
"32 bit",
NULL
};
static const char *s_graphics_options_names[] =
{
"Very High Quality",
"High Quality",
"Normal",
"Fast",
"Fastest",
"Custom",
NULL
};
static const char *lighting_names[] =
{
"Lightmap",
"Vertex",
"Lightmap (High)",
"Vertex (Low)",
NULL
};
static const char *colordepth_names[] =
{
"Default",
"16 bit",
"32 bit",
NULL
};
static const char *filter_names[] =
{
"Bilinear",
"Trilinear",
NULL
};
static const char *quality_names[] =
{
"Low",
@ -1161,13 +598,7 @@ void GraphicsOptions_MenuInit( void )
"High",
NULL
};
/* static const char *enabled_names[] =
{
"Off",
"On",
NULL
};
*/
static const char *s_refreshrate[] =
{
"60",
@ -1176,6 +607,7 @@ void GraphicsOptions_MenuInit( void )
"90",
NULL
};
static const char *s_shadows[] =
{
"None",
@ -1183,10 +615,11 @@ void GraphicsOptions_MenuInit( void )
"High",
NULL
};
static const char *s_railgun[] =
{
"High",
"Low",
"Q2 Style",
"Q3 Style",
NULL
};
@ -1195,9 +628,6 @@ void GraphicsOptions_MenuInit( void )
// zero set all our globals
memset( &s_graphicsoptions, 0 ,sizeof(graphicsoptions_t) );
//GraphicsOptions_GetResolutions();
//GraphicsOptions_GetAspectRatios();
GraphicsOptions_Cache();
s_graphicsoptions.menu.wrapAround = qtrue;
@ -1237,16 +667,6 @@ void GraphicsOptions_MenuInit( void )
s_graphicsoptions.graphics.style = UI_RIGHT;
s_graphicsoptions.graphics.color = color_red;
// s_graphicsoptions.display.generic.type = MTYPE_PTEXT;
// s_graphicsoptions.display.generic.flags = QMF_RIGHT_JUSTIFY|QMF_PULSEIFFOCUS;
// s_graphicsoptions.display.generic.id = ID_DISPLAY;
// s_graphicsoptions.display.generic.callback = GraphicsOptions_Event;
// s_graphicsoptions.display.generic.x = 216;
// s_graphicsoptions.display.generic.y = 240 - PROP_HEIGHT;
// s_graphicsoptions.display.string = "DISPLAY";
// s_graphicsoptions.display.style = UI_RIGHT;
// s_graphicsoptions.display.color = color_red;
s_graphicsoptions.sound.generic.type = MTYPE_PTEXT;
s_graphicsoptions.sound.generic.flags = QMF_RIGHT_JUSTIFY|QMF_PULSEIFFOCUS;
s_graphicsoptions.sound.generic.id = ID_SOUND;
@ -1268,54 +688,6 @@ void GraphicsOptions_MenuInit( void )
s_graphicsoptions.network.color = color_red;
y = 254 - 5 * (BIGCHAR_HEIGHT + 2);
// s_graphicsoptions.list.generic.type = MTYPE_SPINCONTROL;
// s_graphicsoptions.list.generic.name = "Graphics Settings:";
// s_graphicsoptions.list.generic.flags = QMF_PULSEIFFOCUS|QMF_SMALLFONT;
// s_graphicsoptions.list.generic.x = 400;
// s_graphicsoptions.list.generic.y = y;
// s_graphicsoptions.list.generic.callback = GraphicsOptions_Event;
// s_graphicsoptions.list.generic.id = ID_LIST;
// s_graphicsoptions.list.itemnames = s_graphics_options_names;
// y += 2 * ( BIGCHAR_HEIGHT + 2 );
// s_graphicsoptions.driver.generic.type = MTYPE_SPINCONTROL;
// s_graphicsoptions.driver.generic.name = "GL Driver:";
// s_graphicsoptions.driver.generic.flags = QMF_PULSEIFFOCUS|QMF_SMALLFONT;
// s_graphicsoptions.driver.generic.x = 400;
// s_graphicsoptions.driver.generic.y = y;
// s_graphicsoptions.driver.itemnames = s_driver_names;
// s_graphicsoptions.driver.curvalue = (uis.glconfig.driverType == GLDRV_VOODOO);
// y += BIGCHAR_HEIGHT+2;
// // references/modifies "r_allowExtensions"
// s_graphicsoptions.allow_extensions.generic.type = MTYPE_SPINCONTROL;
// s_graphicsoptions.allow_extensions.generic.name = "GL Extensions:";
// s_graphicsoptions.allow_extensions.generic.flags = QMF_PULSEIFFOCUS|QMF_SMALLFONT;
// s_graphicsoptions.allow_extensions.generic.x = 400;
// s_graphicsoptions.allow_extensions.generic.y = y;
// s_graphicsoptions.allow_extensions.itemnames = enabled_names;
// y += BIGCHAR_HEIGHT+2;
// s_graphicsoptions.ratio.generic.type = MTYPE_SPINCONTROL;
// s_graphicsoptions.ratio.generic.name = "Aspect Ratio:";
// s_graphicsoptions.ratio.generic.flags = QMF_PULSEIFFOCUS|QMF_SMALLFONT;
// s_graphicsoptions.ratio.generic.x = 400;
// s_graphicsoptions.ratio.generic.y = y;
// s_graphicsoptions.ratio.itemnames = ratios;
// s_graphicsoptions.ratio.generic.callback = GraphicsOptions_Event;
// s_graphicsoptions.ratio.generic.id = ID_RATIO;
// y += BIGCHAR_HEIGHT+2;
// // references/modifies "r_mode"
// s_graphicsoptions.mode.generic.type = MTYPE_SPINCONTROL;
// s_graphicsoptions.mode.generic.name = "Resolution:";
// s_graphicsoptions.mode.generic.flags = QMF_PULSEIFFOCUS|QMF_SMALLFONT;
// s_graphicsoptions.mode.generic.x = 400;
// s_graphicsoptions.mode.generic.y = y;
// s_graphicsoptions.mode.itemnames = resolutions;
// s_graphicsoptions.mode.generic.callback = GraphicsOptions_Event;
// s_graphicsoptions.mode.generic.id = ID_MODE;
// y += BIGCHAR_HEIGHT+2;
// references "vr_refreshrate"
s_graphicsoptions.refreshrate.generic.type = MTYPE_SPINCONTROL;
@ -1353,24 +725,6 @@ void GraphicsOptions_MenuInit( void )
s_graphicsoptions.railgun.numitems = NUM_RAILGUN;
y += BIGCHAR_HEIGHT+2;
// // references "r_colorbits"
// s_graphicsoptions.colordepth.generic.type = MTYPE_SPINCONTROL;
// s_graphicsoptions.colordepth.generic.name = "Color Depth:";
// s_graphicsoptions.colordepth.generic.flags = QMF_PULSEIFFOCUS|QMF_SMALLFONT;
// s_graphicsoptions.colordepth.generic.x = 400;
// s_graphicsoptions.colordepth.generic.y = y;
// s_graphicsoptions.colordepth.itemnames = colordepth_names;
// y += BIGCHAR_HEIGHT+2;
// // references/modifies "r_fullscreen"
// s_graphicsoptions.fs.generic.type = MTYPE_SPINCONTROL;
// s_graphicsoptions.fs.generic.name = "Fullscreen:";
// s_graphicsoptions.fs.generic.flags = QMF_PULSEIFFOCUS|QMF_SMALLFONT;
// s_graphicsoptions.fs.generic.x = 400;
// s_graphicsoptions.fs.generic.y = y;
// s_graphicsoptions.fs.itemnames = enabled_names;
// y += BIGCHAR_HEIGHT+2;
// references/modifies "r_vertexLight"
s_graphicsoptions.lighting.generic.type = MTYPE_SPINCONTROL;
s_graphicsoptions.lighting.generic.name = "Lighting:";
@ -1380,16 +734,6 @@ void GraphicsOptions_MenuInit( void )
s_graphicsoptions.lighting.itemnames = lighting_names;
y += BIGCHAR_HEIGHT+2;
// references/modifies "r_dynamiclight"
s_graphicsoptions.dynamiclights.generic.type = MTYPE_RADIOBUTTON;
s_graphicsoptions.dynamiclights.generic.name = "Dynamic Lights:";
s_graphicsoptions.dynamiclights.generic.flags = QMF_PULSEIFFOCUS|QMF_SMALLFONT;
s_graphicsoptions.dynamiclights.generic.x = 400;
s_graphicsoptions.dynamiclights.generic.y = y;
s_graphicsoptions.dynamiclights.generic.callback = GraphicsOptions_Event;
s_graphicsoptions.dynamiclights.generic.id = ID_DYNAMICLIGHTS;
y += BIGCHAR_HEIGHT+2;
// references "cg_shadows"
s_graphicsoptions.shadows.generic.type = MTYPE_SPINCONTROL;
s_graphicsoptions.shadows.generic.name = "Opponent Shadows:";
@ -1432,26 +776,18 @@ void GraphicsOptions_MenuInit( void )
s_graphicsoptions.tq.minvalue = 0;
s_graphicsoptions.tq.maxvalue = 3;
s_graphicsoptions.tq.generic.callback = GraphicsOptions_TQEvent;
y += BIGCHAR_HEIGHT+2;
// references/modifies "r_fastsky"
s_graphicsoptions.highqualitysky.generic.type = MTYPE_RADIOBUTTON;
s_graphicsoptions.highqualitysky.generic.name = "High Quality Sky:";
s_graphicsoptions.highqualitysky.generic.flags = QMF_PULSEIFFOCUS|QMF_SMALLFONT;
s_graphicsoptions.highqualitysky.generic.x = 400;
s_graphicsoptions.highqualitysky.generic.y = y;
s_graphicsoptions.highqualitysky.generic.callback = GraphicsOptions_Event;
s_graphicsoptions.highqualitysky.generic.id = ID_HIGHQUALITYSKY;
y += 2*BIGCHAR_HEIGHT;
// // references/modifies "r_textureBits"
// s_graphicsoptions.texturebits.generic.type = MTYPE_SPINCONTROL;
// s_graphicsoptions.texturebits.generic.name = "Texture Quality:";
// s_graphicsoptions.texturebits.generic.flags = QMF_PULSEIFFOCUS|QMF_SMALLFONT;
// s_graphicsoptions.texturebits.generic.x = 400;
// s_graphicsoptions.texturebits.generic.y = y;
// s_graphicsoptions.texturebits.itemnames = tq_names;
// y += BIGCHAR_HEIGHT+2;
// // references/modifies "r_textureMode"
// s_graphicsoptions.filter.generic.type = MTYPE_SPINCONTROL;
// s_graphicsoptions.filter.generic.name = "Texture Filter:";
// s_graphicsoptions.filter.generic.flags = QMF_PULSEIFFOCUS|QMF_SMALLFONT;
// s_graphicsoptions.filter.generic.x = 400;
// s_graphicsoptions.filter.generic.y = y;
// s_graphicsoptions.filter.itemnames = filter_names;
// y += 2*BIGCHAR_HEIGHT;
s_graphicsoptions.driverinfo.generic.type = MTYPE_PTEXT;
s_graphicsoptions.driverinfo.generic.flags = QMF_CENTER_JUSTIFY|QMF_PULSEIFFOCUS;
s_graphicsoptions.driverinfo.generic.callback = GraphicsOptions_Event;
@ -1488,28 +824,18 @@ void GraphicsOptions_MenuInit( void )
Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.framer );
Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.graphics );
// Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.display );
Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.sound );
Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.network );
// Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.list );
// Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.driver );
// Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.allow_extensions );
// Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.ratio );
// Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.mode );
Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.refreshrate );
Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.railgun );
Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.gamma );
// Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.colordepth );
// Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.fs );
Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.lighting );
Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.dynamiclights );
Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.shadows );
Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.playershadow );
Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.geometry );
Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.tq );
// Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.texturebits );
// Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.filter );
Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.highqualitysky );
Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.driverinfo );
Menu_AddItem( &s_graphicsoptions.menu, ( void * ) &s_graphicsoptions.back );
@ -1517,12 +843,6 @@ void GraphicsOptions_MenuInit( void )
GraphicsOptions_SetMenuItems();
GraphicsOptions_GetInitialVideo();
if ( uis.glconfig.driverType == GLDRV_ICD &&
uis.glconfig.hardwareType == GLHW_3DFX_2D3D )
{
s_graphicsoptions.driver.generic.flags |= QMF_HIDDEN|QMF_INACTIVE;
}
}

View File

@ -1,605 +0,0 @@
/*
===========================================================================
Copyright (C) 1999-2005 Id Software, Inc.
This file is part of Quake III Arena source code.
Quake III Arena source code is free software; you can redistribute it
and/or modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the License,
or (at your option) any later version.
Quake III Arena source code is distributed in the hope that it will be
useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Quake III Arena source code; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
===========================================================================
*/
//
/*
=======================================================================
VR OPTIONS MENU
=======================================================================
*/
#include "ui_local.h"
#define ART_FRAMEL "menu/art/frame2_l"
#define ART_FRAMER "menu/art/frame1_r"
#define ART_BACK0 "menu/art/back_0"
#define ART_BACK1 "menu/art/back_1"
#define VR_X_POS 360
#define ID_HUDDEPTH 127
#define ID_RIGHTHANDED 128
#define ID_AUTOSWITCH 129
#define ID_SNAPTURN 130
#define ID_DIRECTIONMODE 131
#define ID_REFRESHRATE 133
#define ID_WEAPONPITCH 134
#define ID_HEIGHTADJUST 135
#define ID_TWOHANDED 136
#define ID_SCOPE 137
#define ID_DRAWHUD 138
#define ID_ROLLHIT 139
#define ID_HUDYOFFSET 140
#define ID_SENDROLL 141
#define ID_LASERSIGHT 142
#define ID_GORE 143
#define ID_HAPTICINTENSITY 144
#define ID_HOLSTER2D 145
#define ID_BODYSCALE 146
#define ID_BACK 147
#define NUM_HUDDEPTH 6
#define NUM_DIRECTIONMODE 2
#define NUM_REFRESHRATE 4
#define NUM_GORE 4
typedef struct {
menuframework_s menu;
menutext_s banner;
menubitmap_s framel;
menubitmap_s framer;
menuradiobutton_s drawhud;
menulist_s huddepth;
menuradiobutton_s righthanded;
menuradiobutton_s autoswitch;
menulist_s snapturn;
menulist_s directionmode;
menulist_s refreshrate;
menuslider_s weaponpitch;
menuslider_s heightadjust;
menuradiobutton_s twohanded;
menuradiobutton_s scope;
menuradiobutton_s rollhit;
menuslider_s hudyoffset;
menuradiobutton_s sendroll;
menuradiobutton_s lasersight;
menuslider_s hapticintensity;
menuradiobutton_s holster2d;
menuslider_s bodyscale;
menulist_s gore;
menubitmap_s back;
} VR_t;
static VR_t s_VR;
static void VR_SetMenuItems( void ) {
s_VR.drawhud.curvalue = (int)trap_Cvar_VariableValue( "vr_hudDrawStatus" ) % 2;
s_VR.huddepth.curvalue = (int)trap_Cvar_VariableValue( "vr_hudDepth" ) % NUM_HUDDEPTH;
s_VR.righthanded.curvalue = trap_Cvar_VariableValue( "vr_righthanded" ) != 0;
s_VR.autoswitch.curvalue = trap_Cvar_VariableValue( "cg_autoswitch" ) != 0;
s_VR.snapturn.curvalue = (int)trap_Cvar_VariableValue( "vr_snapturn" ) / 45;
s_VR.directionmode.curvalue = (int)trap_Cvar_VariableValue( "vr_directionMode" ) % NUM_DIRECTIONMODE;
int refresh = (int)trap_Cvar_VariableValue( "vr_refreshrate" );
switch (refresh)
{
case 60:
s_VR.refreshrate.curvalue = 0;
break;
case 72:
s_VR.refreshrate.curvalue = 1;
break;
case 80:
s_VR.refreshrate.curvalue = 2;
break;
case 90:
s_VR.refreshrate.curvalue = 3;
break;
}
s_VR.weaponpitch.curvalue = trap_Cvar_VariableValue( "vr_weaponPitch" ) + 25;
s_VR.heightadjust.curvalue = trap_Cvar_VariableValue( "vr_heightAdjust" );
s_VR.twohanded.curvalue = trap_Cvar_VariableValue( "vr_twoHandedWeapons" ) != 0;
s_VR.scope.curvalue = trap_Cvar_VariableValue( "vr_weaponScope" ) != 0;
s_VR.rollhit.curvalue = trap_Cvar_VariableValue( "vr_rollWhenHit" ) != 0;
s_VR.hudyoffset.curvalue = trap_Cvar_VariableValue( "vr_hudYOffset" ) + 200;
s_VR.sendroll.curvalue = trap_Cvar_VariableValue( "vr_sendRollToServer" ) != 0;
s_VR.lasersight.curvalue = trap_Cvar_VariableValue( "vr_lasersight" ) != 0;
s_VR.hapticintensity.curvalue = trap_Cvar_VariableValue( "vr_hapticIntensity" );
s_VR.holster2d.curvalue = trap_Cvar_VariableValue( "cg_weaponSelectorSimple2DIcons" ) != 0;
s_VR.bodyscale.curvalue = trap_Cvar_VariableValue( "cg_firstPersonBodyScale" );
//GORE
{
int level = trap_Cvar_VariableValue( "com_blood" ) +
trap_Cvar_VariableValue( "cg_gibs" ) +
trap_Cvar_VariableValue( "cg_megagibs" );
s_VR.gore.curvalue = level % NUM_GORE;
}
}
static void VR_Event( void* ptr, int notification ) {
if( notification != QM_ACTIVATED ) {
return;
}
switch( ((menucommon_s*)ptr)->id ) {
case ID_HUDDEPTH:
trap_Cvar_SetValue( "vr_hudDepth", s_VR.huddepth.curvalue );
break;
case ID_RIGHTHANDED:
trap_Cvar_SetValue( "vr_righthanded", s_VR.righthanded.curvalue );
break;
case ID_AUTOSWITCH:
trap_Cvar_SetValue( "cg_autoswitch", s_VR.autoswitch.curvalue );
break;
case ID_SNAPTURN:
trap_Cvar_SetValue( "vr_snapturn", s_VR.snapturn.curvalue * 45 );
break;
case ID_DIRECTIONMODE:
trap_Cvar_SetValue( "vr_directionMode", s_VR.directionmode.curvalue );
break;
case ID_REFRESHRATE: {
int refresh;
switch (s_VR.refreshrate.curvalue) {
case 0:
refresh = 60;
break;
case 1:
refresh = 72;
break;
case 2:
refresh = 80;
break;
case 3:
refresh = 90;
break;
}
trap_Cvar_SetValue("vr_refreshrate", refresh);
}
break;
case ID_WEAPONPITCH:
trap_Cvar_SetValue( "vr_weaponPitch", s_VR.weaponpitch.curvalue - 25 );
break;
case ID_HEIGHTADJUST:
trap_Cvar_SetValue( "vr_heightAdjust", s_VR.heightadjust.curvalue );
break;
case ID_TWOHANDED:
trap_Cvar_SetValue( "vr_twoHandedWeapons", s_VR.twohanded.curvalue );
break;
case ID_SCOPE:
trap_Cvar_SetValue( "vr_weaponScope", s_VR.scope.curvalue );
break;
case ID_DRAWHUD:
trap_Cvar_SetValue( "vr_hudDrawStatus", s_VR.drawhud.curvalue );
break;
case ID_ROLLHIT:
trap_Cvar_SetValue( "vr_rollWhenHit", s_VR.rollhit.curvalue );
break;
case ID_HUDYOFFSET:
trap_Cvar_SetValue( "vr_hudYOffset", s_VR.hudyoffset.curvalue - 200);
break;
case ID_SENDROLL:
trap_Cvar_SetValue( "vr_sendRollToServer", s_VR.sendroll.curvalue);
break;
case ID_LASERSIGHT:
trap_Cvar_SetValue( "vr_lasersight", s_VR.lasersight.curvalue);
break;
case ID_HAPTICINTENSITY:
trap_Cvar_SetValue( "vr_hapticIntensity", s_VR.hapticintensity.curvalue);
break;
case ID_HOLSTER2D:
trap_Cvar_SetValue( "cg_weaponSelectorSimple2DIcons", s_VR.holster2d.curvalue);
break;
case ID_BODYSCALE:
trap_Cvar_SetValue( "cg_firstPersonBodyScale", s_VR.bodyscale.curvalue);
break;
case ID_GORE: {
switch ((int)s_VR.gore.curvalue) {
case 0:
trap_Cvar_SetValue( "com_blood", 0);
trap_Cvar_SetValue( "cg_gibs", 0);
trap_Cvar_SetValue( "cg_megagibs", 0);
break;
case 1:
trap_Cvar_SetValue( "com_blood", 1);
trap_Cvar_SetValue( "cg_gibs", 0);
trap_Cvar_SetValue( "cg_megagibs", 0);
break;
case 2:
trap_Cvar_SetValue( "com_blood", 1);
trap_Cvar_SetValue( "cg_gibs", 1);
trap_Cvar_SetValue( "cg_megagibs", 0);
break;
case 3:
trap_Cvar_SetValue( "com_blood", 1);
trap_Cvar_SetValue( "cg_gibs", 1);
trap_Cvar_SetValue( "cg_megagibs", 1);
break;
}
}
break;
case ID_BACK:
UI_PopMenu();
break;
}
}
static void VR_MenuInit( void ) {
int y;
static const char *s_hud_depths[] =
{
"Very Close",
"Close",
"Middle",
"Further",
"Far",
"Distant",
NULL
};
static const char *s_snapturn[] =
{
"Smooth Turning",
"45 Degrees",
"90 Degrees",
NULL
};
static const char *s_directionmode[] =
{
"HMD (Default)",
"Off-hand Controller",
NULL
};
static const char *s_refreshrate[] =
{
"60",
"72 (Default)",
"80",
"90",
NULL
};
static const char *s_gore[] =
{
"None",
"Blood Only",
"Blood & Gibs (Default)",
"Extra Gore (Performance Hit)",
NULL
};
memset( &s_VR, 0 ,sizeof(VR_t) );
VR_Cache();
s_VR.menu.wrapAround = qtrue;
s_VR.menu.fullscreen = qtrue;
s_VR.banner.generic.type = MTYPE_BTEXT;
s_VR.banner.generic.x = 320;
s_VR.banner.generic.y = 16;
s_VR.banner.string = "GAME OPTIONS";
s_VR.banner.color = color_white;
s_VR.banner.style = UI_CENTER;
s_VR.framel.generic.type = MTYPE_BITMAP;
s_VR.framel.generic.name = ART_FRAMEL;
s_VR.framel.generic.flags = QMF_INACTIVE;
s_VR.framel.generic.x = 0;
s_VR.framel.generic.y = 78;
s_VR.framel.width = 256;
s_VR.framel.height = 329;
s_VR.framer.generic.type = MTYPE_BITMAP;
s_VR.framer.generic.name = ART_FRAMER;
s_VR.framer.generic.flags = QMF_INACTIVE;
s_VR.framer.generic.x = 376;
s_VR.framer.generic.y = 76;
s_VR.framer.width = 256;
s_VR.framer.height = 334;
y = 84;
s_VR.drawhud.generic.type = MTYPE_RADIOBUTTON;
s_VR.drawhud.generic.name = "Draw HUD:";
s_VR.drawhud.generic.flags = QMF_PULSEIFFOCUS|QMF_SMALLFONT;
s_VR.drawhud.generic.callback = VR_Event;
s_VR.drawhud.generic.id = ID_DRAWHUD;
s_VR.drawhud.generic.x = VR_X_POS;
s_VR.drawhud.generic.y = y;
y += BIGCHAR_HEIGHT;
s_VR.huddepth.generic.type = MTYPE_SPINCONTROL;
s_VR.huddepth.generic.flags = QMF_PULSEIFFOCUS|QMF_SMALLFONT;
s_VR.huddepth.generic.x = VR_X_POS;
s_VR.huddepth.generic.y = y;
s_VR.huddepth.generic.name = "HUD Depth:";
s_VR.huddepth.generic.callback = VR_Event;
s_VR.huddepth.generic.id = ID_HUDDEPTH;
s_VR.huddepth.itemnames = s_hud_depths;
s_VR.huddepth.numitems = NUM_HUDDEPTH;
y += BIGCHAR_HEIGHT;
s_VR.righthanded.generic.type = MTYPE_RADIOBUTTON;
s_VR.righthanded.generic.name = "Right-Handed:";
s_VR.righthanded.generic.flags = QMF_PULSEIFFOCUS|QMF_SMALLFONT;
s_VR.righthanded.generic.callback = VR_Event;
s_VR.righthanded.generic.id = ID_RIGHTHANDED;
s_VR.righthanded.generic.x = VR_X_POS;
s_VR.righthanded.generic.y = y;
y += BIGCHAR_HEIGHT;
s_VR.autoswitch.generic.type = MTYPE_RADIOBUTTON;
s_VR.autoswitch.generic.flags = QMF_PULSEIFFOCUS|QMF_SMALLFONT;
s_VR.autoswitch.generic.name = "Autoswitch Weapons:";
s_VR.autoswitch.generic.id = ID_AUTOSWITCH;
s_VR.autoswitch.generic.callback = VR_Event;
s_VR.autoswitch.generic.x = VR_X_POS;
s_VR.autoswitch.generic.y = y;
y += BIGCHAR_HEIGHT;
s_VR.snapturn.generic.type = MTYPE_SPINCONTROL;
s_VR.snapturn.generic.flags = QMF_PULSEIFFOCUS|QMF_SMALLFONT;
s_VR.snapturn.generic.x = VR_X_POS;
s_VR.snapturn.generic.y = y;
s_VR.snapturn.generic.name = "Turning Mode:";
s_VR.snapturn.generic.callback = VR_Event;
s_VR.snapturn.generic.id = ID_SNAPTURN;
s_VR.snapturn.itemnames = s_snapturn;
s_VR.snapturn.numitems = 3;
y += BIGCHAR_HEIGHT;
s_VR.directionmode.generic.type = MTYPE_SPINCONTROL;
s_VR.directionmode.generic.flags = QMF_PULSEIFFOCUS|QMF_SMALLFONT;
s_VR.directionmode.generic.x = VR_X_POS;
s_VR.directionmode.generic.y = y;
s_VR.directionmode.generic.name = "Direction Mode:";
s_VR.directionmode.generic.callback = VR_Event;
s_VR.directionmode.generic.id = ID_DIRECTIONMODE;
s_VR.directionmode.itemnames = s_directionmode;
s_VR.directionmode.numitems = NUM_DIRECTIONMODE;
y += BIGCHAR_HEIGHT;
s_VR.refreshrate.generic.type = MTYPE_SPINCONTROL;
s_VR.refreshrate.generic.flags = QMF_PULSEIFFOCUS|QMF_SMALLFONT;
s_VR.refreshrate.generic.x = VR_X_POS;
s_VR.refreshrate.generic.y = y;
s_VR.refreshrate.generic.name = "Refresh Rate:";
s_VR.refreshrate.generic.callback = VR_Event;
s_VR.refreshrate.generic.id = ID_REFRESHRATE;
s_VR.refreshrate.itemnames = s_refreshrate;
s_VR.refreshrate.numitems = NUM_REFRESHRATE;
y += BIGCHAR_HEIGHT;
s_VR.weaponpitch.generic.type = MTYPE_SLIDER;
s_VR.weaponpitch.generic.x = VR_X_POS;
s_VR.weaponpitch.generic.y = y;
s_VR.weaponpitch.generic.flags = QMF_PULSEIFFOCUS|QMF_SMALLFONT;
s_VR.weaponpitch.generic.name = "Weapon Pitch:";
s_VR.weaponpitch.generic.id = ID_WEAPONPITCH;
s_VR.weaponpitch.generic.callback = VR_Event;
s_VR.weaponpitch.minvalue = 0;
s_VR.weaponpitch.maxvalue = 30;
y += BIGCHAR_HEIGHT;
s_VR.heightadjust.generic.type = MTYPE_SLIDER;
s_VR.heightadjust.generic.x = VR_X_POS;
s_VR.heightadjust.generic.y = y;
s_VR.heightadjust.generic.flags = QMF_PULSEIFFOCUS|QMF_SMALLFONT;
s_VR.heightadjust.generic.name = "Height Adjust:";
s_VR.heightadjust.generic.id = ID_HEIGHTADJUST;
s_VR.heightadjust.generic.callback = VR_Event;
s_VR.heightadjust.minvalue = 0.0f;
s_VR.heightadjust.maxvalue = 1.0f;
y += BIGCHAR_HEIGHT;
s_VR.twohanded.generic.type = MTYPE_RADIOBUTTON;
s_VR.twohanded.generic.name = "Two-Handed Weapons:";
s_VR.twohanded.generic.flags = QMF_PULSEIFFOCUS|QMF_SMALLFONT;
s_VR.twohanded.generic.callback = VR_Event;
s_VR.twohanded.generic.id = ID_TWOHANDED;
s_VR.twohanded.generic.x = VR_X_POS;
s_VR.twohanded.generic.y = y;
y += BIGCHAR_HEIGHT;
s_VR.scope.generic.type = MTYPE_RADIOBUTTON;
s_VR.scope.generic.name = "Railgun Scope:";
s_VR.scope.generic.flags = QMF_PULSEIFFOCUS|QMF_SMALLFONT;
s_VR.scope.generic.callback = VR_Event;
s_VR.scope.generic.id = ID_SCOPE;
s_VR.scope.generic.x = VR_X_POS;
s_VR.scope.generic.y = y;
y += BIGCHAR_HEIGHT;
s_VR.rollhit.generic.type = MTYPE_RADIOBUTTON;
s_VR.rollhit.generic.name = "Roll when hit:";
s_VR.rollhit.generic.flags = QMF_PULSEIFFOCUS|QMF_SMALLFONT;
s_VR.rollhit.generic.callback = VR_Event;
s_VR.rollhit.generic.id = ID_ROLLHIT;
s_VR.rollhit.generic.x = VR_X_POS;
s_VR.rollhit.generic.y = y;
y += BIGCHAR_HEIGHT;
s_VR.hudyoffset.generic.type = MTYPE_SLIDER;
s_VR.hudyoffset.generic.x = VR_X_POS;
s_VR.hudyoffset.generic.y = y;
s_VR.hudyoffset.generic.flags = QMF_PULSEIFFOCUS|QMF_SMALLFONT;
s_VR.hudyoffset.generic.name = "HUD Y Offset:";
s_VR.hudyoffset.generic.id = ID_HUDYOFFSET;
s_VR.hudyoffset.generic.callback = VR_Event;
s_VR.hudyoffset.minvalue = 0;
s_VR.hudyoffset.maxvalue = 400;
y += BIGCHAR_HEIGHT;
s_VR.sendroll.generic.type = MTYPE_RADIOBUTTON;
s_VR.sendroll.generic.name = "Send Roll Angle to Server:";
s_VR.sendroll.generic.flags = QMF_PULSEIFFOCUS|QMF_SMALLFONT;
s_VR.sendroll.generic.callback = VR_Event;
s_VR.sendroll.generic.id = ID_SENDROLL;
s_VR.sendroll.generic.x = VR_X_POS;
s_VR.sendroll.generic.y = y;
y += BIGCHAR_HEIGHT;
s_VR.lasersight.generic.type = MTYPE_RADIOBUTTON;
s_VR.lasersight.generic.name = "Laser Sight:";
s_VR.lasersight.generic.flags = QMF_PULSEIFFOCUS|QMF_SMALLFONT;
s_VR.lasersight.generic.callback = VR_Event;
s_VR.lasersight.generic.id = ID_LASERSIGHT;
s_VR.lasersight.generic.x = VR_X_POS;
s_VR.lasersight.generic.y = y;
y += BIGCHAR_HEIGHT;
s_VR.hapticintensity.generic.type = MTYPE_SLIDER;
s_VR.hapticintensity.generic.x = VR_X_POS;
s_VR.hapticintensity.generic.y = y;
s_VR.hapticintensity.generic.flags = QMF_PULSEIFFOCUS|QMF_SMALLFONT;
s_VR.hapticintensity.generic.name = "Haptic Intensity:";
s_VR.hapticintensity.generic.id = ID_HAPTICINTENSITY;
s_VR.hapticintensity.generic.callback = VR_Event;
s_VR.hapticintensity.minvalue = 0;
s_VR.hapticintensity.maxvalue = 1.0;
y += BIGCHAR_HEIGHT;
s_VR.holster2d.generic.type = MTYPE_RADIOBUTTON;
s_VR.holster2d.generic.name = "Simple Icons on Weapon Selector:";
s_VR.holster2d.generic.flags = QMF_PULSEIFFOCUS|QMF_SMALLFONT;
s_VR.holster2d.generic.callback = VR_Event;
s_VR.holster2d.generic.id = ID_HOLSTER2D;
s_VR.holster2d.generic.x = VR_X_POS;
s_VR.holster2d.generic.y = y;
y += BIGCHAR_HEIGHT;
s_VR.bodyscale.generic.type = MTYPE_SLIDER;
s_VR.bodyscale.generic.name = "1st-Person Body Scale:";
s_VR.bodyscale.generic.flags = QMF_PULSEIFFOCUS|QMF_SMALLFONT;
s_VR.bodyscale.generic.callback = VR_Event;
s_VR.bodyscale.generic.id = ID_BODYSCALE;
s_VR.bodyscale.generic.x = VR_X_POS;
s_VR.bodyscale.generic.y = y;
s_VR.bodyscale.minvalue = 0.0f;
s_VR.bodyscale.maxvalue = 1.0f;
y += BIGCHAR_HEIGHT + 10;
s_VR.gore.generic.type = MTYPE_SPINCONTROL;
s_VR.gore.generic.flags = QMF_PULSEIFFOCUS|QMF_SMALLFONT;
s_VR.gore.generic.x = VR_X_POS - 120;
s_VR.gore.generic.y = y;
s_VR.gore.generic.name = "Gore:";
s_VR.gore.generic.callback = VR_Event;
s_VR.gore.generic.id = ID_GORE;
s_VR.gore.itemnames = s_gore;
s_VR.gore.numitems = NUM_GORE;
s_VR.back.generic.type = MTYPE_BITMAP;
s_VR.back.generic.name = ART_BACK0;
s_VR.back.generic.flags = QMF_LEFT_JUSTIFY|QMF_PULSEIFFOCUS;
s_VR.back.generic.callback = VR_Event;
s_VR.back.generic.id = ID_BACK;
s_VR.back.generic.x = 0;
s_VR.back.generic.y = 480-64;
s_VR.back.width = 128;
s_VR.back.height = 64;
s_VR.back.focuspic = ART_BACK1;
Menu_AddItem( &s_VR.menu, &s_VR.banner );
Menu_AddItem( &s_VR.menu, &s_VR.framel );
Menu_AddItem( &s_VR.menu, &s_VR.framer );
Menu_AddItem( &s_VR.menu, &s_VR.huddepth );
Menu_AddItem( &s_VR.menu, &s_VR.righthanded );
Menu_AddItem( &s_VR.menu, &s_VR.autoswitch );
Menu_AddItem( &s_VR.menu, &s_VR.snapturn );
Menu_AddItem( &s_VR.menu, &s_VR.directionmode );
Menu_AddItem( &s_VR.menu, &s_VR.refreshrate );
Menu_AddItem( &s_VR.menu, &s_VR.weaponpitch );
Menu_AddItem( &s_VR.menu, &s_VR.heightadjust );
Menu_AddItem( &s_VR.menu, &s_VR.twohanded );
Menu_AddItem( &s_VR.menu, &s_VR.scope );
Menu_AddItem( &s_VR.menu, &s_VR.rollhit );
Menu_AddItem( &s_VR.menu, &s_VR.hudyoffset );
Menu_AddItem( &s_VR.menu, &s_VR.sendroll );
Menu_AddItem( &s_VR.menu, &s_VR.lasersight );
Menu_AddItem( &s_VR.menu, &s_VR.holster2d );
Menu_AddItem( &s_VR.menu, &s_VR.hapticintensity );
Menu_AddItem( &s_VR.menu, &s_VR.bodyscale );
Menu_AddItem( &s_VR.menu, &s_VR.gore );
Menu_AddItem( &s_VR.menu, &s_VR.back );
VR_SetMenuItems();
}
/*
===============
VR_Cache
===============
*/
void VR_Cache( void ) {
trap_R_RegisterShaderNoMip( ART_FRAMEL );
trap_R_RegisterShaderNoMip( ART_FRAMER );
trap_R_RegisterShaderNoMip( ART_BACK0 );
trap_R_RegisterShaderNoMip( ART_BACK1 );
}
/*
===============
UI_VRMenu
===============
*/
void UI_VRMenu( void ) {
VR_MenuInit();
UI_PushMenu( &s_VR.menu );
}

View File

@ -3262,6 +3262,15 @@ static void UI_Update(const char *name) {
trap_Cvar_SetValue( "cg_megagibs", 1);
break;
}
} else if (Q_stricmp(name, "vr_hudDrawStatus") == 0) {
switch (val) {
case 2:
trap_Cvar_SetValue("cg_draw3dIcons", 0);
break;
default:
trap_Cvar_SetValue("cg_draw3dIcons", 1);
break;
}
}
}

View File

@ -164,7 +164,7 @@ itemDef {
group grpOptions
text "Crosshair:"
ownerdraw UI_CROSSHAIR
rect 193 20 20 17
rect 193 32 20 17
textalign ITEM_ALIGN_RIGHT
textalignx 0
textaligny 17
@ -179,7 +179,7 @@ itemDef {
type ITEM_TYPE_YESNO
text "Laser Sight:"
cvar "vr_lasersight"
rect 50 37 200 20
rect 50 49 200 20
textalign ITEM_ALIGN_RIGHT
textalignx 143
textaligny 17
@ -193,7 +193,7 @@ itemDef {
type ITEM_TYPE_YESNO
text "Simple Items (World):"
cvar "cg_simpleItems"
rect 50 54 200 20
rect 50 66 200 20
textalign ITEM_ALIGN_RIGHT
textalignx 143
textaligny 17
@ -208,7 +208,7 @@ itemDef {
type ITEM_TYPE_YESNO
text "Simple Items (Weapon Wheel):"
cvar "cg_weaponSelectorSimple2DIcons"
rect 50 71 200 20
rect 50 83 200 20
textalign ITEM_ALIGN_RIGHT
textalignx 143
textaligny 17
@ -223,7 +223,7 @@ itemDef {
type ITEM_TYPE_YESNO
text "Show Item In Hand:"
cvar "vr_showItemInHand"
rect 50 88 200 20
rect 50 100 200 20
textalign ITEM_ALIGN_RIGHT
textalignx 143
textaligny 17
@ -238,7 +238,7 @@ itemDef {
type ITEM_TYPE_YESNO
text "Marks On Walls:"
cvar "cg_marks"
rect 50 105 200 20
rect 50 117 200 20
textalign ITEM_ALIGN_RIGHT
textalignx 143
textaligny 17
@ -253,7 +253,7 @@ itemDef {
type ITEM_TYPE_YESNO
text "Show Floating Scores:"
cvar "cg_scorePlums"
rect 50 122 200 20
rect 50 134 200 20
textalign ITEM_ALIGN_RIGHT
textalignx 143
textaligny 17
@ -269,7 +269,7 @@ itemDef {
type ITEM_TYPE_MULTI
cvar "cg_brassTime"
cvarFloatList { "High" 2500 "Med" 1250 "Off" 0 }
rect 50 139 200 20
rect 50 151 200 20
textalign ITEM_ALIGN_RIGHT
textalignx 143
textaligny 17
@ -284,22 +284,7 @@ itemDef {
type ITEM_TYPE_YESNO
text "Identify Target:"
cvar "cg_drawCrosshairNames"
rect 50 156 200 20
textalign ITEM_ALIGN_RIGHT
textalignx 143
textaligny 17
textscale .25
forecolor 1 1 1 1
visible 1
}
itemDef {
name options
group grpOptions
type ITEM_TYPE_YESNO
text "Low Quality Sky:"
cvar "r_fastsky"
rect 50 173 200 20
rect 50 168 200 20
textalign ITEM_ALIGN_RIGHT
textalignx 143
textaligny 17
@ -314,7 +299,7 @@ itemDef {
type ITEM_TYPE_YESNO
text "Force Player Models:"
cvar "cg_forceModel"
rect 50 190 200 20
rect 50 185 200 20
textalign ITEM_ALIGN_RIGHT
textalignx 143
textaligny 17
@ -328,7 +313,7 @@ itemDef {
type ITEM_TYPE_YESNO
text "Draw Team Overlay:"
cvar "cg_drawTeamOverlay"
rect 50 207 200 20
rect 50 202 200 20
textalign ITEM_ALIGN_RIGHT
textalignx 143
textaligny 17
@ -342,7 +327,7 @@ itemDef {
type ITEM_TYPE_YESNO
text "Show Time:"
cvar "cg_drawTimer"
rect 50 224 200 20
rect 50 219 200 20
textalign ITEM_ALIGN_RIGHT
textalignx 143
textaligny 17
@ -356,7 +341,7 @@ itemDef {
type ITEM_TYPE_YESNO
text "Taunts Off:"
cvar "cg_noTaunt"
rect 50 241 200 20
rect 50 236 200 20
textalign ITEM_ALIGN_RIGHT
textalignx 143
textaligny 17
@ -370,7 +355,7 @@ itemDef {
type ITEM_TYPE_YESNO
text "In Game Video:"
cvar "r_inGameVideo"
rect 50 258 200 20
rect 50 253 200 20
textalign ITEM_ALIGN_RIGHT
textalignx 143
textaligny 17
@ -385,7 +370,7 @@ itemDef {
text "HUD Type:"
cvar "cg_hudfiles"
cvarStrList { Normal "ui/hud.txt" Small "ui/hud2.txt" }
rect 50 275 200 20
rect 50 270 200 20
textalign ITEM_ALIGN_RIGHT
textalignx 143
textaligny 17
@ -397,16 +382,18 @@ itemDef {
itemDef {
name options
group grpOptions
type ITEM_TYPE_YESNO
text "Draw HUD:"
cvar "cg_drawStatus"
rect 50 292 200 20
type ITEM_TYPE_MULTI
text "HUD Mode:"
cvar "vr_hudDrawStatus"
cvarFloatList { "Off" 0 "Floating" 1 "Simple" 2 }
rect 50 287 200 20
textalign ITEM_ALIGN_RIGHT
textalignx 143
textaligny 17
textscale .25
forecolor 1 1 1 1
visible 1
action { uiScript update "vr_hudDrawStatus" }
}
itemDef {
@ -415,7 +402,7 @@ itemDef {
type ITEM_TYPE_YESNO
text "Draw HUD On Weapon Wheel:"
cvar "vr_weaponSelectorWithHud"
rect 50 309 200 20
rect 50 304 200 20
textalign ITEM_ALIGN_RIGHT
textalignx 143
textaligny 17
@ -431,7 +418,7 @@ itemDef {
type ITEM_TYPE_MULTI
cvar "vr_goreLevel"
cvarFloatList { "None" 0 "Blood Only" 1 "Blood & Gibs (Default)" 2 "Extra Gore (Performance Hit)" 3 }
rect 50 339 200 20
rect 50 334 200 20
textalign ITEM_ALIGN_RIGHT
textalignx 80
textaligny 17

View File

@ -178,23 +178,6 @@ itemDef {
mouseExit { setitemcolor ctr_graphics backcolor .37 .1 .1 1 }
}
// itemDef {
// name graphics
// group grpSystem
// type ITEM_TYPE_MULTI
// text "Quality:"
// cvar "ui_glCustom"
// cvarFloatList { "High Quality" 0 "Normal" 1 "Fast" 2 "Fastest" 3 "Custom" 4 }
// rect 0 50 256 20
// textalign ITEM_ALIGN_RIGHT
// textalignx 133
// textaligny 17
// textscale .25
// forecolor 1 1 1 1
// visible 0
// action { uiScript update "ui_glCustom" }
// }
itemDef {
name graphics
group grpSystem
@ -211,23 +194,6 @@ itemDef {
visible 0
}
// itemDef {
// name graphics
// group grpSystem
// type ITEM_TYPE_MULTI
// text "Color Depth:"
// cvar "r_colorbits"
// cvarFloatList { "Desktop Default" 0 "16-bit" 16 "32-bit" 32 }
// rect 0 90 256 20
// textalign ITEM_ALIGN_RIGHT
// textalignx 133
// textaligny 17
// textscale .25
// forecolor 1 1 1 1
// visible 0
// action { uiScript glCustom ; uiScript update "r_colorbits" }
// }
itemDef {
name graphics
group grpSystem
@ -249,7 +215,7 @@ itemDef {
type ITEM_TYPE_MULTI
text "Railgun Effect:"
cvar "cg_oldRail"
cvarFloatList { "High" 0 "Low" 1 }
cvarFloatList { "Q2 Style" 0 "Q3 Style" 1 }
rect 0 90 256 20
textalign ITEM_ALIGN_RIGHT
textalignx 133
@ -265,7 +231,7 @@ itemDef {
type ITEM_TYPE_MULTI
text "Lighting:"
cvar "r_vertexlight"
cvarFloatList { "Light Map (high)" 0 "Vertex (low)" 1 }
cvarFloatList { "Lightmap (High)" 0 "Vertex (Low)" 1 }
rect 0 110 256 20
textalign ITEM_ALIGN_RIGHT
textalignx 133
@ -276,21 +242,6 @@ itemDef {
action { uiScript glCustom }
}
itemDef {
name graphics
group grpSystem
type ITEM_TYPE_YESNO
text "Dynamic Lights:"
cvar "r_dynamiclight"
rect 0 130 256 20
textalign ITEM_ALIGN_RIGHT
textalignx 133
textaligny 17
textscale .25
forecolor 1 1 1 1
visible 0
}
itemDef {
name graphics
group grpSystem
@ -298,7 +249,7 @@ itemDef {
text "Opponent Shadows:"
cvar "cg_shadows"
cvarFloatList { "None" 0 "Low" 1 "High" 3 }
rect 0 150 306 20
rect 0 130 306 20
textalign ITEM_ALIGN_RIGHT
textalignx 133
textaligny 17
@ -314,7 +265,7 @@ itemDef {
text "Player Shadow:"
cvar "cg_playerShadow"
cvarFloatList { "None" 0 "Low" 1 "High" 3 }
rect 0 170 306 20
rect 0 150 306 20
textalign ITEM_ALIGN_RIGHT
textalignx 133
textaligny 17
@ -330,7 +281,7 @@ itemDef {
text "Geometric Detail:"
cvar "r_lodbias"
cvarFloatList { "High" -1 "Medium" 1 "Low" 2 }
rect 0 190 256 20
rect 0 170 256 20
textalign ITEM_ALIGN_RIGHT
textalignx 133
textaligny 17
@ -347,6 +298,22 @@ itemDef {
text "Texture Detail:"
cvar "r_picmip"
cvarFloatList { "Low" 2 "Normal" 1 "High" 0 }
rect 0 190 256 20
textalign ITEM_ALIGN_RIGHT
textalignx 133
textaligny 17
textscale .25
forecolor 1 1 1 1
visible 0
action { uiScript glCustom }
}
itemDef {
name graphics
group grpSystem
type ITEM_TYPE_YESNO
text "Compress Textures:"
cvar "r_ext_compressed_textures"
rect 0 210 256 20
textalign ITEM_ALIGN_RIGHT
textalignx 133
@ -357,45 +324,12 @@ itemDef {
action { uiScript glCustom }
}
// itemDef {
// name graphics
// group grpSystem
// type ITEM_TYPE_MULTI
// text "Texture Quality:"
// cvar "r_texturebits"
// cvarFloatList { "Default" 0 "16 bit" 16 "32 bit" 32 }
// rect 0 210 256 20
// textalign ITEM_ALIGN_RIGHT
// textalignx 133
// textaligny 17
// textscale .25
// forecolor 1 1 1 1
// visible 0
// }
// itemDef {
// name graphics
// group grpSystem
// type ITEM_TYPE_MULTI
// text "Texture Filter:"
// cvar "r_texturemode"
// cvarStrList { "Bilinear", "GL_LINEAR_MIPMAP_NEAREST", "Trilinear", "GL_LINEAR_MIPMAP_LINEAR" }
// rect 0 230 256 20
// textalign ITEM_ALIGN_RIGHT
// textalignx 133
// textaligny 17
// textscale .25
// forecolor 1 1 1 1
// visible 0
// action { uiScript glCustom }
// }
itemDef {
name graphics
group grpSystem
type ITEM_TYPE_YESNO
text "Compress Textures:"
cvar "r_ext_compressed_textures"
text "Low Quality Sky:"
cvar "r_fastsky"
rect 0 230 256 20
textalign ITEM_ALIGN_RIGHT
textalignx 133
@ -406,7 +340,6 @@ itemDef {
action { uiScript glCustom }
}
//here
itemDef {

View File

@ -38,7 +38,7 @@ itemDef {
name options
group grpOptions
text "Crosshair:"
rect 227 15 20 20
rect 227 35 20 20
ownerdraw UI_CROSSHAIR
textalign ITEM_ALIGN_RIGHT
textalignx 0
@ -54,7 +54,7 @@ itemDef {
type ITEM_TYPE_YESNO
text "Laser Sight:"
cvar "vr_lasersight"
rect 99 35 256 20
rect 99 55 256 20
textalign ITEM_ALIGN_RIGHT
textalignx 128
textaligny 20
@ -69,7 +69,7 @@ itemDef {
type ITEM_TYPE_YESNO
text "Simple Items (World):"
cvar "cg_simpleItems"
rect 99 55 256 20
rect 99 75 256 20
textalign ITEM_ALIGN_RIGHT
textalignx 128
textaligny 20
@ -84,7 +84,7 @@ itemDef {
type ITEM_TYPE_YESNO
text "Simple Items (Weapon Wheel):"
cvar "cg_weaponSelectorSimple2DIcons"
rect 99 75 256 20
rect 99 95 256 20
textalign ITEM_ALIGN_RIGHT
textalignx 128
textaligny 20
@ -99,7 +99,7 @@ itemDef {
type ITEM_TYPE_YESNO
text "Show Item In Hand:"
cvar "vr_showItemInHand"
rect 99 95 256 20
rect 99 115 256 20
textalign ITEM_ALIGN_RIGHT
textalignx 128
textaligny 20
@ -114,7 +114,7 @@ itemDef {
type ITEM_TYPE_YESNO
text "Marks On Walls:"
cvar "cg_marks"
rect 99 115 256 20
rect 99 135 256 20
textalign ITEM_ALIGN_RIGHT
textalignx 128
textaligny 20
@ -129,7 +129,7 @@ itemDef {
type ITEM_TYPE_YESNO
text "Show Floating Scores:"
cvar "cg_scorePlums"
rect 99 135 256 20
rect 99 155 256 20
textalign ITEM_ALIGN_RIGHT
textalignx 128
textaligny 20
@ -145,7 +145,7 @@ itemDef {
type ITEM_TYPE_MULTI
cvar "cg_brassTime"
cvarFloatList { "High" 2500 "Med" 1250 "Off" 0 }
rect 99 155 256 20
rect 99 175 256 20
textalign ITEM_ALIGN_RIGHT
textalignx 128
textaligny 20
@ -160,21 +160,6 @@ itemDef {
type ITEM_TYPE_YESNO
text "Identify Target:"
cvar "cg_drawCrosshairNames"
rect 99 175 256 20
textalign ITEM_ALIGN_RIGHT
textalignx 128
textaligny 20
textscale .3
forecolor 1 1 1 1
visible 1
}
itemDef {
name options
group grpOptions
type ITEM_TYPE_YESNO
text "Low Quality Sky:"
cvar "r_fastsky"
rect 99 195 256 20
textalign ITEM_ALIGN_RIGHT
textalignx 128
@ -278,9 +263,10 @@ itemDef {
itemDef {
name options
group grpOptions
type ITEM_TYPE_YESNO
text "Draw HUD:"
cvar "cg_drawStatus"
type ITEM_TYPE_MULTI
text "HUD Mode:"
cvar "vr_hudDrawStatus"
cvarFloatList { "Off" 0 "Floating" 1 "Simple" 2 }
rect 99 335 256 20
textalign ITEM_ALIGN_RIGHT
textalignx 128
@ -288,6 +274,7 @@ itemDef {
textscale .3
forecolor 1 1 1 1
visible 1
action { uiScript update "vr_hudDrawStatus" }
}
itemDef {

View File

@ -81,24 +81,6 @@ itemDef {
decoration
}
// itemDef {
// name graphics
// group grpSystem
// text "Quality:"
// type ITEM_TYPE_MULTI
// cvar "ui_glCustom"
// cvarFloatList { "High Quality" 0 "Normal" 1 "Fast" 2 "Fastest" 3 "Custom" 4 }
// rect 99 42 256 20
// textalign ITEM_ALIGN_RIGHT
// textalignx 128
// textaligny 20
// textscale .333
// forecolor 1 1 1 1
// visible 0
// action { uiScript update "ui_glCustom" }
// }
itemDef {
name graphics
group grpSystem
@ -115,23 +97,6 @@ itemDef {
visible 0
}
// itemDef {
// name graphics
// group grpSystem
// type ITEM_TYPE_MULTI
// text "Color Depth:"
// cvar "r_colorbits"
// cvarFloatList { "Desktop Default" 0 "16-bit" 16 "32-bit" 32 }
// rect 99 92 256 20
// textalign ITEM_ALIGN_RIGHT
// textalignx 128
// textaligny 20
// textscale .333
// forecolor 1 1 1 1
// visible 0
// action { uiScript glCustom ; uiScript update "r_colorbits" }
// }
itemDef {
name graphics
group grpSystem
@ -153,7 +118,7 @@ itemDef {
type ITEM_TYPE_MULTI
text "Railgun Effect:"
cvar "cg_oldRail"
cvarFloatList { "High" 0 "Low" 1 }
cvarFloatList { "Q2 Style" 0 "Q3 Style" 1 }
rect 99 92 256 20
textalign ITEM_ALIGN_RIGHT
textalignx 128
@ -169,7 +134,7 @@ itemDef {
type ITEM_TYPE_MULTI
text "Lighting:"
cvar "r_vertexlight"
cvarFloatList { "Light Map (high)" 0 "Vertex (low)" 1 }
cvarFloatList { "Lightmap (High)" 0 "Vertex (Low)" 1 }
rect 99 117 256 20
textalign ITEM_ALIGN_RIGHT
textalignx 128
@ -180,21 +145,6 @@ itemDef {
action { uiScript glCustom }
}
itemDef {
name graphics
group grpSystem
type ITEM_TYPE_YESNO
text "Dynamic Lights:"
cvar "r_dynamiclight"
rect 99 142 256 20
textalign ITEM_ALIGN_RIGHT
textalignx 128
textaligny 20
textscale .333
forecolor 1 1 1 1
visible 1
}
itemDef {
name graphics
group grpSystem
@ -202,7 +152,7 @@ itemDef {
text "Opponent Shadows:"
cvar "cg_shadows"
cvarFloatList { "None" 0 "Low" 1 "High" 3 }
rect 99 167 256 20
rect 99 142 256 20
textalign ITEM_ALIGN_RIGHT
textalignx 128
textaligny 20
@ -218,7 +168,7 @@ itemDef {
text "Player Shadow:"
cvar "cg_playerShadow"
cvarFloatList { "None" 0 "Low" 1 "High" 3 }
rect 99 192 256 20
rect 99 167 256 20
textalign ITEM_ALIGN_RIGHT
textalignx 128
textaligny 20
@ -234,7 +184,7 @@ itemDef {
text "Geometric Detail:"
cvar "r_lodbias"
cvarFloatList { "High" -1 "Medium" 1 "Low" 2 }
rect 99 217 256 20
rect 99 192 256 20
textalign ITEM_ALIGN_RIGHT
textalignx 128
textaligny 20
@ -251,6 +201,22 @@ itemDef {
text "Texture Detail:"
cvar "r_picmip"
cvarFloatList { "Low" 2 "Normal" 1 "High" 0 }
rect 99 217 256 20
textalign ITEM_ALIGN_RIGHT
textalignx 128
textaligny 20
textscale .333
forecolor 1 1 1 1
visible 0
action { uiScript glCustom }
}
itemDef {
name graphics
group grpSystem
type ITEM_TYPE_YESNO
text "Compress Textures:"
cvar "r_ext_compressed_textures"
rect 99 242 256 20
textalign ITEM_ALIGN_RIGHT
textalignx 128
@ -261,45 +227,12 @@ itemDef {
action { uiScript glCustom }
}
// itemDef {
// name graphics
// group grpSystem
// type ITEM_TYPE_MULTI
// text "Texture Quality:"
// cvar "r_texturebits"
// cvarFloatList { "Default" 0 "16 bit" 16 "32 bit" 32 }
// rect 99 242 256 20
// textalign ITEM_ALIGN_RIGHT
// textalignx 128
// textaligny 20
// textscale .333
// forecolor 1 1 1 1
// visible 0
// }
// itemDef {
// name graphics
// group grpSystem
// type ITEM_TYPE_MULTI
// text "Texture Filter:"
// cvar "r_texturemode"
// cvarStrList { "Bilinear", "GL_LINEAR_MIPMAP_NEAREST", "Trilinear", "GL_LINEAR_MIPMAP_LINEAR" }
// rect 99 267 256 20
// textalign ITEM_ALIGN_RIGHT
// textalignx 128
// textaligny 20
// textscale .333
// forecolor 1 1 1 1
// visible 0
// action { uiScript glCustom }
// }
itemDef {
name graphics
group grpSystem
type ITEM_TYPE_YESNO
text "Compress Textures:"
cvar "r_ext_compressed_textures"
text "Low Quality Sky:"
cvar "r_fastsky"
rect 99 267 256 20
textalign ITEM_ALIGN_RIGHT
textalignx 128