Kelsidavis-WoWee/CHANGELOG.md
Kelsi 3762dceaa6
Some checks are pending
Build / Build (arm64) (push) Waiting to run
Build / Build (x86-64) (push) Waiting to run
Build / Build (macOS arm64) (push) Waiting to run
Build / Build (windows-arm64) (push) Waiting to run
Build / Build (windows-x86-64) (push) Waiting to run
Security / CodeQL (C/C++) (push) Waiting to run
Security / Semgrep (push) Waiting to run
Security / Sanitizer Build (ASan/UBSan) (push) Waiting to run
docs: add CONTRIBUTING.md and CHANGELOG.md; optimize chat parser allocation
CONTRIBUTING.md: code style, PR process, architecture pointers, packet
handler pattern, key files for new contributors.

CHANGELOG.md: grouped changes since v1.8.1-preview into Performance,
Bug Fixes, Features, Security, and Code Quality sections.

Chat parser: use stack-allocated std::array<char, 256> for typical chat
messages instead of heap-allocated std::string. Only falls back to heap
for messages > 256 bytes. Reduces allocator pressure on high-frequency
chat packet handling.
2026-03-27 18:47:35 -07:00

2.7 KiB

Changelog

[Unreleased] — changes since v1.8.1-preview (2026-03-23)

Performance

  • Eliminate ~70 unnecessary sqrt ops per frame; constexpr reciprocals and cache optimizations
  • Skip bone animation for LOD3 models; frustum-cull water surfaces
  • Eliminate per-frame heap allocations in M2 renderer
  • Convert entity/skill/DBC/warden maps to unordered_map; fix 3x contacts scan
  • Eliminate double map lookups and dynamic_cast in render loops
  • Use second GPU queue for parallel texture/buffer uploads
  • Time-budget tile finalization to prevent 1+ second main-loop stalls
  • Add Vulkan pipeline cache persistence for faster startup

Bug Fixes

  • Fix spline parsing with expansion context; preload DBC caches at world entry
  • Fix NPC/player attack animation to use weapon-appropriate anim ID
  • Fix equipment visibility and follow-target run speed
  • Fix inspect (packed GUID) and client-side auto-walk for follow
  • Fix mail money uint64, other-player cape textures, zone toast dedup, TCP_NODELAY
  • Guard spline point loop against unsigned underflow; guard hexDecode/stoi/stof
  • Fix infinite recursion in toLowerInPlace and operator precedence bugs
  • Fix 3D audio coords for PLAY_OBJECT_SOUND; correct melee swing sound paths
  • Prevent Vulkan sampler exhaustion crash; skip pipeline cache on NVIDIA
  • Skip FSR3 frame gen on non-AMD GPUs to prevent driver crash
  • Fix chest GO interaction (send GAMEOBJ_USE+LOOT together)
  • Restore WMO wall collision threshold; fix off-screen bag positions
  • Guard texture log dedup sets with mutex for thread safety
  • Fix lua_pcall return check in ACTIONBAR_PAGE_CHANGED

Features

  • Render equipment on other players (helmets, weapons, belts, wrists, shoulders)
  • Target frame right-click context menu
  • Crafting sounds and Create All button
  • Server-synced bag sort
  • Log GPU vendor/name at init

Security

  • Add path traversal rejection and packet length validation

Code Quality

  • Packet API: add readPackedGuid, writePackedGuid, writeFloat, getRemainingSize, hasRemaining, hasData, skipAll (replacing 1300+ verbose expressions)
  • GameHandler helpers: isInWorld, isPreWotlk, guidToUnitId, lookupName, getUnitByGuid, fireAddonEvent, withSoundManager
  • Dispatch table: registerHandler, registerSkipHandler, registerWorldHandler, registerErrorHandler (replacing 120+ lambda wrappers)
  • Shared ui_colors.hpp with named constants replacing 200+ inline color literals
  • Promote 50+ static const arrays to constexpr across audio/core/rendering/UI
  • Deduplicate class name/color functions, enchantment cache, item-set DBC keys
  • Extract settings tabs, GameHandler::update() phases, loadWeaponM2 into methods
  • Remove 12 duplicate dispatch registrations and C-style casts
  • Extract toHexString, toLowerInPlace, duration formatting, Lua return helpers