fix: revert stride to 2 (correct for WotLK visible items), add re-emit tracing

Stride 4 was wrong — the raw dump shows entries at 284, 288, 292 which
are slots 0, 2, 4 with stride 2 (slot 1=NECK is zero because necks are
invisible). Stride 2 with base 284 correctly maps 19 equipment slots.

Added WARNING-level log when item query responses trigger equipment
re-emit for other players, to confirm the re-emit chain works.

The falling-through-world issue is likely terrain chunks not loading
fast enough — the terrain streaming stalls are still present.
This commit is contained in:
Kelsi 2026-03-28 11:07:17 -07:00
parent 05ab9922c4
commit 15f6aaadb2
2 changed files with 6 additions and 1 deletions

View file

@ -2370,14 +2370,19 @@ void InventoryHandler::handleItemQueryResponse(network::Packet& packet) {
// Selectively re-emit only players whose equipment references this item entry
const uint32_t resolvedEntry = data.entry;
int reemitCount = 0;
for (const auto& [guid, entries] : owner_.otherPlayerVisibleItemEntries_) {
for (uint32_t e : entries) {
if (e == resolvedEntry) {
emitOtherPlayerEquipment(guid);
reemitCount++;
break;
}
}
}
if (reemitCount > 0) {
LOG_WARNING("Re-emitted equipment for ", reemitCount, " players after resolving entry=", resolvedEntry);
}
// Same for inspect-based entries
if (owner_.playerEquipmentCallback_) {
for (const auto& [guid, entries] : owner_.inspectedPlayerItemEntries_) {