Beispiel #1
0
        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";
        }
Beispiel #2
0
        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);
        }