From aabf7b9b5a34efdbb4ba151feb3a119c2c290cad Mon Sep 17 00:00:00 2001 From: Uleat Date: Sun, 23 Oct 2016 20:51:07 -0400 Subject: [PATCH] Switched NPC::QueryLoot() from ItemData model to ServerLootItem model (allows saylinks with augments) --- zone/npc.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/zone/npc.cpp b/zone/npc.cpp index f6e080a26..b2b3ff48c 100644 --- a/zone/npc.cpp +++ b/zone/npc.cpp @@ -525,19 +525,22 @@ void NPC::QueryLoot(Client* to) int x = 0; for (auto cur = itemlist.begin(); cur != itemlist.end(); ++cur, ++x) { - const EQEmu::ItemData* item = database.GetItem((*cur)->item_id); - if (item == nullptr) { - Log.Out(Logs::General, Logs::Error, "Database error, invalid item"); + if (!(*cur)) { + Log.Out(Logs::General, Logs::Error, "NPC::QueryLoot() - ItemList error, null item"); + continue; + } + if (!(*cur)->item_id || !database.GetItem((*cur)->item_id)) { + Log.Out(Logs::General, Logs::Error, "NPC::QueryLoot() - Database error, invalid item"); continue; } EQEmu::SayLinkEngine linker; - linker.SetLinkType(EQEmu::saylink::SayLinkItemData); - linker.SetItemData(item); + linker.SetLinkType(EQEmu::saylink::SayLinkLootItem); + linker.SetLootData(*cur); auto item_link = linker.GenerateLink(); - to->Message(0, "%s, ID: %u, Level: (min: %u, max: %u)", item_link.c_str(), item->ID, (*cur)->min_level, (*cur)->max_level); + to->Message(0, "%s, ID: %u, Level: (min: %u, max: %u)", item_link.c_str(), (*cur)->item_id, (*cur)->min_level, (*cur)->max_level); } to->Message(0, "%i items on %s.", x, GetName());