aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Loot/LootMgr.cpp33
-rw-r--r--src/server/game/Loot/LootMgr.h10
-rw-r--r--src/server/game/Server/Packets/LootPackets.cpp2
-rw-r--r--src/server/game/Server/Packets/LootPackets.h2
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;