mirror of
https://github.com/mapbase-source/source-sdk-2013.git
synced 2025-01-27 06:07:56 +03:00
Added various misc. stubs and utility code from the Alien Swarm SDK
This commit is contained in:
parent
051a217670
commit
6392d9ab7c
@ -4808,12 +4808,18 @@ void C_BaseAnimating::GetRagdollInitBoneArrays( matrix3x4_t *pDeltaBones0, matri
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
C_ClientRagdoll *C_BaseAnimating::CreateClientRagdoll( bool bRestoring )
|
||||||
|
{
|
||||||
|
//DevMsg( "Creating ragdoll at tick %d\n", gpGlobals->tickcount );
|
||||||
|
return new C_ClientRagdoll( bRestoring );
|
||||||
|
}
|
||||||
|
|
||||||
C_BaseAnimating *C_BaseAnimating::CreateRagdollCopy()
|
C_BaseAnimating *C_BaseAnimating::CreateRagdollCopy()
|
||||||
{
|
{
|
||||||
//Adrian: We now create a separate entity that becomes this entity's ragdoll.
|
//Adrian: We now create a separate entity that becomes this entity's ragdoll.
|
||||||
//That way the server side version of this entity can go away.
|
//That way the server side version of this entity can go away.
|
||||||
//Plus we can hook save/restore code to these ragdolls so they don't fall on restore anymore.
|
//Plus we can hook save/restore code to these ragdolls so they don't fall on restore anymore.
|
||||||
C_ClientRagdoll *pRagdoll = new C_ClientRagdoll( false );
|
C_ClientRagdoll *pRagdoll = CreateClientRagdoll( false );
|
||||||
if ( pRagdoll == NULL )
|
if ( pRagdoll == NULL )
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
@ -5366,6 +5372,11 @@ void C_BaseAnimating::StudioFrameAdvance()
|
|||||||
|
|
||||||
if ( flNewCycle < 0.0f || flNewCycle >= 1.0f )
|
if ( flNewCycle < 0.0f || flNewCycle >= 1.0f )
|
||||||
{
|
{
|
||||||
|
if (flNewCycle >= 1.0f)
|
||||||
|
{
|
||||||
|
ReachedEndOfSequence();
|
||||||
|
}
|
||||||
|
|
||||||
if ( IsSequenceLooping( hdr, GetSequence() ) )
|
if ( IsSequenceLooping( hdr, GetSequence() ) )
|
||||||
{
|
{
|
||||||
flNewCycle -= (int)(flNewCycle);
|
flNewCycle -= (int)(flNewCycle);
|
||||||
|
@ -38,6 +38,7 @@ class C_BaseClientShader
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
class IRagdoll;
|
class IRagdoll;
|
||||||
|
class C_ClientRagdoll;
|
||||||
class CIKContext;
|
class CIKContext;
|
||||||
class CIKState;
|
class CIKState;
|
||||||
class ConVar;
|
class ConVar;
|
||||||
@ -301,6 +302,7 @@ public:
|
|||||||
bool IsRagdoll() const;
|
bool IsRagdoll() const;
|
||||||
bool IsAboutToRagdoll() const;
|
bool IsAboutToRagdoll() const;
|
||||||
virtual C_BaseAnimating *BecomeRagdollOnClient();
|
virtual C_BaseAnimating *BecomeRagdollOnClient();
|
||||||
|
virtual C_ClientRagdoll *CreateClientRagdoll( bool bRestoring = false );
|
||||||
C_BaseAnimating *CreateRagdollCopy();
|
C_BaseAnimating *CreateRagdollCopy();
|
||||||
bool InitAsClientRagdoll( const matrix3x4_t *pDeltaBones0, const matrix3x4_t *pDeltaBones1, const matrix3x4_t *pCurrentBonePosition, float boneDt, bool bFixedConstraints=false );
|
bool InitAsClientRagdoll( const matrix3x4_t *pDeltaBones0, const matrix3x4_t *pDeltaBones1, const matrix3x4_t *pCurrentBonePosition, float boneDt, bool bFixedConstraints=false );
|
||||||
void IgniteRagdoll( C_BaseAnimating *pSource );
|
void IgniteRagdoll( C_BaseAnimating *pSource );
|
||||||
@ -354,6 +356,8 @@ public:
|
|||||||
void ClientSideAnimationChanged();
|
void ClientSideAnimationChanged();
|
||||||
virtual unsigned int ComputeClientSideAnimationFlags();
|
virtual unsigned int ComputeClientSideAnimationFlags();
|
||||||
|
|
||||||
|
virtual void ReachedEndOfSequence() { return; }
|
||||||
|
|
||||||
virtual void ResetClientsideFrame( void ) { SetCycle( 0 ); }
|
virtual void ResetClientsideFrame( void ) { SetCycle( 0 ); }
|
||||||
|
|
||||||
void SetCycle( float flCycle );
|
void SetCycle( float flCycle );
|
||||||
|
@ -667,6 +667,7 @@ public:
|
|||||||
|
|
||||||
virtual bool ShouldAlwaysThink();
|
virtual bool ShouldAlwaysThink();
|
||||||
void ForceGatherConditions() { m_bForceConditionsGather = true; SetEfficiency( AIE_NORMAL ); } // Force an NPC out of PVS to call GatherConditions on next think
|
void ForceGatherConditions() { m_bForceConditionsGather = true; SetEfficiency( AIE_NORMAL ); } // Force an NPC out of PVS to call GatherConditions on next think
|
||||||
|
bool IsForceGatherConditionsSet() { return m_bForceConditionsGather; }
|
||||||
|
|
||||||
virtual float LineOfSightDist( const Vector &vecDir = vec3_invalid, float zEye = FLT_MAX );
|
virtual float LineOfSightDist( const Vector &vecDir = vec3_invalid, float zEye = FLT_MAX );
|
||||||
|
|
||||||
@ -960,7 +961,7 @@ public:
|
|||||||
void RemoveSleepFlags( int flags ) { m_SleepFlags &= ~flags; }
|
void RemoveSleepFlags( int flags ) { m_SleepFlags &= ~flags; }
|
||||||
bool HasSleepFlags( int flags ) { return (m_SleepFlags & flags) == flags; }
|
bool HasSleepFlags( int flags ) { return (m_SleepFlags & flags) == flags; }
|
||||||
|
|
||||||
void UpdateSleepState( bool bInPVS );
|
virtual void UpdateSleepState( bool bInPVS );
|
||||||
virtual void Wake( bool bFireOutput = true );
|
virtual void Wake( bool bFireOutput = true );
|
||||||
#ifdef MAPBASE
|
#ifdef MAPBASE
|
||||||
// A version of Wake() that takes an activator
|
// A version of Wake() that takes an activator
|
||||||
|
@ -506,6 +506,11 @@ void CBaseAnimating::StudioFrameAdvanceInternal( CStudioHdr *pStudioHdr, float f
|
|||||||
float flNewCycle = GetCycle() + flCycleDelta;
|
float flNewCycle = GetCycle() + flCycleDelta;
|
||||||
if (flNewCycle < 0.0 || flNewCycle >= 1.0)
|
if (flNewCycle < 0.0 || flNewCycle >= 1.0)
|
||||||
{
|
{
|
||||||
|
if (flNewCycle >= 1.0f)
|
||||||
|
{
|
||||||
|
ReachedEndOfSequence();
|
||||||
|
}
|
||||||
|
|
||||||
if (m_bSequenceLoops)
|
if (m_bSequenceLoops)
|
||||||
{
|
{
|
||||||
flNewCycle -= (int)(flNewCycle);
|
flNewCycle -= (int)(flNewCycle);
|
||||||
|
@ -84,6 +84,7 @@ public:
|
|||||||
virtual void StudioFrameAdvance(); // advance animation frame to some time in the future
|
virtual void StudioFrameAdvance(); // advance animation frame to some time in the future
|
||||||
void StudioFrameAdvanceManual( float flInterval );
|
void StudioFrameAdvanceManual( float flInterval );
|
||||||
bool IsValidSequence( int iSequence );
|
bool IsValidSequence( int iSequence );
|
||||||
|
virtual void ReachedEndOfSequence() { return; }
|
||||||
|
|
||||||
inline float GetPlaybackRate();
|
inline float GetPlaybackRate();
|
||||||
inline void SetPlaybackRate( float rate );
|
inline void SetPlaybackRate( float rate );
|
||||||
|
Loading…
x
Reference in New Issue
Block a user