bugfix patch:

prevent shift+alt from triggering the menu while in demo playback. hopefully solve toggleconsole issues on german keymaps.
gl_texturemode2d is now in presets, using nearest in vanilla preset.
waterwarp edge textures now force linear sampling. no weird blocky edges.
fix serverflags reset issue on saved games.
fix $currentrender to not glitch on fbos too much.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4720 fc73d0e0-1445-4013-8a0c-d673dee63da5
This commit is contained in:
Spoike 2014-08-16 05:33:50 +00:00
parent 362d8f820f
commit 583d8aa46c
6 changed files with 44 additions and 15 deletions

View File

@ -6056,14 +6056,14 @@ void CLQW_ParseServerMessage (void)
case svcqw_updatestatbyte:
i = MSG_ReadByte ();
j = MSG_ReadByte ();
CL_SetStatInt (destsplit, i, j);
CL_SetStatFloat (destsplit, i, j);
CL_SetStatInt (destsplit, i, j);
break;
case svcqw_updatestatlong:
i = MSG_ReadByte ();
j = MSG_ReadLong (); //make qbyte if nq compatability?
CL_SetStatInt (destsplit, i, j);
CL_SetStatFloat (destsplit, i, j);
CL_SetStatInt (destsplit, i, j);
break;
case svcfte_updatestatstring:

View File

@ -2076,10 +2076,26 @@ void Key_Event (int devid, int key, unsigned int unicode, qboolean down)
//
// during demo playback, most keys bring up the main menu
//
if (cls.demoplayback && cls.demoplayback != DPB_MVD && cls.demoplayback != DPB_EZTV && down && conkey && key != K_TAB && !Key_Dest_Has(~kdm_game))
if (cls.demoplayback && cls.demoplayback != DPB_MVD && cls.demoplayback != DPB_EZTV && down && conkey && !Key_Dest_Has(~kdm_game))
{
M_ToggleMenu_f ();
return;
switch (key)
{ //these keys don't force the menu to appear while playing the demo reel
case K_LSHIFT:
case K_RSHIFT:
case K_LALT:
case K_RALT:
case K_LCTRL:
// case K_RCTRL:
break;
default:
dc = keybindings[key][modifierstate];
//toggleconsole or +showFOO keys should do their regular bind action
if (!dc || (strcmp(dc, "toggleconsole") && strncmp(dc, "+show", 5)))
{
M_ToggleMenu_f ();
return;
}
}
}
//

View File

@ -545,6 +545,7 @@ const char *presetexec[] =
// 286 options (also the first commands to be execed in the chain)
"seta m_preset_chosen 1;"
"seta gl_texturemode nn;"
"seta gl_texturemode2d n;"
"seta gl_blendsprites 0;"
"seta r_particlesystem null;"
"seta r_particledesc \"\";"
@ -584,6 +585,7 @@ const char *presetexec[] =
, // fast options
"gl_texturemode ln;"
"gl_texturemode2d n;"
"r_particlesystem classic;"
"r_particledesc classic;"
"r_drawflat 0;"
@ -607,7 +609,9 @@ const char *presetexec[] =
"cl_rollangle 2.0;"
"cl_bob 0.02;"
//these things are perhaps a little extreme
"r_loadlit 0;"
"gl_texturemode nn;" //yup, we went there.
"gl_texturemode2d n;" //yeah, 2d too.
"r_part_classic_square 1;" //blocky baby!
"cl_sbar 1;" //its a style thing
"sv_nqplayerphysics 1;" //gb wanted this
@ -627,9 +631,11 @@ const char *presetexec[] =
"r_coronas 1;"
"r_lerpmuzzlehack 1;"
"gl_texturemode ln;"
"gl_texturemode2d l;"
"cl_sbar 0;"
"sv_nqplayerphysics 0;"
"cl_demoreel 0;"
"r_loadlit 1;"
, // nice options
"r_stains 0.75;"

View File

@ -1002,23 +1002,25 @@ int GLBE_SetupForShadowMap(texid_t shadowmaptex, int texwidth, int texheight, fl
static void T_Gen_CurrentRender(int tmu)
{
int vwidth, vheight;
int pwidth = vid.fbpwidth;
int pheight = vid.fbpheight;
if (r_refdef.recurse)
return;
if (r_config.texture_non_power_of_two)
{
vwidth = vid.pixelwidth;
vheight = vid.pixelheight;
vwidth = pwidth;
vheight = pheight;
}
else
{
vwidth = 1;
vheight = 1;
while (vwidth < vid.pixelwidth)
while (vwidth < pwidth)
{
vwidth *= 2;
}
while (vheight < vid.pixelheight)
while (vheight < pheight)
{
vheight *= 2;
}

View File

@ -159,8 +159,8 @@ void GL_SetupSceneProcessingTextures (void)
if (!gl_config.arb_shader_objects)
return;
TEXASSIGN(scenepp_texture_warp, GL_AllocNewTexture("***postprocess_warp***", PP_WARP_TEX_SIZE, PP_WARP_TEX_SIZE, IF_NOMIPMAP|IF_NOGAMMA));
TEXASSIGN(scenepp_texture_edge, GL_AllocNewTexture("***postprocess_edge***", PP_WARP_TEX_SIZE, PP_WARP_TEX_SIZE, IF_NOMIPMAP|IF_NOGAMMA));
TEXASSIGN(scenepp_texture_warp, GL_AllocNewTexture("***postprocess_warp***", PP_WARP_TEX_SIZE, PP_WARP_TEX_SIZE, IF_NOMIPMAP|IF_NOGAMMA|IF_LINEAR));
TEXASSIGN(scenepp_texture_edge, GL_AllocNewTexture("***postprocess_edge***", PP_WARP_TEX_SIZE, PP_WARP_TEX_SIZE, IF_NOMIPMAP|IF_NOGAMMA|IF_LINEAR));
// init warp texture - this specifies offset in
for (y=0; y<PP_WARP_TEX_SIZE; y++)

View File

@ -717,7 +717,6 @@ qboolean SV_LoadLevelCache(char *savename, char *level, char *startspot, qboolea
PR_LoadGlabalStruct();
pr_global_struct->serverflags = svs.serverflags;
pr_global_struct->time = sv.time = sv.world.physicstime = time;
sv.starttime = Sys_DoubleTime() - sv.time;
@ -1094,6 +1093,8 @@ void SV_Savegame (char *savename)
VFS_PRINTF (f, "%s\n", sv.name);
VFS_PRINTF (f, "%g\n", (float)svs.serverflags);
VFS_CLOSE(f);
#ifdef Q2SERVER
@ -1225,9 +1226,9 @@ void SV_Loadgame_f (void)
for (trim = str+strlen(str)-1; trim>=str && *trim <= ' '; trim--)
*trim='\0';
for (trim = str; *trim <= ' ' && *trim; trim++)
if (*str == '(')
cl->spawn_parms[len] = atof(str);
;
if (*trim == '(')
cl->spawn_parms[len] = atof(trim+1);
else
{
version = atoi(str);
@ -1320,6 +1321,10 @@ void SV_Loadgame_f (void)
for (trim = str; *trim <= ' ' && *trim; trim++)
;
//serverflags is reset on restart, so we need to read the value as it was at the start of the current map.
VFS_GETS(f, filename, sizeof(filename)-1);
svs.serverflags = atof(filename);
VFS_CLOSE(f);
#ifdef Q2SERVER