This repository has been archived on 2024-06-13. You can view files and clone it, but cannot push or open issues or pull requests.
nekohook/modules/source2013/sdk/game/server/basebludgeonweapon.h
2020-08-04 13:13:01 -04:00

62 lines
1.9 KiB
C++

//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: The class from which all bludgeon melee
// weapons are derived.
//
// $Workfile: $
// $Date: $
// $NoKeywords: $
//=============================================================================//
#include "basehlcombatweapon.h"
#ifndef BASEBLUDGEONWEAPON_H
#define BASEBLUDGEONWEAPON_H
//=========================================================
// CBaseHLBludgeonWeapon
//=========================================================
class CBaseHLBludgeonWeapon : public CBaseHLCombatWeapon {
DECLARE_CLASS(CBaseHLBludgeonWeapon, CBaseHLCombatWeapon);
public:
CBaseHLBludgeonWeapon();
DECLARE_SERVERCLASS();
virtual void Spawn(void);
virtual void Precache(void);
// Attack functions
virtual void PrimaryAttack(void);
virtual void SecondaryAttack(void);
virtual void ItemPostFrame(void);
// Functions to select animation sequences
virtual Activity GetPrimaryAttackActivity(void) { return ACT_VM_HITCENTER; }
virtual Activity GetSecondaryAttackActivity(void) {
return ACT_VM_HITCENTER2;
}
virtual float GetFireRate(void) { return 0.2f; }
virtual float GetRange(void) { return 32.0f; }
virtual float GetDamageForActivity(Activity hitActivity) { return 1.0f; }
virtual int CapabilitiesGet(void);
virtual int WeaponMeleeAttack1Condition(float flDot, float flDist);
protected:
virtual void ImpactEffect(trace_t &trace);
private:
bool ImpactWater(const Vector &start, const Vector &end);
void Swing(int bIsSecondary);
void Hit(trace_t &traceHit, Activity nHitActivity, bool bIsSecondary);
Activity ChooseIntersectionPointAndActivity(trace_t &hitTrace,
const Vector &mins,
const Vector &maxs,
CBasePlayer *pOwner);
};
#endif