diff options
| author | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
|---|---|---|
| committer | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
| commit | 3bf9df6b2785fa6d951086978a3e66f49427166a (patch) | |
| tree | 2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /game/server/hl2/combine_mine.h | |
| download | archived-source-engine-2018-hl2-src-master.tar.xz archived-source-engine-2018-hl2-src-master.zip | |
Diffstat (limited to 'game/server/hl2/combine_mine.h')
| -rw-r--r-- | game/server/hl2/combine_mine.h | 128 |
1 files changed, 128 insertions, 0 deletions
diff --git a/game/server/hl2/combine_mine.h b/game/server/hl2/combine_mine.h new file mode 100644 index 0000000..48dbb46 --- /dev/null +++ b/game/server/hl2/combine_mine.h @@ -0,0 +1,128 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +//=============================================================================// + +#include "Color.h" + +#ifndef COMBINE_MINE_H +#define COMBINE_MINE_H + +#ifdef _WIN32 +#pragma once +#endif + +class CSoundPatch; + +//--------------------------------------------------------- +//--------------------------------------------------------- +#define BOUNCEBOMB_HOOK_RANGE 64 +#define BOUNCEBOMB_WARN_RADIUS 245.0 // Must be slightly less than physcannon! +#define BOUNCEBOMB_DETONATE_RADIUS 100.0 + +#define BOUNCEBOMB_EXPLODE_RADIUS 125.0 +#define BOUNCEBOMB_EXPLODE_DAMAGE 150.0 +#include "player_pickup.h" + +class CBounceBomb : public CBaseAnimating, public CDefaultPlayerPickupVPhysics +{ + DECLARE_CLASS( CBounceBomb, CBaseAnimating ); + +public: + CBounceBomb() { m_pWarnSound = NULL; m_bPlacedByPlayer = false; } + void Precache(); + void Spawn(); + void OnRestore(); + int DrawDebugTextOverlays(void); + void SetMineState( int iState ); + int GetMineState() { return m_iMineState; } + bool IsValidLocation(); + void Flip( const Vector &vecForce, const AngularImpulse &torque ); + void SearchThink(); + void BounceThink(); + void SettleThink(); + void CaptiveThink(); + void ExplodeThink(); + void ExplodeTouch( CBaseEntity *pOther ); + void CavernBounceThink(); ///< an alternative style of bouncing used for the citizen modded bouncers + bool IsAwake() { return m_bAwake; } + void Wake( bool bWake ); + float FindNearestNPC(); + void SetNearestNPC( CBaseEntity *pNearest ) { m_hNearestNPC.Set( pNearest ); } + int OnTakeDamage( const CTakeDamageInfo &info ); + bool IsFriend( CBaseEntity *pEntity ); + + void UpdateLight( bool bTurnOn, unsigned int r, unsigned int g, unsigned int b, unsigned int a ); + bool IsLightOn() { return m_hSprite.Get() != NULL; } + + void OnPhysGunPickup( CBasePlayer *pPhysGunUser, PhysGunPickup_t reason = PICKED_UP_BY_CANNON ); + void OnPhysGunDrop( CBasePlayer *pPhysGunUser, PhysGunDrop_t reason ); + bool ForcePhysgunOpen( CBasePlayer *pPlayer ) { return true; } + bool HasPreferredCarryAnglesForPlayer( CBasePlayer *pPlayer ) { return true; } + virtual QAngle PreferredCarryAngles( void ) { return vec3_angle; } + CBasePlayer *HasPhysicsAttacker( float dt ); + + bool IsPlayerPlaced() { return m_bPlacedByPlayer; } + + bool CreateVPhysics() + { + VPhysicsInitNormal( SOLID_VPHYSICS, 0, false ); + return true; + } + + void Pickup(); + + void OpenHooks( bool bSilent = false ); + void CloseHooks(); + + DECLARE_DATADESC(); + + static string_t gm_iszFloorTurretClassname; + static string_t gm_iszGroundTurretClassname; + +private: + float m_flExplosionDelay; + + bool m_bAwake; + bool m_bBounce; + EHANDLE m_hNearestNPC; + EHANDLE m_hSprite; + Color m_LastSpriteColor; + + float m_flHookPositions; + int m_iHookN; + int m_iHookE; + int m_iHookS; + int m_iAllHooks; + + CSoundPatch *m_pWarnSound; + + bool m_bLockSilently; + bool m_bFoeNearest; + + float m_flIgnoreWorldTime; + + bool m_bDisarmed; + + bool m_bPlacedByPlayer; + + bool m_bHeldByPhysgun; + + int m_iFlipAttempts; + int m_iModification; + + CHandle<CBasePlayer> m_hPhysicsAttacker; + float m_flLastPhysicsInfluenceTime; + + float m_flTimeGrabbed; + IPhysicsConstraint *m_pConstraint; + int m_iMineState; + + COutputEvent m_OnPulledUp; + void InputDisarm( inputdata_t &inputdata ); +}; + + + +#endif // COMBINE_MINE_H |