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/shared/hl2mp/weapon_hl2mpbasebasebludgeon.h
2020-08-04 13:13:01 -04:00

70 lines
2.1 KiB
C++

//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: The class from which all bludgeon melee
// weapons are derived.
//
// $Workfile: $
// $Date: $
// $NoKeywords: $
//=============================================================================//
#include "weapon_hl2mpbasehlmpcombatweapon.h"
#ifndef BASEBLUDGEONWEAPON_H
#define BASEBLUDGEONWEAPON_H
#ifdef _WIN32
#pragma once
#endif
#if defined(CLIENT_DLL)
#define CBaseHL2MPBludgeonWeapon C_BaseHL2MPBludgeonWeapon
#endif
//=========================================================
// CBaseHLBludgeonWeapon
//=========================================================
class CBaseHL2MPBludgeonWeapon : public CBaseHL2MPCombatWeapon {
DECLARE_CLASS(CBaseHL2MPBludgeonWeapon, CBaseHL2MPCombatWeapon);
public:
CBaseHL2MPBludgeonWeapon();
DECLARE_NETWORKCLASS();
DECLARE_PREDICTABLE();
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; }
CBaseHL2MPBludgeonWeapon(const CBaseHL2MPBludgeonWeapon &);
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);
Activity ChooseIntersectionPointAndActivity(trace_t &hitTrace,
const Vector &mins,
const Vector &maxs,
CBasePlayer *pOwner);
};
#endif