From 8a0427c70f037d3f5de62996ba3271b197764743 Mon Sep 17 00:00:00 2001 From: megamage Date: Sun, 12 Jul 2009 18:00:50 +0800 Subject: [PATCH] [8160] Now finally correct extraction uint16 enchantment id from uint32. Author: VladimirMangos --HG-- branch : trunk --- src/game/Player.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/game/Player.cpp b/src/game/Player.cpp index 9cf2011593..61c943961c 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -1553,7 +1553,12 @@ bool Player::BuildEnumData( QueryResult * result, WorldPacket * p_data ) uint32 enchants = GetUInt32ValueFromArray(data, visualbase + 1); for(uint8 enchantSlot = PERM_ENCHANTMENT_SLOT; enchantSlot <= TEMP_ENCHANTMENT_SLOT; ++enchantSlot) { - if(enchant = sSpellItemEnchantmentStore.LookupEntry(enchants >> enchantSlot*16)) + // values stored in 2 uint16 + uint32 enchantId = 0x0000FFFF & (enchants >> enchantSlot*16); + if(!enchantId) + continue; + + if(enchant = sSpellItemEnchantmentStore.LookupEntry(enchantId)) break; }