diff options
Diffstat (limited to 'mp/src/game/shared/hl2/hl_gamemovement.h')
| -rw-r--r-- | mp/src/game/shared/hl2/hl_gamemovement.h | 258 |
1 files changed, 129 insertions, 129 deletions
diff --git a/mp/src/game/shared/hl2/hl_gamemovement.h b/mp/src/game/shared/hl2/hl_gamemovement.h index 2141d8b7..1e9abefe 100644 --- a/mp/src/game/shared/hl2/hl_gamemovement.h +++ b/mp/src/game/shared/hl2/hl_gamemovement.h @@ -1,129 +1,129 @@ -//========= Copyright Valve Corporation, All rights reserved. ============//
-//
-// Purpose: Special handling for hl2 usable ladders
-//
-//=============================================================================//
-
-#include "gamemovement.h"
-#include "func_ladder.h"
-
-#if defined( CLIENT_DLL )
-
-#include "c_basehlplayer.h"
-#define CHL2_Player C_BaseHLPlayer
-#else
-
-#include "hl2_player.h"
-
-#endif
-
-struct LadderMove_t;
-class CInfoLadderDismount;
-
-struct NearbyDismount_t
-{
- CInfoLadderDismount *dismount;
- float distSqr;
-};
-
-//-----------------------------------------------------------------------------
-// Purpose: HL2 specific movement code
-//-----------------------------------------------------------------------------
-class CHL2GameMovement : public CGameMovement
-{
- typedef CGameMovement BaseClass;
-public:
-
- CHL2GameMovement();
-
-// Overrides
- virtual void FullLadderMove();
- virtual bool LadderMove( void );
- virtual bool OnLadder( trace_t &trace );
- virtual int GetCheckInterval( IntervalType_t type );
- virtual void SetGroundEntity( trace_t *pm );
- virtual bool CanAccelerate( void );
-
-private:
-
- // See if we are pressing use near a ladder "mount" point and if so, latch us onto the ladder
- bool CheckLadderAutoMount( CFuncLadder *ladder, const Vector& bestOrigin );
-
- bool CheckLadderAutoMountCone( CFuncLadder *ladder, const Vector& bestOrigin, float maxAngleDelta, float maxDistToLadder );
- bool CheckLadderAutoMountEndPoint(CFuncLadder *ladder, const Vector& bestOrigin );
-
-
- bool LookingAtLadder( CFuncLadder *ladder );
-
- // Are we forcing the user's position to a new spot
- bool IsForceMoveActive();
- // Start forcing player position
- void StartForcedMove( bool mounting, float transit_speed, const Vector& goalpos, CFuncLadder *ladder );
- // Returns false when finished
- bool ContinueForcedMove();
-
- // Given a list of nearby ladders, find the best ladder and the "mount" origin
- void Findladder( float maxdist, CFuncLadder **ppLadder, Vector& ladderOrigin, const CFuncLadder *skipLadder );
-
- // Debounce the +USE key
- void SwallowUseKey();
-
- // Returns true if the player will auto-exit the ladder via a dismount node
- bool ExitLadderViaDismountNode( CFuncLadder *ladder, bool strict, bool useAlternate = false );
- void GetSortedDismountNodeList( const Vector &org, float radius, CFuncLadder *ladder, CUtlRBTree< NearbyDismount_t, int >& list );
-
- LadderMove_t *GetLadderMove();
- CHL2_Player *GetHL2Player();
-
- void SetLadder( CFuncLadder *ladder );
- CFuncLadder *GetLadder();
-};
-
-
-//-----------------------------------------------------------------------------
-// Purpose:
-//-----------------------------------------------------------------------------
-inline CHL2_Player *CHL2GameMovement::GetHL2Player()
-{
- return static_cast< CHL2_Player * >( player );
-}
-
-//-----------------------------------------------------------------------------
-// Purpose:
-// Output : inline LadderMove*
-//-----------------------------------------------------------------------------
-inline LadderMove_t *CHL2GameMovement::GetLadderMove()
-{
- CHL2_Player *p = GetHL2Player();
- if ( !p )
- {
- return NULL;
- }
- return p->GetLadderMove();
-}
-
-//-----------------------------------------------------------------------------
-// Purpose:
-// Input : *ladder -
-//-----------------------------------------------------------------------------
-inline void CHL2GameMovement::SetLadder( CFuncLadder *ladder )
-{
- CFuncLadder* oldLadder = GetLadder();
-
- if ( !ladder && oldLadder )
- {
- oldLadder->PlayerGotOff( GetHL2Player() );
- }
-
-
- GetHL2Player()->m_HL2Local.m_hLadder.Set( ladder );
-}
-
-//-----------------------------------------------------------------------------
-// Purpose:
-// Output : CFuncLadder
-//-----------------------------------------------------------------------------
-inline CFuncLadder *CHL2GameMovement::GetLadder()
-{
- return static_cast<CFuncLadder*>( static_cast<CBaseEntity *>( GetHL2Player()->m_HL2Local.m_hLadder.Get() ) );
-}
+//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: Special handling for hl2 usable ladders +// +//=============================================================================// + +#include "gamemovement.h" +#include "func_ladder.h" + +#if defined( CLIENT_DLL ) + +#include "c_basehlplayer.h" +#define CHL2_Player C_BaseHLPlayer +#else + +#include "hl2_player.h" + +#endif + +struct LadderMove_t; +class CInfoLadderDismount; + +struct NearbyDismount_t +{ + CInfoLadderDismount *dismount; + float distSqr; +}; + +//----------------------------------------------------------------------------- +// Purpose: HL2 specific movement code +//----------------------------------------------------------------------------- +class CHL2GameMovement : public CGameMovement +{ + typedef CGameMovement BaseClass; +public: + + CHL2GameMovement(); + +// Overrides + virtual void FullLadderMove(); + virtual bool LadderMove( void ); + virtual bool OnLadder( trace_t &trace ); + virtual int GetCheckInterval( IntervalType_t type ); + virtual void SetGroundEntity( trace_t *pm ); + virtual bool CanAccelerate( void ); + +private: + + // See if we are pressing use near a ladder "mount" point and if so, latch us onto the ladder + bool CheckLadderAutoMount( CFuncLadder *ladder, const Vector& bestOrigin ); + + bool CheckLadderAutoMountCone( CFuncLadder *ladder, const Vector& bestOrigin, float maxAngleDelta, float maxDistToLadder ); + bool CheckLadderAutoMountEndPoint(CFuncLadder *ladder, const Vector& bestOrigin ); + + + bool LookingAtLadder( CFuncLadder *ladder ); + + // Are we forcing the user's position to a new spot + bool IsForceMoveActive(); + // Start forcing player position + void StartForcedMove( bool mounting, float transit_speed, const Vector& goalpos, CFuncLadder *ladder ); + // Returns false when finished + bool ContinueForcedMove(); + + // Given a list of nearby ladders, find the best ladder and the "mount" origin + void Findladder( float maxdist, CFuncLadder **ppLadder, Vector& ladderOrigin, const CFuncLadder *skipLadder ); + + // Debounce the +USE key + void SwallowUseKey(); + + // Returns true if the player will auto-exit the ladder via a dismount node + bool ExitLadderViaDismountNode( CFuncLadder *ladder, bool strict, bool useAlternate = false ); + void GetSortedDismountNodeList( const Vector &org, float radius, CFuncLadder *ladder, CUtlRBTree< NearbyDismount_t, int >& list ); + + LadderMove_t *GetLadderMove(); + CHL2_Player *GetHL2Player(); + + void SetLadder( CFuncLadder *ladder ); + CFuncLadder *GetLadder(); +}; + + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +inline CHL2_Player *CHL2GameMovement::GetHL2Player() +{ + return static_cast< CHL2_Player * >( player ); +} + +//----------------------------------------------------------------------------- +// Purpose: +// Output : inline LadderMove* +//----------------------------------------------------------------------------- +inline LadderMove_t *CHL2GameMovement::GetLadderMove() +{ + CHL2_Player *p = GetHL2Player(); + if ( !p ) + { + return NULL; + } + return p->GetLadderMove(); +} + +//----------------------------------------------------------------------------- +// Purpose: +// Input : *ladder - +//----------------------------------------------------------------------------- +inline void CHL2GameMovement::SetLadder( CFuncLadder *ladder ) +{ + CFuncLadder* oldLadder = GetLadder(); + + if ( !ladder && oldLadder ) + { + oldLadder->PlayerGotOff( GetHL2Player() ); + } + + + GetHL2Player()->m_HL2Local.m_hLadder.Set( ladder ); +} + +//----------------------------------------------------------------------------- +// Purpose: +// Output : CFuncLadder +//----------------------------------------------------------------------------- +inline CFuncLadder *CHL2GameMovement::GetLadder() +{ + return static_cast<CFuncLadder*>( static_cast<CBaseEntity *>( GetHL2Player()->m_HL2Local.m_hLadder.Get() ) ); +} |