IC	void CStalkerAnimationManager::play_script_impl()
{
    clear_unsafe_callbacks();
    global().reset();
    torso().reset();
    legs().reset();

    const CStalkerAnimationScript	&selected = assign_script_animation();
    script().animation(selected.animation());
    if (selected.use_movement_controller())
    {
        script().target_matrix(selected.transform(object()));
        if (m_start_new_script_animation)
        {
            m_start_new_script_animation = false;
            if (selected.has_transform() && object().animation_movement())
                object().destroy_anim_mov_ctrl();
        }
    }

    script().play(
        m_skeleton_animated,
        script_play_callback,
        selected.use_movement_controller(),
        selected.local_animation(),
        false,
        m_script_bone_part_mask
        );

    head().animation(assign_head_animation());
    head().play(m_skeleton_animated, head_play_callback, false, false);
}
IC	void CStalkerAnimationManager::play_global_impl			(const MotionID &animation)
{
	torso().reset			();
	legs().reset			();

	global().animation		(animation);
	global().play			(m_skeleton_animated,global_play_callback,&object(),false,false,m_script_bone_part_mask);

	head().animation		(assign_head_animation());
	head().play				(m_skeleton_animated,head_play_callback,&object(),false);
}
IC	void CStalkerAnimationManager::play_script_impl			()
{
	global().reset			();
	torso().reset			();
	legs().reset			();

	const CStalkerAnimationScript	&selected = assign_script_animation();
	script().animation		(selected.animation());
	script().play			(m_skeleton_animated,script_play_callback,&object(),selected.use_movement_controller(),false,m_script_bone_part_mask);

	head().animation		(assign_head_animation());
	head().play				(m_skeleton_animated,head_play_callback,&object(),false);
}
IC	void CStalkerAnimationManager::play_global_impl(const MotionID &animation, bool const &animation_movement_controller)
{
    torso().reset();
    legs().reset();

    global().animation(animation);
    global().play(
        m_skeleton_animated,
        global_play_callback,
        animation_movement_controller,
        true,
        false,
        m_script_bone_part_mask,
        true
        );

    if (m_global_modifier)
        m_global_modifier(global().blend());

    head().animation(assign_head_animation());
    head().play(m_skeleton_animated, head_play_callback, false, false);
}
IC	void CStalkerAnimationManager::play_head				()
{
	head().animation		(assign_head_animation());
	head().play				(m_skeleton_animated,head_play_callback,&object(),false);
}