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

80 lines
1.7 KiB
C++

//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: Tripmine
//
// $Workfile: $
// $Date: $
// $NoKeywords: $
//=============================================================================//
#ifndef TRIPWIRE_H
#define TRIPWIRE_H
#ifdef _WIN32
#pragma once
#endif
#include "basegrenade_shared.h"
class CRopeKeyframe;
// ####################################################################
// CTripwireHook
//
// This is what the tripwire shoots out at the end of the rope
// ####################################################################
class CTripwireHook : public CBaseAnimating {
DECLARE_DATADESC();
public:
DECLARE_CLASS(CTripwireHook, CBaseAnimating);
EHANDLE m_hGrenade;
bool m_bAttached;
void Spawn(void);
void Precache(void);
bool CreateVPhysics(void);
void EndTouch(CBaseEntity *pOther);
void SetVelocity(const Vector &velocity, const AngularImpulse &angVelocity);
};
class CTripwireGrenade : public CBaseGrenade {
public:
DECLARE_CLASS(CTripwireGrenade, CBaseGrenade);
CTripwireGrenade();
void Spawn(void);
void Precache(void);
int OnTakeDamage_Alive(const CTakeDamageInfo &info);
void WarningThink(void);
void PowerupThink(void);
void RopeBreakThink(void);
void FireThink(void);
void Event_Killed(const CTakeDamageInfo &info);
void Attach(void);
void MakeRope(void);
void BreakRope(void);
void ShakeRope(void);
void FireMissile(const Vector &vTargetPos);
private:
float m_flPowerUp;
Vector m_vecDir;
int m_nMissileCount;
Vector m_vTargetPos;
Vector m_vTargetOffset;
CRopeKeyframe *m_pRope;
CTripwireHook *m_pHook;
DECLARE_DATADESC();
};
#endif // TRIPWIRE_H