protected void LoadAllLists(ZipFile arc, Manifest manifest) { List <ZipEntry> BoneList = new List <ZipEntry>(); foreach (ZipEntry entry in arc) { if (entry.Name.StartsWith("abdata/list/characustom", StringComparison.OrdinalIgnoreCase) && entry.Name.EndsWith(".csv", StringComparison.OrdinalIgnoreCase)) { try { var stream = arc.GetInputStream(entry); var chaListData = ListLoader.LoadCSV(stream); SetPossessNew(chaListData); UniversalAutoResolver.GenerateResolutionInfo(manifest, chaListData, _gatheredResolutionInfos); ListLoader.ExternalDataList.Add(chaListData); } catch (Exception ex) { Logger.Log(LogLevel.Error, $"[SIDELOADER] Failed to load list file \"{entry.Name}\" from archive \"{arc.Name}\" with error: {ex.Message}"); Logger.Log(LogLevel.Error, $"[SIDELOADER] Error details: {ex}"); } } else if (entry.Name.StartsWith("abdata/studio/info", StringComparison.OrdinalIgnoreCase) && entry.Name.EndsWith(".csv", StringComparison.OrdinalIgnoreCase)) { if (Path.GetFileNameWithoutExtension(entry.Name).ToLower().StartsWith("itembonelist_")) { BoneList.Add(entry); } else { try { var stream = arc.GetInputStream(entry); var studioListData = ListLoader.LoadStudioCSV(stream, entry.Name); UniversalAutoResolver.GenerateStudioResolutionInfo(manifest, studioListData); ListLoader.ExternalStudioDataList.Add(studioListData); } catch (Exception ex) { Logger.Log(LogLevel.Error, $"[SIDELOADER] Failed to load list file \"{entry.Name}\" from archive \"{arc.Name}\" with error: {ex.Message}"); Logger.Log(LogLevel.Error, $"[SIDELOADER] Error details: {ex}"); } } } else if (entry.Name.StartsWith("abdata/map/list/mapinfo/", StringComparison.OrdinalIgnoreCase) && entry.Name.EndsWith(".csv", StringComparison.OrdinalIgnoreCase)) { try { var stream = arc.GetInputStream(entry); MapInfo mapListData = ListLoader.LoadMapCSV(stream); UniversalAutoResolver.GenerateMapResolutionInfo(mapListData); ListLoader.ExternalMapList.Add(mapListData); } catch (Exception ex) { Logger.Log(LogLevel.Error, $"[SIDELOADER] Failed to load list file \"{entry.Name}\" from archive \"{arc.Name}\" with error: {ex.Message}"); Logger.Log(LogLevel.Error, $"[SIDELOADER] Error details: {ex}"); } } } //ItemBoneList data must be resolved after the corresponding item so they can be resolved to the same ID foreach (ZipEntry entry in BoneList) { try { var stream = arc.GetInputStream(entry); var studioListData = ListLoader.LoadStudioCSV(stream, entry.Name); UniversalAutoResolver.GenerateStudioResolutionInfo(manifest, studioListData); ListLoader.ExternalStudioDataList.Add(studioListData); } catch (Exception ex) { Logger.Log(LogLevel.Error, $"[SIDELOADER] Failed to load list file \"{entry.Name}\" from archive \"{arc.Name}\" with error: {ex.Message}"); Logger.Log(LogLevel.Error, $"[SIDELOADER] Error details: {ex}"); } } }