aboutsummaryrefslogtreecommitdiff
path: root/mp/src/common/studiobyteswap.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'mp/src/common/studiobyteswap.cpp')
-rw-r--r--mp/src/common/studiobyteswap.cpp37
1 files changed, 35 insertions, 2 deletions
diff --git a/mp/src/common/studiobyteswap.cpp b/mp/src/common/studiobyteswap.cpp
index d7723d48..0c4e59d8 100644
--- a/mp/src/common/studiobyteswap.cpp
+++ b/mp/src/common/studiobyteswap.cpp
@@ -1915,6 +1915,22 @@ int ByteswapMDLFile( void *pDestBase, void *pSrcBase, const int fileSize )
SET_INDEX_POINTERS_FIXUP( pData, pLinearBone, qalignmentindex )
WriteBuffer<float>( &pDataDest, &pDataSrc, 4*numBones );
}
+
+ /** BONE FLEX DRIVERS **/
+ if ( pStudioHdr2->m_nBoneFlexDriverIndex )
+ {
+ SET_INDEX_POINTERS_FIXUP( pData, pStudioHdr2, m_nBoneFlexDriverIndex )
+ DECLARE_OBJECT_POINTERS( pBoneFlexDriver, pData, mstudioboneflexdriver_t )
+ ITERATE_BLOCK( pBoneFlexDriver, pStudioHdr2->m_nBoneFlexDriverCount )
+ {
+ WriteObjects( pBoneFlexDriverDest, pBoneFlexDriverSrc );
+
+ /** BONE FLEX DRIVER CONTROLS **/
+
+ SET_INDEX_POINTERS_FIXUP( pData, pBoneFlexDriver, m_nControlIndex );
+ WriteObjects< mstudioboneflexdrivercontrol_t >( &pDataDest, &pDataSrc, SrcNative( &pBoneFlexDriver->m_nControlCount ) );
+ }
+ }
}
}
@@ -2516,7 +2532,8 @@ BEGIN_BYTESWAP_DATADESC( studiohdr_t )
DEFINE_INDEX( unused4, FIELD_INTEGER ),
DEFINE_FIELD( numflexcontrollerui, FIELD_INTEGER ),
DEFINE_INDEX( flexcontrolleruiindex, FIELD_INTEGER ),
- DEFINE_ARRAY( unused3, FIELD_INTEGER, 2 ),
+ DEFINE_FIELD( flVertAnimFixedPointScale, FIELD_FLOAT ),
+ DEFINE_ARRAY( unused3, FIELD_INTEGER, 1 ),
DEFINE_INDEX( studiohdr2index, FIELD_INTEGER ),
DEFINE_ARRAY( unused2, FIELD_INTEGER, 1 ),
END_BYTESWAP_DATADESC()
@@ -2530,7 +2547,9 @@ BEGIN_BYTESWAP_DATADESC( studiohdr2_t )
DEFINE_FIELD( flMaxEyeDeflection, FIELD_FLOAT ),
DEFINE_INDEX( linearboneindex, FIELD_INTEGER ),
DEFINE_INDEX( sznameindex, FIELD_INTEGER ),
- DEFINE_ARRAY( reserved, FIELD_INTEGER, 58 ),
+ DEFINE_INDEX( m_nBoneFlexDriverCount, FIELD_INTEGER ),
+ DEFINE_INDEX( m_nBoneFlexDriverIndex, FIELD_INTEGER ),
+ DEFINE_ARRAY( reserved, FIELD_INTEGER, 56 ),
END_BYTESWAP_DATADESC()
BEGIN_BYTESWAP_DATADESC( mstudiobone_t )
@@ -2567,6 +2586,20 @@ BEGIN_BYTESWAP_DATADESC( mstudiolinearbone_t )
DEFINE_ARRAY( unused, FIELD_INTEGER, 6 ),
END_BYTESWAP_DATADESC()
+BEGIN_BYTESWAP_DATADESC( mstudioboneflexdrivercontrol_t )
+ DEFINE_INDEX( m_nBoneComponent, FIELD_INTEGER ),
+ DEFINE_FIELD( m_nFlexControllerIndex, FIELD_INTEGER ),
+ DEFINE_INDEX( m_flMin, FIELD_FLOAT ),
+ DEFINE_INDEX( m_flMax, FIELD_FLOAT ),
+END_BYTESWAP_DATADESC()
+
+BEGIN_BYTESWAP_DATADESC( mstudioboneflexdriver_t )
+ DEFINE_INDEX( m_nBoneIndex, FIELD_INTEGER ),
+ DEFINE_FIELD( m_nControlCount, FIELD_INTEGER ),
+ DEFINE_INDEX( m_nControlIndex, FIELD_FLOAT ),
+ DEFINE_ARRAY( unused, FIELD_INTEGER, 3 ),
+END_BYTESWAP_DATADESC()
+
BEGIN_BYTESWAP_DATADESC( mstudioaxisinterpbone_t )
DEFINE_FIELD( control, FIELD_INTEGER ),
DEFINE_FIELD( axis, FIELD_INTEGER ),