private void Form1_Load(object sender, EventArgs e) { //Prepare header enchantHeader = DBCHelper.prepareHeader(enchantReader); //Load individual enchanments for (int i = 0; i < enchantHeader.RecordsCount; i++) { GCHandle handle = GCHandle.Alloc(enchantReader.GetRowAsByteArray(i), GCHandleType.Pinned); var size = Marshal.SizeOf(typeof(SpellItemEnchantment)); SpellItemEnchantment enchantment = (SpellItemEnchantment)Marshal.PtrToStructure(handle.AddrOfPinnedObject(), typeof(SpellItemEnchantment)); enchantDict.Add(enchantment.ID, enchantment); handle.Free(); } //Prepare header randomPropertiesHeader = DBCHelper.prepareHeader(randomPropertiesReader); //Load individual enchanments for (int i = 0; i < randomPropertiesHeader.RecordsCount; i++) { GCHandle handle = GCHandle.Alloc(randomPropertiesReader.GetRowAsByteArray(i), GCHandleType.Pinned); var size = Marshal.SizeOf(typeof(ItemRandomProperties)); ItemRandomProperties randomProperties = (ItemRandomProperties)Marshal.PtrToStructure(handle.AddrOfPinnedObject(), typeof(ItemRandomProperties)); randomPropertiesDict.Add(randomProperties.ID, randomProperties); handle.Free(); } this.Text = this.Text + " " + enchantDict.Keys.Count.ToString() + " enchants " + randomPropertiesDict.Keys.Count.ToString() + " properties"; itemEntryField.Text = "16913"; }
public static ItemRandomProperties fill(ItemRandomProperties property, List <SpellItemEnchantment> enchants, int variationMod) { if (enchants.Count > 0) { property.spellItemEnchantment1 = enchants[0].ID; } if (enchants.Count > 1) { property.spellItemEnchantment2 = enchants[1].ID; } if (enchants.Count > 2) { property.spellItemEnchantment3 = enchants[2].ID; } property.suffix17 = 16712190; return(property); }