// Token: 0x0600263C RID: 9788 RVA: 0x00086F14 File Offset: 0x00085114 private bool method_4(string item) { lock (((ICollection)Class110.Instance.ConnectSettings.ContentPacks).SyncRoot) { using (List <Class102> .Enumerator enumerator = Class110.Instance.ConnectSettings.ContentPacks.GetEnumerator()) { while (enumerator.MoveNext()) { Class102 @class = enumerator.Current; if (@class != this) { lock (((ICollection)@class.dictionary_0).SyncRoot) { if (@class.dictionary_0.ContainsKey(item)) { switch (@class.dictionary_0[item].enum76_0) { case Enum76.const_1: case Enum76.const_3: return(true); default: goto IL_AE; } } } } } IL_AE :; } } return(false); }
// Token: 0x0600263F RID: 9791 RVA: 0x000874F8 File Offset: 0x000856F8 public static void smethod_2(string installDirectory, out HashSet <string> changedMultiFiles) { changedMultiFiles = new HashSet <string>(StringComparer.OrdinalIgnoreCase); if (Class110.Instance.ConnectSettings.SpoofedToonTownEnabled) { Class102.Class404 @class = new Class102.Class404(); Dictionary <Class102, Dictionary <string, HashSet <string> > > dictionary = new Dictionary <Class102, Dictionary <string, HashSet <string> > >(); Dictionary <string, Dictionary <Class102, HashSet <string> > > dictionary2 = new Dictionary <string, Dictionary <Class102, HashSet <string> > >(StringComparer.OrdinalIgnoreCase); @class.dictionary_0 = new Dictionary <string, HashSet <string> >(StringComparer.OrdinalIgnoreCase); lock (((ICollection)Class110.Instance.ConnectSettings.ContentPacks).SyncRoot) { foreach (Class102 class2 in Class110.Instance.ConnectSettings.ContentPacks) { if (!class2.LoaderPack) { Dictionary <string, HashSet <string> > dictionary3; Dictionary <string, HashSet <string> > dictionary4; class2.method_7(out dictionary3, out dictionary4); if (dictionary3.Count > 0) { dictionary.Add(class2, dictionary3); } foreach (KeyValuePair <string, HashSet <string> > keyValuePair in dictionary3) { if ([email protected]_0.ContainsKey(keyValuePair.Key)) { @class.dictionary_0.Add(keyValuePair.Key, new HashSet <string>(StringComparer.OrdinalIgnoreCase)); } foreach (string item in keyValuePair.Value) { if ([email protected]_0[keyValuePair.Key].Contains(item)) { @class.dictionary_0[keyValuePair.Key].Add(item); } } } foreach (KeyValuePair <string, HashSet <string> > keyValuePair2 in dictionary4) { Dictionary <Class102, HashSet <string> > dictionary5; if (dictionary2.ContainsKey(keyValuePair2.Key)) { dictionary5 = dictionary2[keyValuePair2.Key]; } else { dictionary2.Add(keyValuePair2.Key, dictionary5 = new Dictionary <Class102, HashSet <string> >()); } HashSet <string> hashSet; if (dictionary5.ContainsKey(class2)) { hashSet = dictionary5[class2]; } else { dictionary5.Add(class2, hashSet = new HashSet <string>(StringComparer.OrdinalIgnoreCase)); } foreach (string item2 in keyValuePair2.Value) { if (!hashSet.Contains(item2)) { hashSet.Add(item2); } } } } } } dictionary2.smethod_7(new Action <KeyValuePair <string, Dictionary <Class102, HashSet <string> > > >(@class.method_0)); IEnumerable <KeyValuePair <string, Dictionary <Class102, HashSet <string> > > > source = dictionary2; if (Class102.func_0 == null) { Class102.func_0 = new Func <KeyValuePair <string, Dictionary <Class102, HashSet <string> > >, bool>(Class102.smethod_3); } KeyValuePair <string, Dictionary <Class102, HashSet <string> > >[] array = source.Where(Class102.func_0).ToArray <KeyValuePair <string, Dictionary <Class102, HashSet <string> > > >(); foreach (KeyValuePair <string, Dictionary <Class102, HashSet <string> > > keyValuePair3 in array) { dictionary2.Remove(keyValuePair3.Key); } Dictionary <Class102, Class132> dictionary6 = new Dictionary <Class102, Class132>(); try { foreach (string text in @class.dictionary_0.Keys.Union(dictionary2.Keys, StringComparer.OrdinalIgnoreCase)) { string path = Path.Combine(installDirectory, text + ".mf"); if (File.Exists(path)) { using (Stream stream = File.Open(path, FileMode.Open, FileAccess.ReadWrite, FileShare.None)) { using (Class136 class3 = new Class136(stream)) { if (!changedMultiFiles.Contains(text)) { changedMultiFiles.Add(text); } class3.method_12(); if (dictionary2.ContainsKey(text)) { string path2 = Path.Combine(installDirectory, text + ".mf.orig"); if (File.Exists(path2)) { using (Stream stream2 = File.Open(path2, FileMode.Open, FileAccess.Read, FileShare.None)) { using (Class136 class4 = new Class136(stream2)) { HashSet <string> hashSet2 = new HashSet <string>(StringComparer.OrdinalIgnoreCase); foreach (KeyValuePair <Class102, HashSet <string> > keyValuePair4 in dictionary2[text]) { foreach (string item3 in keyValuePair4.Value) { if (!hashSet2.Contains(item3)) { hashSet2.Add(item3); } } } class4.method_14(hashSet2); foreach (KeyValuePair <Class102, HashSet <string> > keyValuePair5 in dictionary2[text]) { foreach (string name in keyValuePair5.Value) { if (class4.method_6(name) && class3.method_6(name)) { class4[name].method_0(class3[name]); } } Enum76 installState = keyValuePair5.Key.InstallState; if (installState == Enum76.const_2) { using (HashSet <string> .Enumerator enumerator11 = keyValuePair5.Value.GetEnumerator()) { while (enumerator11.MoveNext()) { string key = enumerator11.Current; switch (keyValuePair5.Key.dictionary_0[key].enum76_0) { case Enum76.const_2: keyValuePair5.Key.dictionary_0[key].enum76_0 = Enum76.const_0; continue; case Enum76.const_4: continue; } keyValuePair5.Key.dictionary_0[key].enum76_0 = Enum76.const_3; } continue; } } foreach (string key2 in keyValuePair5.Value) { Enum76 @enum = keyValuePair5.Key.dictionary_0[key2].enum76_0; if (@enum != Enum76.const_4) { keyValuePair5.Key.dictionary_0[key2].enum76_0 = Enum76.const_0; } } } } } } } foreach (KeyValuePair <Class102, Dictionary <string, HashSet <string> > > keyValuePair6 in dictionary) { if (keyValuePair6.Value.ContainsKey(text)) { Class102 key3 = keyValuePair6.Key; if (!dictionary6.ContainsKey(keyValuePair6.Key)) { dictionary6.Add(keyValuePair6.Key, new Class132(keyValuePair6.Key.FileName, false, true)); } Class136 data = dictionary6[keyValuePair6.Key].Data; foreach (string text2 in keyValuePair6.Value[text]) { if (data.method_6(text2) && class3.method_6(text2)) { Class338 class5 = data[text2]; class5.method_0(class3[text2]); class5.Data = null; key3.dictionary_0[text2].enum76_0 = Enum76.const_1; } else { key3.dictionary_0[text2].enum76_0 = Enum76.const_0; } } } } class3.method_18(); } continue; } } if (dictionary2.ContainsKey(text)) { foreach (KeyValuePair <Class102, HashSet <string> > keyValuePair7 in dictionary2[text]) { Enum76 installState = keyValuePair7.Key.InstallState; if (installState == Enum76.const_2) { using (HashSet <string> .Enumerator enumerator3 = keyValuePair7.Value.GetEnumerator()) { while (enumerator3.MoveNext()) { string key4 = enumerator3.Current; switch (keyValuePair7.Key.dictionary_0[key4].enum76_0) { case Enum76.const_2: keyValuePair7.Key.dictionary_0[key4].enum76_0 = Enum76.const_0; continue; case Enum76.const_4: continue; } keyValuePair7.Key.dictionary_0[key4].enum76_0 = Enum76.const_3; } continue; } } foreach (string key5 in keyValuePair7.Value) { installState = keyValuePair7.Key.dictionary_0[key5].enum76_0; if (installState != Enum76.const_4) { keyValuePair7.Key.dictionary_0[key5].enum76_0 = Enum76.const_0; } } } } } } finally { foreach (KeyValuePair <Class102, Class132> keyValuePair8 in dictionary6) { keyValuePair8.Value.Dispose(); } } foreach (Class102 class6 in Class110.Instance.ConnectSettings.ContentPacks) { class6.method_6(); } } }