public static void PostParse(KBatchGroupData data) { for (int i = 0; i < data.GetSymbolCount(); i++) { KAnim.Build.Symbol symbol = data.GetSymbol(i); if (symbol == null) { Debug.LogWarning("Symbol null for [" + data.groupID + "] idx: [" + i + "]"); } else { if (symbol.numLookupFrames <= 0) { int num = symbol.numFrames; for (int j = symbol.firstFrameIdx; j < symbol.firstFrameIdx + symbol.numFrames; j++) { KAnim.Build.SymbolFrameInstance symbolFrameInstance = data.GetSymbolFrameInstance(j); num = Mathf.Max(num, symbolFrameInstance.symbolFrame.sourceFrameNum + symbolFrameInstance.symbolFrame.duration); } symbol.numLookupFrames = num; } symbol.frameLookup = new int[symbol.numLookupFrames]; if (symbol.numLookupFrames <= 0) { Debug.LogWarning("No lookup frames for [" + data.groupID + "] build: [" + symbol.build.name + "] idx: [" + i + "] id: [" + symbol.hash + "]"); } else { for (int k = 0; k < symbol.numLookupFrames; k++) { symbol.frameLookup[k] = -1; } for (int l = symbol.firstFrameIdx; l < symbol.firstFrameIdx + symbol.numFrames; l++) { KAnim.Build.SymbolFrameInstance symbolFrameInstance2 = data.GetSymbolFrameInstance(l); if (symbolFrameInstance2.symbolFrame == null) { Debug.LogWarning("No symbol frame [" + data.groupID + "] symFrameIdx: [" + l + "] id: [" + symbol.hash + "]"); } else { for (int m = symbolFrameInstance2.symbolFrame.sourceFrameNum; m < symbolFrameInstance2.symbolFrame.sourceFrameNum + symbolFrameInstance2.symbolFrame.duration; m++) { if (m >= symbol.frameLookup.Length) { Debug.LogWarning("Too many lookup frames [" + m + ">=" + symbol.frameLookup.Length + "] for [" + data.groupID + "] idx: [" + i + "] id: [" + symbol.hash + "]"); } else { symbol.frameLookup[m] = l; } } } } string text = HashCache.Get().Get(symbol.path); if (!string.IsNullOrEmpty(text)) { int num2 = text.IndexOf("/"); if (num2 != -1) { string text2 = text.Substring(0, num2); symbol.folder = new KAnimHashedString(text2); HashCache.Get().Add(symbol.folder.HashValue, text2); } } } } } }