diff --git a/src/game/server/player.h b/src/game/server/player.h index 902e0e627ca..0a54d409693 100644 --- a/src/game/server/player.h +++ b/src/game/server/player.h @@ -463,7 +463,7 @@ class CBasePlayer : public CBaseCombatCharacter virtual void GetStepSoundVelocities( float *velwalk, float *velrun ); virtual void SetStepSoundTime( stepsoundtimes_t iStepSoundTime, bool bWalking ); virtual void DeathSound( const CTakeDamageInfo &info ); - virtual const char* GetSceneSoundToken( void ) { return ""; } + virtual const char* GetSceneSoundToken( CBasePlayer * ) { return ""; } virtual void OnEmitFootstepSound( const CSoundParameters& params, const Vector& vecOrigin, float fVolume ) {} diff --git a/src/game/server/sceneentity.cpp b/src/game/server/sceneentity.cpp index f5c037e45ad..ed1d1b2fb17 100644 --- a/src/game/server/sceneentity.cpp +++ b/src/game/server/sceneentity.cpp @@ -1648,7 +1648,7 @@ bool CSceneEntity::GetSoundNameForPlayer( CChoreoEvent *event, CBasePlayer *play if ( pActor && pActor->IsPlayer() ) { - pchToken = dynamic_cast< CBasePlayer* >( pActor )->GetSceneSoundToken(); + pchToken = dynamic_cast< CBasePlayer* >( pActor )->GetSceneSoundToken( player ); } // Copy the sound name diff --git a/src/game/server/tf/tf_player.cpp b/src/game/server/tf/tf_player.cpp index d29e346def0..eb29e15f521 100644 --- a/src/game/server/tf/tf_player.cpp +++ b/src/game/server/tf/tf_player.cpp @@ -15315,7 +15315,7 @@ void CTFPlayer::DeathSound( const CTakeDamageInfo &info ) //----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- -const char* CTFPlayer::GetSceneSoundToken( void ) +const char* CTFPlayer::GetSceneSoundToken( CBasePlayer *pListener ) { if ( TFGameRules() && TFGameRules()->IsMannVsMachineMode() && GetTeamNumber() == TF_TEAM_PVE_INVADERS ) { @@ -15328,6 +15328,15 @@ const char* CTFPlayer::GetSceneSoundToken( void ) return "MVM_"; } } + else if ( TFGameRules() && TFGameRules()->IsMannVsMachineMode() && + GetTeamNumber() == TF_TEAM_PVE_DEFENDERS && + IsPlayerClass( TF_CLASS_SPY ) && + m_Shared.InCond( TF_COND_DISGUISED ) && + m_Shared.GetDisguiseTeam() == TF_TEAM_PVE_INVADERS && + ( pListener == this || ( pListener && pListener->GetTeamNumber() == TF_TEAM_PVE_INVADERS ) ) ) + { + return "MVM_"; + } else { return ""; diff --git a/src/game/server/tf/tf_player.h b/src/game/server/tf/tf_player.h index d2affa28511..a82151359ec 100644 --- a/src/game/server/tf/tf_player.h +++ b/src/game/server/tf/tf_player.h @@ -373,7 +373,7 @@ class CTFPlayer : public CBaseMultiplayerPlayer, public IHasAttributes, public I float PlayCritReceivedSound( void ); void PainSound( const CTakeDamageInfo &info ); void DeathSound( const CTakeDamageInfo &info ); - virtual const char* GetSceneSoundToken( void ); + virtual const char* GetSceneSoundToken( CBasePlayer *pListener ); void StunSound( CTFPlayer* pAttacker, int iStunFlags, int iOldStunFlags=0 ); void SetSeeCrit( bool bAllSeeCrit, bool bMiniCrit, bool bShowDisguisedCrit ) { m_bAllSeeCrit = bAllSeeCrit; m_bMiniCrit = bMiniCrit; m_bShowDisguisedCrit = bShowDisguisedCrit; }