NS preset switcher WIP

- needs sv_allow_shaders and hl25 at the moment and it piggybacks off the hl25 overbright shader using the average gamma ramp setting for ns maps.
This commit is contained in:
pierow 2024-01-30 01:02:16 -05:00
parent 61c7fc5d9c
commit 8fde5dc37c
19 changed files with 756 additions and 53 deletions

32
main/32av.cfg Normal file
View File

@ -0,0 +1,32 @@
// Lighting
brightness "1"
gamma "2.5"
lightgamma "2.5"
gl_use_shaders "1" // Use temporary gamma ramp replacement that utilizes HL25 shaders. It only adjusts to the average gamma value of ns maps instead of per-map.
// Bobbing
cl_bob "0.01"
cl_bobcycle "0.8"
cl_bobup "0.5"
cl_bobview "1"
// Audio
cl_ambientsound "1.25" // 1 is the old ambient default volume, but the old master volume was 0.8 before ambient sound volume scaled with the volume command
cl_musicenabled "1"
cl_musicvolume "1.25" // 1 is the old music default volume, but the old master volume was 0.8 before music volume scaled with the volume command
// HUD
hud_style "0"
hud_mapstyle "1"
//hud_mapnames "0"
// Legacy sprite crosshairs
crosshair "1"
cl_cross "0"
echo "Classic NS preset:"
echo "- Original dark lighting"
echo "- Original HUD and crosshairs"
echo "- Original weapon and view bob"
echo "- Original mix volumes for ambient sound and music"

32
main/33av.cfg Normal file
View File

@ -0,0 +1,32 @@
// Lighting - temporary until new gamma ramp shader.
brightness "2"
gamma "3"
lightgamma "2.25"
gl_use_shaders "1"
// Bobbing
cl_bob "0.006"
cl_bobcycle "0.85"
cl_bobup "0.5"
cl_bobview "0"
// Reduced ambient and music volume
cl_ambientsound "0.6"
cl_musicenabled "1"
cl_musicvolume "0.6"
// HUD
hud_style "1"
hud_mapstyle "3"
//hud_mapnames "5"
// New crosshairs
crosshair "0"
cl_cross "1"
echo "NS 3.3 preset:"
echo "- Increased lightgamma for less dark shadows"
echo "- Minimal marine HUD and new crosshair system"
echo "- Reduced weapon bobbing and no view bobbing"
echo "- Reduced ambient sound and music volumes"

35
main/compav.cfg Normal file
View File

@ -0,0 +1,35 @@
// Bright Lighting
brightness "2"
gamma "3"
lightgamma "2"
gl_use_shaders "0"
// No bobbing
cl_bob "0"
//cl_bobcycle "0.8"
//cl_bobup "0.5"
cl_bobview "0"
// Audio
cl_ambientsound "0"
cl_musicenabled "0"
//cl_musicvolume "1"
// HUD
hud_style "2"
hud_mapstyle "3"
//hud_mapnames "5"
// New crosshairs
crosshair "0"
cl_cross "1"
//Disable help tooltips
//cl_autohelp "0"
echo "Competitive NS preset:"
echo "- Bright lighting settings with overbright shader disabled"
echo "- Nine Legends competitive HUD and new crosshair system"
echo "- No weapon of view bobbing"
echo "- Ambient sound and music disabled"

View File

