From 1043641af100392735966f29edf7e72b0f730372 Mon Sep 17 00:00:00 2001 From: g-cont Date: Sun, 2 Apr 2017 00:00:00 +0300 Subject: [PATCH] 02 Apr 2017 --- engine/client/cl_pmove.c | 2 +- engine/client/gl_local.h | 1 + engine/client/gl_rlight.c | 16 ++++++++++++---- engine/client/gl_rmain.c | 2 +- engine/client/gl_studio.c | 10 ++++++++-- engine/common/cvar.c | 10 +++++----- engine/common/host.c | 5 ++--- engine/engine.dsp | 2 +- engine/server/sv_game.c | 3 +-- 9 files changed, 32 insertions(+), 19 deletions(-) diff --git a/engine/client/cl_pmove.c b/engine/client/cl_pmove.c index 971a86ce..03b8aaf3 100644 --- a/engine/client/cl_pmove.c +++ b/engine/client/cl_pmove.c @@ -371,7 +371,7 @@ static void CL_CopyEntityToPhysEnt( physent_t *pe, entity_state_t *state, qboole } else { - if( pe->solid != SOLID_BSP && mod->type == mod_studio ) + if( pe->solid != SOLID_BSP && Mod_GetType( state->modelindex ) == mod_studio ) pe->studiomodel = mod; else pe->model = mod; } diff --git a/engine/client/gl_local.h b/engine/client/gl_local.h index 03c73738..9a4bbd64 100644 --- a/engine/client/gl_local.h +++ b/engine/client/gl_local.h @@ -203,6 +203,7 @@ typedef struct int realframecount; // not including viewpasses int framecount; + qboolean ignore_lightgamma; qboolean fCustomRendering; qboolean fResetVis; diff --git a/engine/client/gl_rlight.c b/engine/client/gl_rlight.c index f8d144d8..0e3716aa 100644 --- a/engine/client/gl_rlight.c +++ b/engine/client/gl_rlight.c @@ -298,10 +298,18 @@ static qboolean R_RecursiveLightPoint( model_t *model, mnode_t *node, float p1f, { uint scale = tr.lightstylevalue[surf->styles[map]]; - cv->r += LightToTexGamma( lm->r ) * scale; - cv->g += LightToTexGamma( lm->g ) * scale; - cv->b += LightToTexGamma( lm->b ) * scale; - + if( tr.ignore_lightgamma ) + { + cv->r += lm->r * scale; + cv->g += lm->g * scale; + cv->b += lm->b * scale; + } + else + { + cv->r += LightToTexGamma( lm->r ) * scale; + cv->g += LightToTexGamma( lm->g ) * scale; + cv->b += LightToTexGamma( lm->b ) * scale; + } lm += size; // skip to next lightmap } diff --git a/engine/client/gl_rmain.c b/engine/client/gl_rmain.c index 5a76c18f..fdd28920 100644 --- a/engine/client/gl_rmain.c +++ b/engine/client/gl_rmain.c @@ -261,7 +261,7 @@ qboolean R_AddEntity( struct cl_entity_s *clent, int type ) if( clent->curstate.effects & EF_NODRAW ) return false; // done - if( !R_OpaqueEntity( clent ) && clent->curstate.renderamt <= 0.0f ) + if( clent->curstate.rendermode != kRenderNormal && clent->curstate.renderamt <= 0.0f ) return true; // invisible if( type == ET_FRAGMENTED ) diff --git a/engine/client/gl_studio.c b/engine/client/gl_studio.c index 124769c0..b223f28d 100644 --- a/engine/client/gl_studio.c +++ b/engine/client/gl_studio.c @@ -2865,8 +2865,8 @@ void GL_StudioSetRenderMode( int rendermode ) switch( rendermode ) { case kRenderNormal: - pglDepthMask( GL_TRUE ); - pglDisable( GL_BLEND ); +// pglDepthMask( GL_TRUE ); +// pglDisable( GL_BLEND ); break; case kRenderTransColor: pglBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA ); @@ -3468,6 +3468,12 @@ R_DrawViewModel void R_DrawViewModel( void ) { cl_entity_t *view = &clgame.viewent; + colorVec c; + + tr.ignore_lightgamma = true; + c = R_LightPoint( view->origin ); + tr.ignore_lightgamma = false; + cl.local.light_level = (c.r + c.g + c.b) / 3; if( cl.local.thirdperson || RI.onlyClientDraw || r_drawviewmodel->value == 0 ) return; diff --git a/engine/common/cvar.c b/engine/common/cvar.c index bcc5ec83..1489a124 100644 --- a/engine/common/cvar.c +++ b/engine/common/cvar.c @@ -62,7 +62,7 @@ Cvar_UpdateInfo deal with userinfo etc ============ */ -static qboolean Cvar_UpdateInfo( convar_t *var, const char *value ) +static qboolean Cvar_UpdateInfo( convar_t *var, const char *value, qboolean notify ) { if( FBitSet( var->flags, FCVAR_USERINFO )) { @@ -82,7 +82,7 @@ static qboolean Cvar_UpdateInfo( convar_t *var, const char *value ) } } - if( FBitSet( var->flags, FCVAR_SERVER )) + if( FBitSet( var->flags, FCVAR_SERVER ) && notify ) { if( !FBitSet( var->flags, FCVAR_UNLOGGED )) { @@ -299,7 +299,7 @@ convar_t *Cvar_Get( const char *name, const char *value, int flags, const char * var->next = find; // fill it cls.userinfo, svs.serverinfo - Cvar_UpdateInfo( var, var->string ); + Cvar_UpdateInfo( var, var->string, false ); // tell engine about changes Cvar_Changed( var ); @@ -355,7 +355,7 @@ void Cvar_RegisterVariable( convar_t *var ) var->next = find; // fill it cls.userinfo, svs.serverinfo - Cvar_UpdateInfo( var, var->string ); + Cvar_UpdateInfo( var, var->string, false ); // tell engine about changes Cvar_Changed( var ); @@ -424,7 +424,7 @@ void Cvar_DirectSet( convar_t *var, const char *value ) return; // fill it cls.userinfo, svs.serverinfo - if( !Cvar_UpdateInfo( var, pszValue )) + if( !Cvar_UpdateInfo( var, pszValue, true )) return; // and finally changed the cvar itself diff --git a/engine/common/host.c b/engine/common/host.c index 285efb6e..8e215405 100644 --- a/engine/common/host.c +++ b/engine/common/host.c @@ -281,9 +281,8 @@ void Host_Exec_f( void ) Q_strncat( txt, "\n", len + 2 ); Mem_Free( f ); - if( host.apply_game_config ) - MsgDev( D_INFO, "execing ^2%s^7", Cmd_Argv( 1 )); - else MsgDev( D_INFO, "execing %s\n", Cmd_Argv( 1 )); + if( !host.apply_game_config ) + MsgDev( D_INFO, "execing %s\n", Cmd_Argv( 1 )); Cbuf_InsertText( txt ); Mem_Free( txt ); } diff --git a/engine/engine.dsp b/engine/engine.dsp index 03daab90..b008409d 100644 --- a/engine/engine.dsp +++ b/engine/engine.dsp @@ -105,7 +105,7 @@ BSC32=bscmake.exe # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 -# ADD LINK32 msvcrtd.lib user32.lib gdi32.lib shell32.lib advapi32.lib winmm.lib mpeg_dbg.lib ../utils/vgui/lib/win32_vc6/vgui.lib /nologo /subsystem:windows /dll /debug /machine:I386 /nodefaultlib:"libcd.lib" /out:"..\temp\engine\!debug/xash.dll" /pdbtype:sept /libpath:"./common/soundlib" +# ADD LINK32 msvcrtd.lib user32.lib gdi32.lib shell32.lib advapi32.lib winmm.lib mpeg_dbg.lib ../utils/vgui/lib/win32_vc6/vgui.lib /nologo /subsystem:windows /dll /debug /machine:I386 /nodefaultlib:"libcmtd.lib" /out:"..\temp\engine\!debug/xash.dll" /pdbtype:sept /libpath:"./common/soundlib" # SUBTRACT LINK32 /incremental:no /map /nodefaultlib # Begin Custom Build TargetDir=\Xash3D\src_main\temp\engine\!debug diff --git a/engine/server/sv_game.c b/engine/server/sv_game.c index 74f94b9b..b168508a 100644 --- a/engine/server/sv_game.c +++ b/engine/server/sv_game.c @@ -2320,8 +2320,7 @@ void pfnServerExecute( void ) Cbuf_Execute(); if( host.sv_cvars_restored > 0 ) - MsgDev( D_INFO, " (%i cvars)\n", host.sv_cvars_restored ); - else MsgDev( D_INFO, "\n" ); + MsgDev( D_INFO, "server executing ^2config.cfg^7 (%i cvars)\n", host.sv_cvars_restored ); host.apply_game_config = false; svgame.config_executed = true;