diff --git a/sp/src/game/server/baseentity.h b/sp/src/game/server/baseentity.h index 8b6653d5084..3adf0e741c0 100644 --- a/sp/src/game/server/baseentity.h +++ b/sp/src/game/server/baseentity.h @@ -1844,6 +1844,9 @@ class CBaseEntity : public IServerEntity // Computes the tracer start position void ComputeTracerStartPosition( const Vector &vecShotSrc, Vector *pVecTracerStart ); +#ifdef EZ2 + virtual void OverrideTracerStartPosition( const Vector &vecShotSrc, Vector *pVecTracerStart ) {} +#endif // Computes the tracer start position void CreateBubbleTrailTracer( const Vector &vecShotSrc, const Vector &vecShotEnd, const Vector &vecShotDir ); diff --git a/sp/src/game/server/ez2/ez2_player.cpp b/sp/src/game/server/ez2/ez2_player.cpp index 3f96e47471f..9124a38e9bc 100644 --- a/sp/src/game/server/ez2/ez2_player.cpp +++ b/sp/src/game/server/ez2/ez2_player.cpp @@ -1993,6 +1993,20 @@ void CEZ2_Player::Weapon_HandleEquip( CBaseCombatWeapon *pWeapon ) } } +//----------------------------------------------------------------------------- +// Purpose: Overrides bullet tracers +//----------------------------------------------------------------------------- +void CEZ2_Player::OverrideTracerStartPosition( const Vector &vecShotSrc, Vector *pVecTracerStart ) +{ + // TODO: Identify when doing dual wield secondary attack + /*if () + { + Vector right; + EyeVectors( NULL, &right, NULL ); + *pVecTracerStart -= right * 4; + }*/ +} + //----------------------------------------------------------------------------- // Purpose: Event fired upon picking up a new weapon //----------------------------------------------------------------------------- diff --git a/sp/src/game/server/ez2/ez2_player.h b/sp/src/game/server/ez2/ez2_player.h index 6374663b16c..f436caa9b20 100644 --- a/sp/src/game/server/ez2/ez2_player.h +++ b/sp/src/game/server/ez2/ez2_player.h @@ -184,6 +184,7 @@ class CEZ2_Player : public CAI_ExpresserHost, public CGameEventList bool HandleRemoveFromPlayerSquad( CAI_BaseNPC *pNPC ); void Weapon_HandleEquip( CBaseCombatWeapon *pWeapon ); + void OverrideTracerStartPosition( const Vector &vecShotSrc, Vector *pVecTracerStart ); void Event_FirstDrawWeapon( CBaseCombatWeapon *pWeapon ); void Event_ThrewGrenade( CBaseCombatWeapon *pWeapon ); diff --git a/sp/src/game/shared/baseentity_shared.cpp b/sp/src/game/shared/baseentity_shared.cpp index 5f95761216e..5792bbf9b70 100644 --- a/sp/src/game/shared/baseentity_shared.cpp +++ b/sp/src/game/shared/baseentity_shared.cpp @@ -2279,6 +2279,11 @@ void CBaseEntity::ComputeTracerStartPosition( const Vector &vecShotSrc, Vector * } } } + +#if defined(EZ2) && defined(GAME_DLL) + // For dual wielded weapons + OverrideTracerStartPosition( vecShotSrc, pVecTracerStart ); +#endif }