diff options
| author | Jørgen P. Tjernø <[email protected]> | 2013-12-02 19:31:46 -0800 |
|---|---|---|
| committer | Jørgen P. Tjernø <[email protected]> | 2013-12-02 19:46:31 -0800 |
| commit | f56bb35301836e56582a575a75864392a0177875 (patch) | |
| tree | de61ddd39de3e7df52759711950b4c288592f0dc /mp/src/game/client/c_ai_basehumanoid.cpp | |
| parent | Mark some more files as text. (diff) | |
| download | source-sdk-2013-f56bb35301836e56582a575a75864392a0177875.tar.xz source-sdk-2013-f56bb35301836e56582a575a75864392a0177875.zip | |
Fix line endings. WHAMMY.
Diffstat (limited to 'mp/src/game/client/c_ai_basehumanoid.cpp')
| -rw-r--r-- | mp/src/game/client/c_ai_basehumanoid.cpp | 338 |
1 files changed, 169 insertions, 169 deletions
diff --git a/mp/src/game/client/c_ai_basehumanoid.cpp b/mp/src/game/client/c_ai_basehumanoid.cpp index 278f68a6..cf21a258 100644 --- a/mp/src/game/client/c_ai_basehumanoid.cpp +++ b/mp/src/game/client/c_ai_basehumanoid.cpp @@ -1,169 +1,169 @@ -//========= Copyright Valve Corporation, All rights reserved. ============//
-//
-// Purpose:
-//
-// $NoKeywords: $
-//=============================================================================//
-
-#include "cbase.h"
-
-// memdbgon must be the last include file in a .cpp file!!!
-#include "tier0/memdbgon.h"
-
-#if 0
-
-class C_AI_BaseHumanoid : public C_AI_BaseNPC
-{
-public:
- DECLARE_CLASS( C_AI_BaseHumanoid, C_AI_BaseNPC );
- DECLARE_CLIENTCLASS();
-
- C_AI_BaseHumanoid();
-
- // model specific
- virtual bool Interpolate( float currentTime );
- virtual void StandardBlendingRules( CStudioHdr *pStudioHdr, Vector pos[], Quaternion q[], float currentTime, int boneMask );
-
- float m_recanimtime[3];
- AnimationLayer_t m_Layer[4][3];
-};
-
-
-
-C_AI_BaseHumanoid::C_AI_BaseHumanoid()
-{
- memset(m_recanimtime, 0, sizeof(m_recanimtime));
- memset(m_Layer, 0, sizeof(m_Layer));
-}
-
-
-BEGIN_RECV_TABLE_NOBASE(AnimationLayer_t, DT_Animationlayer)
- RecvPropInt(RECVINFO_NAME(nSequence,sequence)),
- RecvPropFloat(RECVINFO_NAME(flCycle,cycle)),
- RecvPropFloat(RECVINFO_NAME(flPlaybackrate,playbackrate)),
- RecvPropFloat(RECVINFO_NAME(flWeight,weight))
-END_RECV_TABLE()
-
-
-
-IMPLEMENT_CLIENTCLASS_DT(C_AI_BaseHumanoid, DT_BaseHumanoid, CAI_BaseHumanoid)
- /*
- RecvPropDataTable(RECVINFO_DTNAME(m_Layer[0][2],m_Layer0),0, &REFERENCE_RECV_TABLE(DT_Animationlayer)),
- RecvPropDataTable(RECVINFO_DTNAME(m_Layer[1][2],m_Layer1),0, &REFERENCE_RECV_TABLE(DT_Animationlayer)),
- RecvPropDataTable(RECVINFO_DTNAME(m_Layer[2][2],m_Layer2),0, &REFERENCE_RECV_TABLE(DT_Animationlayer)),
- RecvPropDataTable(RECVINFO_DTNAME(m_Layer[3][2],m_Layer3),0, &REFERENCE_RECV_TABLE(DT_Animationlayer)),
- */
- RecvPropInt(RECVINFO_NAME(m_Layer[0][2].nSequence,sequence0)),
- RecvPropFloat(RECVINFO_NAME(m_Layer[0][2].flCycle,cycle0)),
- RecvPropFloat(RECVINFO_NAME(m_Layer[0][2].flPlaybackrate,playbackrate0)),
- RecvPropFloat(RECVINFO_NAME(m_Layer[0][2].flWeight,weight0)),
- RecvPropInt(RECVINFO_NAME(m_Layer[1][2].nSequence,sequence1)),
- RecvPropFloat(RECVINFO_NAME(m_Layer[1][2].flCycle,cycle1)),
- RecvPropFloat(RECVINFO_NAME(m_Layer[1][2].flPlaybackrate,playbackrate1)),
- RecvPropFloat(RECVINFO_NAME(m_Layer[1][2].flWeight,weight1)),
- RecvPropInt(RECVINFO_NAME(m_Layer[2][2].nSequence,sequence2)),
- RecvPropFloat(RECVINFO_NAME(m_Layer[2][2].flCycle,cycle2)),
- RecvPropFloat(RECVINFO_NAME(m_Layer[2][2].flPlaybackrate,playbackrate2)),
- RecvPropFloat(RECVINFO_NAME(m_Layer[2][2].flWeight,weight2)),
- RecvPropInt(RECVINFO_NAME(m_Layer[3][2].nSequence,sequence3)),
- RecvPropFloat(RECVINFO_NAME(m_Layer[3][2].flCycle,cycle3)),
- RecvPropFloat(RECVINFO_NAME(m_Layer[3][2].flPlaybackrate,playbackrate3)),
- RecvPropFloat(RECVINFO_NAME(m_Layer[3][2].flWeight,weight3))
-END_RECV_TABLE()
-
-//-----------------------------------------------------------------------------
-// Purpose:
-//-----------------------------------------------------------------------------
-void C_AI_BaseHumanoid::StandardBlendingRules( CStudioHdr *pStudioHdr, Vector pos[], Quaternion q[], float currentTime, int boneMask )
-{
- VPROF( "C_AI_BaseHumanoid::StandardBlendingRules" );
-
- BaseClass::StandardBlendingRules( pStudioHdr, pos, q, currentTime, boneMask );
-
- if ( !hdr )
- {
- return;
- }
-
-#if 0
- float poseparam[MAXSTUDIOPOSEPARAM];
-
- if ( GetSequence() >= hdr->numseq )
- {
- SetSequence( 0 );
- }
-
- // interpolate pose parameters
- for (int i = 0; i < hdr->numposeparameters; i++)
- {
- poseparam[ i ] = m_flPoseParameter[i];
- }
-
- // build root animation
- float fCycle = GetCycle();
- CalcPose( hdr, NULL, pos, q, GetSequence(), fCycle, poseparam );
-
- // debugoverlay->AddTextOverlay( GetAbsOrigin() + Vector( 0, 0, 64 ), 0, 0, "%30s %6.2f : %6.2f", hdr->pSeqdesc( GetSequence() )->pszLabel( ), fCycle, 1.0 );
-
- MaintainSequenceTransitions( hdr, fCycle, poseparam, pos, q, boneMask );
-
-#if 1
- for (i = 0; i < 4; i++)
- {
- if (m_Layer[i][2].nSequence != m_Layer[i][1].nSequence)
- {
- if (m_Layer[i][2].flWeight > 0.5) m_Layer[i][1].flWeight = 1.0; else m_Layer[i][1].flWeight = 0;
- }
- }
-#endif
-
-#if 1
- for (i = 0; i < 4; i++)
- {
- Vector pos2[MAXSTUDIOBONES];
- Quaternion q2[MAXSTUDIOBONES];
- float fWeight = m_Layer[i][1].flWeight * (1 - dadt) + m_Layer[i][2].flWeight * dadt;
-
- /*
- debugoverlay->AddTextOverlay( GetAbsOrigin() + Vector( 0, 0, 64 ), -i - 1, 0,
- "%2d %6.2f %6.2f : %2d %6.2f %6.2f : %2d %6.2f %6.2f",
- m_Layer[i][0].nSequence, m_Layer[i][0].flCycle, m_Layer[i][0].flWeight,
- m_Layer[i][1].nSequence, m_Layer[i][1].flCycle, m_Layer[i][1].flWeight,
- m_Layer[i][2].nSequence, m_Layer[i][2].flCycle, m_Layer[i][2].flWeight );
- */
-
- if (fWeight > 0)
- {
- mstudioseqdesc_t *pseqdesc = hdr->pSeqdesc( m_Layer[i][2].nSequence );
-
- float fCycle = m_Layer[i][2].flCycle;
-
- // UNDONE: Do IK here.
- CalcPose( hdr, NULL, pos2, q2, m_Layer[i][2].nSequence, fCycle, poseparam );
-
- if (fWeight > 1)
- fWeight = 1;
- SlerpBones( hdr, q, pos, pseqdesc, q2, pos2, fWeight );
-
- engine->Con_NPrintf( 10 + i, "%30s %6.2f : %6.2f", pseqdesc->pszLabel(), fCycle, fWeight );
- }
- else
- {
- engine->Con_NPrintf( 10 + i, "%30s %6.2f : %6.2f", " ", 0, 0 );
- }
-
- }
-#endif
-
- CIKContext auto_ik;
- auto_ik.Init( hdr, GetRenderAngles(), GetRenderOrigin(), gpGlobals->curtime );
- CalcAutoplaySequences( hdr, &auto_ik, pos, q, poseparam, boneMask, currentTime );
-
- float controllers[MAXSTUDIOBONECTRLS];
- GetBoneControllers(controllers);
- CalcBoneAdj( hdr, pos, q, controllers );
-#endif
-}
-
-
-#endif
+//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +// $NoKeywords: $ +//=============================================================================// + +#include "cbase.h" + +// memdbgon must be the last include file in a .cpp file!!! +#include "tier0/memdbgon.h" + +#if 0 + +class C_AI_BaseHumanoid : public C_AI_BaseNPC +{ +public: + DECLARE_CLASS( C_AI_BaseHumanoid, C_AI_BaseNPC ); + DECLARE_CLIENTCLASS(); + + C_AI_BaseHumanoid(); + + // model specific + virtual bool Interpolate( float currentTime ); + virtual void StandardBlendingRules( CStudioHdr *pStudioHdr, Vector pos[], Quaternion q[], float currentTime, int boneMask ); + + float m_recanimtime[3]; + AnimationLayer_t m_Layer[4][3]; +}; + + + +C_AI_BaseHumanoid::C_AI_BaseHumanoid() +{ + memset(m_recanimtime, 0, sizeof(m_recanimtime)); + memset(m_Layer, 0, sizeof(m_Layer)); +} + + +BEGIN_RECV_TABLE_NOBASE(AnimationLayer_t, DT_Animationlayer) + RecvPropInt(RECVINFO_NAME(nSequence,sequence)), + RecvPropFloat(RECVINFO_NAME(flCycle,cycle)), + RecvPropFloat(RECVINFO_NAME(flPlaybackrate,playbackrate)), + RecvPropFloat(RECVINFO_NAME(flWeight,weight)) +END_RECV_TABLE() + + + +IMPLEMENT_CLIENTCLASS_DT(C_AI_BaseHumanoid, DT_BaseHumanoid, CAI_BaseHumanoid) + /* + RecvPropDataTable(RECVINFO_DTNAME(m_Layer[0][2],m_Layer0),0, &REFERENCE_RECV_TABLE(DT_Animationlayer)), + RecvPropDataTable(RECVINFO_DTNAME(m_Layer[1][2],m_Layer1),0, &REFERENCE_RECV_TABLE(DT_Animationlayer)), + RecvPropDataTable(RECVINFO_DTNAME(m_Layer[2][2],m_Layer2),0, &REFERENCE_RECV_TABLE(DT_Animationlayer)), + RecvPropDataTable(RECVINFO_DTNAME(m_Layer[3][2],m_Layer3),0, &REFERENCE_RECV_TABLE(DT_Animationlayer)), + */ + RecvPropInt(RECVINFO_NAME(m_Layer[0][2].nSequence,sequence0)), + RecvPropFloat(RECVINFO_NAME(m_Layer[0][2].flCycle,cycle0)), + RecvPropFloat(RECVINFO_NAME(m_Layer[0][2].flPlaybackrate,playbackrate0)), + RecvPropFloat(RECVINFO_NAME(m_Layer[0][2].flWeight,weight0)), + RecvPropInt(RECVINFO_NAME(m_Layer[1][2].nSequence,sequence1)), + RecvPropFloat(RECVINFO_NAME(m_Layer[1][2].flCycle,cycle1)), + RecvPropFloat(RECVINFO_NAME(m_Layer[1][2].flPlaybackrate,playbackrate1)), + RecvPropFloat(RECVINFO_NAME(m_Layer[1][2].flWeight,weight1)), + RecvPropInt(RECVINFO_NAME(m_Layer[2][2].nSequence,sequence2)), + RecvPropFloat(RECVINFO_NAME(m_Layer[2][2].flCycle,cycle2)), + RecvPropFloat(RECVINFO_NAME(m_Layer[2][2].flPlaybackrate,playbackrate2)), + RecvPropFloat(RECVINFO_NAME(m_Layer[2][2].flWeight,weight2)), + RecvPropInt(RECVINFO_NAME(m_Layer[3][2].nSequence,sequence3)), + RecvPropFloat(RECVINFO_NAME(m_Layer[3][2].flCycle,cycle3)), + RecvPropFloat(RECVINFO_NAME(m_Layer[3][2].flPlaybackrate,playbackrate3)), + RecvPropFloat(RECVINFO_NAME(m_Layer[3][2].flWeight,weight3)) +END_RECV_TABLE() + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +void C_AI_BaseHumanoid::StandardBlendingRules( CStudioHdr *pStudioHdr, Vector pos[], Quaternion q[], float currentTime, int boneMask ) +{ + VPROF( "C_AI_BaseHumanoid::StandardBlendingRules" ); + + BaseClass::StandardBlendingRules( pStudioHdr, pos, q, currentTime, boneMask ); + + if ( !hdr ) + { + return; + } + +#if 0 + float poseparam[MAXSTUDIOPOSEPARAM]; + + if ( GetSequence() >= hdr->numseq ) + { + SetSequence( 0 ); + } + + // interpolate pose parameters + for (int i = 0; i < hdr->numposeparameters; i++) + { + poseparam[ i ] = m_flPoseParameter[i]; + } + + // build root animation + float fCycle = GetCycle(); + CalcPose( hdr, NULL, pos, q, GetSequence(), fCycle, poseparam ); + + // debugoverlay->AddTextOverlay( GetAbsOrigin() + Vector( 0, 0, 64 ), 0, 0, "%30s %6.2f : %6.2f", hdr->pSeqdesc( GetSequence() )->pszLabel( ), fCycle, 1.0 ); + + MaintainSequenceTransitions( hdr, fCycle, poseparam, pos, q, boneMask ); + +#if 1 + for (i = 0; i < 4; i++) + { + if (m_Layer[i][2].nSequence != m_Layer[i][1].nSequence) + { + if (m_Layer[i][2].flWeight > 0.5) m_Layer[i][1].flWeight = 1.0; else m_Layer[i][1].flWeight = 0; + } + } +#endif + +#if 1 + for (i = 0; i < 4; i++) + { + Vector pos2[MAXSTUDIOBONES]; + Quaternion q2[MAXSTUDIOBONES]; + float fWeight = m_Layer[i][1].flWeight * (1 - dadt) + m_Layer[i][2].flWeight * dadt; + + /* + debugoverlay->AddTextOverlay( GetAbsOrigin() + Vector( 0, 0, 64 ), -i - 1, 0, + "%2d %6.2f %6.2f : %2d %6.2f %6.2f : %2d %6.2f %6.2f", + m_Layer[i][0].nSequence, m_Layer[i][0].flCycle, m_Layer[i][0].flWeight, + m_Layer[i][1].nSequence, m_Layer[i][1].flCycle, m_Layer[i][1].flWeight, + m_Layer[i][2].nSequence, m_Layer[i][2].flCycle, m_Layer[i][2].flWeight ); + */ + + if (fWeight > 0) + { + mstudioseqdesc_t *pseqdesc = hdr->pSeqdesc( m_Layer[i][2].nSequence ); + + float fCycle = m_Layer[i][2].flCycle; + + // UNDONE: Do IK here. + CalcPose( hdr, NULL, pos2, q2, m_Layer[i][2].nSequence, fCycle, poseparam ); + + if (fWeight > 1) + fWeight = 1; + SlerpBones( hdr, q, pos, pseqdesc, q2, pos2, fWeight ); + + engine->Con_NPrintf( 10 + i, "%30s %6.2f : %6.2f", pseqdesc->pszLabel(), fCycle, fWeight ); + } + else + { + engine->Con_NPrintf( 10 + i, "%30s %6.2f : %6.2f", " ", 0, 0 ); + } + + } +#endif + + CIKContext auto_ik; + auto_ik.Init( hdr, GetRenderAngles(), GetRenderOrigin(), gpGlobals->curtime ); + CalcAutoplaySequences( hdr, &auto_ik, pos, q, poseparam, boneMask, currentTime ); + + float controllers[MAXSTUDIOBONECTRLS]; + GetBoneControllers(controllers); + CalcBoneAdj( hdr, pos, q, controllers ); +#endif +} + + +#endif |