From fe42dfbfddf1e331fcda4eb8ec7eaac660acedb2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kerim=20=C4=8Camd=C5=BEi=C4=87?= Date: Wed, 12 Feb 2025 21:44:35 +0100 Subject: [PATCH 1/2] added viewmodel camera bone --- sp/src/game/client/view.cpp | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/sp/src/game/client/view.cpp b/sp/src/game/client/view.cpp index 8cd5293d..dc6a1118 100644 --- a/sp/src/game/client/view.cpp +++ b/sp/src/game/client/view.cpp @@ -129,6 +129,7 @@ ConVar gl_clear_randomcolor( "gl_clear_randomcolor", "0", FCVAR_CHEAT, "Clear th static ConVar r_farz( "r_farz", "-1", FCVAR_CHEAT, "Override the far clipping plane. -1 means to use the value in env_fog_controller." ); #ifdef MAPBASE static ConVar r_nearz( "r_nearz", "-1", FCVAR_CHEAT, "Override the near clipping plane. -1 means to use the default value (usually 7)." ); +static ConVar cl_camera_anim_intensity("cl_camera_anim_intensity", "1.0", FCVAR_ARCHIVE, "Intensity of cambone animations"); #endif static ConVar cl_demoviewoverride( "cl_demoviewoverride", "0", 0, "Override view during demo playback" ); @@ -1306,6 +1307,39 @@ void CViewRender::Render( vrect_t *rect ) g_ClientVirtualReality.OverlayHUDQuadWithUndistort( view, bDoUndistort, g_pClientMode->ShouldBlackoutAroundHUD(), bTranslucent ); } } + +#ifdef MAPBASE + //-------------------------------- + // Handle camera anims + //-------------------------------- + if (!UseVR() && pPlayer && cl_camera_anim_intensity.GetFloat() > 0) + { + if (pPlayer->GetViewModel(0)) + { + int attachment = pPlayer->GetViewModel(0)->LookupAttachment("camera"); + if (attachment != -1) + { + int rootBone = pPlayer->GetViewModel(0)->LookupAttachment("camera_root"); + Vector cameraOrigin = Vector(0, 0, 0); + QAngle cameraAngles = QAngle(0, 0, 0); + Vector rootOrigin = Vector(0, 0, 0); + QAngle rootAngles = QAngle(0, 0, 0); + + pPlayer->GetViewModel(0)->GetAttachmentLocal(attachment, cameraOrigin, cameraAngles); + if (rootBone != -1) + { + pPlayer->GetViewModel(0)->GetAttachmentLocal(rootBone, rootOrigin, rootAngles); + cameraOrigin -= rootOrigin; + cameraAngles -= rootAngles; + + DevMsg("camera attachment found\n"); + } + view.angles += cameraAngles * cl_camera_anim_intensity.GetFloat(); + view.origin += cameraOrigin * cl_camera_anim_intensity.GetFloat(); + } + } + } +#endif // MAPBASE } From 93d18ed85f5b9e0ca02b2d64cac5228f9e7dacc9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kerim=20=C4=8Camd=C5=BEi=C4=87?= Date: Wed, 12 Feb 2025 21:59:23 +0100 Subject: [PATCH 2/2] removed devmsg (it will spam the console) --- sp/src/game/client/view.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/sp/src/game/client/view.cpp b/sp/src/game/client/view.cpp index dc6a1118..a930c4a7 100644 --- a/sp/src/game/client/view.cpp +++ b/sp/src/game/client/view.cpp @@ -1331,8 +1331,6 @@ void CViewRender::Render( vrect_t *rect ) pPlayer->GetViewModel(0)->GetAttachmentLocal(rootBone, rootOrigin, rootAngles); cameraOrigin -= rootOrigin; cameraAngles -= rootAngles; - - DevMsg("camera attachment found\n"); } view.angles += cameraAngles * cl_camera_anim_intensity.GetFloat(); view.origin += cameraOrigin * cl_camera_anim_intensity.GetFloat();