write +moveleft etc to configs ONLY if they were explicitly +fooed, and not just because someone was still holding a key on a map change.
moved various config saving options to features, buttons saving is now disabled by default. git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5239 fc73d0e0-1445-4013-8a0c-d673dee63da5
This commit is contained in:
parent
1490d00793
commit
ce4d162f31
3 changed files with 46 additions and 25 deletions
|
@ -185,7 +185,7 @@ static void KeyDown (kbutton_t *b, kbutton_t *anti)
|
|||
b->down[pnum][1] = k;
|
||||
else
|
||||
{
|
||||
Con_Printf ("Three keys down for a button!\n");
|
||||
Con_DPrintf ("Three keys down for a button!\n");
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -379,20 +379,20 @@ void IN_WriteButtons(vfsfile_t *f, qboolean all)
|
|||
VFS_PRINTF(f, "\n//Player 1 buttons\n");
|
||||
for (b = 0; b < countof(buttons); b++)
|
||||
{
|
||||
if (buttons[b].button->state[s]&1)
|
||||
if ((buttons[b].button->state[s]&1) && (buttons[b].button->down[s][0]==-1 || buttons[b].button->down[s][1]==-1))
|
||||
VFS_PRINTF(f, "+%s\n", buttons[b].name);
|
||||
else if (b || all)
|
||||
VFS_PRINTF(f, "-%s\n", buttons[b].name);
|
||||
}
|
||||
for (; s < MAX_SPLITS; s++)
|
||||
for (s = 1; s < MAX_SPLITS; s++)
|
||||
{
|
||||
VFS_PRINTF(f, "\n//Player %i buttons\n", s+1);
|
||||
VFS_PRINTF(f, "\n//Player %i buttons\n", s);
|
||||
for (b = 0; b < countof(buttons); b++)
|
||||
{
|
||||
if (buttons[b].button->state[s]&1)
|
||||
VFS_PRINTF(f, "+p%i %s\n", s+1, buttons[b].name);
|
||||
if ((buttons[b].button->state[s]&1) && (buttons[b].button->down[s][0]==-1 || buttons[b].button->down[s][1]==-1))
|
||||
VFS_PRINTF(f, "+p%i %s\n", s, buttons[b].name);
|
||||
else if (b || all)
|
||||
VFS_PRINTF(f, "-p%i %s\n", s+1, buttons[b].name);
|
||||
VFS_PRINTF(f, "-p%i %s\n", s, buttons[b].name);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -52,6 +52,11 @@ cmdalias_t *cmd_alias;
|
|||
|
||||
cvar_t cfg_save_all = CVARFD("cfg_save_all", "", CVAR_ARCHIVE|CVAR_NOTFROMSERVER, "If 1, cfg_save ALWAYS saves all cvars. If 0, cfg_save only ever saves archived cvars. If empty, cfg_save saves all cvars only when an explicit filename was given (ie: when not used internally via quit menu options).");
|
||||
cvar_t cfg_save_auto = CVARFD("cfg_save_auto", "0", CVAR_ARCHIVE|CVAR_NOTFROMSERVER, "If 1, the config will automatically be saved and without prompts. If 0, you'll have to save your config manually (possibly via prompts from the quit menu).");
|
||||
cvar_t cfg_save_infos = CVARFD("cfg_save_infos", "1", CVAR_ARCHIVE|CVAR_NOTFROMSERVER, "If 1, saves userinfo and serverinfo to configs.");
|
||||
cvar_t cfg_save_aliases = CVARFD("cfg_save_aliases", "1", CVAR_ARCHIVE|CVAR_NOTFROMSERVER, "If 1, saves userinfo and serverinfo to configs.");
|
||||
cvar_t cfg_save_binds = CVARFD("cfg_save_binds", "1", CVAR_ARCHIVE|CVAR_NOTFROMSERVER, "If 1, saves all key bindings to configs.");
|
||||
cvar_t cfg_save_buttons = CVARFD("cfg_save_buttons", "0", CVAR_ARCHIVE|CVAR_NOTFROMSERVER, "If 1, saves the state of things such as +mlook or +forward to configs.");
|
||||
|
||||
cvar_t cl_warncmd = CVARF("cl_warncmd", "1", CVAR_NOSAVE|CVAR_NORESET);
|
||||
cvar_t cl_aliasoverlap = CVARF("cl_aliasoverlap", "1", CVAR_NOTFROMSERVER);
|
||||
|
||||
|
@ -3785,7 +3790,6 @@ void Cmd_WriteConfig_f(void)
|
|||
char fname[MAX_QPATH];
|
||||
char sysname[MAX_OSPATH];
|
||||
qboolean all = true;
|
||||
extern cvar_t cfg_save_all;
|
||||
|
||||
if (Cmd_IsInsecure() && Cmd_Argc() > 1)
|
||||
{
|
||||
|
@ -3832,18 +3836,23 @@ void Cmd_WriteConfig_f(void)
|
|||
|
||||
VFS_PRINTF(f, "// %s config file\n\n", *fs_gamename.string?fs_gamename.string:FULLENGINENAME);
|
||||
#ifndef SERVERONLY
|
||||
Key_WriteBindings (f);
|
||||
IN_WriteButtons(f, all);
|
||||
CL_SaveInfo(f);
|
||||
if (cfg_save_binds.ival)
|
||||
Key_WriteBindings (f);
|
||||
if (cfg_save_buttons.ival)
|
||||
IN_WriteButtons(f, all);
|
||||
if (cfg_save_infos.ival)
|
||||
CL_SaveInfo(f);
|
||||
#else
|
||||
VFS_WRITE(f, "// Dedicated Server config\n\n", 28);
|
||||
#endif
|
||||
#ifdef CLIENTONLY
|
||||
VFS_WRITE(f, "// no local/server infos\n\n", 26);
|
||||
#else
|
||||
SV_SaveInfos(f);
|
||||
if (cfg_save_infos.ival)
|
||||
SV_SaveInfos(f);
|
||||
#endif
|
||||
Alias_WriteAliases (f);
|
||||
if (cfg_save_aliases.ival)
|
||||
Alias_WriteAliases (f);
|
||||
Cvar_WriteVariables (f, all);
|
||||
VFS_CLOSE(f);
|
||||
|
||||
|
@ -4100,6 +4109,10 @@ void Cmd_Init (void)
|
|||
Cvar_Register (&cl_warncmd, "Warnings");
|
||||
Cvar_Register (&cfg_save_all, "client operation options");
|
||||
Cvar_Register (&cfg_save_auto, "client operation options");
|
||||
Cvar_Register (&cfg_save_infos, "client operation options");
|
||||
Cvar_Register (&cfg_save_aliases, "client operation options");
|
||||
Cvar_Register (&cfg_save_binds, "client operation options");
|
||||
Cvar_Register (&cfg_save_buttons, "client operation options");
|
||||
|
||||
#ifndef SERVERONLY
|
||||
rcon_level.ival = atof(rcon_level.enginevalue); //client is restricted to not be allowed to change restrictions.
|
||||
|
|
|
@ -2664,7 +2664,7 @@ static void BE_DrawMeshChain_Internal(void)
|
|||
BindTexture(passno, shaderstate.fogtexture);
|
||||
BE_ApplyTMUState(passno, shaderstate.curtexflags[passno]);
|
||||
|
||||
Vector4Set((qbyte*)&shaderstate.passcolour, r_refdef.globalfog.colour[2]*255, r_refdef.globalfog.colour[1]*255, r_refdef.globalfog.colour[0]*255, r_refdef.globalfog.colour[3]*255);
|
||||
Vector4Set((qbyte*)&shaderstate.passcolour, r_refdef.globalfog.colour[2]*255, r_refdef.globalfog.colour[1]*255, r_refdef.globalfog.colour[0]*255, r_refdef.globalfog.alpha*255);
|
||||
IDirect3DDevice9_SetTextureStageState(pD3DDev9, passno, D3DTSS_CONSTANT, shaderstate.passcolour);
|
||||
IDirect3DDevice9_SetRenderState(pD3DDev9, D3DRS_COLORVERTEX, FALSE);
|
||||
IDirect3DDevice9_SetTextureStageState(pD3DDev9, passno, D3DTSS_COLORARG1, D3DTA_CONSTANT);
|
||||
|
@ -3862,20 +3862,28 @@ void D3D9BE_BaseEntTextures(void)
|
|||
|
||||
void D3D9BE_RenderShadowBuffer(unsigned int numverts, IDirect3DVertexBuffer9 *vbuf, unsigned int numindicies, IDirect3DIndexBuffer9 *ibuf)
|
||||
{
|
||||
float pushdepth = shaderstate.curshader->polyoffset.factor;
|
||||
polyoffset_t po = shaderstate.curshader->polyoffset;
|
||||
#ifdef BEF_PUSHDEPTH
|
||||
extern cvar_t r_polygonoffset_submodel_factor;
|
||||
// if (shaderstate.flags & BEF_PUSHDEPTH)
|
||||
pushdepth += r_polygonoffset_submodel_factor.value;
|
||||
#endif
|
||||
// D3D9BE_Cull(0);//shaderstate.curshader->flags & (SHADER_CULL_FRONT | SHADER_CULL_BACK));
|
||||
pushdepth /= 0xffff;
|
||||
|
||||
if (pushdepth != shaderstate.depthbias)
|
||||
if (shaderstate.flags & BEF_PUSHDEPTH)
|
||||
{
|
||||
shaderstate.depthbias = pushdepth;
|
||||
IDirect3DDevice9_SetRenderState(pD3DDev9, D3DRS_DEPTHBIAS, *(DWORD*)&shaderstate.depthbias);
|
||||
extern cvar_t r_polygonoffset_submodel_factor, r_polygonoffset_submodel_offset;
|
||||
po.factor += r_polygonoffset_submodel_factor.value;
|
||||
po.unit += r_polygonoffset_submodel_offset.value;
|
||||
}
|
||||
#endif
|
||||
if (po.factor != shaderstate.curpolyoffset.factor)
|
||||
{
|
||||
shaderstate.curpolyoffset.factor = po.factor;
|
||||
IDirect3DDevice9_SetRenderState(pD3DDev9, D3DRS_SLOPESCALEDEPTHBIAS, *(DWORD*)&po.factor);
|
||||
}
|
||||
if (po.unit != shaderstate.curpolyoffset.unit)
|
||||
{
|
||||
shaderstate.curpolyoffset.unit = po.unit;
|
||||
po.unit *= shaderstate.gltod3d_depthunit;
|
||||
IDirect3DDevice9_SetRenderState(pD3DDev9, D3DRS_DEPTHBIAS, *(DWORD*)&po.unit);
|
||||
}
|
||||
|
||||
// D3D9BE_Cull(0);
|
||||
|
||||
|
||||
IDirect3DDevice9_SetStreamSource(pD3DDev9, STRM_VERT, vbuf, 0, sizeof(vecV_t));
|
||||
|
|
Loading…
Reference in a new issue