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.
2020-08-04 13:13:01 -04:00

67 lines
1.7 KiB
C++

//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: Molotov weapon
//
// $Workfile: $
// $Date: $
//
//-----------------------------------------------------------------------------
// $Log: $
//
// $NoKeywords: $
//=============================================================================//
#include "basehlcombatweapon.h"
#ifndef WEAPON_MOLOTOV_H
#define WEAPON_MOLOTOV_H
class CGrenade_Molotov;
class CWeaponMolotov : public CBaseHLCombatWeapon {
public:
DECLARE_CLASS(CWeaponMolotov, CBaseHLCombatWeapon);
DECLARE_SERVERCLASS();
private:
int m_nNumAmmoTypes;
bool m_bNeedDraw;
int m_iThrowBits; // Save the current throw bits state
float m_fNextThrowCheck; // When to check throw ability next
Vector m_vecTossVelocity;
public:
void Precache(void);
void Spawn(void);
void DrawAmmo(void);
virtual int WeaponRangeAttack1Condition(float flDot, float flDist);
virtual bool WeaponLOSCondition(const Vector &ownerPos,
const Vector &targetPos,
bool bSetConditions);
void SetPickupTouch(void);
void MolotovTouch(CBaseEntity *pOther); // default weapon touch
int CapabilitiesGet(void) { return bits_CAP_WEAPON_RANGE_ATTACK1; }
bool ObjectInWay(void);
void ThrowMolotov(const Vector &vecSrc, const Vector &vecVelocity);
void ItemPostFrame(void);
void PrimaryAttack(void);
void SecondaryAttack(void);
void Operator_HandleAnimEvent(animevent_t *pEvent,
CBaseCombatCharacter *pOperator);
DECLARE_ACTTABLE();
DECLARE_DATADESC();
CWeaponMolotov(void);
};
#endif // WEAPON_MOLOTOV_H