private void AdjustCoreCompatibleAction(SmartAction action) { if (action.Id == SmartConstants.ActionComment) { smartFactory.UpdateAction(action, SmartConstants.ActionNone); smartFactory.UpdateSource(action.Source, SmartConstants.ActionNone); smartFactory.UpdateTarget(action.Target, SmartConstants.ActionNone); } var actionData = smartDataManager.GetRawData(SmartType.SmartAction, action.Id); if (actionData.ImplicitSource != null) { smartFactory.UpdateSource(action.Source, smartDataManager.GetDataByName(SmartType.SmartSource, actionData.ImplicitSource).Id); } if (actionData.TargetIsSource) { smartFactory.UpdateTarget(action.Target, action.Source.Id); for (int i = 0; i < action.Target.ParametersCount; ++i) { action.Target.GetParameter(i).Copy(action.Source.GetParameter(i)); } // do not reset source, it doesn't matter, but at least correct comment will be generated // smartFactory.UpdateSource(actualAction.Source, 0); } if (actionData.SourceStoreInAction) { action.GetParameter(2).Value = action.Source.Id; action.GetParameter(3).Value = action.Source.GetParameter(0).Value; action.GetParameter(4).Value = action.Source.GetParameter(1).Value; action.GetParameter(5).Value = action.Source.GetParameter(2).Value; } }