public override void ProcessChunkFile(Stream stream, string chunkFullFilename) { using var reader = new Reader(new BinaryReader(stream, Encoding.UTF8, true), chunkFullFilename); uint numEntries = ReadHeader(reader); for (uint i = 0; i < numEntries; i++) { var entry = EquipmentUpgradeEntryPrimitive.Read(reader); if (Table.TryGetValue(entry.EquipType, out Dictionary <uint, EquipmentUpgradeEntryPrimitive> perWeaponEntries) == false) { perWeaponEntries = new Dictionary <uint, EquipmentUpgradeEntryPrimitive>(); Table.Add(entry.EquipType, perWeaponEntries); } if (perWeaponEntries.TryGetValue(entry.EquipId, out EquipmentUpgradeEntryPrimitive existingEntry) == false || HasDescendants(existingEntry) == false) { perWeaponEntries[entry.EquipId] = entry; } } }
public static bool HasDescendants(EquipmentUpgradeEntryPrimitive entry) { return(entry.Descendant1Id > 0 || entry.Descendant2Id > 0 || entry.Descendant3Id > 0 || entry.Descendant4Id > 0); }