diff --git a/ATTRIBUTION.md b/ATTRIBUTION.md new file mode 100644 index 00000000..14574458 --- /dev/null +++ b/ATTRIBUTION.md @@ -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. diff --git a/include/game/opcodes.hpp b/include/game/opcodes.hpp index e277c891..df090e1e 100644 --- a/include/game/opcodes.hpp +++ b/include/game/opcodes.hpp @@ -6,6 +6,8 @@ namespace wowee { namespace game { // 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 { // Client to Server CMSG_PING = 0x1DC, diff --git a/include/pipeline/adt_loader.hpp b/include/pipeline/adt_loader.hpp index 20e68ed7..cca28de1 100644 --- a/include/pipeline/adt_loader.hpp +++ b/include/pipeline/adt_loader.hpp @@ -147,6 +147,7 @@ struct ADTTerrain { * ADT terrain loader * * Loads WoW 3.3.5a ADT (Azeroth Data Tile) terrain files + * Format specification: https://wowdev.wiki/ADT */ class ADTLoader { public: diff --git a/include/pipeline/blp_loader.hpp b/include/pipeline/blp_loader.hpp index dc409460..b32d49aa 100644 --- a/include/pipeline/blp_loader.hpp +++ b/include/pipeline/blp_loader.hpp @@ -50,6 +50,7 @@ struct BLPImage { * * Supports BLP0, BLP1, BLP2 formats * Handles DXT1/3/5 compression and palette formats + * Format specification: https://wowdev.wiki/BLP */ class BLPLoader { public: diff --git a/include/pipeline/dbc_loader.hpp b/include/pipeline/dbc_loader.hpp index 0a380c7b..a9112973 100644 --- a/include/pipeline/dbc_loader.hpp +++ b/include/pipeline/dbc_loader.hpp @@ -14,6 +14,7 @@ namespace pipeline { * * DBC files store game database tables (spells, items, maps, creatures, etc.) * Format: Fixed header + fixed-size records + string block + * Format specification: https://wowdev.wiki/DBC */ class DBCFile { public: