mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-03-22 23:30:14 +00:00
175 lines
4.1 KiB
Markdown
175 lines
4.1 KiB
Markdown
# Build Instructions - Remove Single-Player Branch
|
|
|
|
## Current Status
|
|
|
|
✅ **Code Ready**: All single-player code removed, all compilation errors fixed
|
|
✅ **Branch**: `remove-single-player`
|
|
✅ **Commits**: 4 commits ahead of master
|
|
✅ **Quality**: 450/450 braces balanced, 0 SP references, 0 SQLite references
|
|
|
|
## Quick Start
|
|
|
|
### Option 1: Automated (Recommended)
|
|
|
|
```bash
|
|
# Install dependencies (requires sudo)
|
|
/tmp/install_deps.sh
|
|
|
|
# Build the project
|
|
/tmp/build_wowee.sh
|
|
```
|
|
|
|
### Option 2: Manual
|
|
|
|
```bash
|
|
# Install dependencies
|
|
sudo apt install -y \
|
|
libsdl2-dev libglew-dev libglm-dev zlib1g-dev \
|
|
libavformat-dev libavcodec-dev libswscale-dev libavutil-dev \
|
|
build-essential pkg-config git
|
|
|
|
# Build StormLib (if not in repos)
|
|
cd /tmp
|
|
git clone https://github.com/ladislav-zezula/StormLib.git
|
|
cd StormLib && mkdir build && cd build
|
|
cmake .. && make -j$(nproc)
|
|
sudo make install && sudo ldconfig
|
|
|
|
# Build Wowee
|
|
cd /home/k/wowee/build
|
|
cmake ..
|
|
make -j$(nproc)
|
|
|
|
# Run
|
|
./bin/wowee
|
|
```
|
|
|
|
## What Was Changed
|
|
|
|
### Removed (~1,400 lines)
|
|
- SQLite3 database wrapper (~700 lines)
|
|
- Single-player persistence (~500 lines)
|
|
- SP method implementations (27 methods)
|
|
- SP UI elements (buttons, settings)
|
|
- SP conditional logic throughout codebase
|
|
|
|
### Fixed
|
|
- Missing closing brace in `update()` function
|
|
- Removed calls to deleted methods (`getItemTemplateName`, `notifyInventoryChanged`, etc.)
|
|
- Restored NPC animation callbacks (needed for online mode)
|
|
- Fixed header corruption
|
|
|
|
### Preserved (100%)
|
|
- All online multiplayer features
|
|
- Authentication (SRP6a)
|
|
- Character system
|
|
- Combat system
|
|
- Inventory & equipment
|
|
- Quest system
|
|
- Loot system
|
|
- Spell system
|
|
- Chat system
|
|
- All rendering features
|
|
|
|
## Expected Build Output
|
|
|
|
```
|
|
[ 1%] Building CXX object CMakeFiles/wowee.dir/src/core/application.cpp.o
|
|
[ 3%] Building CXX object CMakeFiles/wowee.dir/src/core/window.cpp.o
|
|
...
|
|
[ 95%] Building CXX object CMakeFiles/wowee.dir/src/ui/talent_screen.cpp.o
|
|
[ 97%] Building CXX object CMakeFiles/wowee.dir/src/main.cpp.o
|
|
[100%] Linking CXX executable bin/wowee
|
|
[100%] Built target wowee
|
|
```
|
|
|
|
## Troubleshooting
|
|
|
|
### CMake can't find SDL2
|
|
```bash
|
|
sudo apt install libsdl2-dev
|
|
```
|
|
|
|
### CMake can't find StormLib
|
|
StormLib is not in standard Ubuntu repos. Build from source:
|
|
```bash
|
|
cd /tmp
|
|
git clone https://github.com/ladislav-zezula/StormLib.git
|
|
cd StormLib && mkdir build && cd build
|
|
cmake .. && make -j$(nproc) && sudo make install
|
|
sudo ldconfig
|
|
```
|
|
|
|
### Compilation errors
|
|
If you see compilation errors, ensure you're on the correct branch:
|
|
```bash
|
|
git branch --show-current # Should show: remove-single-player
|
|
git status # Should show: nothing to commit, working tree clean
|
|
```
|
|
|
|
### Missing WoW Data
|
|
The client requires WoW 3.3.5a data files in `Data/` directory:
|
|
```
|
|
wowee/
|
|
└── Data/
|
|
├── common.MPQ
|
|
├── expansion.MPQ
|
|
├── lichking.MPQ
|
|
├── patch.MPQ
|
|
└── enUS/
|
|
```
|
|
|
|
Or set environment variable:
|
|
```bash
|
|
export WOW_DATA_PATH=/path/to/your/wow/Data
|
|
```
|
|
|
|
## Testing Checklist
|
|
|
|
After successful build:
|
|
|
|
- [ ] Application launches without crashes
|
|
- [ ] Can connect to auth server
|
|
- [ ] Can view realm list
|
|
- [ ] Can view/create/delete characters
|
|
- [ ] Can enter world
|
|
- [ ] Movement works (WASD)
|
|
- [ ] Combat works (auto-attack, spells)
|
|
- [ ] Inventory system functional
|
|
- [ ] Quest markers appear
|
|
- [ ] Loot window opens
|
|
- [ ] Chat works
|
|
|
|
## Performance
|
|
|
|
Expected performance:
|
|
- **FPS**: 60 (vsync)
|
|
- **Triangles/frame**: ~50k
|
|
- **Draw calls**: ~30
|
|
- **GPU Usage**: <10%
|
|
|
|
## Next Steps
|
|
|
|
1. Install dependencies: `/tmp/install_deps.sh`
|
|
2. Build project: `/tmp/build_wowee.sh`
|
|
3. Test online features
|
|
4. Merge to master when satisfied:
|
|
```bash
|
|
git checkout master
|
|
git merge remove-single-player
|
|
git push
|
|
```
|
|
|
|
## Support
|
|
|
|
If you encounter issues:
|
|
1. Check branch: `git branch --show-current`
|
|
2. Check status: `git status`
|
|
3. Check commits: `git log --oneline -5`
|
|
4. Verify balance: `grep -c "{" src/game/game_handler.cpp` should equal `grep -c "}" src/game/game_handler.cpp`
|
|
|
|
---
|
|
|
|
Last updated: 2026-02-07
|
|
Branch: remove-single-player (4 commits ahead of master)
|
|
Status: Ready to build
|