Add attribution and source citations for open source release

- Create ATTRIBUTION.md crediting WoWDev Wiki, TrinityCore, MaNGOS,
  and third-party libraries used
- Add WoWDev Wiki format specification links to file format parsers
  (ADT, BLP, DBC loaders)
- Add protocol documentation reference to opcodes.hpp
This commit is contained in:
Kelsi 2026-02-02 22:09:33 -08:00
parent ce6cb8f38e
commit 0c85fcd444
5 changed files with 61 additions and 0 deletions

56
ATTRIBUTION.md Normal file
View file

@ -0,0 +1,56 @@
# Attribution
This project was made possible by the work of the WoW modding and reverse-engineering community. We gratefully acknowledge the following resources and projects:
## Documentation
### WoWDev Wiki
https://wowdev.wiki/
The WoWDev Wiki is a community-maintained resource documenting World of Warcraft file formats and protocols. This project's file format parsers were implemented based on specifications from the wiki:
- [ADT (terrain)](https://wowdev.wiki/ADT) - Terrain tile format
- [M2 (models)](https://wowdev.wiki/M2) - Character and creature model format
- [WMO (buildings)](https://wowdev.wiki/WMO) - World model object format
- [BLP (textures)](https://wowdev.wiki/BLP) - Blizzard picture format
- [DBC (database)](https://wowdev.wiki/DBC) - Database client file format
- [World Packet](https://wowdev.wiki/World_Packet) - Network protocol opcodes
## Reference Implementations
### TrinityCore
https://github.com/TrinityCore/TrinityCore
Open-source WoW server emulator. Referenced for understanding server-side protocol behavior and packet structures.
### MaNGOS / CMaNGOS
https://github.com/cmangos/mangos-wotlk
Open-source WoW server emulator. Referenced for protocol documentation and authentication flow.
## Libraries
This project uses the following open-source libraries:
| Library | License | Purpose |
|---------|---------|---------|
| [SDL2](https://libsdl.org/) | zlib | Window management, input handling |
| [GLEW](http://glew.sourceforge.net/) | BSD/MIT | OpenGL extension loading |
| [GLM](https://github.com/g-truc/glm) | MIT | Mathematics library |
| [OpenSSL](https://www.openssl.org/) | Apache 2.0 | Cryptographic functions (SRP6) |
| [StormLib](https://github.com/ladislav-zezula/StormLib) | MIT | MPQ archive extraction |
| [Dear ImGui](https://github.com/ocornut/imgui) | MIT | Immediate mode GUI |
## Cryptographic Standards
The SRP6 authentication implementation follows:
- [RFC 2945](https://tools.ietf.org/html/rfc2945) - The SRP Authentication and Key Exchange System
- [RFC 5054](https://tools.ietf.org/html/rfc5054) - Using SRP for TLS Authentication
## Legal Notice
World of Warcraft is a trademark of Blizzard Entertainment, Inc. This project is not affiliated with or endorsed by Blizzard Entertainment.
This project does not include any Blizzard Entertainment proprietary data, assets, or code. All file format parsers were implemented independently based on publicly available community documentation.
Users must supply their own legally obtained WoW 3.3.5a game data files to use this software.

View file

@ -6,6 +6,8 @@ namespace wowee {
namespace game { namespace game {
// World of Warcraft 3.3.5a opcodes // World of Warcraft 3.3.5a opcodes
// Values derived from community reverse-engineering efforts
// Reference: https://wowdev.wiki/World_Packet
enum class Opcode : uint16_t { enum class Opcode : uint16_t {
// Client to Server // Client to Server
CMSG_PING = 0x1DC, CMSG_PING = 0x1DC,

View file

@ -147,6 +147,7 @@ struct ADTTerrain {
* ADT terrain loader * ADT terrain loader
* *
* Loads WoW 3.3.5a ADT (Azeroth Data Tile) terrain files * Loads WoW 3.3.5a ADT (Azeroth Data Tile) terrain files
* Format specification: https://wowdev.wiki/ADT
*/ */
class ADTLoader { class ADTLoader {
public: public:

View file

@ -50,6 +50,7 @@ struct BLPImage {
* *
* Supports BLP0, BLP1, BLP2 formats * Supports BLP0, BLP1, BLP2 formats
* Handles DXT1/3/5 compression and palette formats * Handles DXT1/3/5 compression and palette formats
* Format specification: https://wowdev.wiki/BLP
*/ */
class BLPLoader { class BLPLoader {
public: public:

View file

@ -14,6 +14,7 @@ namespace pipeline {
* *
* DBC files store game database tables (spells, items, maps, creatures, etc.) * DBC files store game database tables (spells, items, maps, creatures, etc.)
* Format: Fixed header + fixed-size records + string block * Format: Fixed header + fixed-size records + string block
* Format specification: https://wowdev.wiki/DBC
*/ */
class DBCFile { class DBCFile {
public: public: