From 98d7380b229d8603dadffa0351497c5c1ea59ca8 Mon Sep 17 00:00:00 2001 From: Alice Date: Sat, 2 May 2026 23:59:47 -0400 Subject: [PATCH 1/4] Add color customization for physgun beam and model Signed-off-by: Alice --- src/game/client/jbmod/c_weapon_physgun.cpp | 117 ++++++++++++++++++++- 1 file changed, 116 insertions(+), 1 deletion(-) diff --git a/src/game/client/jbmod/c_weapon_physgun.cpp b/src/game/client/jbmod/c_weapon_physgun.cpp index a6e19902952..9124e60fdff 100644 --- a/src/game/client/jbmod/c_weapon_physgun.cpp +++ b/src/game/client/jbmod/c_weapon_physgun.cpp @@ -12,10 +12,19 @@ #include "c_weapon__stubs.h" #include "clienteffectprecachesystem.h" #include "c_jbmod_player.h" +#include "c_baseplayer.h" +#include "usercmd.h" +#include "materialsystem/imaterial.h" +#include "materialsystem/imaterialvar.h" + // memdbgon must be the last include file in a .cpp file!!! #include "tier0/memdbgon.h" +ConVar physgun_beam_color( "physgun_beam_color", "255 255 255", FCVAR_ARCHIVE ); +ConVar physgun_model_color( "physgun_model_color", "255 0 255", FCVAR_ARCHIVE ); + + CLIENTEFFECT_REGISTER_BEGIN( PrecacheEffectGravityGun ) CLIENTEFFECT_MATERIAL( "sprites/physbeam" ) CLIENTEFFECT_REGISTER_END() @@ -80,9 +89,88 @@ class C_WeaponGravityGun : public C_BaseCombatWeapon return BaseClass::KeyInput( down, keynum, pszCurrentBinding ); } + void CreateMove( float flInputSampleTime, CUserCmd *pCmd, const QAngle &vecOldViewAngles ) + { + BaseClass::CreateMove( flInputSampleTime, pCmd, vecOldViewAngles ); + + if ( !pCmd ) + return; + + C_BasePlayer *pPlayer = C_BasePlayer::GetLocalPlayer(); + if ( !pPlayer ) + return; + + if ( pPlayer->GetActiveWeapon() != this ) + return; + + if ( !m_beam.m_active ) + return; + + if ( !( pCmd->buttons & IN_USE ) ) + return; + + const short nMouseX = pCmd->mousedx; + const short nMouseY = pCmd->mousedy; + if ( nMouseX == 0 && nMouseY == 0 ) + return; + + // Use the raw mouse deltas for server-side physgun rotation, but keep the local + // camera from turning while we're in rotate mode. + pCmd->mousedx = nMouseX; + pCmd->mousedy = nMouseY; + pCmd->viewangles = vecOldViewAngles; + QAngle localViewAngles = vecOldViewAngles; + engine->SetViewAngles( localViewAngles ); + } + +static void ApplyPhysgunModelColor() +{ + int ir = 255, ig = 0, ib = 255; + + if ( sscanf( physgun_model_color.GetString(), "%d %d %d", &ir, &ig, &ib ) != 3 ) + return; + + ir = clamp( ir, 0, 255 ); + ig = clamp( ig, 0, 255 ); + ib = clamp( ib, 0, 255 ); + + float r = ir / 255.0f; + float g = ig / 255.0f; + float b = ib / 255.0f; + + + +// Basically the only way I could really think of, of doing this: + + IMaterial *pMat = materials->FindMaterial( + "models/weapons/v_physcannon/v_superphyscannon_sheet", + TEXTURE_GROUP_MODEL + ); + + if ( !pMat || pMat->IsErrorMaterial() ) + + return; + + bool found = false; + IMaterialVar *pTint = pMat->FindVar( "$selfillumtint", &found ); + + if ( found && pTint ) + { + + pTint->SetVecValue( r, g, b ); + } +} + + + + + void OnDataChanged( DataUpdateType_t updateType ) { + + BaseClass::OnDataChanged( updateType ); + ApplyPhysgunModelColor(); m_beam.Update( this ); } @@ -135,6 +223,9 @@ void C_BeamQuadratic::Update( C_BaseEntity *pOwner ) } + + + int C_BeamQuadratic::DrawModel( int ) { Vector points[3]; @@ -149,6 +240,10 @@ int C_BeamQuadratic::DrawModel( int ) return 0; pEnt->GetAttachment( 1, points[0], tmpAngle ); + + + + points[1] = 0.5 * ( m_targetPosition + points[0] ); // a little noise 11t & 13t should be somewhat non-periodic looking @@ -157,13 +252,32 @@ int C_BeamQuadratic::DrawModel( int ) IMaterial *pMat = materials->FindMaterial( "sprites/physbeam", TEXTURE_GROUP_CLIENT_EFFECTS ); Vector color; + if ( m_glueTouching ) { color.Init( 1, 0, 0 ); } else { - color.Init( 1, 1, 1 ); + int ir = 255, ig = 255, ib = 255; + + + if ( sscanf( physgun_beam_color.GetString(), "%d %d %d", &ir, &ig, &ib ) != 3 ) + { + ir = ig = ib = 255; + } + + + ir = clamp( ir, 0, 255 ); + ig = clamp( ig, 0, 255 ); + ib = clamp( ib, 0, 255 ); + + + float r = ir / 255.0f; + float g = ig / 255.0f; + float b = ib / 255.0f; + + color.Init( r, g, b ); } float scrollOffset = gpGlobals->curtime - (int)gpGlobals->curtime; @@ -179,3 +293,4 @@ const matrix3x4_t &C_BeamQuadratic::RenderableToWorldTransform() AngleMatrix( GetRenderAngles(), GetRenderOrigin(), mat ); return mat; } + From df2f6f0535484a97ba8c33341ba7f96e525dafe5 Mon Sep 17 00:00:00 2001 From: Alice Date: Mon, 4 May 2026 19:42:28 -0400 Subject: [PATCH 2/4] Add mp_models_dir.vpk to gameinfo.txt Signed-off-by: Alice --- game/jbmod/gameinfo.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/game/jbmod/gameinfo.txt b/game/jbmod/gameinfo.txt index 9a5719f88a1..83b4fa479ef 100644 --- a/game/jbmod/gameinfo.txt +++ b/game/jbmod/gameinfo.txt @@ -49,7 +49,7 @@ // in folders where they don't exist. (Searching a VPK is much faster than making an operating // system call.) game+mod jbmod/jbmod_pak.vpk - + game+mod jbmod/mp_models_dir.vpk game |all_source_engine_paths|hl2_complete/hl2_complete_textures.vpk game |all_source_engine_paths|hl2_complete/hl2_complete_sound_vo_english.vpk game |all_source_engine_paths|hl2_complete/hl2_complete_sound_misc.vpk From 7763dbcb63a9b40aacf2f1f6524e26b58f6a7fa1 Mon Sep 17 00:00:00 2001 From: Alice Date: Mon, 4 May 2026 19:44:08 -0400 Subject: [PATCH 3/4] Add files via upload Signed-off-by: Alice --- game/jbmod/mp_models_dir.vpk | Bin 0 -> 25843 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 game/jbmod/mp_models_dir.vpk diff --git a/game/jbmod/mp_models_dir.vpk b/game/jbmod/mp_models_dir.vpk new file mode 100644 index 0000000000000000000000000000000000000000..c7f00315a1be2a8a73f58a4dcdcd9b8799e4c10a GIT binary patch literal 25843 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

