Exemplo n.º 1
0
bool CActionScope::InstallAnimation(const SAnimationEntry &animEntry, int layer, const SAnimBlend &animBlend)
{
    if (animEntry.animRef.IsEmpty())
    {
        StopAnimationOnLayer(layer, animBlend.duration);
        return true;
    }
    else
    {
        int animID = m_scopeContext.charInst->GetIAnimationSet()->GetAnimIDByCRC(animEntry.animRef.crc);

        if (animID >= 0)
        {
            //--- Cleared for install, install across scopes
            CryCharAnimationParams animParams;
            InitAnimationParams(animEntry, layer, animBlend, animParams);
            return InstallAnimation(animID, animParams);
        }
        else
        {
            CryWarning(VALIDATOR_MODULE_GAME, VALIDATOR_WARNING, "Invalid anim ref %s on scope %s in database %s", animEntry.animRef.GetString(), m_name.c_str(), m_scopeContext.database->GetFilename());

            StopAnimationOnLayer(layer, animBlend.duration);
            return false;
        }
    }
}
Exemplo n.º 2
0
bool CActionScope::InstallAnimation(const SAnimationEntry &animEntry, int layer, const SAnimBlend &animBlend)
{
	if ((BIT(layer) & m_mutedAnimLayerMask) == BIT(layer))
	{
		return false;
	}

	if (animEntry.animRef.IsEmpty())
	{
		StopAnimationOnLayer(layer, animBlend.duration);
		return true;
	}
	else
	{
		int animID = m_scopeContext.pCharInst->GetIAnimationSet()->GetAnimIDByCRC(animEntry.animRef.crc);

		if (animID >= 0)
		{
			//--- Cleared for install, install across scopes
			CryCharAnimationParams animParams;
			InitAnimationParams(animEntry, layer, animBlend, animParams);
			return InstallAnimation(animID, animParams);
		}
		else
		{
			CryWarning(VALIDATOR_MODULE_GAME, VALIDATOR_WARNING, "Invalid anim ref '%s' on scope '%s' in database '%s'. Skeleton '%s'", animEntry.animRef.c_str(), m_name.c_str(), m_scopeContext.pDatabase->GetFilename(), m_scopeContext.pCharInst->GetIDefaultSkeleton().GetModelFilePath());

			StopAnimationOnLayer(layer, animBlend.duration);
			return false;
		}
	}
}