@ -66,7 +66,7 @@ ati_npatch "0"
ati_subdiv "0"
bgmvolume "1.000000"
bottomcolor "144.889999"
brightness "5"
brightness "1"
cl_allowdownload "1"
cl_allowupload "1"
cl_autohelp "1.0"
@ -95,8 +95,8 @@ cl_logofile "lambda"
cl_lw "1"
cl_musicdelay "90"
cl_musicdirectory ""
cl_musicvolume "155"
cl_musicenabled "0"
cl_musicvolume "0.6"
cl_musicenabled "1"
cl_particleinfo "0"
cl_quickselecttime ".15"
cl_timeout "60"
@ -109,7 +109,6 @@ fps_max "250"
fps_override "1"
fps_modem "0.0"
gamma "3"
gl_vsync "0"
gl_dither "1"
gl_flipmatrix "0"
gl_fog "1"
@ -117,6 +116,8 @@ gl_monolights "0"
gl_overbright "1"
gl_polyoffset "0.1"
gl_texturemode "GL_LINEAR_MIPMAP_LINEAR"
gl_use_shaders "1"
gl_vsync "0"
hisound "1"
hpk_maxsize "4"
hud_capturemouse "1"
@ -141,6 +142,7 @@ name "NSPlayer"
net_graph "0"
net_graphpos "1"
net_scale "5"
rate "30000"
r_bmodelhighfrac "5.0"
r_detailtextures "0"
s_a3d "0.0"
@ -175,13 +177,13 @@ voice_scale "1"
volume "0.500000"
m_rawinput "1"
zoom_sensitivity_ratio "1"
lightgamma "2"
lightgamma "2.25"
ex_interp "0.05"
cl_cross "1"
rate "30000"
cl_bob "0.01"
cl_bobcycle "0.8"
cl_bob "0.5"
cl_bob "0.006"
cl_bobcycle "0.85"
cl_bobup "0.5"
cl_weaponswap "2"
+mlook

View File

@ -0,0 +1,87 @@
#extension GL_ARB_explicit_uniform_location : require
layout(location = 0) in vec4 inColor;
layout(location = 0) out vec4 color;
//There doesn't seem to be a way for us to get at the fixed-function GL_FOG enabled state, so use a manual uniform
uniform bool fogEnabled;
uniform uint fogMode; // 0: Linear, 1: Exp, 2: Exp2
#define TEXTURE_ALBEDO 0
#define TEXTURE_ALBEDO_MASK (1 << TEXTURE_ALBEDO)
#define TEXTURE_LIGHTMAP 1
#define TEXTURE_LIGHTMAP_MASK (1 << TEXTURE_LIGHTMAP)
#define TEXTURE_DETAIL 2
#define TEXTURE_DETAIL_MASK (1 << TEXTURE_DETAIL)
#if (TEXTURE_MASK & TEXTURE_ALBEDO_MASK)
layout(binding = 0) uniform sampler2D albedoSampler;
#endif
#if (TEXTURE_MASK & TEXTURE_LIGHTMAP_MASK)
layout(binding = 1) uniform sampler2D lightmapSampler;
#endif
#if (TEXTURE_MASK & TEXTURE_DETAIL_MASK)
layout(binding = 2) uniform sampler2D detailSampler;
#endif
void main()
{
#if (TEXTURE_MASK & TEXTURE_ALBEDO_MASK)
vec4 albedo = texture2D(albedoSampler, gl_TexCoord[0].xy);
#endif
#if (TEXTURE_MASK & TEXTURE_LIGHTMAP_MASK)
// Josh:
// Magic number from the original overbright code.
vec3 lightmap = texture2D(lightmapSampler, gl_TexCoord[1].xy).rgb * (128.0f / 192.0f);
#endif
#if ( ( TEXTURE_MASK & TEXTURE_ALBEDO_MASK ) && ( TEXTURE_MASK & TEXTURE_LIGHTMAP_MASK ) )
// Josh:
// From the original blend eqn for overbrights.
vec3 diffuse = albedo.rgb * lightmap.rgb + lightmap.rgb * albedo.rgb;
color = vec4(diffuse.rgb, albedo.a);
#elif ( TEXTURE_MASK & TEXTURE_LIGHTMAP_MASK )
color = vec4(lightmap.rgb, 1.0f);
#elif ( TEXTURE_MASK & TEXTURE_ALBEDO_MASK )
color = vec4(albedo.rgb, albedo.a);
#else
color = vec4(1.0f);
#endif
#if (TEXTURE_MASK & TEXTURE_DETAIL_MASK)
// Josh:
// From DetailTexture.cpp -> MODULATE and SCALE * 2
vec3 detail = texture2D(detailSampler, gl_TexCoord[2].xy).rgb;
color.rgb = color.rgb * detail * 2.0f;
#endif
// NS3.3 addition: 1.7 average env_gamma value in NS maps
color.rgb *= 1.7f;
color *= inColor;
if ( fogEnabled )
{
float fogFactor;
if ( fogMode == 2 ) // Exp2
{
fogFactor = exp( -pow( gl_Fog.density * gl_FogFragCoord, 2.0 ) );
}
else if ( fogMode == 1 ) // Exp
{
fogFactor = exp( -gl_Fog.density * gl_FogFragCoord );
}
else // Linear
{
fogFactor = ( gl_Fog.end - gl_FogFragCoord ) * gl_Fog.scale;
}
fogFactor = clamp( fogFactor, 0, 1 );
color.xyz = mix( gl_Fog.color.xyz, color.xyz, fogFactor );
}
}

