diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 86651c2..16ed543 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -5,7 +5,88 @@ Track notable changes here between releases. Clear this file when cutting a new ## What's New +- **World Markers** - place up to 5 animated Cataclysm-style markers at any position in + the world. Slash commands (`/wm 1`, `/cwm`), keybindings, full Lua API, and automatic + group sync between WeirdUtils users. Requires party/raid leader or raid assist. + +- **DPSLog (COMBAT_LOG_EVENT)** - unified TBC/WotLK-style COMBAT_LOG_EVENT system with + 30 subevents across 23 hooks. Provides a single event (slot 549) with subevent strings + (SWING_DAMAGE, SPELL_HEAL, SPELL_AURA_APPLIED, etc.) instead of vanilla's fragmented + per-type events. Includes embedded addon for parsing. Not yet in DLL_README. + +- **Interact** - smart interaction helpers: "Interact Nearest" right-clicks the closest + interactable NPC or object within 5 yards, "Loot All Corpses" bulk loots nearby corpses. + Keybindings and Lua API. Already documented in DLL_README but not yet released. + +- **Crash Fix (framecrash)** - prevents crashes from stale UI frame anchor pointers. + Already documented in DLL_README but not yet released. + +- **Outlines** - renders glowing colored outlines around units. Already documented in + DLL_README but not yet released. + +- **Addon Profiling Stub (addonperf)** - TBC+ addon CPU profiling API stub + (GetScriptCPUUsage). Internal/experimental, not in DLL_README. + +## Enhancements + - **Clickthrough**: Lootable corpses now click-through over players. Previously only interactable NPCs (vendors, quest givers) and game objects would win over a blocking player. Now dead units with the lootable flag are also prioritized, so you can loot corpses through the player crowd without having to reposition. + +- **World Markers**: Disabled in battlegrounds via Map.dbc mapType check. Markers cannot + be placed while in a battleground instance. + +- **Clickthrough**: Reduced log noise -- logging changed from file to console-only. + Also ignores assets_backup directories in custom asset scanning. + +## Bug Fixes + +- **World Markers**: Fixed marker placement over game objects -- re-raycast now uses + terrain-only flags to find the ground position beneath a GO, instead of placing the + marker at the GO's collision point. + +- **DPSLog**: Fixed dynamic event slot search and environmental damage parameter ordering. + +- **Addon System**: Fixed addon files not loading -- switched from @hasField to @hasDecl + for compile-time module introspection. + +## Internal / Performance + +- **Transform44 Profiling** - render pipeline profiling module with 39 hotspot hooks, + A/B testing framework for comparing baseline vs optimized code paths, SSE replacements + for ClipPolygonToSinglePlane (4x), BuildTrianglePlanes (10x), rotateMatrixByAxisAngle + (4.3x), RayTriangleIntersection (1.3x), multiplyMatrix4x4 (4.3x). + +- **Glyph Shadow Cache** - direct-mapped O(1) bypass for the game's 4-bucket hash table + in GetOrCreateCharacterGlyph. Reduces glyph lookup from ~3.65% frame time. + +- **MPQ File Cache** - hooks File_FindInArchive (0x6549a0) to cache archive lookup + results. First open does full MPQ chain walk (~60K cycles), subsequent opens hit + direct-mapped cache with filename verification (~300 cycles). 80% hit rate in testing. + Moved from standalone file_perf module to transform44 sub-module (file_cache.zig). + +- **Logging Module** - centralized logging with auto-prefix, file and/or console routing. + All modules now route output through the shared Logger. + +- **Addon System Refactor** - module list now derived from build.zig, inactive addon + prefixes pruned at runtime. Fully data-driven. + +- **Shared Offsets** - consolidated shared game offsets and accessor functions into + offsets.zig and wow.zig, eliminating per-module duplication. + +- **Build System** - default optimize changed from Debug to ReleaseFast (works around + Zig fastcall inreg LLVM bug). Logging available in all modes except ReleaseSmall. + +## DLL_README Gaps + +Features documented in DLL_README but never included in a release: +- World Markers +- Outlines +- Interact +- Crash Fix (framecrash) + +Features implemented but not yet documented in DLL_README: +- DPSLog (COMBAT_LOG_EVENT) +- Clickthrough lootable corpse priority +- World Markers battleground restriction