diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6e5aebae..aac6cdf0 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -12,7 +12,7 @@ make -C build -j$(nproc) ## Code Style -- **C++17**. Use `#pragma once` for include guards. +- **C++20**. Use `#pragma once` for include guards. - Namespaces: `wowee::game`, `wowee::rendering`, `wowee::ui`, `wowee::core`, `wowee::network`. - Conventional commit messages in imperative mood: - `feat:` new feature diff --git a/TROUBLESHOOTING.md b/TROUBLESHOOTING.md index 034fb769..3673118d 100644 --- a/TROUBLESHOOTING.md +++ b/TROUBLESHOOTING.md @@ -151,9 +151,7 @@ Graphics Preset: HIGH or ULTRA ## Getting Help ### Check Logs -Detailed logs are saved to: -- **Linux/macOS**: `~/.wowee/logs/` -- **Windows**: `%APPDATA%\wowee\logs\` +Detailed logs are saved to `logs/wowee.log` in the working directory (typically `build/bin/`). Include relevant log entries when reporting issues. diff --git a/assets/textures/README.md b/assets/textures/README.md new file mode 100644 index 00000000..aea06c61 --- /dev/null +++ b/assets/textures/README.md @@ -0,0 +1,33 @@ +# HD Texture Assets + +**Source**: TurtleHD Texture Pack (Turtle WoW) +**Imported**: 2026-01-27 +**Total Files**: 298 BLP textures +**Total Size**: 10MB + +## Directory Structure + +``` +textures/ +├── character/ +│ └── human/ # 274 human male textures +├── creature/ # 15 creature textures +├── item/ # (reserved for future) +└── world/ + ├── generic/ # 1 generic world texture + └── stormwind/ # 8 Stormwind building textures +``` + +## Usage + +These HD BLP textures are ready for integration with: +- **WMO Renderer**: Building texture mapping +- **Character Renderer**: M2 model skin/face textures +- **Creature Renderer**: NPC texture application + +## Integration Status + +Textures are loaded via the BLP pipeline and applied to WMO/M2 renderers. +HD texture overrides (e.g. TurtleHD packs) can be placed as PNG files +alongside the original BLP paths — the asset manager checks for `.png` +overrides before loading the `.blp` version. diff --git a/docs/WARDEN_IMPLEMENTATION.md b/docs/WARDEN_IMPLEMENTATION.md index d328c476..ff4f4a2e 100644 --- a/docs/WARDEN_IMPLEMENTATION.md +++ b/docs/WARDEN_IMPLEMENTATION.md @@ -93,13 +93,16 @@ The RSA public modulus is extracted from WoW.exe (`.rdata` section at offset 0x0 ## Key Files ``` +include/game/warden_handler.hpp - Packet handler interface +src/game/warden_handler.cpp - handleWardenData + module manager init include/game/warden_module.hpp - Module loader interface src/game/warden_module.cpp - 8-step pipeline include/game/warden_emulator.hpp - Emulator interface src/game/warden_emulator.cpp - Unicorn Engine executor + API hooks include/game/warden_crypto.hpp - Crypto interface src/game/warden_crypto.cpp - RC4 / key derivation -src/game/game_handler.cpp - Packet handler (handleWardenData) +include/game/warden_memory.hpp - PE image + memory patch interface +src/game/warden_memory.cpp - PE loader, runtime globals patching ``` --- diff --git a/docs/WARDEN_QUICK_REFERENCE.md b/docs/WARDEN_QUICK_REFERENCE.md index 17c127d3..faba1e71 100644 --- a/docs/WARDEN_QUICK_REFERENCE.md +++ b/docs/WARDEN_QUICK_REFERENCE.md @@ -58,10 +58,11 @@ strict Warden enforcement in that mode. ## Key Files ``` -src/game/warden_module.hpp/cpp - Module loader (8-step pipeline) -src/game/warden_emulator.hpp/cpp - Unicorn Engine executor -src/game/warden_crypto.hpp/cpp - RC4/MD5/SHA1/RSA crypto -src/game/game_handler.cpp - Packet handler (handleWardenData) +include/game/warden_handler.hpp + src/game/warden_handler.cpp - Packet handler +include/game/warden_module.hpp + src/game/warden_module.cpp - Module loader (8-step pipeline) +include/game/warden_emulator.hpp + src/game/warden_emulator.cpp - Unicorn Engine executor +include/game/warden_crypto.hpp + src/game/warden_crypto.cpp - RC4/MD5/SHA1/RSA crypto +include/game/warden_memory.hpp + src/game/warden_memory.cpp - PE image + memory patching ``` --- diff --git a/docs/authentication.md b/docs/authentication.md index ff514399..19a6f9fe 100644 --- a/docs/authentication.md +++ b/docs/authentication.md @@ -563,5 +563,4 @@ The client is now ready for character operations and world entry! 🎮 --- -**Implementation Status:** 100% Complete for authentication -**Next Milestone:** Character enumeration and world entry +**Implementation Status:** Complete — authentication, character enumeration, and world entry all working. diff --git a/docs/packet-framing.md b/docs/packet-framing.md index be7ee3cb..157645fd 100644 --- a/docs/packet-framing.md +++ b/docs/packet-framing.md @@ -397,6 +397,4 @@ The authentication system can now reliably communicate with WoW 3.3.5a servers! --- -**Status:** ✅ Complete and tested - -**Next Steps:** Test with live server and implement realm list protocol. +**Status:** ✅ Complete and tested against AzerothCore, TrinityCore, Mangos, and Turtle WoW. diff --git a/docs/quickstart.md b/docs/quickstart.md index 47bef9d2..e5fc0b9a 100644 --- a/docs/quickstart.md +++ b/docs/quickstart.md @@ -19,17 +19,11 @@ For a more honest snapshot of gaps and current direction, see `docs/status.md`. ### 1. Clone ```bash -git clone https://github.com/Kelsidavis/WoWee.git -cd wowee +git clone --recurse-submodules https://github.com/Kelsidavis/WoWee.git +cd WoWee ``` -### 2. Install ImGui - -```bash -git clone https://github.com/ocornut/imgui.git extern/imgui -``` - -### 3. Build +### 2. Build ```bash cmake -S . -B build -DCMAKE_BUILD_TYPE=Release @@ -96,7 +90,7 @@ Use `BUILD_INSTRUCTIONS.md` for distro-specific package lists. - Verify auth/world server is running - Check host/port settings -- Check server logs and client logs in `build/bin/logs/` +- Check server logs and client logs in `logs/wowee.log` ### Missing assets (models/textures/terrain) diff --git a/docs/server-setup.md b/docs/server-setup.md index c185b943..ba59fd56 100644 --- a/docs/server-setup.md +++ b/docs/server-setup.md @@ -609,6 +609,6 @@ Once you have a working local server connection: --- **Status**: Ready for local server testing -**Last Updated**: 2026-01-27 -**Client Version**: 1.0.3 -**Server Compatibility**: WoW 3.3.5a (12340) +**Last Updated**: 2026-03-30 +**Client Version**: v1.8.9-preview +**Server Compatibility**: Vanilla 1.12, TBC 2.4.3, WotLK 3.3.5a (12340), Turtle WoW 1.17 diff --git a/docs/srp-implementation.md b/docs/srp-implementation.md index 084881ed..e83505ce 100644 --- a/docs/srp-implementation.md +++ b/docs/srp-implementation.md @@ -351,13 +351,13 @@ The expensive operation (session key computation) only happens once per login. 2. **No Plaintext Storage:** Password is immediately hashed, never stored 3. **Forward Secrecy:** Ephemeral keys (a, A) are generated per session 4. **Mutual Authentication:** Both client and server prove knowledge of password -5. **Secure Channel:** Session key K can be used for encryption (not implemented yet) +5. **Secure Channel:** Session key K is used for RC4 header encryption after auth completes ## References - [SRP Protocol](http://srp.stanford.edu/) - [WoWDev Wiki - SRP](https://wowdev.wiki/SRP) -- Original wowee: `/wowee/src/lib/crypto/srp.js` +- Implementation: `src/auth/srp.cpp`, `include/auth/srp.hpp` - OpenSSL BIGNUM: https://www.openssl.org/docs/man1.1.1/man3/BN_new.html ---