107    {
  108        ClearInventoryReservationEx(action_data);
  109        AttachActionData action_data_a = AttachActionData.Cast(action_data);
  110        
  112            
  113        if ( action_data.m_Target.IsProxy() )
  114        {
  115            target_EAI = 
EntityAI.Cast( action_data_a.m_Target.GetParent() );
 
  116        }
  117        else
  118        {
  119            target_EAI = 
EntityAI.Cast( action_data_a.m_Target.GetObject() );
 
  120        }
  121        
  122        if (target_EAI && action_data_a.m_MainItem)
  123        {
  124            ref InventoryLocation il = new InventoryLocation;
  125            il.SetAttachment( target_EAI, action_data.m_MainItem, action_data_a.
m_AttSlot );
 
  126            action_data.m_Player.PredictiveForceSwapEntities( target_EAI, action_data.m_MainItem, il );
  127        }
  128    }