Commit 9a60e22
Fix VendorAmmo & VendorReagent over-propagation from Phase 1/2/3
Phase DB classifies vendor sub-type flags (VendorAmmo, VendorReagent, etc.)
from vendoritems.json ground truth for SoM and TBC. However, Phase 1
cross-references by Entry ID across all three expansions (SoM, TBC, Wrath),
and Wrath has no vendoritems.json — its NpcFlags come from DBC data which
may be incorrect. Phase 1 unions all flags and propagates them back,
overwriting Phase DB ground truth for SoM/TBC vendors.
Before fix (audit mismatches):
SoM: -VendorAmmo: 81, -VendorReagent: 121
TBC: -VendorAmmo: 102, -VendorReagent: 235
Fix: Track all vendors present in vendoritems.json in a HashSet regardless
of whether Phase DB changed their flags (since "no VendorAmmo" is ground
truth too). Phase 1 (ApplyFlags), Phase 2 (ApplyFlagsBySubName), and
Phase 3 (ApplyKeywordClassification) now skip these vendors — their flags
are already correct from ground truth.
Only the application step needs guarding because Phase DB already corrected
the NpcFlag values in-memory before Phase 1 runs. The contamination only
happens when Phase 1 applies unioned flags back to ground-truth vendors.
After fix (audit mismatches):
SoM: -VendorAmmo: 0, -VendorReagent: 0
TBC: -VendorAmmo: 0, -VendorReagent: 0
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>1 parent 212c215 commit 9a60e22
1 file changed
Lines changed: 768 additions & 0 deletions
0 commit comments