Skip to content

Commit e127b3c

Browse files
committed
ReplaceAnimation checks whether IFP is loaded or not
1 parent 495220b commit e127b3c

File tree

3 files changed

+16
-9
lines changed

3 files changed

+16
-9
lines changed

Client/mods/deathmatch/logic/CClientPed.cpp

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6191,13 +6191,18 @@ CAnimBlendAssociation * CClientPed::GetFirstAnimation ( void )
61916191
return NULL;
61926192
}
61936193

6194-
void CClientPed::ReplaceAnimation ( CAnimBlendHierarchy * pInternalAnimHierarchy, CClientIFP * pIFP, CAnimBlendHierarchySAInterface * pCustomAnimHierarchy )
6194+
bool CClientPed::ReplaceAnimation ( CAnimBlendHierarchy * pInternalAnimHierarchy, CClientIFP * pIFP, CAnimBlendHierarchySAInterface * pCustomAnimHierarchy )
61956195
{
6196-
SReplacedAnimation replacedAnimation;
6197-
replacedAnimation.pIFP = pIFP;
6198-
replacedAnimation.pAnimationHierarchy = pCustomAnimHierarchy;
6196+
if ( pIFP->isIFPLoaded ( ) )
6197+
{
6198+
SReplacedAnimation replacedAnimation;
6199+
replacedAnimation.pIFP = pIFP;
6200+
replacedAnimation.pAnimationHierarchy = pCustomAnimHierarchy;
61996201

6200-
m_mapOfReplacedAnimations [ pInternalAnimHierarchy->GetInterface () ] = replacedAnimation;
6202+
m_mapOfReplacedAnimations [ pInternalAnimHierarchy->GetInterface () ] = replacedAnimation;
6203+
return true;
6204+
}
6205+
return false;
62016206
}
62026207

62036208
void CClientPed::RestoreAnimation ( CAnimBlendHierarchy * pInternalAnimHierarchy )

Client/mods/deathmatch/logic/CClientPed.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -478,7 +478,7 @@ class CClientPed : public CClientStreamElement, public CAntiCheatModule
478478
inline const SString & GetNextAnimationCustomBlockName ( void ) { return m_strCustomIFPBlockName; }
479479
inline const SString & GetNextAnimationCustomName ( void ) { return m_strCustomIFPAnimationName; }
480480

481-
void ReplaceAnimation ( CAnimBlendHierarchy * pInternalAnimHierarchy, CClientIFP * pIFP, CAnimBlendHierarchySAInterface * pCustomAnimHierarchy );
481+
bool ReplaceAnimation ( CAnimBlendHierarchy * pInternalAnimHierarchy, CClientIFP * pIFP, CAnimBlendHierarchySAInterface * pCustomAnimHierarchy );
482482
void RestoreAnimation ( CAnimBlendHierarchy * pInternalAnimHierarchy );
483483
void RestoreAnimations ( const CClientIFP & IFP );
484484
void RestoreAnimations ( CAnimBlock & animationBlock );

Client/mods/deathmatch/logic/luadefs/CLuaEngineDefs.cpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -538,9 +538,11 @@ int CLuaEngineDefs::EngineReplaceAnimation ( lua_State* luaVM )
538538
CAnimBlendHierarchySAInterface * pCustomAnimHierarchyInterface = pCustomIFP->GetAnimationHierarchy ( strCustomAnimName );
539539
if ( pInternalAnimHierarchy && pCustomAnimHierarchyInterface )
540540
{
541-
Ped.ReplaceAnimation ( pInternalAnimHierarchy, pCustomIFP, pCustomAnimHierarchyInterface );
542-
lua_pushboolean ( luaVM, true );
543-
return 1;
541+
if ( Ped.ReplaceAnimation ( pInternalAnimHierarchy, pCustomIFP, pCustomAnimHierarchyInterface ) )
542+
{
543+
lua_pushboolean ( luaVM, true );
544+
return 1;
545+
}
544546
}
545547
else
546548
argStream.SetCustomError ( "Incorrect Animation name" );

0 commit comments

Comments
 (0)