// Token: 0x060026BF RID: 9919 RVA: 0x0008A8D8 File Offset: 0x00088AD8 private static void smethod_0(Class177 district, Struct40 invasion, DateTime?endTime) { if (endTime != null) { List <uint> list; Dictionary <uint, uint> dictionary; Dictionary <uint, uint> dictionary2; Struct40.smethod_4(district, invasion.uint_0, invasion.class464_0, out list, out dictionary, out dictionary2); list.Add((uint)endTime.Value.ToUniversalTime().Subtract(invasion.dateTime_0).TotalSeconds); if (list.Count > Struct40.int_0) { list.RemoveAt(0); } if (dictionary.ContainsKey(invasion.uint_0)) { dictionary[invasion.uint_0] = Struct40.smethod_5(district, invasion.uint_0, invasion.class464_0); } else { dictionary.Add(invasion.uint_0, Struct40.smethod_5(district, invasion.uint_0, invasion.class464_0)); } if (dictionary2.ContainsKey(invasion.uint_0)) { dictionary2[invasion.uint_0] = Struct40.smethod_6(district, invasion.uint_0); } else { dictionary2.Add(invasion.uint_0, Struct40.smethod_6(district, invasion.uint_0)); } } Struct40.dictionary_3.Remove(district); }
// Token: 0x060026CC RID: 9932 RVA: 0x0008B31C File Offset: 0x0008951C public static void smethod_13(Stream stream) { lock (Struct40.object_0) { Struct40.smethod_11(); try { using (Stream3 stream2 = new Stream3(stream)) { using (BinaryReader binaryReader = new BinaryReader(stream2)) { byte[] array = binaryReader.ReadBytes(Struct40.byte_0.Length); if (!array.smethod_9(Struct40.byte_0)) { throw new InvalidFileType(Struct40.byte_0, array); } int num = binaryReader.ReadInt32(); for (int i = 0; i < num; i++) { Class177 @class = Class177.smethod_0(binaryReader.ReadUInt32()); int num2 = binaryReader.ReadInt32(); Dictionary <Class464, Dictionary <uint, uint> > dictionary; if (Struct40.dictionary_0.ContainsKey(@class)) { dictionary = Struct40.dictionary_0[@class]; } else { Struct40.dictionary_0.Add(@class, dictionary = new Dictionary <Class464, Dictionary <uint, uint> >()); } Dictionary <Class464, Dictionary <uint, List <uint> > > dictionary2; if (Struct40.dictionary_2.ContainsKey(@class)) { dictionary2 = Struct40.dictionary_2[@class]; } else { Struct40.dictionary_2.Add(@class, dictionary2 = new Dictionary <Class464, Dictionary <uint, List <uint> > >()); } Dictionary <uint, uint> dictionary3; if (Struct40.dictionary_1.ContainsKey(@class)) { dictionary3 = Struct40.dictionary_1[@class]; } else { Struct40.dictionary_1.Add(@class, dictionary3 = new Dictionary <uint, uint>()); } for (int j = 0; j < num2; j++) { Class464 key = Class464.Cogs[binaryReader.ReadString()]; int num3 = binaryReader.ReadInt32(); Dictionary <uint, uint> dictionary4; if (dictionary.ContainsKey(key)) { dictionary4 = dictionary[key]; } else { dictionary.Add(key, dictionary4 = new Dictionary <uint, uint>()); } Dictionary <uint, List <uint> > dictionary5; if (dictionary2.ContainsKey(key)) { dictionary5 = dictionary2[key]; } else { dictionary2.Add(key, dictionary5 = new Dictionary <uint, List <uint> >()); } for (int k = 0; k < num3; k++) { uint key2 = binaryReader.ReadUInt32(); int num4 = binaryReader.ReadInt32(); List <uint> list; if (dictionary5.ContainsKey(key2)) { list = dictionary5[key2]; } else { dictionary5.Add(key2, list = new List <uint>()); } uint num5 = 0U; for (int l = 0; l < num4; l++) { uint num6 = binaryReader.ReadUInt32(); list.Add(num6); num5 += num6; } num5 /= (uint)num4; dictionary4.Add(key2, num5); } foreach (uint num7 in dictionary5.Keys) { if (dictionary3.ContainsKey(num7)) { dictionary3[num7] = Struct40.smethod_6(@class, num7); } else { dictionary3.Add(num7, Struct40.smethod_6(@class, num7)); } } } } } } } catch { Struct40.smethod_11(); throw; } } }