[Bug Fix] Fix _PutItem having a slot_id of -1 on mobs with no items (#3474)

# Notes
- This was causing an insane amount of error logs because we were always using `PutItem`, even with a `slot_id` of `-1`.
This commit is contained in:
Alex King 2023-07-03 20:33:21 -04:00 committed by GitHub
parent 4a9a9fa197
commit bc71997518
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 4 deletions

View File

@ -1444,7 +1444,7 @@ int16 EQ::InventoryProfile::_PutItem(int16 slot_id, ItemInstance* inst)
} }
if (result == INVALID_INDEX) { if (result == INVALID_INDEX) {
LogError("InventoryProfile::_PutItem: Invalid slot_id specified ({}) with parent slot id ({})", slot_id, parentSlot); LogError("Invalid slot_id specified ({}) with parent slot id ({})", slot_id, parentSlot);
InventoryProfile::MarkDirty(inst); // Slot not found, clean up InventoryProfile::MarkDirty(inst); // Slot not found, clean up
} }

View File

@ -299,7 +299,7 @@ void NPC::AddLootDrop(
uint32 aug6 uint32 aug6
) )
{ {
if (item2 == nullptr) { if (!item2) {
return; return;
} }
@ -363,7 +363,7 @@ void NPC::AddLootDrop(
bool found = false; // track if we found an empty slot we fit into bool found = false; // track if we found an empty slot we fit into
int foundslot = -1; // for multi-slot items int foundslot = INVALID_INDEX; // for multi-slot items
const auto* inst = database.CreateItem( const auto* inst = database.CreateItem(
item2->ID, item2->ID,
@ -376,6 +376,10 @@ void NPC::AddLootDrop(
aug6 aug6
); );
if (!inst) {
return;
}
if (loot_drop.equip_item > 0) { if (loot_drop.equip_item > 0) {
uint8 eslot = 0xFF; uint8 eslot = 0xFF;
char newid[20]; char newid[20];
@ -524,7 +528,10 @@ void NPC::AddLootDrop(
} }
if (itemlist) { if (itemlist) {
if (foundslot != INVALID_INDEX) {
GetInv().PutItem(foundslot, *inst); GetInv().PutItem(foundslot, *inst);
}
itemlist->push_back(item); itemlist->push_back(item);
} else { } else {
safe_delete(item); safe_delete(item);