internal static bool BitToggleField(string label, SerializedProperty bitFieldProperty, int flag)
{
bool flag2 = (bitFieldProperty.intValue & flag) != 0;
bool flag3 = (bitFieldProperty.hasMultipleDifferentValuesBitwise & flag) != 0;
EditorGUI.showMixedValue = flag3;
EditorGUI.BeginChangeCheck();
flag2 = Toggle(label, flag2, new GUILayoutOption[0]);
if (EditorGUI.EndChangeCheck())
{
if (flag3)
{
flag2 = true;
}
flag3 = false;
int index = -1;
for (int i = 0; i < 0x20; i++)
{
if (((((int) 1) << i) & flag) != 0)
{
index = i;
break;
}
}
bitFieldProperty.SetBitAtIndexForAllTargetsImmediate(index, flag2);
}
EditorGUI.showMixedValue = false;
return (flag2 && !flag3);
}