mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-08-09 10:19:38 +00:00
1
This commit is contained in:
@@ -0,0 +1,166 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose: Client's Support "weapon"
|
||||
//
|
||||
// $NoKeywords: $
|
||||
//=============================================================================//
|
||||
#include "cbase.h"
|
||||
#include "weapon_twohandedcontainer.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose: Draws little viewmodel attachments
|
||||
//-----------------------------------------------------------------------------
|
||||
void C_WeaponTwoHandedContainer::ViewModelDrawn( C_BaseViewModel *pBaseViewModel )
|
||||
{
|
||||
BaseClass::ViewModelDrawn( pBaseViewModel );
|
||||
|
||||
if (pBaseViewModel->ViewModelIndex() != 0)
|
||||
{
|
||||
if ( m_hRightWeapon )
|
||||
{
|
||||
m_hRightWeapon->ViewModelDrawn(pBaseViewModel);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( m_hLeftWeapon )
|
||||
{
|
||||
m_hLeftWeapon->ViewModelDrawn(pBaseViewModel);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose:
|
||||
//-----------------------------------------------------------------------------
|
||||
bool C_WeaponTwoHandedContainer::OnFireEvent( C_BaseViewModel *pViewModel, const Vector& origin,
|
||||
const QAngle& angles, int event, const char *options )
|
||||
{
|
||||
bool bRight = m_hRightWeapon->OnFireEvent( pViewModel, origin, angles, event, options );
|
||||
bool bLeft = m_hLeftWeapon->OnFireEvent( pViewModel, origin, angles, event, options );
|
||||
|
||||
return ( bRight || bLeft );
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose:
|
||||
//-----------------------------------------------------------------------------
|
||||
void C_WeaponTwoHandedContainer::OnDataChanged( DataUpdateType_t updateType )
|
||||
{
|
||||
BaseClass::OnDataChanged( updateType );
|
||||
|
||||
// Did we just receive a new weapon?
|
||||
bool rightchanged = m_hOldRightWeapon.Get() != m_hRightWeapon.Get() ? true : false;
|
||||
bool leftchanged = m_hOldLeftWeapon.Get() != m_hLeftWeapon.Get() ? true : false;
|
||||
|
||||
if ( rightchanged || leftchanged )
|
||||
{
|
||||
/*
|
||||
// Tell weapons that they're being holstered
|
||||
if ( m_hRightWeapon != NULL && rightchanged )
|
||||
{
|
||||
m_hRightWeapon->Holster( NULL );
|
||||
}
|
||||
if ( m_hLeftWeapon != NULL && leftchanged )
|
||||
{
|
||||
m_hLeftWeapon->Holster( NULL );
|
||||
}
|
||||
*/
|
||||
|
||||
HookWeaponEntities();
|
||||
}
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose:
|
||||
//-----------------------------------------------------------------------------
|
||||
void C_WeaponTwoHandedContainer::HookWeaponEntities( void )
|
||||
{
|
||||
m_hOldRightWeapon = m_hRightWeapon;
|
||||
m_hOldLeftWeapon = m_hLeftWeapon;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose: Never draw the container
|
||||
//-----------------------------------------------------------------------------
|
||||
bool C_WeaponTwoHandedContainer::ShouldDraw( void )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose: This weapon is the active weapon, and it should now draw anything
|
||||
// it wants to. This gets called every frame.
|
||||
//-----------------------------------------------------------------------------
|
||||
void C_WeaponTwoHandedContainer::Redraw()
|
||||
{
|
||||
BaseClass::Redraw();
|
||||
|
||||
if ( m_hRightWeapon.Get() )
|
||||
{
|
||||
m_hRightWeapon->Redraw();
|
||||
}
|
||||
if ( m_hLeftWeapon.Get() )
|
||||
{
|
||||
m_hLeftWeapon->Redraw();
|
||||
}
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose: Draw both weapon's ammo's
|
||||
//-----------------------------------------------------------------------------
|
||||
void C_WeaponTwoHandedContainer::DrawAmmo()
|
||||
{
|
||||
// Just tell our active weapon to draw it's ammo, since our offhand doesn't use it
|
||||
if ( m_hLeftWeapon )
|
||||
{
|
||||
m_hLeftWeapon->DrawAmmo();
|
||||
}
|
||||
if ( m_hRightWeapon.Get() )
|
||||
{
|
||||
m_hRightWeapon->DrawAmmo();
|
||||
}
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose: Let each weapon handle input
|
||||
//-----------------------------------------------------------------------------
|
||||
void C_WeaponTwoHandedContainer::HandleInput( void )
|
||||
{
|
||||
BaseClass::HandleInput();
|
||||
|
||||
if ( m_hRightWeapon )
|
||||
{
|
||||
m_hRightWeapon->HandleInput();
|
||||
}
|
||||
if ( m_hLeftWeapon )
|
||||
{
|
||||
m_hLeftWeapon->HandleInput();
|
||||
}
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose: Let each weapon handle input
|
||||
//-----------------------------------------------------------------------------
|
||||
void C_WeaponTwoHandedContainer::OverrideMouseInput( float *x, float *y )
|
||||
{
|
||||
BaseClass::OverrideMouseInput( x,y );
|
||||
|
||||
if ( m_hRightWeapon )
|
||||
{
|
||||
m_hRightWeapon->OverrideMouseInput( x,y );
|
||||
}
|
||||
if ( m_hLeftWeapon )
|
||||
{
|
||||
m_hLeftWeapon->OverrideMouseInput( x,y );
|
||||
}
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose:
|
||||
// Output : Returns true on success, false on failure.
|
||||
//-----------------------------------------------------------------------------
|
||||
bool C_WeaponTwoHandedContainer::VisibleInWeaponSelection( void )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
Reference in New Issue
Block a user