mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-04-16 17:13:52 +00:00
- architecture.md: add chat system modules (src/ui/chat/), world map modules (src/rendering/world_map/), CatmullRomSpline (src/math/), transport decomposition, and updated namespace list - status.md: update timestamp to 2026-04-14, add recent refactors section and world map known gaps - CHANGELOG.md: add detailed entries for PRs #58-63 covering architecture, features, bug fixes, and 19 new test files - TESTING.md: expand test suite layout from 8 to 27 files organized by category (core, animation, transport, world map, chat) - CONTRIBUTING.md: update namespace table, testing section, and key files list to reflect new module directories - README.md: update status timestamp to 2026-04-14
62 lines
4.7 KiB
Markdown
62 lines
4.7 KiB
Markdown
# Project Status
|
|
|
|
**Last updated**: 2026-04-14
|
|
|
|
## What This Repo Is
|
|
|
|
Wowee is a native C++ World of Warcraft client experiment focused on connecting to real emulator servers (online/multiplayer) with a custom renderer and asset pipeline.
|
|
|
|
## Current Code State
|
|
|
|
Implemented (working in normal use):
|
|
|
|
- Auth flow: SRP6a auth + realm list + world connect with header encryption
|
|
- Rendering: terrain, WMO/M2, water/magma/slime (FBM noise shaders), sky system, particles, shadow mapping, minimap/world map, loading video playback
|
|
- Instances: WDT parser, WMO-only dungeon maps, area trigger portals with glow/spin effects, zone transitions
|
|
- Character system: creation (including nonbinary gender), selection, 3D preview with equipment, character screen, per-instance NPC hair/skin textures
|
|
- Core gameplay: movement (with ACK responses), targeting (hostility-filtered tab-cycle), combat, action bar, inventory/equipment, chat (tabs/channels, emotes, item links)
|
|
- Quests: quest markers (! and ?) on NPCs/minimap, quest log with detail queries/retry, objective tracking, accept/complete flow, turn-in, quest item progress
|
|
- Trainers: spell trainer UI, buy spells, known/available/unavailable states
|
|
- Vendors, loot (including chest/gameobject loot), gossip dialogs (including buyback for most recently sold item)
|
|
- Bank: full bank support for all expansions, bag slots, drag-drop, right-click deposit
|
|
- Auction house: search with filters, pagination, sell picker, bid/buyout, tooltips
|
|
- Mail: item attachment support for sending
|
|
- Spellbook with specialty/general/profession/mount/companion tabs, drag-drop to action bar, spell icons, item use
|
|
- Talent tree UI with proper visuals and functionality
|
|
- Pet tracking (SMSG_PET_SPELLS), dismiss pet button
|
|
- Party: group invites, party list, out-of-range member health (SMSG_PARTY_MEMBER_STATS)
|
|
- Nameplates: NPC subtitles, guild names, elite/boss/rare borders, quest/raid indicators, cast bars, debuff dots
|
|
- Floating combat text: world-space damage/heal numbers above entities with 3D projection
|
|
- Target/focus frames: guild name, creature type, rank badges, combo points, cast bars
|
|
- Map exploration: subzone-level fog-of-war reveal
|
|
- Warden anti-cheat: full module execution via Unicorn Engine x86 emulation; module caching
|
|
- Audio: ambient, movement, combat, spell, and UI sound systems; NPC voice lines for all playable races (greeting/farewell/vendor/pissed/aggro/flee)
|
|
- Bag UI: independent bag windows (any bag closable independently), open-bag indicator on bag bar, server-synced bag sort, off-screen position reset, optional collapse-empty mode in aggregate view
|
|
- DBC auto-detection: CharSections.dbc field layout auto-detected at runtime (handles stock WotLK vs HD-textured clients)
|
|
- Multi-expansion: Classic/Vanilla, TBC, WotLK, and Turtle WoW (1.17) protocol and asset variants
|
|
- CI: GitHub Actions for Linux (x86-64, ARM64), Windows (MSYS2 x86-64 + ARM64), macOS (ARM64); container builds via Podman
|
|
|
|
Recent refactors (PRs #59-63, April 2026):
|
|
|
|
- Chat system decomposed into 15+ modules under `src/ui/chat/` with 11 command modules, GM command support, macro evaluator, and tab completion
|
|
- World map decomposed into 16 modules under `src/rendering/world_map/` with overlay layer system, view state machine, and ZMP-based hover detection
|
|
- TransportManager decomposed: spline math extracted to `src/math/`, path data to TransportPathRepository, 7 duplicated spline parsers consolidated into `spline_packet.cpp`
|
|
- Spell visual effects system with bone-tracked ribbons and particles
|
|
- Entity movement improvements: multi-segment path interpolation, terrain height clamping, walk/run animation fix
|
|
- 27 unit tests (up from 8), covering chat, world map, spline math, transport, and animation systems
|
|
- Code quality fix pass: 7 issues resolved across hover detection, null safety, buffer bounds, and coordinate validation
|
|
|
|
In progress / known gaps:
|
|
|
|
- World map: zone hover detection has edge cases with some zone boundaries; cosmic highlight sizing is approximate
|
|
- Transports: M2 transports (trams) working with position-delta riding; WMO transports (ships, zeppelins) working with path following; some edge cases remain
|
|
- Quest GO interaction: CMSG_GAMEOBJ_USE + CMSG_LOOT sent correctly, but some AzerothCore/ChromieCraft servers don't grant quest credit for chest-type GOs (server-side limitation)
|
|
- Visual edge cases: some M2/WMO rendering gaps (some particle effects)
|
|
- Water refraction: enabled by default; srcAccessMask barrier fix (2026-03-18) resolved prior VK_ERROR_DEVICE_LOST on AMD/Mali GPUs
|
|
|
|
## Where To Look
|
|
|
|
- Entry point: `src/main.cpp`, `src/core/application.cpp`
|
|
- Networking/auth: `src/auth/`, `src/network/`, `src/game/game_handler.cpp`
|
|
- Rendering: `src/rendering/`
|
|
- Assets/extraction: `extract_assets.sh`, `tools/asset_extract/`, `src/pipeline/asset_manager.cpp`
|