Skip to content

Commit d9027b5

Browse files
committed
Static association is initialized within AssocGroupCopyAnimationHandler
The typedef "hCAnimBlendStaticAssociation_Init" needs to deleted for production code. We need to properly use factory method.
1 parent bd58fa4 commit d9027b5

File tree

1 file changed

+17
-1
lines changed

1 file changed

+17
-1
lines changed

Client/mods/deathmatch/logic/CClientGame.cpp

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4013,13 +4013,29 @@ CAnimBlendAssociationSAInterface * CClientGame::AddAnimationAndSyncHandler ( RpC
40134013
return nullptr;
40144014
}
40154015

4016+
typedef void (__thiscall* hCAnimBlendStaticAssociation_Init)
4017+
(
4018+
CAnimBlendStaticAssociationSAInterface * pThis,
4019+
RpClump * Clump,
4020+
CAnimBlendHierarchySAInterface * pAnimBlendHierarchy
4021+
);
4022+
40164023
void CClientGame::AssocGroupCopyAnimationHandler ( CAnimBlendStaticAssociationSAInterface * pOutAnimStaticAssoc, RpClump * pClump, CAnimBlendAssocGroupSAInterface * pAnimAssocGroup, AnimationId animID )
40174024
{
40184025
printf ("AssocGroupCopyAnimationHandler called!\n");
4026+
4027+
auto CAnimBlendStaticAssociation_Init = (hCAnimBlendStaticAssociation_Init)0x4CEC20;
4028+
40194029
CAnimManager * pAnimationManager = g_pGame->GetAnimManager();
40204030
auto pOriginalAnimStaticAssoc = pAnimationManager->GetAnimStaticAssociation ( pAnimAssocGroup->groupID, animID );
40214031

4022-
*pOutAnimStaticAssoc = *pOriginalAnimStaticAssoc;
4032+
CAnimBlendStaticAssociation_Init ( pOutAnimStaticAssoc, pClump, pOriginalAnimStaticAssoc->pAnimHeirarchy );
4033+
pOutAnimStaticAssoc->sAnimGroup = static_cast < short > ( pAnimAssocGroup->groupID );
4034+
pOutAnimStaticAssoc->sAnimID = static_cast < short > ( animID );
4035+
4036+
// Total bones in clump. GTA SA is using 32 bones for peds/players
4037+
pOutAnimStaticAssoc->nNumBlendNodes = pOriginalAnimStaticAssoc->nNumBlendNodes;
4038+
pOutAnimStaticAssoc->sFlags = pOriginalAnimStaticAssoc->sFlags;
40234039
}
40244040

40254041
CAnimBlendHierarchySAInterface * CClientGame::BlendAnimationHierarchyHandler ( RpClump * pClump, CAnimBlendHierarchySAInterface * pAnimHierarchy, int flags, float fBlendDelta )

0 commit comments

Comments
 (0)