private static bool TrySetSelectedBone(string parentKey, ref int resultEnumId) { int myIndex = AccessoryParentKey.IndexOf(parentKey); if (myIndex >= 0) { resultEnumId = AccessoryParentKeyOriginalCount - 1 + myIndex; // -1 skip none element return(true); } return(false); }
static Hooks() { // Do this before hooking! SelectParentHookCache = (from key in Enum.GetNames(EnumAccesoryParentKeyType) where key != "none" select key).ToArray(); AccessoryParentKeyOriginalCount = Enum.GetValues(EnumAccesoryParentKeyType).Length; RefObjKeyOriginalCount = Enum.GetValues(EnumRefObjKeyType).Length; AccessoryParentKey.AddRange(cf_j_bones); AccessoryParentKey.AddRange(cf_s_bones); }
private static bool Enum_Parse_Prefix(Type enumType, string value, ref object __result) { if (enumType == EnumAccesoryParentKeyType) { int index = AccessoryParentKey.IndexOf(value); if (index >= 0) { __result = Enum.ToObject(enumType, AccessoryParentKeyOriginalCount + index); return(false); } } else if (enumType == EnumRefObjKeyType) { int index = AccessoryParentKey.IndexOf(value); if (index >= 0) { __result = Enum.ToObject(enumType, RefObjKeyOriginalCount + index); return(false); } } return(true); }