Bejeweled modernization
This branch contains the analysis-complete, Mainline-first modernization of the legacy World of Warcraft Bejeweled addon. Its Retail TOC and headless runtime foundation are installable for development, but the addon is not yet playable because UI, animation, and input slices remain to be restored.
Status and phase gate
The preserved 8,401-line Mainline source must be analyzed sequentially, in evidence-backed batches, before runtime work begins. All behavior-critical shortened symbols must be resolved and all batches must be complete before any public Lua API, runtime module, modern TOC, packaging, or release work is added.
All 17 batches (lines 1–8,401) are documented, the cross-batch identifier audit has no remaining working or unresolved declarations, and the retained Retail API contracts are pinned in docs/api-baseline.md. The analysis phase gate is closed. Runtime implementation now includes wire-compatible SavedVariables initialization, deterministic grid/match/cascade/scoring transitions, skills, levels, legacy-compatible audio cue scheduling, BackdropTemplate-safe UI chrome, and persistent grid-to-gem texture projection.
Goal
The eventual addon will target current Retail/Mainline World of Warcraft while preserving gameplay behavior and the BejeweledData and BejeweledProfile SavedVariables wire formats until complete analysis supports an explicit migration.
Repository layout
Legacy/— immutable Mainline Lua and TOC reference from source commit6faec1c.Bejeweled/images/— immutable legacy images and bundled font.Bejeweled/sounds/— immutable legacy sounds.Bejeweled/Core/— private addon initialization, constants, supported audio playback, and non-destructive SavedVariables defaulting.Bejeweled/Engine/— deterministic gameplay state; currently the 8×8 grid, swaps, legal moves, legacy cell encoding, stable cascade resolution, legacy score formulas, statistics, skill gains, achievements, and level thresholds.Bejeweled/UI/— Retail-safe frame/rendering boundaries; currently shared backdrop construction, board tiles, and persistent gem-frame projection.docs/analysis/— sequential batch reports, identifier ledger, and exact coverage schedule.docs/architecture.md— module ownership and authoritative runtime data flow.docs/api-baseline.md— verified Retail API constraints for implementation.tools/test-runtime.luaandtools/verify-runtime.ps1— Lua 5.1-compatible engine tests and TOC verification.plan.md— the bootstrap specification executed by the root commit.todo.md— the running implementation roadmap and completed runtime slices.
Contributing
Runtime contributions must cite the completed legacy analysis, preserve the documented wire formats, remain Lua 5.1 compatible, and use current verified Mainline APIs. Keep engine state independent from UI frames and do not edit preserved legacy code or assets.
See ACKNOWLEDGEMENT.md for attribution and the boundary between preserved legacy material and newly authored MIT-licensed work.