Modified source engine (2017) developed by valve and leaked in 2020. Not for commercial purporses
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

135 lines
2.8 KiB

//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: RPG
//
//=============================================================================//
#ifndef WEAPON_RPG_H
#define WEAPON_RPG_H
#ifdef _WIN32
#pragma once
#endif
#include "hl1mp_basecombatweapon_shared.h"
#ifdef CLIENT_DLL
#include "iviewrender_beams.h"
#include "c_smoke_trail.h"
#endif
#ifndef CLIENT_DLL
#include "smoke_trail.h"
#include "Sprite.h"
#include "npcevent.h"
#include "beam_shared.h"
#include "hl1_basegrenade.h"
class CWeaponRPG;
//###########################################################################
// CRpgRocket
//###########################################################################
class CRpgRocket : public CHL1BaseGrenade
{
DECLARE_CLASS( CRpgRocket, CHL1BaseGrenade );
DECLARE_SERVERCLASS();
public:
CRpgRocket();
Class_T Classify( void ) { return CLASS_NONE; }
void Spawn( void );
void Precache( void );
void RocketTouch( CBaseEntity *pOther );
void IgniteThink( void );
void SeekThink( void );
virtual void Detonate( void );
static CRpgRocket *Create( const Vector &vecOrigin, const QAngle &angAngles, CBasePlayer *pentOwner = NULL );
CHandle<CWeaponRPG> m_hOwner;
float m_flIgniteTime;
int m_iTrail;
DECLARE_DATADESC();
};
#endif
#ifdef CLIENT_DLL
#define CLaserDot C_LaserDot
#endif
class CLaserDot;
#ifdef CLIENT_DLL
#define CWeaponRPG C_WeaponRPG
#endif
//-----------------------------------------------------------------------------
// CWeaponRPG
//-----------------------------------------------------------------------------
class CWeaponRPG : public CBaseHL1MPCombatWeapon
{
DECLARE_CLASS( CWeaponRPG, CBaseHL1MPCombatWeapon );
public:
CWeaponRPG( void );
~CWeaponRPG();
void ItemPostFrame( void );
void Precache( void );
bool Deploy( void );
void PrimaryAttack( void );
void WeaponIdle( void );
bool Holster( CBaseCombatWeapon *pSwitchingTo = NULL );
void NotifyRocketDied( void );
bool Reload( void );
void Drop( const Vector &vecVelocity );
virtual int GetDefaultClip1( void ) const;
// DECLARE_SERVERCLASS();
DECLARE_DATADESC();
DECLARE_NETWORKCLASS();
DECLARE_PREDICTABLE();
private:
void CreateLaserPointer( void );
void UpdateSpot( void );
bool IsGuiding( void );
void StartGuiding( void );
void StopGuiding( void );
#ifndef CLIENT_DLL
// DECLARE_ACTTABLE();
#endif
private:
// bool m_bGuiding;
// CHandle<CLaserDot> m_hLaserDot;
// CHandle<CRpgRocket> m_hMissile;
// bool m_bIntialStateUpdate;
// bool m_bLaserDotSuspended;
// float m_flLaserDotReviveTime;
CNetworkVar( bool, m_bGuiding );
CNetworkVar( bool, m_bIntialStateUpdate );
CNetworkVar( bool, m_bLaserDotSuspended );
CNetworkVar( float, m_flLaserDotReviveTime );
CNetworkHandle( CBaseEntity, m_hMissile );
#ifndef CLIENT_DLL
CHandle<CLaserDot> m_hLaserDot;
#endif
};
#endif // WEAPON_RPG_H