Skip to content

fix(importer): normalize build 5875 Spell columns before deriving effects #460

Closed

Description

@Mathih13

The general Spell importer reads shifted build 5875 effect arrays. This can treat an equipment inventory mask as an effect, move valid effects to the wrong slot, and omit the third effect.

importer/src/spell.rs documents that wow_dbc 0.3 omits InterruptFlags, but incorrectly says the arrays resynchronize. push_spell_effect_rows and resolve_effect_kind still read the shifted SpellRow.effect, effect_aura and related fields directly.

Observed against Spell.dbc SHA-256 913d01c0376d88310ed4a44ea1115f30fd8be15af64ce304f4f17b6bc51cf15b:

Spell Raw build 5875 fields Named wow_dbc fields
7748 Equipment class 4, inventory mask 1048608, effects [53,0,0] Equipment class 0, effects [1048608,53,0]
7747 Equipment class -1, effects [6,0,0], auras [34,0,0], base points [14,0,0] Equipment class 0, effects [0,6,0], auras [0,34,0], base points [0,14,0]

The #31 Random Property Tracer found this through real-data import and now reads canonical build 5875 columns for its item catalogue. General Spell import still needs correction.

Implement a normalized build 5875 Spell reader for general import and its snapshots. Reuse the item catalogue reader where appropriate. Audit every consumed field against the pinned source layout, including effect targets, ranges, magnitudes and all three slots. Review curated corrections that may compensate for shifted input before removing them.

Done when source-shaped fixtures prove all three effect slots and the preceding equipment fields, actual DBC checks cover known spells, importer tests and affected durable gameplay tests pass, and the changed import output has been reviewed. Record any World Import Profile reimport requirement. Do not update a live Realm as part of implementation.

Found during #31 implementation. Model: GPT-6 Astra. Harness: Codex.

Activity

  1. Mathih13 commented on Sep 7, 2026

    @Mathih13
    ContributorAuthor

    Fixed by #465, merged as 044b93531ed6afe13202cd541d105d3d634d5b0d.

    The normalized build 5875 reader now preserves all three effect slots and the preceding equipment fields, reads every consumed column from the pinned layout, and derives targets from explicit flags and source defaults. The source comparison retained 22,357 headers, restored 874 third effects, removed 204 false effects, and corrected target routing without a schema change.

    Validation included 360 importer tests, actual-source audits for the shifted-column and target cases, three disposable Standalone gameplay cases, strict lint, formatting, and all seven PR checks. No existing Realm was accessed.

    Operator follow-up remains deployment work: run the normal Spell reimport and curated class-spell pass on each World Shard and Instance Pool, rebuild Base Snapshots, and review Package Deltas that name affected effect indices before replaying them. Publishing the Module alone does not correct stored rows.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions