void CActionCoopAnimation::RemoveTargetFromSlaveContext() { IAnimatedCharacter* pTargetAnimChar = m_targetEntityID ? m_target.GetAnimatedCharacter() : NULL; IActionController* pTargetActionController = pTargetAnimChar ? pTargetAnimChar->GetActionController() : NULL; if(pTargetActionController) { IAnimatedCharacter* pAnimChar = m_player.GetAnimatedCharacter(); IActionController* pActionController = pAnimChar->GetActionController(); pActionController->SetSlaveController(*pTargetActionController, PlayerMannequin.contextIDs.SlaveChar, false, m_piOptionalTargetDatabase); CRecordingSystem* pRecordingSystem = g_pGame->GetRecordingSystem(); if (pRecordingSystem) { pRecordingSystem->OnMannequinSetSlaveController(m_rootScope->GetEntityId(), pTargetActionController->GetEntityId(), PlayerMannequin.contextIDs.SlaveChar, false, m_piOptionalTargetDatabase); } } else { m_rootScope->GetActionController().ClearScopeContext(PlayerMannequin.contextIDs.SlaveChar); } }