mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-03-24 16:10:14 +00:00
Improve equipment texture performance and accuracy
Cache composite textures by input key so identical NPC equipment combos share one GPU texture. Use DBC layout system for ItemDisplayInfo texture component fields instead of hardcoded indices (cross-expansion support). Selective player equipment re-emission on item query response instead of broadcasting to all players.
This commit is contained in:
parent
d4bea91e37
commit
3675721016
8 changed files with 78 additions and 12 deletions
|
|
@ -5251,10 +5251,25 @@ void GameHandler::handleItemQueryResponse(network::Packet& packet) {
|
|||
itemInfoCache_[data.entry] = data;
|
||||
rebuildOnlineInventory();
|
||||
maybeDetectVisibleItemLayout();
|
||||
emitAllOtherPlayerEquipment();
|
||||
// If we have inspect-based item entry lists, re-emit for any players that now resolve.
|
||||
|
||||
// Selectively re-emit only players whose equipment references this item entry
|
||||
const uint32_t resolvedEntry = data.entry;
|
||||
for (const auto& [guid, entries] : otherPlayerVisibleItemEntries_) {
|
||||
for (uint32_t e : entries) {
|
||||
if (e == resolvedEntry) {
|
||||
emitOtherPlayerEquipment(guid);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
// Same for inspect-based entries
|
||||
if (playerEquipmentCallback_) {
|
||||
for (const auto& [guid, entries] : inspectedPlayerItemEntries_) {
|
||||
bool relevant = false;
|
||||
for (uint32_t e : entries) {
|
||||
if (e == resolvedEntry) { relevant = true; break; }
|
||||
}
|
||||
if (!relevant) continue;
|
||||
std::array<uint32_t, 19> displayIds{};
|
||||
std::array<uint8_t, 19> invTypes{};
|
||||
for (int s = 0; s < 19; s++) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue