2023-08-06 08:25:04 -04:00
// SPDX-FileCopyrightText: 2023 Joshua Goins <josh@redstrate.com>
// SPDX-License-Identifier: GPL-3.0-or-later
2023-09-24 15:40:38 -04:00
//! Crate for reading and writing the file formats used by FFXIV.
2022-07-19 19:29:41 -04:00
extern crate core ;
2022-07-27 21:41:05 -04:00
/// Reading and writing game data repositories, such as "ffxiv" and "ex1", and so on.
2022-07-19 19:29:41 -04:00
pub mod gamedata ;
2022-07-27 21:41:05 -04:00
/// Parsing game repositories, such as "ffxiv", "ex1" and their version information.
2022-07-19 19:29:41 -04:00
pub mod repository ;
2023-09-22 17:56:33 -04:00
/// Handling and updating data in the "boot" directory, which contains the launcher files.
2022-07-19 19:29:41 -04:00
pub mod bootdata ;
2022-08-06 18:06:06 -04:00
/// Common methods and structures relating to the SqPack data format.
pub mod sqpack ;
2022-07-19 19:29:41 -04:00
2022-07-27 21:41:05 -04:00
/// Reading and writing SqPack index files.
2022-07-19 19:29:41 -04:00
pub mod index ;
2022-07-27 21:41:05 -04:00
2022-07-19 19:29:41 -04:00
mod compression ;
2022-08-16 11:52:07 -04:00
mod dat ;
2022-09-15 17:00:27 -04:00
2022-09-15 17:02:30 -04:00
/// Reading model (MDL) files.
2022-10-25 13:53:24 -04:00
#[ cfg(feature = " visual_data " ) ]
2022-07-28 14:11:02 -04:00
pub mod model ;
2022-07-27 21:41:05 -04:00
/// All of the races in Eorzea in a nice enum package.
2022-07-19 19:29:41 -04:00
pub mod race ;
/// Reading Excel lists (EXL).
pub mod exl ;
2022-07-27 21:41:05 -04:00
/// Reading equipment and equipment-related data.
2022-07-19 19:29:41 -04:00
pub mod equipment ;
2022-07-27 21:41:05 -04:00
2023-09-22 18:15:23 -04:00
/// Common structures, enumerations and functions used by many modules.
2022-07-19 19:29:41 -04:00
pub mod common ;
2022-07-27 21:41:05 -04:00
/// Methods for installing game and boot patches.
2022-07-19 19:29:41 -04:00
pub mod patch ;
#[ macro_use ]
mod macros ;
2023-09-22 17:52:31 -04:00
/// Implementation of the Blowfish ECB block cipher used by the retail client. It's used to encrypt arguments in the launcher, to prevent login token snooping.
2022-07-19 19:29:41 -04:00
pub mod blowfish ;
2022-07-27 21:41:05 -04:00
2022-07-20 19:07:36 -04:00
mod blowfish_constants ;
2022-07-27 21:41:05 -04:00
/// Initializing a new retail game install from the official retail installer. No execution required!
2022-10-25 13:53:24 -04:00
#[ cfg(feature = " game_install " ) ]
2022-07-21 19:58:58 -04:00
pub mod installer ;
2022-07-27 21:41:05 -04:00
/// Reading Excel header files (EXH).
2022-07-21 19:58:58 -04:00
pub mod exh ;
2022-07-27 21:41:05 -04:00
/// Reading Excel data files (EXD).
2022-08-06 18:06:06 -04:00
pub mod exd ;
2022-09-15 17:00:27 -04:00
/// Reading Havok XML sidecar files.
2022-10-25 13:53:24 -04:00
#[ cfg(feature = " visual_data " ) ]
2022-08-06 20:38:15 -04:00
pub mod skeleton ;
2022-09-15 17:00:27 -04:00
/// Reading file into files (FIIN).
2022-08-07 16:19:04 -04:00
pub mod fiin ;
2022-09-15 17:00:27 -04:00
/// Reading and writing chat logs (LOG).
2022-08-09 19:31:32 -04:00
pub mod log ;
2022-09-15 17:00:27 -04:00
/// Reading textures (TEX).
2022-10-25 13:53:24 -04:00
#[ cfg(feature = " visual_data " ) ]
2022-08-11 15:40:14 -04:00
pub mod tex ;
2022-09-15 17:00:27 -04:00
/// Reading material files (MTRL)
2022-10-25 13:53:24 -04:00
#[ cfg(feature = " visual_data " ) ]
2022-08-16 11:52:07 -04:00
pub mod mtrl ;
2022-10-24 16:49:06 -04:00
2023-09-22 16:36:12 -04:00
/// Reading shader packages (SHPK)
#[ cfg(feature = " visual_data " ) ]
pub mod shpk ;
2023-07-06 17:34:14 -04:00
/// Reading character parameter files (CMP)
pub mod cmp ;
2023-09-22 18:13:20 -04:00
/// Reading and writing character data files (DAT) which are used in the character creator to save presets.
2023-07-08 15:29:00 -04:00
pub mod chardat ;
2023-09-22 18:05:29 -04:00
/// Reading and writing the plaintext config files (CFG) used by the game to store most of it's configuration.
2023-08-02 16:26:56 -04:00
pub mod cfg ;
2022-10-24 16:49:06 -04:00
mod crc ;
2022-10-25 13:00:05 -04:00
mod sha1 ;
2023-07-30 10:28:32 -04:00
2023-09-22 18:34:24 -04:00
#[ doc(hidden) ]
2023-07-30 10:28:32 -04:00
pub const PHYSIS_VERSION : & str = env! ( " CARGO_PKG_VERSION " ) ;