Uploaded image for project: 'WowModelViewer'
  1. WowModelViewer
  2. WMV-516

Demon Hunter versions of armour used on wrong characters

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 0.9.0
    • Component/s: None
    • Labels:
      None
    • Platform:
      Windows 10
    • Platform type:
      64 bits

      Description

      Some pieces of gear are displayed differently on Demon Hunters. For example the Runesworn Tunic is a proper vest on most characters but is supposed to be a skimpy leather harness on Demon Hunters. But currently it appears like a leather harness on all characters because we don't include character ClassID in our queries of the ComponentTextureFileData and ComponentModelFileData tables (in WoWItem.cpp). The reason the Demon Hunter version appears is simply that its display data are (by chance) later in those tables and so overwrite the data for the regular versions that were added first. If it was the other way around (it may be for some items, I'm not sure) then the gear would appear correctly on regular characters but wrong on DHs.

      To fix, we simply need to check if the character has demon hunter mode enabled and query for ClassID = 0 if it doesn't (0 = default / any class). If DH mode is enabled, query for ClassID = 12 or ClassID = 0 (but prioritize display data from class = 12 if it exists).

      Currently only Demon Hunters seem to have custom gear, and luckily they're the one class we have a toggle for. If customized gear appearances are added for other classes we may need to add a special way to enable them.

        Attachments

          Activity

            People

            • Assignee:
              Wain Wain
              Reporter:
              Wain Wain
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: