How ladislav-zezula/stormlib works
StormLib is a C/C++ library for working with Blizzard MPQ archives. The principal user workflow is to include its public header, open an archive, then perform operations such as listing, reading, adding, or extracting files. The tree also shows archive maintenance, patching, verification, and multiple compression and encoding implementations. The README establishes the product and public-library usage; most implementation files were not excerpted, so internal call relationships are omitted or marked unverified rather than inferred from filenames.
Main entry points: SCompression.cpp Compression dispatch · SFileOpenArchive.cpp Open archive · SBaseFileTable.cpp Archive file table · StormLib.h Public API
Components 23
Archive operations
- Public API
src/StormLib.h - Open archive
src/SFileOpenArchive.cpp - Create archive
src/SFileCreateArchive.cpp - Archive file table
src/SBaseFileTable.cpp
File operations
- Add file
src/SFileAddFile.cpp - Open file
src/SFileOpenFileEx.cpp - Read file
src/SFileReadFile.cpp - Extract file
src/SFileExtractFile.cpp - Find file
src/SFileFindFile.cpp - List files
src/SFileListFile.cpp - File information
src/SFileGetFileInfo.cpp
Archive maintenance
- Compact archive
src/SFileCompactArchive.cpp - Patch archives
src/SFilePatchArchives.cpp - Verify archive
src/SFileVerify.cpp
Compression and codecs
- Compression dispatch
src/SCompression.cpp - zlib
src/zlib/zlib.h - bzip2
src/bzip2/bzlib.h - LZMA
src/lzma/C/LzmaEnc.h - Huffman
src/huffman/huff.cpp - PKWARE codec
src/pklib/pklib.h - ADPCM codec
src/adpcm/adpcm.cpp
Other components
- Library user
- MPQ archive
Connections 21
- Library user → Public API: includes
- Public API → Open archive: exposes
- Library user → Open archive: opens
- Open archive → MPQ archive: opens
- Create archive → MPQ archive: creates
- Add file → MPQ archive: writes
- Open file → MPQ archive: reads
- Read file → MPQ archive: reads
- Extract file → MPQ archive: extracts
- Find file → Archive file table: searches
- List files → Archive file table: lists
- File information → Archive file table: queries
- Compact archive → MPQ archive: rewrites
- Patch archives → MPQ archive: patches
- Verify archive → MPQ archive: verifies
- Compression dispatch → zlib: dispatches
- Compression dispatch → bzip2: dispatches
- Compression dispatch → LZMA: dispatches
- Compression dispatch → Huffman: dispatches
- Compression dispatch → PKWARE codec: dispatches
- Compression dispatch → ADPCM codec: dispatches