View File

@ -0,0 +1,14 @@
layout(location = 0) out vec4 color;
void main()
{
gl_Position = ftransform();
gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0; //Albedo
gl_TexCoord[1] = gl_TextureMatrix[1] * gl_MultiTexCoord1; //Lighmap
gl_TexCoord[2] = gl_TextureMatrix[2] * gl_MultiTexCoord2; //Detail
color = gl_Color;
vec4 eyePos = gl_ModelViewMatrix * gl_Vertex;
gl_FogFragCoord = abs( eyePos.z / eyePos.w );
}

View File

@ -1,18 +1,43 @@
"GameMenu"
{
"1"
{
"label" "Apply NS 3.2 config"
"command" "engine nspreset 1"
}
"2"
{
"label" "Apply NS 3.3 config"
"command" "engine nspreset 2"
}
"3"
{
"label" "Apply competitive config"
"command" "engine nspreset 3"
}
"4"
{
"label" ""
"command" ""
}
"5"
{
"label" ""
"command" ""
}
"6"
{
"label" "#GameUI_GameMenu_ResumeGame"
"command" "ResumeGame"
"OnlyInGame" "1"
}
"2"
"7"
{
"label" "#Menu_ReadyRoom"
"command" "engine menureadyroom"
"OnlyInGame" "1"
}
"3"
"8"
{
"label" "#GameUI_GameMenu_Disconnect"
"command" "Disconnect"
@ -37,25 +62,25 @@
// "notmulti" "1"
// "OnlyInGame" "1"
// }
"7"
"9"
{
"label" ""
"command" ""
"notmulti" "1"
}
"8"
"10"
{
"label" "#GameUI_GameMenu_PlayerList"
"command" "OpenPlayerListDialog"
"OnlyInGame" "1"
"notmulti" "0"
}
"9"
"11"
{
"label" "#GameUI_GameMenu_CreateServer"
"command" "OpenCreateMultiplayerGameDialog"
}
"10"
"12"
{
"label" "#GameUI_GameMenu_FindServers"
"command" "OpenServerBrowser"
@ -66,23 +91,23 @@
//"label" "#GameUI_GameMenu_PlayDemo"
//"command" "OpenLoadDemoDialog"
//}
"11"
"13"
{
"label" ""
"command" ""
}
"12"
"14"
{
"label" "#GameUI_GameMenu_ChangeGame"
"command" "OpenChangeGameDialog"
"notsteam" "1"
}
"13"
"15"
{
"label" "#GameUI_GameMenu_Options"
"command" "OpenOptionsDialog"
}
"14"
"16"
{
"label" "#GameUI_GameMenu_Quit"
"command" "Quit"

View File

@ -0,0 +1,80 @@
"Resource\MultiplayerAdvancedDialog.res"
{
"MultiplayerAdvancedDialog"
{
"ControlName" "CTaskFrame"
"fieldName" "MultiplayerAdvancedDialog"
"xpos" "250"
"ypos" "25"
"wide" "700"
"tall" "600"
"AutoResize" "0"
"PinCorner" "0"
"visible" "1"
"enabled" "1"
"tabPosition" "0"
"paintbackground" "1"
"settitlebarvisible" "1"
"title" "#GameUI_MultiplayerAdvanced"
}
"Cancel"
{
"ControlName" "Button"
"fieldName" "Cancel"
"xpos" "616"
"ypos" "562"
"wide" "72"
"tall" "24"
"AutoResize" "0"
"PinCorner" "0"
"visible" "1"
"enabled" "1"
"tabPosition" "2"
"paintbackground" "1"
"labelText" "#GameUI_Cancel"
"textAlignment" "west"
"dulltext" "0"
"brighttext" "0"
"wrap" "0"
"Command" "Close"
"Default" "0"
}
"Ok"
{
"ControlName" "Button"
"fieldName" "OK"
"xpos" "536"
"ypos" "562"
"wide" "72"
"tall" "24"
"AutoResize" "0"
"PinCorner" "0"
"visible" "1"
"enabled" "1"
"tabPosition" "1"
"paintbackground" "1"
"labelText" "#GameUI_OK"
"textAlignment" "west"
"dulltext" "0"
"brighttext" "0"
"wrap" "0"
"Command" "Ok"
"Default" "0"
}
"PanelListPanel"
{
"ControlName" "CPanelListPanel"
"fieldName" "PanelListPanel"
"xpos" "16"
"ypos" "56"
"wide" "670"
"tall" "502"
"AutoResize" "0"
"PinCorner" "0"
"visible" "1"
"enabled" "1"
"tabPosition" "0"
"paintbackground" "1"
}
}

View File

@ -0,0 +1,31 @@
"Resource\MultiplayerAdvancedDia"
{
"MultiplayerAdvancedDialog"
{
"ControlName" "PropertyDialog"
"fieldName" "MultiplayerAdvancedDialog"
"xpos" "0"
"ypos" "0"
"wide" "728"
"tall" "536"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"tabPosition" "0"
}
"PanelListPanel"
{
"ControlName" "CPanelListPanel"
"fieldName" "PanelListPanel"
"xpos" "10"
"ypos" "10"
"wide" "713"
"tall" "516"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"tabPosition" "0"
}
}

View File

@ -0,0 +1,312 @@
"Resource/OptionsSubMultiplayer.res"
{
"Advanced"
{
"ControlName" "Button"
"fieldName" "Advanced"
"xpos" "32"
"ypos" "22"
"tooltiptext" ""
"wide" "440"
"tall" "80"
"AutoResize" "0"
"PinCorner" "0"
"visible" "1"
"enabled" "1"
"tabPosition" "1"
"paintbackground" "1"
"labelText" "#GameUI_AdvancedEllipsis"
"textAlignment" "center"
"dulltext" "0"
"brighttext" "0"
"wrap" "0"
"Command" "Advanced"
"Default" "0"
}
"NameLabel"
{
"ControlName" "Label"
"fieldName" "NameLabel"
"xpos" "230"
"ypos" "144"
"wide" "144"
"tall" "24"
"AutoResize" "0"
"PinCorner" "0"
"visible" "1"
"enabled" "1"
"tabPosition" "0"
"paintbackground" "1"
"labelText" "#GameUI_PlayerName"
"textAlignment" "west"
"associate" "NameEntry"
"dulltext" "0"
"brighttext" "0"
"wrap" "0"
}
"NameEntry"
{
"ControlName" "CCvarTextEntry"
"fieldName" "NameEntry"
"xpos" "230"
"ypos" "174"
"wide" "240"
"tall" "24"
"AutoResize" "0"
"PinCorner" "0"
"visible" "1"
"enabled" "1"
"tabPosition" "2"
"paintbackground" "1"
"textHidden" "0"
"editable" "1"
"maxchars" "63"
"NumericInputOnly" "0"
"unicode" "1"
}
"Primary Color Slider"
{
"ControlName" "CCvarSlider"
"fieldName" "Primary Color Slider"
"xpos" "0"
"ypos" "0"
"wide" "42"
"tall" "16"
"AutoResize" "0"
"PinCorner" "0"
"visible" "0"
"enabled" "0"
"tabPosition" "0"
"paintbackground" "1"
"leftText" "0.00"
"rightText" "255.00"
}
"Secondary Color Slider"
{
"ControlName" "CCvarSlider"
"fieldName" "Secondary Color Slider"
"xpos" "0"
"ypos" "0"
"wide" "42"
"tall" "16"
"AutoResize" "0"
"PinCorner" "0"
"visible" "0"
"enabled" "0"
"tabPosition" "0"
"paintbackground" "1"
"leftText" "0.00"
"rightText" "255.00"
}
"High Quality Models"
{
"ControlName" "CCvarToggleCheckButton"
"fieldName" "High Quality Models"
"xpos" "162"
"ypos" "280"
"wide" "204"
"tall" "24"
"AutoResize" "0"
"PinCorner" "0"
"visible" "0"
"enabled" "0"
"tabPosition" "0"
"paintbackground" "0"
"labelText" "#GameUI_HighModels"
"textAlignment" "west"
"dulltext" "0"
"brighttext" "0"
"wrap" "0"
"Default" "0"
}
"Player model"
{
"ControlName" "CLabeledCommandComboBox"
"fieldName" "Player model"
"xpos" "0"
"ypos" "0"
"wide" "42"
"tall" "16"
"AutoResize" "0"
"PinCorner" "0"
"visible" "0"
"enabled" "0"
"tabPosition" "0"
"paintbackground" "1"
"textHidden" "0"
"editable" "0"
"maxchars" "-1"
"NumericInputOnly" "0"
"unicode" "0"
}
"Label2"
{
"ControlName" "Label"
"fieldName" "Label2"
"xpos" "230"
"ypos" "216"
"wide" "140"
"tall" "24"
"AutoResize" "0"
"PinCorner" "0"
"visible" "1"
"enabled" "1"
"tabPosition" "0"
"paintbackground" "1"
"labelText" "#GameUI_SpraypaintImage"
"textAlignment" "west"
"associate" "SpraypaintList"
"dulltext" "0"
"brighttext" "0"
"wrap" "0"
}
"SpraypaintList"
{
"ControlName" "CLabeledCommandComboBox"
"fieldName" "SpraypaintList"
"xpos" "230"
"ypos" "244"
"wide" "240"
"tall" "24"
"AutoResize" "0"
"PinCorner" "0"
"visible" "1"
"enabled" "1"
"tabPosition" "3"
"paintbackground" "1"
"textHidden" "0"
"editable" "0"
"maxchars" "-1"
"NumericInputOnly" "0"
"unicode" "0"
}
"SpraypaintColor"
{
"ControlName" "CLabeledCommandComboBox"
"fieldName" "SpraypaintColor"
"xpos" "230"
"ypos" "274"
"wide" "240"
"tall" "24"
"AutoResize" "0"
"PinCorner" "0"
"visible" "1"
"enabled" "1"
"tabPosition" "4"
"paintbackground" "1"
"textHidden" "0"
"editable" "0"
"maxchars" "-1"
"NumericInputOnly" "0"
"unicode" "0"
}
"ModelImage"
{
"ControlName" "Panel"
"fieldName" "ModelImage"
"xpos" "0"
"ypos" "0"
"wide" "66"
"tall" "66"
"AutoResize" "0"
"PinCorner" "0"
"visible" "0"
"enabled" "0"
"tabPosition" "0"
"paintbackground" "1"
}
"LogoImage"
{
"ControlName" "Panel"
"fieldName" "LogoImage"
"xpos" "132"
"ypos" "234"
"wide" "64"
"tall" "64"
"AutoResize" "0"
"PinCorner" "0"
"visible" "1"
"enabled" "1"
"tabPosition" "0"
"paintbackground" "1"
}
"Ok"
{
"ControlName" "Button"
"fieldName" "OK"
"xpos" "0"
"ypos" "0"
"wide" "42"
"tall" "16"
"AutoResize" "0"
"PinCorner" "0"
"visible" "0"
"enabled" "0"
"tabPosition" "0"
"paintbackground" "1"
"labelText" "#GameUI_OK"
"textAlignment" "west"
"dulltext" "0"
"brighttext" "0"
"wrap" "0"
"Default" "0"
}
"Apply"
{
"ControlName" "Button"
"fieldName" "Apply"
"xpos" "0"
"ypos" "0"
"wide" "42"
"tall" "16"
"AutoResize" "0"
"PinCorner" "0"
"visible" "0"
"enabled" "0"
"tabPosition" "0"
"paintbackground" "1"
"labelText" "#GameUI_Apply"
"textAlignment" "west"
"dulltext" "0"
"brighttext" "0"
"wrap" "0"
"Default" "0"
}
"Cancel"
{
"ControlName" "Button"
"fieldName" "Cancel"
"xpos" "0"
"ypos" "0"
"wide" "42"
"tall" "16"
"AutoResize" "0"
"PinCorner" "0"
"visible" "0"
"enabled" "0"
"tabPosition" "0"
"paintbackground" "1"
"labelText" "#GameUI_Cancel"
"textAlignment" "west"
"dulltext" "0"
"brighttext" "0"
"wrap" "0"
"Default" "0"
}
"Divider1"
{
"ControlName" "Divider"
"fieldName" "Divider1"
"xpos" "32"
"ypos" "126"
"wide" "440"
"tall" "1"
"AutoResize" "0"
"PinCorner" "0"
"visible" "1"
"enabled" "1"
"tabPosition" "0"
"paintbackground" "1"
}
}

View File

@ -174,7 +174,7 @@ Scheme
"ArmedMenuColor" "255 255 255 255"
"DepressedMenuColor" "192 186 80 255"
"WidescreenBarColor" "0 0 0 0"
"MenuItemVisibilityRate" "0.03" // time it takes for one menu item to appear
"MenuItemVisibilityRate" "0.01" // time it takes for one menu item to appear
"MenuItemHeight" "28"
"GameMenuInset" "32"
}

Binary file not shown.

View File

@ -219,6 +219,7 @@ void CHud :: Init( void )
CVAR_CREATE( "cl_icong", "149", FCVAR_ARCHIVE);
CVAR_CREATE( "cl_iconb", "221", FCVAR_ARCHIVE);
CVAR_CREATE("hud_style", "1", FCVAR_ARCHIVE);
CVAR_CREATE("cl_weaponswap", "2", FCVAR_ARCHIVE | FCVAR_USERINFO);
CVAR_CREATE("hud_teamhealthalert", "95", FCVAR_ARCHIVE);
CVAR_CREATE("hud_mapnames", "5", FCVAR_ARCHIVE);
@ -366,7 +367,7 @@ void CHud :: VidInit( void )
m_iRes = 640;
// Only load this once
if ( !m_pSpriteList )
if ( !m_pSpriteList || gHUD.GetReInitHUD())
{
// we need to load the hud.txt, and all sprites within
if (CVAR_GET_FLOAT("hud_style") == 2.0f)

View File

@ -142,7 +142,6 @@ cvar_t *cl_particleinfo;
cvar_t *cl_widescreen;
cvar_t *cl_ambientsound;
cvar_t *senslock;
cvar_t *hud_style;
cvar_t *cl_chatbeep;
cvar_t *cl_mutemenu;
cvar_t *cl_weaponcfgs;
@ -1531,6 +1530,47 @@ void EchoDev(void)
gEngfuncs.Con_Printf("%s\n", gEngfuncs.Cmd_Argv(1));
}
void NsPreset(void)
{
int presetChoice = atoi(gEngfuncs.Cmd_Argv(1));
int printMethod = gViewPort ? HUD_PRINTTALK : HUD_PRINTCONSOLE;
const char* inGameAdditional = (printMethod == HUD_PRINTTALK) ? " See console for details." : "";
char execText[1024];
//char localizedText[1024];
inGameAdditional = gViewPort ? " See console for details." : "";
switch (presetChoice)
{
case 1:
ClientCmd("exec 32av.cfg");
//Localize later.
//sprintf(localizedText, CHudTextMessage::BufferedLocaliseTextString("#Preset1"));
snprintf(execText, 1024, "%c** %s%s\n", printMethod, "Classic NS audio/visual presets applied.", inGameAdditional);
gHUD.m_TextMessage.MsgFunc_TextMsg(NULL, (int)strlen(execText) + 1, execText);
break;
case 2:
ClientCmd("exec 33av.cfg");
//Localize later.
//sprintf(localizedText, CHudTextMessage::BufferedLocaliseTextString("#Preset2"));
sprintf(execText, "%c** %s%s\n", printMethod, "NS 3.3 audio/visual presets applied. See console for details.", inGameAdditional);
gHUD.m_TextMessage.MsgFunc_TextMsg(NULL, (int)strlen(execText) + 1, execText);
break;
case 3:
ClientCmd("exec compav.cfg");
//Localize later.
//sprintf(localizedText, CHudTextMessage::BufferedLocaliseTextString("#Preset3"));
sprintf(execText, "%c** %s%s\n", printMethod, "Competive audio/visual presets applied. See console for details.", inGameAdditional);
gHUD.m_TextMessage.MsgFunc_TextMsg(NULL, (int)strlen(execText) + 1, execText);
break;
default:
gEngfuncs.Con_Printf("NS configuration preset selector. Useage:\n1: apply NS 3.2 settings\n2: apply NS 3.3 settings\n3: apply competitive settings\n");
}
}
/*
============
InitInput
@ -1605,6 +1645,7 @@ void InitInput (void)
gEngfuncs.pfnAddCommand("nsversion", NsVersion);
gEngfuncs.pfnAddCommand("echodev", EchoDev);
gEngfuncs.pfnAddCommand("nspreset", NsPreset);
lookstrafe = gEngfuncs.pfnRegisterVariable ( "lookstrafe", "0", FCVAR_ARCHIVE );
lookspring = gEngfuncs.pfnRegisterVariable ( "lookspring", "0", FCVAR_ARCHIVE );
@ -1629,8 +1670,8 @@ void InitInput (void)
cl_autohelp = gEngfuncs.pfnRegisterVariable ( kvAutoHelp, "1.0", FCVAR_ARCHIVE );
cl_centerentityid = gEngfuncs.pfnRegisterVariable ( kvCenterEntityID, "0.0", FCVAR_ARCHIVE );
cl_musicenabled = gEngfuncs.pfnRegisterVariable ( kvMusicEnabled, "0", FCVAR_ARCHIVE );
cl_musicvolume = gEngfuncs.pfnRegisterVariable ( kvMusicVolume, "1", FCVAR_ARCHIVE );
cl_musicenabled = gEngfuncs.pfnRegisterVariable ( kvMusicEnabled, "1", FCVAR_ARCHIVE );
cl_musicvolume = gEngfuncs.pfnRegisterVariable ( kvMusicVolume, "0.6", FCVAR_ARCHIVE );
cl_musicdir = gEngfuncs.pfnRegisterVariable ( kvMusicDirectory, "", FCVAR_ARCHIVE);
cl_musicdelay = gEngfuncs.pfnRegisterVariable ( kvMusicDelay, "90", FCVAR_ARCHIVE);
cl_dynamiclights = gEngfuncs.pfnRegisterVariable ( kvDynamicLights, "1", FCVAR_ARCHIVE );
@ -1641,9 +1682,8 @@ void InitInput (void)
//cl_forcedefaultfov = gEngfuncs.pfnRegisterVariable ( kvForceDefaultFOV, "0", FCVAR_ARCHIVE );
cl_particleinfo = gEngfuncs.pfnRegisterVariable ( kvParticleInfo, "0", FCVAR_ARCHIVE );
cl_widescreen = gEngfuncs.pfnRegisterVariable ( kvWidescreen, "1", FCVAR_ARCHIVE );
cl_ambientsound = gEngfuncs.pfnRegisterVariable ( kvAmbientSound, "0", FCVAR_ARCHIVE);
cl_ambientsound = gEngfuncs.pfnRegisterVariable ( kvAmbientSound, "0.6", FCVAR_ARCHIVE);
senslock = gEngfuncs.pfnRegisterVariable ("senslock", "0", FCVAR_ARCHIVE);
hud_style = gEngfuncs.pfnRegisterVariable ("hud_style", "1", FCVAR_ARCHIVE);
cl_chatbeep = gEngfuncs.pfnRegisterVariable ("cl_chatbeep", "1", FCVAR_ARCHIVE);
cl_mutemenu = gEngfuncs.pfnRegisterVariable ("cl_mutemenu", "3", FCVAR_ARCHIVE);
cl_weaponcfgs = gEngfuncs.pfnRegisterVariable ("cl_weaponcfgs", "1", FCVAR_ARCHIVE);

View File

@ -2309,6 +2309,10 @@ void V_Init (void)
cl_waterdist = gEngfuncs.pfnRegisterVariable( "cl_waterdist","4", 0 );
cl_hudcam = gEngfuncs.pfnRegisterVariable( "cl_hudcam", "1", 0 );
cl_chasedist = gEngfuncs.pfnRegisterVariable( "cl_chasedist", "200", 0 );
// lightgamma doesn't save to config.cfg otherwise.
cvar_t* lightgamma = gEngfuncs.pfnGetCvarPointer("lightgamma");
lightgamma->flags |= FCVAR_ARCHIVE;
}

View File

@ -1395,6 +1395,12 @@ bool AvHHud::Update(float inCurrentTime, string& outErrorString)
this->mTimeOfCurrentUpdate = inCurrentTime;
if (CVAR_GET_FLOAT("hud_style") != this->mLastHudStyle)
{
this->mReInitHUD = true;
gHUD.VidInit();
}
// Predict game time
if(this->GetGameStarted())
{
@ -3847,6 +3853,9 @@ void AvHHud::Init(void)
this->mDrawCombatUpgradeMenu = false;
this->mDrawOrderOverlay = true;
this->mReInitHUD = false;
this->mLastHudStyle = 0;
// Initialize viewport
this->mViewport[0] = this->mViewport[1] = this->mViewport[2] = this->mViewport[3] = 0;
}
@ -7358,6 +7367,15 @@ void AvHHud::SetDrawOrderOverlay(bool drawOverlay)
mDrawOrderOverlay = drawOverlay;
}
bool AvHHud::GetReInitHUD() const
{
return this->mReInitHUD;
}
void AvHHud::SetReInitHUD(bool setInit)
{
mReInitHUD = setInit;
}
/**
* Prints the call stack when an unhandled exception occurs.

View File

@ -451,6 +451,9 @@ public:
bool GetDrawOrderOverlay() const;
void SetDrawOrderOverlay(bool drawOverlay);
bool GetReInitHUD() const;
void SetReInitHUD(bool setInit);
private:
// :
@ -876,6 +879,9 @@ private:
static bool sShowMap;
bool mReInitHUD;
float mLastHudStyle;
};
#endif

View File

@ -4455,7 +4455,15 @@ void AvHHud::VidInit(void)
{
UIHud::VidInit();
mOverviewMap.VidInit();
// Don't reinitialize the minimap when swapping hud styles.
if (!this->mReInitHUD)
{
mOverviewMap.VidInit();
}
float hudStyle = CVAR_GET_FLOAT("hud_style");
this->mLastHudStyle = hudStyle;
this->mReInitHUD = false;
int theScreenWidth = ScreenWidth();
string theSpriteName;
@ -4466,7 +4474,7 @@ void AvHHud::VidInit(void)
// theSpriteName = UINameToSprite(kHiveSprite, theScreenWidth);
// this->mAlienUIHiveSprite = SPR_Load(theSpriteName.c_str());
int i = 0;
// int i = 0;
// for(i = 0; i < kNumAlienLifeforms; i++)
// {
// char theBaseName[128];
@ -4475,7 +4483,7 @@ void AvHHud::VidInit(void)
// this->mAlienUILifeforms[i] = SPR_Load(theSpriteName.c_str());
// }
if (CVAR_GET_FLOAT("hud_style") == 2.0f)
if (hudStyle == 2.0f)
{
this->mAlienUIUpgrades = SPR_Load(kAlienUpgradeSpriteNL);
this->mAlienUIEnergySprite = SPR_Load(kAlienEnergySpriteNL);
@ -4494,7 +4502,7 @@ void AvHHud::VidInit(void)
this->mMarineOrderIndicator = SPR_Load(kMarineOrderSpriteNL);
this->mMarineUpgradesSprite = SPR_Load(kMarineUpgradesSpriteNL);
}
else if (CVAR_GET_FLOAT("hud_style") == 1.0f)
else if (hudStyle == 1.0f)
{
char theBaseName[128];
sprintf(theBaseName, "%s", kAlienUpgradeSprite);

View File

@ -1,26 +1,2 @@
// Add your own configuration options in this file
// This file will not be rewritten as config.cfg will
//Some commands placed here as default via NS Launcher installation because they are deleted/overwritten in config.cfg otherwise
//Brighter lighting
lightgamma "2"
//brightness "5" //part of new default config
//gamma "3" //part of new default config
//Allow FPS above 100
fps_override "1"
gl_vsync "0"
//Network rates for the 21st century
rate "30000"
cl_updaterate "100"
cl_cmdrate "100"
ex_interp "0.05"
//Pistol script - toggled with P key
alias "+pscript" "+attack"
alias "-pscript" "-attack;wait;+attack;wait;wait;-attack"
alias pson "bind mouse1 +pscript;bind p psoff"
alias psoff "bind mouse1 +attack;bind p pson"
bind p "pson"