-Voq^lEhCSyqYciT3ti z2eYHn3~WrIBW=b#WEl}d|D~C)AJ=oR@YL!Z_qU5)98Y z?KEm8Zmhq|VcCyn6h(=MAZ`_NbvYduN1omc>D*&;{GkDJAAGOw?=WED%*nLSex=5c zf391PEw;G+I4^#F@(gK54?UYUet-MvCni64j-CJcuIr)?l3!oj#wIUpZm%9_cDA5u zUjLcfb0^17C|rE-rG~BA0gL_<>@^eS?(8qruNs>XH~(n+x)~$XzHXej?eS%+@&l8f z1|&)!eWaU???fT=q+LD!nd!KRdkT6^1(Ie)k+W!Ihjf(>S literal 0 HcmV?d00001 From 24f8eb51677bc15c2987daa70883ca43eb006a38 Mon Sep 17 00:00:00 2001 From: Alice Date: Mon, 4 May 2026 19:44:44 -0400 Subject: [PATCH 4/4] Add files via upload Signed-off-by: Alice --- game/jbmod/mp_models.vpk.sound.cache | Bin 0 -> 16 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 game/jbmod/mp_models.vpk.sound.cache diff --git a/game/jbmod/mp_models.vpk.sound.cache b/game/jbmod/mp_models.vpk.sound.cache new file mode 100644 index 0000000000000000000000000000000000000000..96a982a702655e7dbde666bc44757691396a541a GIT binary patch literal 16 UcmZQ#U|?Vc;_Zi29{?!^01&VOh5!Hn literal 0 HcmV?d00001