private void RebuildOverrides(KAnimFile kanim_file) { bool flag = false; overrideAnims.Clear(); for (int i = 0; i < overrideAnimFiles.Count; i++) { OverrideAnimFileData overrideAnimFileData = overrideAnimFiles[i]; KAnimFileData data = overrideAnimFileData.file.GetData(); for (int j = 0; j < data.animCount; j++) { KAnim.Anim anim = data.GetAnim(j); if (anim.animFile.hashName != data.hashName) { Debug.LogError($"How did we get an anim from another file? [{data.name}] != [{anim.animFile.name}] for anim [{j}]"); } AnimLookupData value = default(AnimLookupData); value.animIndex = anim.index; HashedString hashedString = new HashedString(anim.name); if (!overrideAnims.ContainsKey(hashedString)) { overrideAnims[hashedString] = value; } if (curAnim != null && curAnim.hash == hashedString && (UnityEngine.Object)overrideAnimFileData.file == (UnityEngine.Object)kanim_file) { flag = true; } } } if (flag) { Restart(curAnim.name, mode, playSpeed, 0f); } }
public void RemoveAnimOverrides(KAnimFile kanim_file) { Debug.Assert((UnityEngine.Object)kanim_file != (UnityEngine.Object)null); if (kanim_file.GetData().build != null && kanim_file.GetData().build.symbols.Length > 0) { SymbolOverrideController component = GetComponent <SymbolOverrideController>(); DebugUtil.Assert((UnityEngine.Object)component != (UnityEngine.Object)null, "Anim overrides containing additional symbols require a symbol override controller."); component.TryRemoveBuildOverride(kanim_file.GetData(), 0); } for (int i = 0; i < overrideAnimFiles.Count; i++) { OverrideAnimFileData overrideAnimFileData = overrideAnimFiles[i]; if ((UnityEngine.Object)overrideAnimFileData.file == (UnityEngine.Object)kanim_file) { overrideAnimFiles.RemoveAt(i); break; } } RebuildOverrides(kanim_file); }