Fix equipment textures: correct DBC field indices and stop texture cycling

Binary ItemDisplayInfo.dbc has 23 fields with texture components at
14-21, not 15-22. The previous "fix" shifted all fields by +1 which
read wrong columns and broke both player and NPC equipment rendering.

Also fix local player texture cycling: rebuildOnlineInventory() was
called on every item query response (including for other players),
unconditionally setting onlineEquipDirty_ which triggered redundant
texture recompositing. Now tracks previous equipment displayInfoIds
and only sets dirty when they actually change.

Unified all 3 equipment texture code paths (local player, other
players, NPCs) to use the DBC layout system with correct field 14
base index.
This commit is contained in:
Kelsi 2026-02-14 16:33:24 -08:00
parent e0e927cac1
commit 8282583b9a
8 changed files with 57 additions and 35 deletions

View file

@ -6,9 +6,9 @@
"ItemDisplayInfo": {
"ID": 0, "LeftModel": 1, "LeftModelTexture": 3,
"InventoryIcon": 5, "GeosetGroup1": 7, "GeosetGroup3": 9,
"TextureArmUpper": 15, "TextureArmLower": 16, "TextureHand": 17,
"TextureTorsoUpper": 18, "TextureTorsoLower": 19,
"TextureLegUpper": 20, "TextureLegLower": 21, "TextureFoot": 22
"TextureArmUpper": 14, "TextureArmLower": 15, "TextureHand": 16,
"TextureTorsoUpper": 17, "TextureTorsoLower": 18,
"TextureLegUpper": 19, "TextureLegLower": 20, "TextureFoot": 21
},
"CharSections": {
"RaceID": 1, "SexID": 2, "BaseSection": 3,

View file

@ -6,9 +6,9 @@
"ItemDisplayInfo": {
"ID": 0, "LeftModel": 1, "LeftModelTexture": 3,
"InventoryIcon": 5, "GeosetGroup1": 7, "GeosetGroup3": 9,
"TextureArmUpper": 15, "TextureArmLower": 16, "TextureHand": 17,
"TextureTorsoUpper": 18, "TextureTorsoLower": 19,
"TextureLegUpper": 20, "TextureLegLower": 21, "TextureFoot": 22
"TextureArmUpper": 14, "TextureArmLower": 15, "TextureHand": 16,
"TextureTorsoUpper": 17, "TextureTorsoLower": 18,
"TextureLegUpper": 19, "TextureLegLower": 20, "TextureFoot": 21
},
"CharSections": {
"RaceID": 1, "SexID": 2, "BaseSection": 3,

View file

@ -6,9 +6,9 @@
"ItemDisplayInfo": {
"ID": 0, "LeftModel": 1, "LeftModelTexture": 3,
"InventoryIcon": 5, "GeosetGroup1": 7, "GeosetGroup3": 9,
"TextureArmUpper": 15, "TextureArmLower": 16, "TextureHand": 17,
"TextureTorsoUpper": 18, "TextureTorsoLower": 19,
"TextureLegUpper": 20, "TextureLegLower": 21, "TextureFoot": 22
"TextureArmUpper": 14, "TextureArmLower": 15, "TextureHand": 16,
"TextureTorsoUpper": 17, "TextureTorsoLower": 18,
"TextureLegUpper": 19, "TextureLegLower": 20, "TextureFoot": 21
},
"CharSections": {
"RaceID": 1, "SexID": 2, "BaseSection": 3,

View file

@ -6,9 +6,9 @@
"ItemDisplayInfo": {
"ID": 0, "LeftModel": 1, "LeftModelTexture": 3,
"InventoryIcon": 5, "GeosetGroup1": 7, "GeosetGroup3": 9,
"TextureArmUpper": 15, "TextureArmLower": 16, "TextureHand": 17,
"TextureTorsoUpper": 18, "TextureTorsoLower": 19,
"TextureLegUpper": 20, "TextureLegLower": 21, "TextureFoot": 22
"TextureArmUpper": 14, "TextureArmLower": 15, "TextureHand": 16,
"TextureTorsoUpper": 17, "TextureTorsoLower": 18,
"TextureLegUpper": 19, "TextureLegLower": 20, "TextureFoot": 21
},
"CharSections": {
"RaceID": 1, "SexID": 2, "BaseSection": 3,