public override ItemEnchantmentEntry ConvertTo(byte[] rawData, ref int id) { var enchant = new ItemEnchantmentEntry(); enchant.Id = (uint)(id = GetInt32(rawData, 0)); enchant.Charges = GetUInt32(rawData, 1); enchant.Description = GetString(rawData, 14); enchant.Effects = new ItemEnchantmentEffect[3]; for (var i = 0; i < 3; i++) { var type = (ItemEnchantmentType)GetUInt32(rawData, 2 + i); if (type != ItemEnchantmentType.None) { var effect = new ItemEnchantmentEffect(); enchant.Effects[i] = effect; effect.Type = type; effect.MinAmount = GetInt32(rawData, 5 + i); effect.MaxAmount = GetInt32(rawData, 8 + i); effect.Misc = GetUInt32(rawData, 11 + i); } } ArrayUtil.Prune(ref enchant.Effects); var currentIndex = 31; enchant.Visual = GetUInt32(rawData, currentIndex++); enchant.Flags = GetUInt32(rawData, currentIndex++); enchant.SourceItemId = GetUInt32(rawData, currentIndex++); var conditionId = GetUInt32(rawData, currentIndex++); if (conditionId > 0) { enchant.Condition = EnchantMgr.GetEnchantmentCondition(conditionId); } enchant.RequiredSkillId = (SkillId)GetUInt32(rawData, currentIndex++); enchant.RequiredSkillAmount = GetInt32(rawData, currentIndex); return(enchant); }
public override ItemEnchantmentEntry ConvertTo(byte[] rawData, ref int id) { ItemEnchantmentEntry enchantmentEntry1 = new ItemEnchantmentEntry(); enchantmentEntry1.Id = (uint)(id = DBCRecordConverter.GetInt32(rawData, 0)); enchantmentEntry1.Charges = DBCRecordConverter.GetUInt32(rawData, 1); enchantmentEntry1.Description = this.GetString(rawData, 14); enchantmentEntry1.Effects = new ItemEnchantmentEffect[3]; for (int index = 0; index < 3; ++index) { ItemEnchantmentType uint32 = (ItemEnchantmentType)DBCRecordConverter.GetUInt32(rawData, 2 + index); if (uint32 != ItemEnchantmentType.None) { ItemEnchantmentEffect enchantmentEffect = new ItemEnchantmentEffect(); enchantmentEntry1.Effects[index] = enchantmentEffect; enchantmentEffect.Type = uint32; enchantmentEffect.MinAmount = DBCRecordConverter.GetInt32(rawData, 5 + index); enchantmentEffect.MaxAmount = DBCRecordConverter.GetInt32(rawData, 8 + index); enchantmentEffect.Misc = DBCRecordConverter.GetUInt32(rawData, 11 + index); } } ArrayUtil.Prune <ItemEnchantmentEffect>(ref enchantmentEntry1.Effects); int num1 = 31; ItemEnchantmentEntry enchantmentEntry2 = enchantmentEntry1; byte[] data1 = rawData; int field1 = num1; int num2 = field1 + 1; int uint32_1 = (int)DBCRecordConverter.GetUInt32(data1, field1); enchantmentEntry2.Visual = (uint)uint32_1; ItemEnchantmentEntry enchantmentEntry3 = enchantmentEntry1; byte[] data2 = rawData; int field2 = num2; int num3 = field2 + 1; int uint32_2 = (int)DBCRecordConverter.GetUInt32(data2, field2); enchantmentEntry3.Flags = (uint)uint32_2; ItemEnchantmentEntry enchantmentEntry4 = enchantmentEntry1; byte[] data3 = rawData; int field3 = num3; int num4 = field3 + 1; int uint32_3 = (int)DBCRecordConverter.GetUInt32(data3, field3); enchantmentEntry4.SourceItemId = (uint)uint32_3; byte[] data4 = rawData; int field4 = num4; int num5 = field4 + 1; uint uint32_4 = DBCRecordConverter.GetUInt32(data4, field4); if (uint32_4 > 0U) { enchantmentEntry1.Condition = EnchantMgr.GetEnchantmentCondition(uint32_4); } ItemEnchantmentEntry enchantmentEntry5 = enchantmentEntry1; byte[] data5 = rawData; int field5 = num5; int field6 = field5 + 1; int uint32_5 = (int)DBCRecordConverter.GetUInt32(data5, field5); enchantmentEntry5.RequiredSkillId = (SkillId)uint32_5; enchantmentEntry1.RequiredSkillAmount = DBCRecordConverter.GetInt32(rawData, field6); return(enchantmentEntry1); }