1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
//! # The pack (`*.pk`) files
//!
//! The game stores most of its resources in custom zip file variants
//! which are called `Pack` files. These contain a sequence of possibly
//! compressed file streams and an index of all contained files streams
//! at the end of the file.
//!
//! Pack files do not contain the actual names of the contained files,
//! but the index is layed out by the CRC value of the respective filenames,
//! so it is trivial to find the correct data for any given filename.
//!
//! When the game was in operation, players could choose between
//! `Full Download`, setting up the complete PKs at load, and `While Playing`,
//! where the resource manager would try to locate a file in the PKs,
//! and load it from the content delivery network if it wasn't found.
//!
//! The file would then be added to the appropriate PK file, as specified in
//! the PKI (Pack-Index) file.
//!
//! ## This module
//! This module contains datastructures, parsers, readers and and possibly
//! writers to (de)serialize, analyze and manipulate the pack archive files.
//!
//! Rough guidelines on which API to use is as follows:
//!
//! * Use `PackFile` to walk through the raw data
//! * Use `PackLoader` for an efficient representation of the data
//! * Use `PackData` for a datastructure that you can manipulate and write back easily

//pub mod core;
pub mod file;
pub mod parser;
pub mod reader;