| 949 | |
| 950 | |
| 951 | void Tr2GrannyAnimationLayer::ExtractTrackMask( const Tr2GrannyAnimation* grannyAnimation, const char* name ) |
| 952 | { |
| 953 | // cannot assert cmf/granny here, init is called after this function! |
| 954 | |
| 955 | if( grannyAnimation->IsUsingCMF() ) |
| 956 | { |
| 957 | m_trackMaskName = name; |
| 958 | |
| 959 | auto skeleton = grannyAnimation->GetSkeleton(); |
| 960 | |
| 961 | if( !skeleton ) |
| 962 | { |
| 963 | return; |
| 964 | } |
| 965 | |
| 966 | m_boneMask = cmf::ExtractBoneWeights( *skeleton, m_trackMaskName ); |
| 967 | } |
| 968 | #if WITH_GRANNY |
| 969 | else |
| 970 | { |
| 971 | m_trackMaskName = name; |
| 972 | if( !m_trackMask ) |
| 973 | { |
| 974 | return; |
| 975 | } |
| 976 | |
| 977 | granny_extract_track_mask_result etmr = GrannyExtractTrackMask( |
| 978 | m_trackMask, |
| 979 | m_boneCount, |
| 980 | GrannyGetSourceSkeleton( m_modelInstance ), |
| 981 | name, |
| 982 | 0.0f, |
| 983 | false ); |
| 984 | if( etmr == GrannyExtractTrackMaskResult_NoDataPresent ) |
| 985 | { |
| 986 | CCP_LOGNOTICE( "Tr2GrannyAnimationLayer: Track mask not found." ); |
| 987 | } |
| 988 | |
| 989 | return; |
| 990 | } |
| 991 | #endif |
| 992 | } |
| 993 | |
| 994 | void Tr2GrannyAnimationLayer::RemoveBone( const Tr2GrannyAnimation* grannyAnimation, const char* name ) |
| 995 | { |
no test coverage detected