source-engine/game/shared/hl2/weapon_css_smgs.cpp
2025-02-02 01:43:34 +05:00

261 lines
7.2 KiB
C++

//=============================================================================//
//
// Purpose: CS:S weapons recreated from scratch in Source SDK 2013 for usage in a Half-Life 2 setting.
//
// Author: Blixibon
//
//=============================================================================//
#include "cbase.h"
#include "weapon_css_base.h"
//-----------------------------------------------------------------------------
// CWeapon_CSS_HL2_TMP
//-----------------------------------------------------------------------------
class CWeapon_CSS_HL2_TMP : public CBase_CSS_HL2_SMG
{
public:
DECLARE_CLASS( CWeapon_CSS_HL2_TMP, CBase_CSS_HL2_SMG );
DECLARE_NETWORKCLASS();
DECLARE_PREDICTABLE();
DECLARE_DATADESC();
CWeapon_CSS_HL2_TMP(void);
virtual CSS_HL2_WeaponActClass GetCSSWeaponActClass() { return CSSHL2_WEAPON_SMG2; }
// TMP is always silenced
virtual bool IsSilenced() const { return true; }
virtual float GetViewKickBase() { return 2.75f; }
virtual const Vector& GetBulletSpread( void )
{
static const Vector cone = VECTOR_CONE_4DEGREES;
return cone;
}
virtual float GetFireRate( void ) { return 0.07f; }
};
IMPLEMENT_NETWORKCLASS_DT( CWeapon_CSS_HL2_TMP, DT_Weapon_CSS_HL2_TMP )
END_NETWORK_TABLE()
LINK_ENTITY_TO_CLASS( weapon_css_tmp, CWeapon_CSS_HL2_TMP );
#if PRECACHE_REGISTER_CSS_WEAPONS == 1
PRECACHE_WEAPON_REGISTER( weapon_css_tmp );
#endif
BEGIN_DATADESC( CWeapon_CSS_HL2_TMP )
END_DATADESC()
#ifdef CLIENT_DLL
BEGIN_PREDICTION_DATA( CWeapon_CSS_HL2_TMP )
END_PREDICTION_DATA()
#endif
//-----------------------------------------------------------------------------
// Purpose: Constructor
//-----------------------------------------------------------------------------
CWeapon_CSS_HL2_TMP::CWeapon_CSS_HL2_TMP( void )
{
m_bFiresUnderwater = true;
}
//-----------------------------------------------------------------------------
// CWeapon_CSS_HL2_MP5Navy
//-----------------------------------------------------------------------------
class CWeapon_CSS_HL2_MP5Navy : public CBase_CSS_HL2_SMG
{
public:
DECLARE_CLASS( CWeapon_CSS_HL2_MP5Navy, CBase_CSS_HL2_SMG );
DECLARE_NETWORKCLASS();
DECLARE_PREDICTABLE();
DECLARE_DATADESC();
CWeapon_CSS_HL2_MP5Navy(void);
virtual CSS_HL2_WeaponActClass GetCSSWeaponActClass() { return CSSHL2_WEAPON_AR1; }
virtual float GetViewKickBase() { return 0.25f; }
virtual const Vector& GetBulletSpread( void )
{
static const Vector cone = VECTOR_CONE_4DEGREES;
return cone;
}
virtual float GetFireRate( void ) { return 0.08f; }
};
IMPLEMENT_NETWORKCLASS_DT( CWeapon_CSS_HL2_MP5Navy, DT_Weapon_CSS_HL2_MP5Navy )
END_NETWORK_TABLE()
LINK_ENTITY_TO_CLASS( weapon_css_mp5navy, CWeapon_CSS_HL2_MP5Navy );
#if PRECACHE_REGISTER_CSS_WEAPONS == 1
PRECACHE_WEAPON_REGISTER( weapon_css_mp5navy );
#endif
BEGIN_DATADESC( CWeapon_CSS_HL2_MP5Navy )
END_DATADESC()
#ifdef CLIENT_DLL
BEGIN_PREDICTION_DATA( CWeapon_CSS_HL2_MP5Navy )
END_PREDICTION_DATA()
#endif
//-----------------------------------------------------------------------------
// Purpose: Constructor
//-----------------------------------------------------------------------------
CWeapon_CSS_HL2_MP5Navy::CWeapon_CSS_HL2_MP5Navy( void )
{
m_bFiresUnderwater = true;
}
//-----------------------------------------------------------------------------
// CWeapon_CSS_HL2_UMP45
//-----------------------------------------------------------------------------
class CWeapon_CSS_HL2_UMP45 : public CBase_CSS_HL2_SMG
{
public:
DECLARE_CLASS( CWeapon_CSS_HL2_UMP45, CBase_CSS_HL2_SMG );
DECLARE_NETWORKCLASS();
DECLARE_PREDICTABLE();
DECLARE_DATADESC();
CWeapon_CSS_HL2_UMP45(void);
virtual CSS_HL2_WeaponActClass GetCSSWeaponActClass() { return CSSHL2_WEAPON_SMG1; }
virtual float GetViewKickBase() { return 2.5f; }
virtual const Vector& GetBulletSpread( void )
{
static const Vector cone = VECTOR_CONE_4DEGREES;
return cone;
}
virtual float GetFireRate( void ) { return 0.105f; }
};
IMPLEMENT_NETWORKCLASS_DT( CWeapon_CSS_HL2_UMP45, DT_Weapon_CSS_HL2_UMP45 )
END_NETWORK_TABLE()
LINK_ENTITY_TO_CLASS( weapon_css_ump45, CWeapon_CSS_HL2_UMP45 );
#if PRECACHE_REGISTER_CSS_WEAPONS == 1
PRECACHE_WEAPON_REGISTER( weapon_css_ump45 );
#endif
BEGIN_DATADESC( CWeapon_CSS_HL2_UMP45 )
END_DATADESC()
#ifdef CLIENT_DLL
BEGIN_PREDICTION_DATA( CWeapon_CSS_HL2_UMP45 )
END_PREDICTION_DATA()
#endif
//-----------------------------------------------------------------------------
// Purpose: Constructor
//-----------------------------------------------------------------------------
CWeapon_CSS_HL2_UMP45::CWeapon_CSS_HL2_UMP45( void )
{
}
//-----------------------------------------------------------------------------
// CWeapon_CSS_HL2_P90
//-----------------------------------------------------------------------------
class CWeapon_CSS_HL2_P90 : public CBase_CSS_HL2_SMG
{
public:
DECLARE_CLASS( CWeapon_CSS_HL2_P90, CBase_CSS_HL2_SMG );
DECLARE_NETWORKCLASS();
DECLARE_PREDICTABLE();
DECLARE_DATADESC();
CWeapon_CSS_HL2_P90(void);
virtual CSS_HL2_WeaponActClass GetCSSWeaponActClass() { return CSSHL2_WEAPON_SMG2; }
virtual float GetViewKickBase() { return 0.75f; }
virtual const Vector& GetBulletSpread( void )
{
static const Vector cone = VECTOR_CONE_4DEGREES;
return cone;
}
virtual float GetFireRate( void ) { return 0.07f; }
};
IMPLEMENT_NETWORKCLASS_DT( CWeapon_CSS_HL2_P90, DT_Weapon_CSS_HL2_P90 )
END_NETWORK_TABLE()
LINK_ENTITY_TO_CLASS( weapon_css_p90, CWeapon_CSS_HL2_P90 );
#if PRECACHE_REGISTER_CSS_WEAPONS == 1
PRECACHE_WEAPON_REGISTER( weapon_css_p90 );
#endif
BEGIN_DATADESC( CWeapon_CSS_HL2_P90 )
END_DATADESC()
#ifdef CLIENT_DLL
BEGIN_PREDICTION_DATA( CWeapon_CSS_HL2_P90 )
END_PREDICTION_DATA()
#endif
//-----------------------------------------------------------------------------
// Purpose: Constructor
//-----------------------------------------------------------------------------
CWeapon_CSS_HL2_P90::CWeapon_CSS_HL2_P90( void )
{
}
//-----------------------------------------------------------------------------
// CWeapon_CSS_HL2_MAC10
//-----------------------------------------------------------------------------
class CWeapon_CSS_HL2_MAC10 : public CBase_CSS_HL2_SMG
{
public:
DECLARE_CLASS( CWeapon_CSS_HL2_MAC10, CBase_CSS_HL2_SMG );
DECLARE_NETWORKCLASS();
DECLARE_PREDICTABLE();
DECLARE_DATADESC();
CWeapon_CSS_HL2_MAC10(void);
virtual CSS_HL2_WeaponActClass GetCSSWeaponActClass() { return CSSHL2_WEAPON_SMG2; }
virtual float GetViewKickBase() { return 1.0f; }
virtual const Vector& GetBulletSpread( void )
{
static const Vector cone = VECTOR_CONE_4DEGREES;
return cone;
}
virtual float GetFireRate( void ) { return 0.075f; }
};
IMPLEMENT_NETWORKCLASS_DT( CWeapon_CSS_HL2_MAC10, DT_Weapon_CSS_HL2_MAC10 )
END_NETWORK_TABLE()
LINK_ENTITY_TO_CLASS( weapon_css_mac10, CWeapon_CSS_HL2_MAC10 );
#if PRECACHE_REGISTER_CSS_WEAPONS == 1
PRECACHE_WEAPON_REGISTER( weapon_css_mac10 );
#endif
BEGIN_DATADESC( CWeapon_CSS_HL2_MAC10 )
END_DATADESC()
#ifdef CLIENT_DLL
BEGIN_PREDICTION_DATA( CWeapon_CSS_HL2_MAC10 )
END_PREDICTION_DATA()
#endif
//-----------------------------------------------------------------------------
// Purpose: Constructor
//-----------------------------------------------------------------------------
CWeapon_CSS_HL2_MAC10::CWeapon_CSS_HL2_MAC10( void )
{
}