From e08852284f8b8995886c83e2fc8eed1990e82120 Mon Sep 17 00:00:00 2001 From: Marco Hladik Date: Wed, 6 Apr 2022 19:32:46 -0700 Subject: [PATCH] NSRenderableEntity: Add RenderFX RFX_GLOWSHELL2, which is the same as RFX_GLOWSHELL, but the glow effect has a 'cull back' rendering flag. --- base/src/client/viewmodel.qc | 12 ++++++++++++ src/client/defs.h | 1 + src/client/entry.qc | 1 + src/gs-entbase/baseentity.h | 3 ++- src/gs-entbase/shared/NSRenderableEntity.qc | 16 ++++++++++++++++ src/gs-entbase/shared/prop_vehicle_driveable.qc | 7 +++++++ 6 files changed, 39 insertions(+), 1 deletion(-) diff --git a/base/src/client/viewmodel.qc b/base/src/client/viewmodel.qc index 6505f8ef..a562ea5e 100644 --- a/base/src/client/viewmodel.qc +++ b/base/src/client/viewmodel.qc @@ -113,6 +113,18 @@ Viewmodel_ApplyBob(entity gun) strength = 240 - strength; strength *= 0.005f; +#ifdef WASTES + float sprint; + if (pSeatLocal->m_iSprinting && vlen(pSeat->m_vecPredictedVelocity) > 240) { + pSeatLocal->m_flSprintLerp = bound(0.0f, pSeatLocal->m_flSprintLerp + clframetime, 1.0f); + } else { + pSeatLocal->m_flSprintLerp = bound(0.0f, pSeatLocal->m_flSprintLerp - clframetime, 1.0f); + } + sprint = 20 * pSeatLocal->m_flSprintLerp; + gun.angles[0] += sprint; + gun.angles[1] += sprint + (sprint * pViewBob->m_flBob) * 0.25f; +#endif + gun.angles[0] += strength * sintime; gun.angles[1] += strength * sintime; gun.angles[2] += strength * sintime; diff --git a/src/client/defs.h b/src/client/defs.h index 42e6b4d9..4cc2894e 100644 --- a/src/client/defs.h +++ b/src/client/defs.h @@ -41,6 +41,7 @@ font_s FONT_CON; //var string g_shellchrome; var float g_shellchromeshader; +var float g_shellchromeshader_cull; /* clientside cvars */ var float autocvar_zoom_sensitivity = 1.0f; diff --git a/src/client/entry.qc b/src/client/entry.qc index 2c761cb1..2b7dd85f 100644 --- a/src/client/entry.qc +++ b/src/client/entry.qc @@ -119,6 +119,7 @@ CSQC_RendererRestarted(string rstr) //g_shellchrome = spriteframe("sprites/shellchrome.spr", 0, 0.0f); g_shellchromeshader = shaderforname("shellchrome", sprintf("{\ndeformVertexes bulge 1.25 1.25 0\n{\nmap %s\ntcMod scroll -0.1 0.1\ntcGen environment\nrgbGen entity\n}\n}", "textures/sfx/reflection.tga")); + g_shellchromeshader_cull = shaderforname("shellchrome2", sprintf("{\ncull back\ndeformVertexes bulge 1.5 1.5 0\n{\nmap %s\ntcMod scroll -0.1 0.1\ntcGen environment\nrgbGen entity\n}\n}", "textures/sfx/reflection.tga")); /* end msg */ print("Graphical resources reloaded\n"); diff --git a/src/gs-entbase/baseentity.h b/src/gs-entbase/baseentity.h index dc13d820..3d029a05 100644 --- a/src/gs-entbase/baseentity.h +++ b/src/gs-entbase/baseentity.h @@ -49,7 +49,8 @@ enum RFX_CONSTANTGLOW = 14, RFX_DISTORT = 15, RFX_HOLOGRAM = 16, - RFX_GLOWSHELL = 19 + RFX_GLOWSHELL = 19, + RFX_GLOWSHELL2 = 20 }; #endif diff --git a/src/gs-entbase/shared/NSRenderableEntity.qc b/src/gs-entbase/shared/NSRenderableEntity.qc index bdf90b57..6101ff0e 100644 --- a/src/gs-entbase/shared/NSRenderableEntity.qc +++ b/src/gs-entbase/shared/NSRenderableEntity.qc @@ -427,6 +427,22 @@ NSRenderableEntity::RenderFXPass(void) drawflags = 7; abslight = 128; break; + case RFX_GLOWSHELL2: + /* make this entity shellchrome */ + effects = EF_ADDITIVE; + fatness = 0; + colormod = m_vecRenderColor; + forceshader = g_shellchromeshader_cull; + alpha = 1.0; + /* copy entity into rendering queue */ + addentity(this); + /* reset */ + forceshader = 0; + fatness = 0; + colormod = [1,1,1]; + alpha = 1.0f; + effects = 0; + break; case RFX_GLOWSHELL: /* make this entity shellchrome */ effects = EF_ADDITIVE; diff --git a/src/gs-entbase/shared/prop_vehicle_driveable.qc b/src/gs-entbase/shared/prop_vehicle_driveable.qc index 9d1d9e22..e8683a58 100644 --- a/src/gs-entbase/shared/prop_vehicle_driveable.qc +++ b/src/gs-entbase/shared/prop_vehicle_driveable.qc @@ -565,6 +565,8 @@ prop_vehicle_driveable::RunVehiclePhysics(void) new_origin *= 0.25f; setorigin(this, new_origin); PlayerAlign(); + + /* actiony stuff */ } #ifdef SERVER @@ -604,6 +606,8 @@ prop_vehicle_driveable::Respawn(void) if (m_eDriver) PlayerLeave((base_player)m_eDriver); + + SendFlags = -1; } #endif @@ -720,6 +724,9 @@ prop_vehicle_driveable::SendEntity(entity ePVSent, float flSendFlags) WriteByte(MSG_ENTITY, ENT_VEH_4WHEEL); WriteFloat(MSG_ENTITY, flSendFlags); + if (!modelindex) + return (false); + if (flSendFlags & VEHFL_DRIVER) { WriteEntity(MSG_ENTITY, m_eDriver); }