summaryrefslogtreecommitdiff
path: root/game/server/hl2/combine_mine.h
diff options
context:
space:
mode:
authorFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
committerFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
commit3bf9df6b2785fa6d951086978a3e66f49427166a (patch)
tree2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /game/server/hl2/combine_mine.h
downloadarchived-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.h128
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