Advertisement
Guest User

Untitled

a guest
May 22nd, 2015
217
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.71 KB | None | 0 0
  1. //-----------------------------------------------------------------------------
  2. // CWeaponPistol
  3. //-----------------------------------------------------------------------------
  4.  
  5. class CWeaponPistol : public CBaseHLCombatWeapon
  6. {
  7. DECLARE_DATADESC();
  8.  
  9. public:
  10. DECLARE_CLASS( CWeaponPistol, CBaseHLCombatWeapon );
  11.  
  12. CWeaponPistol(void);
  13.  
  14. DECLARE_SERVERCLASS();
  15.  
  16. void Precache( void );
  17. void ItemPostFrame( void );
  18. void ItemPreFrame( void );
  19. void ItemBusyFrame( void );
  20. void PrimaryAttack( void );
  21. void AddViewKick( void );
  22. void DryFire( void );
  23. void Operator_HandleAnimEvent( animevent_t *pEvent, CBaseCombatCharacter *pOperator );
  24. //void DrawHitmarker( void );
  25.  
  26. void UpdatePenaltyTime( void );
  27.  
  28. int CapabilitiesGet( void ) { return bits_CAP_WEAPON_RANGE_ATTACK1; }
  29. Activity GetPrimaryAttackActivity( void );
  30.  
  31. virtual bool Reload( void );
  32.  
  33. virtual const Vector& GetBulletSpread( void )
  34. {
  35. // Handle NPCs first
  36. static Vector npcCone = VECTOR_CONE_5DEGREES;
  37. if ( GetOwner() && GetOwner()->IsNPC() )
  38. return npcCone;
  39.  
  40. static Vector cone;
  41.  
  42. if ( pistol_use_new_accuracy.GetBool() )
  43. {
  44. float ramp = RemapValClamped( m_flAccuracyPenalty,
  45. 0.0f,
  46. PISTOL_ACCURACY_MAXIMUM_PENALTY_TIME,
  47. 0.0f,
  48. 1.0f );
  49.  
  50. // We lerp from very accurate to inaccurate over time
  51. VectorLerp( VECTOR_CONE_1DEGREES, VECTOR_CONE_6DEGREES, ramp, cone );
  52. }
  53. else
  54. {
  55. // Old value
  56. cone = VECTOR_CONE_4DEGREES;
  57. }
  58.  
  59. return cone;
  60. }
  61.  
  62. virtual int GetMinBurst()
  63. {
  64. return 1;
  65. }
  66.  
  67. virtual int GetMaxBurst()
  68. {
  69. return 3;
  70. }
  71.  
  72. virtual float GetFireRate( void )
  73. {
  74. return 0.5f;
  75. }
  76.  
  77. DECLARE_ACTTABLE();
  78.  
  79. private:
  80. float m_flSoonestPrimaryAttack;
  81. float m_flLastAttackTime;
  82. float m_flAccuracyPenalty;
  83. int m_nNumShotsFired;
  84. };
  85.  
  86.  
  87. IMPLEMENT_SERVERCLASS_ST(CWeaponPistol, DT_WeaponPistol)
  88. END_SEND_TABLE()
  89.  
  90. LINK_ENTITY_TO_CLASS( weapon_pistol, CWeaponPistol );
  91. PRECACHE_WEAPON_REGISTER( weapon_pistol );
  92.  
  93. BEGIN_DATADESC( CWeaponPistol )
  94.  
  95. DEFINE_FIELD( m_flSoonestPrimaryAttack, FIELD_TIME ),
  96. DEFINE_FIELD( m_flLastAttackTime, FIELD_TIME ),
  97. DEFINE_FIELD( m_flAccuracyPenalty, FIELD_FLOAT ), //NOTENOTE: This is NOT tracking game time
  98. DEFINE_FIELD( m_nNumShotsFired, FIELD_INTEGER ),
  99.  
  100. END_DATADESC()
  101.  
  102. acttable_t CWeaponPistol::m_acttable[] =
  103. {
  104. { ACT_IDLE, ACT_IDLE_PISTOL, true },
  105. { ACT_IDLE_ANGRY, ACT_IDLE_ANGRY_PISTOL, true },
  106. { ACT_RANGE_ATTACK1, ACT_RANGE_ATTACK_PISTOL, true },
  107. { ACT_RELOAD, ACT_RELOAD_PISTOL, true },
  108. { ACT_WALK_AIM, ACT_WALK_AIM_PISTOL, true },
  109. { ACT_RUN_AIM, ACT_RUN_AIM_PISTOL, true },
  110. { ACT_GESTURE_RANGE_ATTACK1, ACT_GESTURE_RANGE_ATTACK_PISTOL,true },
  111. { ACT_RELOAD_LOW, ACT_RELOAD_PISTOL_LOW, false },
  112. { ACT_RANGE_ATTACK1_LOW, ACT_RANGE_ATTACK_PISTOL_LOW, false },
  113. { ACT_COVER_LOW, ACT_COVER_PISTOL_LOW, false },
  114. { ACT_RANGE_AIM_LOW, ACT_RANGE_AIM_PISTOL_LOW, false },
  115. { ACT_GESTURE_RELOAD, ACT_GESTURE_RELOAD_PISTOL, false },
  116. { ACT_WALK, ACT_WALK_PISTOL, false },
  117. { ACT_RUN, ACT_RUN_PISTOL, false },
  118. { ACT_HL2MP_IDLE, ACT_HL2MP_IDLE_PISTOL, false },
  119. { ACT_HL2MP_RUN, ACT_HL2MP_RUN_PISTOL, false },
  120. { ACT_HL2MP_IDLE_CROUCH, ACT_HL2MP_IDLE_CROUCH_PISTOL, false },
  121. { ACT_HL2MP_WALK_CROUCH, ACT_HL2MP_WALK_CROUCH_PISTOL, false },
  122. { ACT_HL2MP_GESTURE_RANGE_ATTACK, ACT_HL2MP_GESTURE_RANGE_ATTACK_PISTOL, false },
  123. { ACT_HL2MP_GESTURE_RELOAD, ACT_HL2MP_GESTURE_RELOAD_PISTOL, false },
  124. { ACT_HL2MP_JUMP, ACT_HL2MP_JUMP_PISTOL, false },
  125. { ACT_RANGE_ATTACK1, ACT_RANGE_ATTACK_PISTOL, false },
  126. };
  127.  
  128. IMPLEMENT_ACTTABLE( CWeaponPistol );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement