From ae139c11943d4835069e79b6433d755d009343ed Mon Sep 17 00:00:00 2001
From: "ALLEN-PC\\acj30" <acj3017@gmail.com>
Date: Tue, 25 Feb 2025 12:51:00 -0600
Subject: [PATCH] Fix TF2 crash caused by hand viewmodel meant for HL2

---
 src/game/server/player.cpp               | 6 +++---
 src/game/server/player.h                 | 2 +-
 src/game/shared/baseviewmodel_shared.cpp | 2 +-
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/game/server/player.cpp b/src/game/server/player.cpp
index 0079b7dc..2a53a0c0 100644
--- a/src/game/server/player.cpp
+++ b/src/game/server/player.cpp
@@ -650,7 +650,7 @@ void CBasePlayer::DestroyViewModels( void )
 	}
 }
 
-#ifdef MAPBASE
+#if defined(MAPBASE) && defined(HL2_DLL)
 extern char g_szDefaultHandsModel[MAX_PATH];
 extern int g_iDefaultHandsSkin;
 extern int g_iDefaultHandsBody;
@@ -5460,7 +5460,7 @@ void CBasePlayer::Spawn( void )
 	enginesound->SetPlayerDSP( user, 0, false );
 
 	CreateViewModel();
-#ifdef MAPBASE
+#if defined(MAPBASE) && defined(HL2_DLL)
 	CreateHandModel();
 #endif
 
@@ -5600,7 +5600,7 @@ void CBasePlayer::Precache( void )
 	m_iTrain = TRAIN_NEW;
 #endif
 
-#ifdef MAPBASE
+#if defined(MAPBASE) && defined(HL2_DLL)
 	PrecacheModel( g_szDefaultHandsModel );
 #endif
 
diff --git a/src/game/server/player.h b/src/game/server/player.h
index dbdaa16c..ee2236d8 100644
--- a/src/game/server/player.h
+++ b/src/game/server/player.h
@@ -271,7 +271,7 @@ public:
 	void					HideViewModels( void );
 	void					DestroyViewModels( void );
 
-#ifdef MAPBASE
+#if defined(MAPBASE) && defined(HL2_DLL)
 	virtual void			CreateHandModel( int viewmodelindex = 1, int iOtherVm = 0 );
 #endif
 
diff --git a/src/game/shared/baseviewmodel_shared.cpp b/src/game/shared/baseviewmodel_shared.cpp
index 3339baec..3b2d06f3 100644
--- a/src/game/shared/baseviewmodel_shared.cpp
+++ b/src/game/shared/baseviewmodel_shared.cpp
@@ -762,7 +762,7 @@ bool CBaseViewModel::GetAttachmentVelocity( int number, Vector &originVel, Quate
 
 #endif
 
-#ifdef MAPBASE
+#if defined(MAPBASE) && (defined(HL2_DLL) || defined(HL2_CLIENT_DLL))
 #if defined( CLIENT_DLL )
 #define CHandViewModel C_HandViewModel
 #endif