From 2a264d2c9a33ebbe122364b4faaf2bbac31e5fab Mon Sep 17 00:00:00 2001 From: Andrey Akhmichin Date: Sun, 11 Oct 2020 00:08:47 +0500 Subject: [PATCH] Add the latest steam changes for cl_autowepswitch cvar. --- dlls/multiplay_gamerules.cpp | 12 ++++++++++++ dlls/player.cpp | 2 -- dlls/singleplay_gamerules.cpp | 6 ++++++ 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/dlls/multiplay_gamerules.cpp b/dlls/multiplay_gamerules.cpp index 90dc4f3b16..5a4b14e074 100644 --- a/dlls/multiplay_gamerules.cpp +++ b/dlls/multiplay_gamerules.cpp @@ -324,6 +324,12 @@ BOOL CHalfLifeMultiplay::FShouldSwitchWeapon( CBasePlayer *pPlayer, CBasePlayerI return FALSE; } + if( pPlayer->m_iAutoWepSwitch == 2 + && pPlayer->m_afButtonLast & ( IN_ATTACK | IN_ATTACK2 ) ) + { + return FALSE; + } + if( !pPlayer->m_pActiveItem->CanHolster() ) { // can't put away the active item. @@ -573,7 +579,11 @@ void CHalfLifeMultiplay::PlayerSpawn( CBasePlayer *pPlayer ) { BOOL addDefault; CBaseEntity *pWeaponEntity = NULL; + int iOldAutoWepSwitch; + + iOldAutoWepSwitch = pPlayer->m_iAutoWepSwitch; + pPlayer->m_iAutoWepSwitch = 1; pPlayer->pev->weapons |= ( 1 << WEAPON_SUIT ); addDefault = TRUE; @@ -590,6 +600,8 @@ void CHalfLifeMultiplay::PlayerSpawn( CBasePlayer *pPlayer ) pPlayer->GiveNamedItem( "weapon_9mmhandgun" ); pPlayer->GiveAmmo( 68, "9mm", _9MM_MAX_CARRY );// 4 full reloads } + + pPlayer->m_iAutoWepSwitch = iOldAutoWepSwitch; } //========================================================= diff --git a/dlls/player.cpp b/dlls/player.cpp index 6b741778bc..fc264cc98b 100644 --- a/dlls/player.cpp +++ b/dlls/player.cpp @@ -2876,8 +2876,6 @@ void CBasePlayer::Spawn( void ) m_flNextChatTime = gpGlobals->time; - m_iAutoWepSwitch = 1; - g_pGameRules->PlayerSpawn( this ); } diff --git a/dlls/singleplay_gamerules.cpp b/dlls/singleplay_gamerules.cpp index 7f722e30a4..ba73747bcc 100644 --- a/dlls/singleplay_gamerules.cpp +++ b/dlls/singleplay_gamerules.cpp @@ -80,6 +80,12 @@ BOOL CHalfLifeRules::FShouldSwitchWeapon( CBasePlayer *pPlayer, CBasePlayerItem return FALSE; } + if( pPlayer->m_iAutoWepSwitch == 2 + && pPlayer->m_afButtonLast & ( IN_ATTACK | IN_ATTACK2 ) ) + { + return FALSE; + } + if( !pPlayer->m_pActiveItem->CanHolster() ) { return FALSE;