int CScriptBind_HitDeathReactions::ExecuteHitReaction (IFunctionHandler *pH, SmartScriptTable reactionParams) { CHitDeathReactionsPtr pHitDeathReactions = GetHitDeathReactions(pH); if (pHitDeathReactions) pHitDeathReactions->ExecuteHitReaction(reactionParams); return pH->EndFunction(); }
int CScriptBind_HitDeathReactions::EndCurrentReaction(IFunctionHandler *pH) { bool bSuccess = false; CHitDeathReactionsPtr pHitDeathReactions = GetHitDeathReactions(pH); if (pHitDeathReactions) bSuccess = pHitDeathReactions->EndCurrentReaction(); return pH->EndFunction(bSuccess); }
int CScriptBind_HitDeathReactions::EndReactionAnim(IFunctionHandler *pH) { CHitDeathReactionsPtr pHitDeathReactions = GetHitDeathReactions(pH); if (pHitDeathReactions) { pHitDeathReactions->EndReactionAnim(); } return pH->EndFunction(); }
int CScriptBind_HitDeathReactions::StartReactionAnim(IFunctionHandler *pH) { bool bResult = false; CHitDeathReactionsPtr pHitDeathReactions = GetHitDeathReactions(pH); if (pHitDeathReactions) { const char *szAnimName = NULL; bool bLoop = false; float fBlendTime = 0.2f; int iSlot = 0; int iLayer = 0; float fAniSpeed = 1.0f; uint32 animFlags = 0; if (!pH->GetParam(1, szAnimName)) { CryWarning(VALIDATOR_MODULE_GAME, VALIDATOR_WARNING, "CScriptBind_HitDeathReactions::StartReactionAnim, animation name not specified"); } else if (pH->GetParamCount() > 1) { pH->GetParam(2, bLoop); if (pH->GetParamCount() > 2) { pH->GetParam(3, fBlendTime); if (pH->GetParamCount() > 3) { pH->GetParam(4, iSlot); if (pH->GetParamCount() > 4) { pH->GetParam(5, iLayer); if (pH->GetParamCount() > 5) { pH->GetParam(5, fAniSpeed); if (pH->GetParamCount() > 6) { pH->GetParam(6, animFlags); } } } } } } bResult = pHitDeathReactions->StartReactionAnim(szAnimName, bLoop, fBlendTime, iSlot, iLayer, animFlags, fAniSpeed); } return pH->EndFunction(bResult); }
int CScriptBind_HitDeathReactions::OnHit(IFunctionHandler *pH, SmartScriptTable scriptHitInfo, float fCausedDamage) { bool bRet = false; CHitDeathReactionsPtr pHitDeathReactions = GetHitDeathReactions(pH); if (pHitDeathReactions) { HitInfo hitInfo; CGameRules::CreateHitInfoFromScript(scriptHitInfo, hitInfo); bRet = pHitDeathReactions->OnHit(hitInfo, fCausedDamage); } return pH->EndFunction(bRet); }
int CScriptBind_HitDeathReactions::IsValidReaction(IFunctionHandler *pH, SmartScriptTable validationParams, SmartScriptTable scriptHitInfo) { bool bResult = false; CHitDeathReactionsPtr pHitDeathReactions = GetHitDeathReactions(pH); if (pHitDeathReactions) { HitInfo hitInfo; CGameRules::CreateHitInfoFromScript(scriptHitInfo, hitInfo); float fCausedDamage = 0.0f; if (pH->GetParamCount() > 2) pH->GetParam(3, fCausedDamage); bResult = pHitDeathReactions->IsValidReaction(hitInfo, validationParams, fCausedDamage); } return pH->EndFunction(bResult); }