aboutsummaryrefslogtreecommitdiff
path: root/mp/src/game/server/hl2/combine_mine.h
diff options
context:
space:
mode:
authorJoe Ludwig <[email protected]>2013-06-26 15:22:04 -0700
committerJoe Ludwig <[email protected]>2013-06-26 15:22:04 -0700
commit39ed87570bdb2f86969d4be821c94b722dc71179 (patch)
treeabc53757f75f40c80278e87650ea92808274aa59 /mp/src/game/server/hl2/combine_mine.h
downloadsource-sdk-2013-39ed87570bdb2f86969d4be821c94b722dc71179.tar.xz
source-sdk-2013-39ed87570bdb2f86969d4be821c94b722dc71179.zip
First version of the SOurce SDK 2013
Diffstat (limited to 'mp/src/game/server/hl2/combine_mine.h')
-rw-r--r--mp/src/game/server/hl2/combine_mine.h128
1 files changed, 128 insertions, 0 deletions
diff --git a/mp/src/game/server/hl2/combine_mine.h b/mp/src/game/server/hl2/combine_mine.h
new file mode 100644
index 00000000..c418d4b8
--- /dev/null
+++ b/mp/src/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