docs: fix stale keybindings, paths, and API examples

GETTING_STARTED.md:
- Fix keybinding table: T→N for talents, Q→L for quest log, W→M for
  world map, add missing keys (C, I, O, J, Y, K), remove nonexistent
  minimap toggle
- Fix extract_assets.ps1 example param (-WowDirectory → positional)
- Fix Data/ directory tree to match actual manifest layout
- Fix log path: ~/.wowee/logs/ → logs/wowee.log (local directory)

EXPANSION_GUIDE.md:
- Add Turtle WoW 1.17 to supported expansions
- Update code examples to use game_utils.hpp helpers
  (isActiveExpansion/isClassicLikeExpansion/isPreWotlk) instead of
  removed ExpansionProfile::getActive() and GameHandler::getInstance()
- Update packet parser references (WotLK is default in domain handlers,
  not a separate packet_parsers_wotlk.cpp file)
- Update references section with game_utils.hpp
This commit is contained in:
Kelsi 2026-03-30 18:26:47 -07:00
parent 47fe6b8468
commit c103743c3a
2 changed files with 41 additions and 29 deletions

View file

@ -7,6 +7,7 @@ WoWee supports three World of Warcraft expansions in a unified codebase using an
- **Vanilla (Classic) 1.12** - Original World of Warcraft - **Vanilla (Classic) 1.12** - Original World of Warcraft
- **The Burning Crusade (TBC) 2.4.3** - First expansion - **The Burning Crusade (TBC) 2.4.3** - First expansion
- **Wrath of the Lich King (WotLK) 3.3.5a** - Second expansion - **Wrath of the Lich King (WotLK) 3.3.5a** - Second expansion
- **Turtle WoW 1.17** - Custom Vanilla-based server with extended content
## Architecture Overview ## Architecture Overview
@ -17,9 +18,9 @@ The multi-expansion support is built on the **Expansion Profile** system:
- Specifies which packet parsers to use - Specifies which packet parsers to use
2. **Packet Parsers** - Expansion-specific message handling 2. **Packet Parsers** - Expansion-specific message handling
- `packet_parsers_classic.cpp` - Vanilla 1.12 message parsing - `packet_parsers_classic.cpp` - Vanilla 1.12 / Turtle WoW message parsing
- `packet_parsers_tbc.cpp` - TBC 2.4.3 message parsing - `packet_parsers_tbc.cpp` - TBC 2.4.3 message parsing
- `packet_parsers_wotlk.cpp` (default) - WotLK 3.3.5a message parsing - Default (WotLK 3.3.5a) parsers in `game_handler.cpp` and domain handlers
3. **Update Fields** - Expansion-specific entity data layout 3. **Update Fields** - Expansion-specific entity data layout
- Loaded from `update_fields.json` in expansion data directory - Loaded from `update_fields.json` in expansion data directory
@ -78,17 +79,19 @@ WOWEE_EXPANSION=classic ./wowee # Force Classic
### Checking Current Expansion ### Checking Current Expansion
```cpp ```cpp
#include "game/expansion_profile.hpp" #include "game/game_utils.hpp"
// Global helper // Shared helpers (defined in game_utils.hpp)
bool isClassicLikeExpansion() { if (isActiveExpansion("tbc")) {
auto profile = ExpansionProfile::getActive(); // TBC-specific code
return profile && (profile->name == "Classic" || profile->name == "Vanilla");
} }
// Specific check if (isClassicLikeExpansion()) {
if (GameHandler::getInstance().isActiveExpansion("tbc")) { // Classic or Turtle WoW
// TBC-specific code }
if (isPreWotlk()) {
// Classic, Turtle, or TBC (not WotLK)
} }
``` ```
@ -96,7 +99,7 @@ if (GameHandler::getInstance().isActiveExpansion("tbc")) {
```cpp ```cpp
// In packet_parsers_*.cpp, implement expansion-specific logic // In packet_parsers_*.cpp, implement expansion-specific logic
bool parseXxxPacket(BitStream& data, ...) { bool TbcPacketParsers::parseXxx(network::Packet& packet, XxxData& data) {
// Custom logic for this expansion's packet format // Custom logic for this expansion's packet format
} }
``` ```
@ -121,6 +124,7 @@ bool parseXxxPacket(BitStream& data, ...) {
## References ## References
- `include/game/expansion_profile.hpp` - Expansion metadata - `include/game/expansion_profile.hpp` - Expansion metadata
- `docs/status.md` - Current feature support by expansion - `include/game/game_utils.hpp` - `isActiveExpansion()`, `isClassicLikeExpansion()`, `isPreWotlk()`
- `src/game/packet_parsers_*.cpp` - Format-specific parsing logic - `src/game/packet_parsers_classic.cpp` / `packet_parsers_tbc.cpp` - Expansion-specific parsing
- `docs/status.md` - Current feature support
- `docs/` directory - Additional protocol documentation - `docs/` directory - Additional protocol documentation

View file

@ -39,20 +39,24 @@ WoWee needs game assets from your WoW installation:
**Using provided script (Windows)**: **Using provided script (Windows)**:
```powershell ```powershell
.\extract_assets.ps1 -WowDirectory "C:\Program Files\World of Warcraft" .\extract_assets.ps1 "C:\Games\WoW-3.3.5a\Data"
``` ```
**Manual extraction**: **Manual extraction**:
1. Install [StormLib](https://github.com/ladislav-zezula/StormLib) 1. Install [StormLib](https://github.com/ladislav-zezula/StormLib)
2. Extract to `./Data/`: 2. Use `asset_extract` or extract manually to `./Data/`:
``` ```
Data/ Data/
├── dbc/ # DBC files ├── manifest.json # File index (generated by asset_extract)
├── map/ # World map data ├── expansions/<id>/ # Per-expansion config and DB
├── adt/ # Terrain chunks ├── character/ # Character textures
├── wmo/ # Building models ├── creature/ # Creature models/textures
├── m2/ # Character/creature models ├── interface/ # UI textures and icons
└── blp/ # Textures ├── item/ # Item model textures
├── spell/ # Spell effect models
├── terrain/ # ADT terrain, WMO, M2 doodads
├── world/ # World map images
└── sound/ # Audio files
``` ```
### Step 3: Connect to a Server ### Step 3: Connect to a Server
@ -84,15 +88,19 @@ WoWee needs game assets from your WoW installation:
| Strafe Right | D | | Strafe Right | D |
| Jump | Space | | Jump | Space |
| Toggle Chat | Enter | | Toggle Chat | Enter |
| Interact (talk to NPC, loot) | F | | Open Character Screen | C |
| Open Inventory | B | | Open Inventory | I |
| Open All Bags | B |
| Open Spellbook | P | | Open Spellbook | P |
| Open Talent Tree | T | | Open Talents | N |
| Open Quest Log | Q | | Open Quest Log | L |
| Open World Map | W (when not typing) | | Open World Map | M |
| Toggle Minimap | M |
| Toggle Nameplates | V | | Toggle Nameplates | V |
| Toggle Party Frames | F | | Toggle Raid Frames | F |
| Open Guild Roster | O |
| Open Dungeon Finder | J |
| Open Achievements | Y |
| Open Skills | K |
| Toggle Settings | Escape | | Toggle Settings | Escape |
| Target Next Enemy | Tab | | Target Next Enemy | Tab |
| Target Previous Enemy | Shift+Tab | | Target Previous Enemy | Shift+Tab |
@ -171,7 +179,7 @@ WOWEE_EXPANSION=tbc ./wowee # Force TBC
### General Issues ### General Issues
- Comprehensive troubleshooting: See [TROUBLESHOOTING.md](TROUBLESHOOTING.md) - Comprehensive troubleshooting: See [TROUBLESHOOTING.md](TROUBLESHOOTING.md)
- Check logs in `~/.wowee/logs/` for errors - Check `logs/wowee.log` in the working directory for errors
- Verify expansion matches server requirements - Verify expansion matches server requirements
## Server Configuration ## Server Configuration