本文整理汇总了C++中IAction::SetOptionIdx方法的典型用法代码示例。如果您正苦于以下问题:C++ IAction::SetOptionIdx方法的具体用法?C++ IAction::SetOptionIdx怎么用?C++ IAction::SetOptionIdx使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IAction
的用法示例。
在下文中一共展示了IAction::SetOptionIdx方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ApplyInteractionToObject
void CInteractiveObjectRegistry::ApplyInteractionToObject(IEntity *pEntity, const TagID interactionTypeTag, const int interactionIndex) const
{
if (m_pDatabaseObject && m_pControllerDef)
{
IMannequin &mannequinSys = gEnv->pGame->GetIGameFramework()->GetMannequinInterface();
SAnimationContext animContext(*m_pControllerDef);
IActionController *pActionController = mannequinSys.CreateActionController(pEntity, animContext);
int scopeContextID = m_pControllerDef->m_scopeContexts.Find("SlaveObject");
pActionController->SetScopeContext(scopeContextID, *pEntity, pEntity->GetCharacter(0), m_pDatabaseObject);
TagState fragTags = TAG_STATE_EMPTY;
const CTagDefinition *pTagDef = m_pControllerDef->GetFragmentTagDef(m_interactFragID);
if (pTagDef)
{
pTagDef->Set(fragTags, interactionTypeTag, true);
}
IAction *pAction = new TAction<SAnimationContext>(0, m_interactFragID, fragTags);
pAction->SetOptionIdx(interactionIndex);
pActionController->Queue(pAction);
// Set the time increments to non-zero to force the ActionController::Update() to drive the animation to the end.
// When time increment is zero, animation position will not update. This will be changed to a simpler process by Tom Berry at some point.
const uint32 totalScopes = pActionController->GetTotalScopes();
for(uint32 s=0; s<totalScopes; ++s)
{
pActionController->GetScope(s)->IncrementTime(0.001f);
}
pActionController->Update(1000.0f);
// "false" here leaves the anim on the transition queue in the animation system so it isn't cleared on pActionController->Release().
pActionController->ClearScopeContext(scopeContextID, false);
pActionController->Release();
CRecordingSystem* pRecordingSystem = g_pGame->GetRecordingSystem();
if (pRecordingSystem)
{
pRecordingSystem->OnInteractiveObjectFinishedUse(pEntity->GetId(), interactionTypeTag, interactionIndex);
}
}
}