mirror of
https://github.com/nillerusr/source-engine.git
synced 2024-12-29 17:43:01 +00:00
81 lines
1.7 KiB
C++
81 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
|