Skip to content

Align Cataclysm 4.3.4 DBC and DB2 models#302

Merged
MadMaxMangos merged 15 commits into
masterfrom
enhance/dbc
Jul 15, 2026
Merged

Align Cataclysm 4.3.4 DBC and DB2 models#302
MadMaxMangos merged 15 commits into
masterfrom
enhance/dbc

Conversation

@MadMaxMangos

@MadMaxMangos MadMaxMangos commented Jul 15, 2026

Copy link
Copy Markdown
Member

Align Cataclysm 4.3.4 DBC and DB2 models

Summary

  • Align MaNGOS Three's active DBC/DB2 structures, formats, stores, and consumers to client build 4.3.4.15595.
  • Apply 533 semantic member mappings across 104 campaign tables: 514 mechanical mappings across 102 tables, plus dedicated SpellEffect and ScalingStatValues passes covering 19 mappings.
  • Add inert DBC and DB2 reference headers for the complete 333-file client catalogue. These headers are documentation and are not included by production code.
  • Pin the permanent merged-master SD3 and Eluna compatibility commits validated by this campaign.

Schema Authority

  • Recovery commit: 8d168bb887379d5c662e4a7dbe92f50247a57bd8
  • Release manifest: registry/task7_active_release_manifest.json
  • Release manifest SHA-256: eab77041f8c1de6c9bb12566c808a405c8195f95bc38e1da63d9ba4c839b8188
  • Client catalogue: 333 files, comprising 328 DBC and 5 DB2 files.
  • Active release: 136 schemas, comprising 133 DBC and 3 DB2 tables.
  • Reference partition: 133 ACTIVE + 195 DOC DBC tables and 3 ACTIVE + 2 DOC DB2 tables.
  • Honest opaque exceptions: PetitionType.dbc remains an exact-size RawRecord[12]; Item-sparse.db2 remains an exact-size RawRecord[532] with its WDB2 metadata documented. Neither opaque reference is used as a runtime model.

Scope Notes

  • The dormant audit reviewed 16 candidates and accepted 0 re-enables. Client geometry alone was not treated as a reason to add a runtime load.
  • PlayerBots/Bots remain disabled and outside this campaign because Three's PlayerBots integration is currently non-working. Their stale member names are an explicit residual, not evidence of an incomplete production-core rename.
  • Permanent companion pins are Eluna 1063f4330392d8b63be014f9c925bb953dd8cba7 (PR At last, changing opcode to enable flying #7) and SD3 00aeb1cfb978c0da38330985e1666d6e3a9aac9d (PR Support Kaja'Cola conditional loot activation #101).

Validation

  • Active-release scratch reconciliation: 136 active, 0 dormant, and 0 unmodelled. All 533 campaign mappings are adjudicated with no unexplained layout contradiction. The raw residual is 31 documented proposals across nine tables: the eight frozen unsafe-exclusion tables plus the intentional semantic retention of ScalingStatValues::SpellPower over an opaque client-schema name.
  • CoreAlign suite: 106/106 tests passed, including the Cata big-endian spell-class-mask regression.
  • Shared-consumer preflight: 19 touched candidate tables across 162 files; 14 shared tables plus the dedicated Spell surface; PlayerBots/Bots excluded.
  • Reference generator --check: passed; both generated headers compile standalone with cl /Zs; production include scan found no references to either header.
  • Static checks: git diff --check clean, no campaign-added mojibake, and the big-endian mask fix now traverses SpellClassOptions once rather than repeatedly following shared spell references. Its unsigned 64-bit half rotation avoids strict-aliasing undefined behavior and is guarded by a source-integrated regression.
  • RelWithDebInfo build/install: passed with SD3 and Eluna enabled and PLAYERBOTS=OFF. Existing warnings remain in untouched Windows crash-reporting and Eluna compatibility code; the changed DBCStores.cpp compiled cleanly.
  • Built/staged mangosd.exe SHA-256: 7f31da89887555a035a64cc757212ec57e76273d41610dbf5226e8d58312ed18 for both copies.
  • Boot gate: 129 DBC stores, 3 DB2 stores, and world initialization completed. Runtime provenance reported core 160a68a23f82, Eluna 1063f4330392, and SD3 00aeb1cfb978 without dirty suffixes. The accepted binary was rebuilt after removing the ignored source-tree revision-header shadow.
  • User-driven in-world smoke: passed on the final installed binary. A fresh character was created, entered the world, learned and cast class spells, used SD3 gossip, activated a 16-node taxi route, queried the auction house, teleported across area loads, logged out, and completed a clean server shutdown with no crash artifact or Eluna error. The observed opcode/mover warnings were outside the changed surface; the unknown trigger from GM-only learn all_myclass exactly matched the client files (SpellEffect 89023 -> absent Spell 32733).
  • Final scoped reviews: APPROVE, no findings. The module review confirmed all CATA arms and preserved non-CATA/non-MaNGOS paths; the production-core review confirmed field order, types, format strings, consumer semantics, and collision routing across fc11e3229..bad498634; the final endian review confirmed defined half-rotation semantics, exact store ownership, load ordering, and one-pass cardinality.

Delivery Order

The compile, boot, permanent companion-pin, and user-driven in-world smoke gates are complete. The server branch is ready for delivery.


This change is Reviewable

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 160a68a23f

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".


// prevent character creating Expansion race without Expansion account
if (raceEntry->expansion > Expansion())
if (raceEntry->Race_related > Expansion())

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Use a required-expansion value for race gating

With the aligned 4.3.4 ChrRaces model this field is m_race_related (an alternate/related race id), not an expansion level. On realms that use expansion-limited accounts, comparing it to Expansion() gates character creation by the related-race value instead of the race's required expansion, so expansion races can be allowed or denied incorrectly; this check needs a real required-expansion source or an explicit race/expansion mapping.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For build 4.3.4.15595, this physical column contains the required expansion despite the Race_related DBD label: the exact client records are 0 for classic races, 1 for Blood Elf/Draenei, and 3 for Goblin/Worgen. The following physical column contains Worgen's related/unaltered race value 23. This check therefore preserves the existing build-correct account gate and replacing it with a hard-coded mapping would duplicate the client data.

@MadMaxMangos
MadMaxMangos merged commit a0b92e1 into master Jul 15, 2026
10 checks passed
@MadMaxMangos
MadMaxMangos deleted the enhance/dbc branch July 15, 2026 19:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant