Skip to content

Commit 8eb8da2

Browse files
committed
1 parent 058b922 commit 8eb8da2

File tree

2 files changed

+13
-15
lines changed

2 files changed

+13
-15
lines changed

src/public/matsys_controls/mdlpanel.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -152,8 +152,8 @@ class CMDLPanel : public CPotteryWheelPanel
152152
void UpdateStudioRenderConfig( void );
153153

154154
#ifdef BDSBASE
155-
void SetupBones(MDLData_t& mdlData, int nMaxBoneCount, matrix3x4_t* pBoneToWorld,
156-
const float* pflPoseParameters = NULL, MDLSquenceLayer_t* pSequenceLayers = NULL, int nNumSequenceLayers = 0 );
155+
void SetupBones(MDLData_t& mdlData, matrix3x4_t* pBoneToWorld,
156+
const float* pflPoseParameters = NULL, MDLSquenceLayer_t* pSequenceLayers = NULL, int nNumSequenceLayers = 0);
157157
#endif
158158

159159
CTextureReference m_DefaultEnvCubemap;

src/vgui2/matsys_controls/mdlpanel.cpp

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -356,7 +356,7 @@ void CMDLPanel::DrawCollisionModel()
356356

357357
matrix3x4_t pBoneToWorld[MAXSTUDIOBONES];
358358
#ifdef BDSBASE
359-
SetupBones(m_RootMDL, MAXSTUDIOBONES, pBoneToWorld);
359+
SetupBones(m_RootMDL, pBoneToWorld);
360360
#else
361361
m_RootMDL.m_MDL.SetUpBones(m_RootMDL.m_MDLToWorld, MAXSTUDIOBONES, pBoneToWorld);
362362
#endif
@@ -482,7 +482,7 @@ void CMDLPanel::OnPaint3D()
482482

483483
matrix3x4_t *pBoneToWorld = g_pStudioRender->LockBoneMatrices( studioHdr.numbones() );
484484
#ifdef BDSBASE
485-
SetupBones(m_RootMDL, studioHdr.numbones(), pBoneToWorld, m_PoseParameters, m_SequenceLayers, m_nNumSequenceLayers);
485+
SetupBones(m_RootMDL, pBoneToWorld, m_PoseParameters, m_SequenceLayers, m_nNumSequenceLayers);
486486
#else
487487
m_RootMDL.m_MDL.SetUpBones(m_RootMDL.m_MDLToWorld, studioHdr.numbones(), pBoneToWorld, m_PoseParameters, m_SequenceLayers, m_nNumSequenceLayers);
488488
#endif
@@ -1007,7 +1007,7 @@ void CMDLPanel::ValidateMDLs()
10071007
}
10081008

10091009
#ifdef BDSBASE
1010-
void CMDLPanel::SetupBones(MDLData_t& mdlData, int nMaxBoneCount, matrix3x4_t* pBoneToWorld,
1010+
void CMDLPanel::SetupBones(MDLData_t& mdlData, matrix3x4_t* pBoneToWorld,
10111011
const float* pflPoseParameters /*= NULL*/, MDLSquenceLayer_t* pSequenceLayers /*= NULL*/, int nNumSequenceLayers /*= 0*/)
10121012
{
10131013
CMDL& mdl = mdlData.m_MDL;
@@ -1023,21 +1023,19 @@ void CMDLPanel::SetupBones(MDLData_t& mdlData, int nMaxBoneCount, matrix3x4_t* p
10231023

10241024
QAngle renderAngles;
10251025
Vector renderOrigin;
1026-
MatrixAngles(mdlData.m_MDLToWorld, renderAngles);
1027-
MatrixPosition(mdlData.m_MDLToWorld, renderOrigin);
1026+
MatrixAngles(mdlData.m_MDLToWorld, renderAngles, renderOrigin);
10281027

1029-
IBoneSetup boneSetup(pStudioHdr, BONE_USED_BY_ANYTHING, pflPoseParameters);
1028+
IBoneSetup boneSetup(pStudioHdr, BONE_USED_BY_ANYTHING_AT_LOD(mdl.m_nLOD), pflPoseParameters);
10301029

10311030
Vector pos[MAXSTUDIOBONES];
10321031
Quaternion q[MAXSTUDIOBONES];
10331032
boneSetup.InitPose(pos, q);
10341033

10351034
int nFrameCount = Studio_MaxFrame(pStudioHdr, mdl.m_nSequence, pflPoseParameters);
1036-
float flPlaybackRate = Studio_FPS(pStudioHdr, mdl.m_nSequence, pflPoseParameters);
1037-
float flCycle = (mdl.m_flTime * flPlaybackRate) / nFrameCount;
1035+
float flCycle = (mdl.m_flTime * mdl.m_flPlaybackRate) / nFrameCount;
10381036
flCycle -= (int)flCycle;
10391037

1040-
pIKContext->Init(pStudioHdr, renderAngles, renderOrigin, mdl.m_flTime, 0, BONE_USED_BY_ANYTHING);
1038+
pIKContext->Init(pStudioHdr, renderAngles, renderOrigin, mdl.m_flTime, 0, BONE_USED_BY_ANYTHING_AT_LOD(mdl.m_nLOD));
10411039

10421040
boneSetup.AccumulatePose(pos, q, mdl.m_nSequence, flCycle, 1.0f, mdl.m_flTime, pIKContext);
10431041

@@ -1048,15 +1046,15 @@ void CMDLPanel::SetupBones(MDLData_t& mdlData, int nMaxBoneCount, matrix3x4_t* p
10481046
nFrameCount = Studio_MaxFrame(pStudioHdr, pSequenceLayers[i].m_nSequenceIndex, pflPoseParameters);
10491047
if (pSequenceLayers[i].m_bNoLoop)
10501048
{
1051-
if (pSequenceLayers[i].m_flCycleBeganAt == 0)
1049+
if (pSequenceLayers[i].m_flCycleBeganAt == .0f)
10521050
pSequenceLayers[i].m_flCycleBeganAt = mdl.m_flTime;
10531051

10541052
float flElapsedTime = mdl.m_flTime - pSequenceLayers[i].m_flCycleBeganAt;
1055-
flCycle = (flElapsedTime * flPlaybackRate) / nFrameCount;
1053+
flCycle = (flElapsedTime * mdl.m_flPlaybackRate) / nFrameCount;
10561054
}
10571055
else
10581056
{
1059-
flCycle = (mdl.m_flTime * flPlaybackRate) / nFrameCount;
1057+
flCycle = (mdl.m_flTime * mdl.m_flPlaybackRate) / nFrameCount;
10601058
}
10611059
flCycle -= (int)flCycle;
10621060

@@ -1072,6 +1070,6 @@ void CMDLPanel::SetupBones(MDLData_t& mdlData, int nMaxBoneCount, matrix3x4_t* p
10721070
pIKContext->SolveDependencies(pos, q, pBoneToWorld, boneComputed);
10731071

10741072
Studio_RunBoneFlexDrivers(mdl.m_pFlexControls, pStudioHdr, pos, pBoneToWorld, mdlData.m_MDLToWorld);
1075-
Studio_BuildMatrices(pStudioHdr, renderAngles, renderOrigin, pos, q, -1, 1.0f, pBoneToWorld, BONE_USED_BY_ANYTHING);
1073+
Studio_BuildMatrices(pStudioHdr, renderAngles, renderOrigin, pos, q, -1, 1.0f, pBoneToWorld, BONE_USED_BY_ANYTHING_AT_LOD(mdl.m_nLOD));
10761074
}
10771075
#endif

0 commit comments

Comments
 (0)