public override void OnInspectorGUI()
{
bool flag = base.targets.Length > 1;
bool flag2 = false;
base.serializedObject.UpdateIfDirtyOrScript();
AnimatorOverrideController target = base.target as AnimatorOverrideController;
RuntimeAnimatorController controller2 = !this.m_Controller.hasMultipleDifferentValues ? target.runtimeAnimatorController : null;
EditorGUI.BeginChangeCheck();
controller2 = EditorGUILayout.ObjectField("Controller", controller2, typeof(AnimatorController), false, new GUILayoutOption[0]) as RuntimeAnimatorController;
if (EditorGUI.EndChangeCheck())
{
for (int i = 0; i < base.targets.Length; i++)
{
AnimatorOverrideController controller3 = base.targets[i] as AnimatorOverrideController;
controller3.runtimeAnimatorController = controller2;
}
flag2 = true;
}
using (new EditorGUI.DisabledScope(((this.m_Controller == null) || (flag && this.m_Controller.hasMultipleDifferentValues)) || (controller2 == null)))
{
EditorGUI.BeginChangeCheck();
this.m_Clips = target.clips;
this.m_ClipList.list = this.m_Clips;
this.m_ClipList.DoLayoutList();
if (EditorGUI.EndChangeCheck())
{
for (int j = 0; j < base.targets.Length; j++)
{
AnimatorOverrideController controller4 = base.targets[j] as AnimatorOverrideController;
controller4.clips = this.m_Clips;
}
flag2 = true;
}
}
if (flag2)
{
target.PerformOverrideClipListCleanup();
}
}
}