diff options
-rw-r--r-- | src/server/game/Loot/LootMgr.cpp | 33 | ||||
-rw-r--r-- | src/server/game/Loot/LootMgr.h | 10 | ||||
-rw-r--r-- | src/server/game/Server/Packets/LootPackets.cpp | 2 | ||||
-rw-r--r-- | src/server/game/Server/Packets/LootPackets.h | 2 |
4 files changed, 24 insertions, 23 deletions
diff --git a/src/server/game/Loot/LootMgr.cpp b/src/server/game/Loot/LootMgr.cpp index 189b620b805..9ef0f8c7c57 100644 --- a/src/server/game/Loot/LootMgr.cpp +++ b/src/server/game/Loot/LootMgr.cpp @@ -913,7 +913,7 @@ void Loot::BuildLootResponse(WorldPackets::Loot::LootResponse& packet, Player* v WorldPackets::Loot::LootItemData lootItem; lootItem.LootListID = packet.Items.size()+1; - lootItem.LootItemType = slot_type; + lootItem.UIType = slot_type; lootItem.Quantity = items[i].count; lootItem.Loot.Initialize(items[i]); packet.Items.push_back(lootItem); @@ -933,7 +933,7 @@ void Loot::BuildLootResponse(WorldPackets::Loot::LootResponse& packet, Player* v WorldPackets::Loot::LootItemData lootItem; lootItem.LootListID = packet.Items.size()+1; - lootItem.LootItemType = LOOT_SLOT_TYPE_ALLOW_LOOT; + lootItem.UIType = LOOT_SLOT_TYPE_ALLOW_LOOT; lootItem.Quantity = items[i].count; lootItem.Loot.Initialize(items[i]); packet.Items.push_back(lootItem); @@ -950,7 +950,7 @@ void Loot::BuildLootResponse(WorldPackets::Loot::LootResponse& packet, Player* v { WorldPackets::Loot::LootItemData lootItem; lootItem.LootListID = packet.Items.size()+1; - lootItem.LootItemType = LOOT_SLOT_TYPE_ALLOW_LOOT; + lootItem.UIType = permission == OWNER_PERMISSION ? LOOT_SLOT_TYPE_OWNER : LOOT_SLOT_TYPE_ALLOW_LOOT; lootItem.Quantity = items[i].count; lootItem.Loot.Initialize(items[i]); packet.Items.push_back(lootItem); @@ -962,6 +962,7 @@ void Loot::BuildLootResponse(WorldPackets::Loot::LootResponse& packet, Player* v return; } + LootSlotType slotType = permission == OWNER_PERMISSION ? LOOT_SLOT_TYPE_OWNER : LOOT_SLOT_TYPE_ALLOW_LOOT; QuestItemMap const& lootPlayerQuestItems = GetPlayerQuestItems(); QuestItemMap::const_iterator q_itr = lootPlayerQuestItems.find(viewer->GetGUID().GetCounter()); if (q_itr != lootPlayerQuestItems.end()) @@ -982,25 +983,25 @@ void Loot::BuildLootResponse(WorldPackets::Loot::LootResponse& packet, Player* v switch (permission) { case MASTER_PERMISSION: - lootItem.LootItemType = LOOT_SLOT_TYPE_MASTER; + lootItem.UIType = LOOT_SLOT_TYPE_MASTER; break; case RESTRICTED_PERMISSION: - lootItem.LootItemType = item.is_blocked ? LOOT_SLOT_TYPE_LOCKED : LOOT_SLOT_TYPE_ALLOW_LOOT; + lootItem.UIType = item.is_blocked ? LOOT_SLOT_TYPE_LOCKED : LOOT_SLOT_TYPE_ALLOW_LOOT; break; case GROUP_PERMISSION: case ROUND_ROBIN_PERMISSION: if (!item.is_blocked) - lootItem.LootItemType = LOOT_SLOT_TYPE_ALLOW_LOOT; + lootItem.UIType = LOOT_SLOT_TYPE_ALLOW_LOOT; else - lootItem.LootItemType = LOOT_SLOT_TYPE_ROLL_ONGOING; + lootItem.UIType = LOOT_SLOT_TYPE_ROLL_ONGOING; break; default: - lootItem.LootItemType = LOOT_SLOT_TYPE_ALLOW_LOOT; + lootItem.UIType = slotType; break; } } else - lootItem.LootItemType = LOOT_SLOT_TYPE_ALLOW_LOOT; + lootItem.UIType = slotType; packet.Items.push_back(lootItem); } @@ -1019,7 +1020,7 @@ void Loot::BuildLootResponse(WorldPackets::Loot::LootResponse& packet, Player* v { WorldPackets::Loot::LootItemData lootItem; lootItem.LootListID = packet.Items.size()+1; - lootItem.LootItemType = LOOT_SLOT_TYPE_ALLOW_LOOT; + lootItem.UIType = slotType; lootItem.Quantity = item.count; lootItem.Loot.Initialize(item); packet.Items.push_back(lootItem); @@ -1047,25 +1048,25 @@ void Loot::BuildLootResponse(WorldPackets::Loot::LootResponse& packet, Player* v switch (permission) { case MASTER_PERMISSION: - lootItem.LootItemType = LOOT_SLOT_TYPE_MASTER; + lootItem.UIType = LOOT_SLOT_TYPE_MASTER; break; case RESTRICTED_PERMISSION: - lootItem.LootItemType = item.is_blocked ? LOOT_SLOT_TYPE_LOCKED : LOOT_SLOT_TYPE_ALLOW_LOOT; + lootItem.UIType = item.is_blocked ? LOOT_SLOT_TYPE_LOCKED : LOOT_SLOT_TYPE_ALLOW_LOOT; break; case GROUP_PERMISSION: case ROUND_ROBIN_PERMISSION: if (!item.is_blocked) - lootItem.LootItemType = LOOT_SLOT_TYPE_ALLOW_LOOT; + lootItem.UIType = LOOT_SLOT_TYPE_ALLOW_LOOT; else - lootItem.LootItemType = LOOT_SLOT_TYPE_ROLL_ONGOING; + lootItem.UIType = LOOT_SLOT_TYPE_ROLL_ONGOING; break; default: - lootItem.LootItemType = LOOT_SLOT_TYPE_ALLOW_LOOT; + lootItem.UIType = slotType; break; } } else - lootItem.LootItemType = LOOT_SLOT_TYPE_ALLOW_LOOT; + lootItem.UIType = slotType; packet.Items.push_back(lootItem); } diff --git a/src/server/game/Loot/LootMgr.h b/src/server/game/Loot/LootMgr.h index 0c5bdc496c8..5610c876f2d 100644 --- a/src/server/game/Loot/LootMgr.h +++ b/src/server/game/Loot/LootMgr.h @@ -121,11 +121,11 @@ enum LootError // type of Loot Item in Loot View enum LootSlotType { - LOOT_SLOT_TYPE_ALLOW_LOOT = 0, // player can loot the item. - LOOT_SLOT_TYPE_ROLL_ONGOING = 1, // roll is ongoing. player cannot loot. - LOOT_SLOT_TYPE_MASTER = 2, // item can only be distributed by group loot master. - LOOT_SLOT_TYPE_LOCKED = 3, // item is shown in red. player cannot loot. - LOOT_SLOT_TYPE_OWNER = 4 // ignore binding confirmation and etc, for single player looting (6.x no longer used) + LOOT_SLOT_TYPE_ALLOW_LOOT = 2, // player can loot the item. + LOOT_SLOT_TYPE_ROLL_ONGOING = 6, // roll is ongoing. player cannot loot. + LOOT_SLOT_TYPE_MASTER = 4, // item can only be distributed by group loot master. + LOOT_SLOT_TYPE_LOCKED = 1, // item is shown in red. player cannot loot. + LOOT_SLOT_TYPE_OWNER = 7 // ignore binding confirmation and etc, for single player looting }; class Player; diff --git a/src/server/game/Server/Packets/LootPackets.cpp b/src/server/game/Server/Packets/LootPackets.cpp index ce0d267778f..ec7a475df7a 100644 --- a/src/server/game/Server/Packets/LootPackets.cpp +++ b/src/server/game/Server/Packets/LootPackets.cpp @@ -57,8 +57,8 @@ WorldPacket const* WorldPackets::Loot::LootResponse::Write() } _worldPacket.WriteBit(Acquired); - _worldPacket.WriteBit(PersonalLooting); _worldPacket.WriteBit(AELooting); + _worldPacket.WriteBit(PersonalLooting); _worldPacket.FlushBits(); return &_worldPacket; diff --git a/src/server/game/Server/Packets/LootPackets.h b/src/server/game/Server/Packets/LootPackets.h index 9bdd8bd3a4f..d9e3a0cd948 100644 --- a/src/server/game/Server/Packets/LootPackets.h +++ b/src/server/game/Server/Packets/LootPackets.h @@ -39,7 +39,7 @@ namespace WorldPackets struct LootItemData { uint8 Type = 2; - uint8 UIType = 4; + uint8 UIType = 7; uint32 Quantity = 0; uint8 LootItemType = 0; uint8 LootListID = 0; |