reaction/uifiles/system.menu

704 lines
16 KiB
Plaintext

#include "ui/menudef.h"
#include "ui/controls_common.h"
#include "ui/tabs.h"
////////////////////////////////////
//
// CONSTANTS
//
//
#define OPTION_COLOR 0 0 .1 1
#define Tab_Color1 0 0 0 1
#define Tab_Color2 0 0 .5 1
#define VSPACE 16
#define VSIZE 16
#define ICON_ALPHA 0.5
#define LINE_ALPHA 0.2
#define FADEIN_TIME 125
#define HINT_COLOR .25 .25 .25
#define HINT_FADE_TIME 125
#define LINE_WIDTH 240
////////////////////////////////////
//
// MENU DEFINITION
//
//
{
menuDef {
name "system_menu"
visible MENU_FALSE // Visible on open
//fullScreen MENU_FALSE
focusColor RQ3_MAIN_FOCUSCOLOR // Menu focus color for text and items
rect 112 88 300 348
anglevectors 4 -86
style WINDOW_STYLE_EMPTY
popup
onOOBClick { close _self }
onOpen { play "sound/ui/whoosh3.wav" ; uiScript initSystemSettings ;
setitemcolor hints forecolor HINT_COLOR 1 ; hide hints ;
ACTIVATE_TAB(1) ;
}
onClose { uiScript saveControls ; open _prev }
onEsc { close _self }
onOpenSpecial {
//normal items
setItemColor "fade_alpha" forecolor 5 5 5 0 ;
timeFade "fade_alpha" forecolor 5 5 5 1 0 FADEIN_TIME ;
//icon - special alpha
setItemColor "icon" forecolor 5 5 5 0 ;
timeFade "icon" forecolor 5 5 5 ICON_ALPHA 0 FADEIN_TIME ;
//line - special alpha; using backcolor
setItemColor "line" backcolor 5 5 5 0 ;
timeFade "line" backcolor 5 5 5 LINE_ALPHA 0 FADEIN_TIME ;
}
itemDef {
renderpoint
name "paper,fade_alpha"
style WINDOW_STYLE_SHADER
background UI_ASSETS"/paper_1"
forecolor MENUCOLOR_SYSTEM 1
rect 0 -20 320 420
anglevectors 4 -86
visible 1
menuAnchor
decoration
}
itemdef {
renderpoint
name "title,fade_alpha"
text "System:"
forecolor .6 .0 .0 1
style WINDOW_STYLE_EMPTY
textalign ITEM_ALIGN_LEFT
textalignx 4
textaligny 24
textscale RQ3_MAIN_TEXTSIZE
alignrect paper ITEM_ALIGN_LEFT 32 40 240 36
visible 1
autowrapped
decoration
}
//Line
itemDef {
name "line,fade_alpha"
style WINDOW_STYLE_FILLED
backcolor .25 .25 .25 LINE_ALPHA
alignrect "title" ITEM_ALIGN_LEFT 0 48 LINE_WIDTH 2
visible 1
decoration
}
///////////////////////////////////////////////////////////
//
// Sub-options
//
//
// Graphics
ADD_TAB(
"^_G^_raphics.",
"G", 1, "group2,group3,group4",
alignrect "title" ITEM_ALIGN_LEFT 2 28 52 16
)
ADD_HINT("hint_tab1", "Change rendering options", "group2,group3,group4")
//---------------------------------------------------------
// Driver info
ADD_TAB(
"^_D^_river info.",
"D", 2, "group1,group3,group4",
alignrect "tab1" ITEM_ALIGN_RIGHT -56 0 60 16
)
ADD_HINT("hint_tab2", "View OpenGL driver info", "group1,group3,group4")
//---------------------------------------------------------
// Misc - Display/Sound/Net
ADD_TAB(
"^_M^_isc.",
"M", 3, "group1,group2,group4",
alignrect "tab2" ITEM_ALIGN_RIGHT -30 0 32 16
)
ADD_HINT("hint_tab3", "Change display/sound/network options", "group1,group2,group4")
//---------------------------------------------------------
// VoIP
ADD_TAB(
"^_V^_oIP.",
"V", 4, ",group1,group2,group3",
alignrect "tab3" ITEM_ALIGN_RIGHT -28 0 32 16
)
ADD_HINT("hint_tab4", "Change VoIP settings", "group1,group2,group3")
/*
==========================================================
Group # 1 - Graphics
==========================================================
*/
//Icon
ADD_TITLE_ICON(UI_ASSETS"/icons/rq3-system-graphics", "group1")
// Pre-defined settings //
BEGIN_OPTION("Quality", "ui_glCustom", ITEM_TYPE_MULTI, 1, 1)
alignrect "line" ITEM_ALIGN_CENTER 56 32 112 VSIZE
cvarFloatList {
"Very Low" 2
"Low" 3
"Normal" 1
"High" 4
"Very High" 5
"Custom" 0
}
action {
uiScript update "ui_glCustom" ;
uiScript update "ui_filteringMode" ;
uiScript update "ui_shaderLevel" ;
uiScript update "ui_shadowMaps" ;
uiScript update "r_lodbias"
}
ASSIGN_HINT("hint_predef")
END_OPTION
ADD_HINT("hint_predef", "Choose pre-defined graphics settings", "group1")
// GL Driver //
// ioq3 doesn't recognize this cvar
/*
BEGIN_OPTION("GL Driver", "r_glDriver", ITEM_TYPE_EDITFIELD, 2, 1)
OPTION_BELOW("gr1_ctrl1")
ASSIGN_HINT("hint_gldriver")
END_OPTION
ADD_HINT("hint_gldriver", "Choose OpenGL driver (default: opengl32)", "group1")
*/
// GL Extensions //
// required for the new renderer
/*
BEGIN_OPTION("GL Extensions", "r_allowExtensions", ITEM_TYPE_YESNO, 2, 1)
OPTION_BELOW("gr1_ctrl1")
action { uiScript glCustom }
ASSIGN_HINT("hint_glext")
END_OPTION
ADD_HINT("hint_glext", "Enable OpenGL extensions", "group1")
*/
// Resolution //
BEGIN_SIMPLE_OPTION(2, 1)
OPTION_BELOW("gr1_ctrl1")
text "Resolution:"
ownerDraw UI_RESOLUTION
ASSIGN_HINT("hint_res")
END_OPTION
ADD_HINT("hint_res", "Choose rendering resolution", "group1")
// Color depth //
/*
BEGIN_OPTION("Color Depth", "r_colorbits", ITEM_TYPE_MULTI, 3, 1)
cvarFloatList { "Desktop Default" 0 "16-bit" 16 "32-bit" 32 }
OPTION_BELOW("gr1_ctrl2")
action { uiScript glCustom ; uiScript update "r_colorbits" }
ASSIGN_HINT("hint_depth")
END_OPTION
ADD_HINT("hint_depth", "Choose rendering color depth", "group1")
*/
// Fullscreen //
BEGIN_OPTION("Fullscreen", "ui_RQ3_fullscreen", ITEM_TYPE_YESNO, 3, 1)
OPTION_BELOW("gr1_ctrl2")
ASSIGN_HINT("hint_fullscreen")
END_OPTION
ADD_HINT("hint_fullscreen", "Render in full-screen or windowed mode", "group1")
// Anti-Aliasing Mode //
BEGIN_OPTION("Anti-Aliasing", "r_ext_framebuffer_multisample", ITEM_TYPE_MULTI, 4, 1)
cvarFloatList {
"Off" 0
"2x MSAA" 2
"4x MSAA" 4
}
OPTION_BELOW("gr1_ctrl3")
action { uiScript glCustom }
ASSIGN_HINT("hint_aa")
END_OPTION
ADD_HINT("hint_aa", "Use anti-aliasing to reduce jaggedness", "group1")
// Texture filtering mode //
BEGIN_OPTION("Filtering Mode", "ui_filteringMode", ITEM_TYPE_MULTI, 5, 1)
cvarFloatList {
"Bilinear" 0
"Trilinear" 1
"2x Anisotropic" 2
"4x Anisotropic" 3
"8x Anisotropic" 4
"16x Anisotropic" 5
}
OPTION_BELOW("gr1_ctrl4")
action { uiScript glCustom ; uiScript update "ui_filteringMode" }
ASSIGN_HINT("hint_texfilter")
END_OPTION
ADD_HINT("hint_texfilter", "Choose texture filtering mode", "group1")
// Screen-space ambient occlusion //
BEGIN_OPTION("SSAO", "r_ssao", ITEM_TYPE_YESNO, 6, 1)
OPTION_BELOW("gr1_ctrl5")
action { uiScript glCustom }
ASSIGN_HINT("hint_ssao")
END_OPTION
ADD_HINT("hint_ssao", "Enable screen-space ambient occlusion", "group1")
// Physically-based rendering //
BEGIN_OPTION("PBR", "ui_shaderLevel", ITEM_TYPE_YESNO, 7, 1)
OPTION_BELOW("gr1_ctrl6")
action { uiScript glCustom ; uiScript update "ui_shaderLevel" }
ASSIGN_HINT("hint_pbr")
END_OPTION
ADD_HINT("hint_pbr", "Enable physically-based rendering", "group1")
// Cascaded Shadow Maps //
BEGIN_OPTION("CSM", "ui_shadowMaps", ITEM_TYPE_MULTI, 8, 1)
cvarFloatList {
"Off" 0
"Low" 1
"Medium" 2
"High" 3
}
OPTION_BELOW("gr1_ctrl7")
action { uiScript glCustom ; uiScript update "ui_shadowMaps" }
ASSIGN_HINT("hint_csm")
END_OPTION
ADD_HINT("hint_csm", "Enable cascaded shadow maps", "group1")
// Lightmap/vertex //
/*
BEGIN_OPTION("Lighting", "r_vertexlight", ITEM_TYPE_MULTI, 9, 1)
cvarFloatList { "Light Map (high)" 0 "Vertex (low)" 1 }
OPTION_BELOW("gr1_ctrl8")
action { uiScript glCustom ; }
ASSIGN_HINT("hint_lightmap")
END_OPTION
ADD_HINT("hint_lightmap", "Choose map light rendering mode", "group1")
*/
// Geometric detail //
BEGIN_OPTION("Geometric Detail", "r_lodbias", ITEM_TYPE_MULTI, 9, 1)
cvarFloatList {
"Low" 2
"Medium" 1
"High" 0
}
OPTION_BELOW("gr1_ctrl8")
action { uiScript glCustom ; uiScript update "r_lodbias" }
ASSIGN_HINT("hint_geodetail")
END_OPTION
ADD_HINT("hint_geodetail", "Choose geometric detail level", "group1")
// Texture detail //
BEGIN_OPTION("Texture Detail", "r_picmip", ITEM_TYPE_MULTI, 10, 1)
cvarFloatList {
"Very Low" 3
"Low" 2
"Medium" 1
"High" 0
}
OPTION_BELOW("gr1_ctrl9")
action { uiScript glCustom }
ASSIGN_HINT("hint_texdetail")
END_OPTION
ADD_HINT("hint_texdetail", "Choose texture detail level", "group1")
// Texture quality //
/*
BEGIN_OPTION("Texture Quality", "r_texturebits", ITEM_TYPE_MULTI, 8, 1)
cvarFloatList {
"Default" 0
"16 bit" 16
"32 bit" 32
}
OPTION_BELOW("gr1_ctrl7")
action { uiScript glCustom }
ASSIGN_HINT("hint_texquality")
END_OPTION
ADD_HINT("hint_texquality", "Choose texture quality", "group1")
*/
// Compressed textures //
/*
BEGIN_OPTION("Compress Textures", "r_ext_compressed_textures", ITEM_TYPE_YESNO, 11, 1)
OPTION_BELOW("gr1_ctrl10")
action { uiScript glCustom }
ASSIGN_HINT("hint_compress")
END_OPTION
ADD_HINT("hint_compress", "Enable texture compression", "group1")
*/
// Texture upsampling //
BEGIN_OPTION("Texture Upsampling", "r_imageUpsample", ITEM_TYPE_MULTI, 11, 1)
cvarFloatList {
"No (default)" 0
"2x Size" 1
"4x Size" 2
"8x Size" 3
}
OPTION_BELOW("gr1_ctrl10")
action { uiScript glCustom }
ASSIGN_HINT("hint_upsample")
END_OPTION
ADD_HINT("hint_upsample", "Use interpolation to artificially increase the resolution of all textures (experimental)", "group1")
// APPLY //
itemdef {
name "btn_apply,fade_alpha,allgroups,group1"
style WINDOW_STYLE_EMPTY
alignrect "gr1_ctrl11" ITEM_ALIGN_RIGHT 0 24 80 VSIZE
type ITEM_TYPE_BUTTON
text "^_A^_pply >"
shortcutKey "A"
textscale .225
textstyle ITEM_TEXTSTYLE_NORMAL
textalign ITEM_ALIGN_RIGHT
textalignx 64
textaligny 14
forecolor 0 0 0 1
action { uiScript applysystemSettings ; }
ASSIGN_HINT("hint_apply")
anglevectors 4 -83
visible 1
}
ADD_HINT("hint_apply", "Apply graphics changes and return to main menu", "group1")
/*
==========================================================
Group # 2 - Driver info
==========================================================
*/
//Icon
ADD_TITLE_ICON(UI_ASSETS"/icons/rq3-system-driverinfo", "group2")
// DRIVER INFO //
itemdef {
name "allgroups,group2,fade_alpha,driver_info"
ownerdraw UI_GLINFO
alignrect "line" ITEM_ALIGN_LEFT 0 24 220 64
style WINDOW_STYLE_EMPTY
textalign ITEM_ALIGN_LEFT
textalignx 8
textaligny 12
textscale .15
forecolor OPTION_COLOR
visible 0
decoration
}
itemdef {
name "allgroups,group2,gr2_ctrl1,fade_alpha,extension_list"
type ITEM_TYPE_LISTBOX
alignRect driver_info ITEM_ALIGN_LEFT 0 64 232 140
forcetextcolor
LISTBOX_STYLE(.175, 4)
feeder FEEDER_GLDRIVER_INFO
columns 1 4 200 0
visible 1
onFocus { show list_hint ; timeFade list_hint forecolor .9 .9 .9 1 0 250 }
leaveFocus { timeFade list_hint forecolor .9 .9 .9 0 0 250 }
}
itemdef {
name "allgroups,group2,fade_alpha,col1_title"
text "Supported OpenGL Extensions:"
forecolor .25 .25 .25 1
style WINDOW_STYLE_EMPTY
textalign ITEM_ALIGN_LEFT
textscale .175
textalignx 4
textaligny 14
alignRect extension_list ITEM_ALIGN_LEFT 4 -16 80 16
visible 1
decoration
}
/*
==========================================================
Group # 3 - Misc
==========================================================
*/
//Icon
ADD_TITLE_ICON(UI_ASSETS"/icons/rq3-menu-setup", "group3")
//Icon
itemdef {
name "icon,allgroups,group3"
background UI_ASSETS"/icons/rq3-system-display"
forecolor 1 1 1 ICON_ALPHA
alignrect "line" ITEM_ALIGN_LEFT 0 36 24 24
style WINDOW_STYLE_SHADER
visible 1
decoration
}
// Brightness //
BEGIN_SLIDER("Brightness", "r_gamma", 1, .5, 1.7, 1, 3)
alignrect "line" ITEM_ALIGN_CENTER 56 40 112 VSIZE
ASSIGN_HINT("hint_gamma")
END_OPTION
ADD_HINT("hint_gamma", "Change image brightness", "group3")
// Screen size //
/*
BEGIN_SLIDER("Screen Size", "cg_viewsize", 100, 30, 100, 2, 3)
OPTION_BELOW("gr3_ctrl1")
ASSIGN_HINT("hint_screensize")
END_OPTION
ADD_HINT("hint_screensize", "Change rendering window size", "group3")
*/
// Overbrightbits //
BEGIN_OPTION("Overbright Bits", "r_overbrightbits", ITEM_TYPE_YESNO, 2, 3)
OPTION_BELOW("gr3_ctrl1")
ASSIGN_HINT("hint_overbits")
END_OPTION
ADD_HINT("hint_overbits", "Enable overbright bits (greater color range at the expense of precision)", "group3")
// V-SYNC //
BEGIN_OPTION("Sync Every Frame", "r_finish", ITEM_TYPE_YESNO, 3, 3)
//kind YESNO_ICON_RIGHT
OPTION_BELOW("gr3_ctrl2")
ASSIGN_HINT("hint_vsync")
END_OPTION
ADD_HINT("hint_vsync", "Wait for vertical sync (recommended off)", "group3")
// Sound //
//Icon
itemdef {
name "icon,allgroups,group3"
background UI_ASSETS"/icons/rq3-system-sound"
forecolor 1 1 1 ICON_ALPHA
alignrect "line" ITEM_ALIGN_LEFT 0 120 24 24
style WINDOW_STYLE_SHADER
visible 1
decoration
}
// OpenAL //
BEGIN_OPTION("OpenAL", "s_useOpenAL", ITEM_TYPE_YESNO, 5, 3)
alignrect "line" ITEM_ALIGN_CENTER 56 120 112 VSIZE
ASSIGN_HINT("hint_openal")
END_OPTION
ADD_HINT("hint_openal", "Enable OpenAL sound rendering", "group3")
// Sound volume //
BEGIN_SLIDER("Sound Volume", "s_volume", 0.7, 0, 1, 6, 3)
OPTION_BELOW("gr3_ctrl5")
ASSIGN_HINT("hint_sndvol")
END_OPTION
ADD_HINT("hint_sndvol", "Change sound effects volume", "group3")
// Music volume //
BEGIN_SLIDER("Music Volume", "s_musicvolume", 0.25, 0, 1, 7, 3)
OPTION_BELOW("gr3_ctrl6")
ASSIGN_HINT("hint_musicvol")
END_OPTION
ADD_HINT("hint_musicvol", "Change background music volume", "group3")
// Sound quality //
BEGIN_OPTION("Sound Quality", "s_khz", ITEM_TYPE_MULTI, 8, 3)
cvarFloatList {
"22 khz (high)" 22
"11 khz (low)" 11
}
OPTION_BELOW("gr3_ctrl7")
ASSIGN_HINT("hint_sndquality")
END_OPTION
ADD_HINT("hint_sndquality", "Choose sound quality", "group3")
// Doppler effect //
BEGIN_OPTION("Doppler Effect", "s_doppler", ITEM_TYPE_YESNO, 9, 3)
OPTION_BELOW("gr3_ctrl8")
ASSIGN_HINT("hint_doppler")
END_OPTION
ADD_HINT("hint_doppler", "Enable Doppler effect", "group3")
// Net //
//Icon
itemdef {
name "icon,allgroups,group3"
background UI_ASSETS"/icons/rq3-system-network"
forecolor 1 1 1 ICON_ALPHA
alignrect "line" ITEM_ALIGN_LEFT 0 216 24 24
style WINDOW_STYLE_SHADER
visible 1
decoration
}
// Net rate //
BEGIN_OPTION("Net Rate", "rate", ITEM_TYPE_MULTI, 10, 3)
alignrect "line" ITEM_ALIGN_CENTER 56 216 112 VSIZE
cvarFloatList {
"<=28.8k" 2500
"33.6k" 3000
"56k" 4000
"ISDN" 5000
"LAN/CABLE/xDSL" 25000
}
ASSIGN_HINT("hint_netrate")
END_OPTION
ADD_HINT("hint_netrate", "Choose network speed", "group3")
/*
==========================================================
Group # 4 - VoIP
==========================================================
*/
// Hints
__CONTROLS_HINTS__
//Icon
ADD_TITLE_ICON(UI_ASSETS"/icons/rq3-system-voip", "group4")
BEGIN_OPTION("VoIP", "cl_voip", ITEM_TYPE_YESNO, 1, 4)
alignrect "line" ITEM_ALIGN_CENTER 56 44 112 VSIZE
ASSIGN_HINT("hint_voip")
END_OPTION
ADD_HINT("hint_voip", "Enable client-side VoIP support", "group4")
BEGIN_OPTION("OpenAL Capture", "s_alCapture", ITEM_TYPE_YESNO, 2, 4)
OPTION_BELOW("gr4_ctrl1")
ASSIGN_HINT("hint_alcapture")
END_OPTION
ADD_HINT("hint_alcapture", "Disabling this means that you won't transmit, but you can still hear other people", "group4")
BEGIN_OPTION("Voice Level Meter", "cl_voipShowMeter", ITEM_TYPE_YESNO, 3, 4)
OPTION_BELOW("gr4_ctrl2")
ASSIGN_HINT("hint_voipmeter")
END_OPTION
ADD_HINT("hint_voipmeter", "Enable a volume meter that shows how well the game can hear your voice", "group4")
BEGIN_SLIDER("Gain", "cl_voipGainDuringCapture", 0.2, 0, 1, 4, 4)
OPTION_BELOW("gr4_ctrl3")
ASSIGN_HINT("hint_gain")
END_OPTION
ADD_HINT("hint_gain", "The volume of audio coming out of your speakers while you are recording sound for transmission.", "group4")
BEGIN_OPTION("Transmit Mode", "cl_voipUseVAD", ITEM_TYPE_MULTI, 5, 4)
OPTION_BELOW("gr4_ctrl4")
cvarFloatList {
"Push-to-talk" 0
"Automatic" 1
}
ASSIGN_HINT("hint_usevad")
END_OPTION
ADD_HINT("hint_usevad", "Select between holding down a key (the default) and automatic transmitting", "group4")
BEGIN_SLIDER("Threshold", "cl_voipVADThreshold", 0.25, 0, 1, 6, 4)
OPTION_BELOW("gr4_ctrl5")
ASSIGN_HINT("hint_thresh")
cvarTest "cl_voipUseVAD"
showCvar { "1" }
END_OPTION
ADD_HINT("hint_thresh", "Signifies the volume of recorded audio that the game considers to be speech", "group4")
BEGIN_OPTION("Push-to-talk Key", "+voiprecord", ITEM_TYPE_BIND, 7, 4)
OPTION_BELOW("gr4_ctrl5")
ASSIGN_HINT("keyBindStatus")
cvarTest "cl_voipUseVAD"
showCvar { "0" }
END_OPTION
}
}