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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
// SPDX-FileCopyrightText: 2023 Joshua Goins <josh@redstrate.com>
// SPDX-License-Identifier: GPL-3.0-or-later

//! Crate for reading and writing the file formats used by FFXIV.

extern crate core;

/// Represents a continuous block of memory which is not owned, and comes either from an in-memory location or from a file.
pub type ByteSpan<'a> = &'a [u8];

/// Represents a continuous block of memory which is owned.
pub type ByteBuffer = Vec<u8>;

/// Reading and writing game data repositories, such as "ffxiv" and "ex1", and so on.
pub mod gamedata;

/// Parsing game repositories, such as "ffxiv", "ex1" and their version information.
pub mod repository;

/// Handling and updating data in the "boot" directory, which contains the launcher files.
pub mod bootdata;

/// Common methods and structures relating to the SqPack data format.
pub mod sqpack;

/// Reading and writing SqPack index files.
pub mod index;

mod compression;
mod dat;

/// Reading model (MDL) files.
#[cfg(feature = "visual_data")]
pub mod model;

/// All of the races in Eorzea in a nice enum package.
pub mod race;

/// Reading Excel lists (EXL).
pub mod exl;

/// Reading equipment and equipment-related data.
pub mod equipment;

/// Common structures, enumerations and functions used by many modules.
pub mod common;

/// Methods for installing game and boot patches.
pub mod patch;

/// 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.
pub mod blowfish;

mod blowfish_constants;

/// Initializing a new retail game install from the official retail installer. No execution required!
#[cfg(feature = "game_install")]
pub mod installer;

/// Reading Excel header files (EXH).
pub mod exh;

/// Reading Excel data files (EXD).
pub mod exd;

/// Reading Havok XML sidecar files.
#[cfg(feature = "visual_data")]
pub mod skeleton;

/// Reading file info files (FIIN).
pub mod fiin;

/// Reading and writing chat logs (LOG).
pub mod log;

/// Reading textures (TEX).
#[cfg(feature = "visual_data")]
pub mod tex;

/// Reading material files (MTRL)
#[cfg(feature = "visual_data")]
pub mod mtrl;

/// Reading shader packages (SHPK)
#[cfg(feature = "visual_data")]
pub mod shpk;

/// Reading character parameter files (CMP)
pub mod cmp;

/// Reading and writing character data files (DAT) which are used in the character creator to save presets.
pub mod chardat;

/// Reading and writing the plaintext config files (CFG) used by the game to store most of it's configuration.
pub mod cfg;

#[cfg(feature = "visual_data")]
mod havok;

/// Reading bone deform matrices.
#[cfg(feature = "visual_data")]
pub mod pbd;

mod crc;
mod sha1;

#[cfg(feature = "visual_data")]
mod model_file_operations;

#[cfg(feature = "visual_data")]
mod model_vertex_declarations;

#[cfg(feature = "visual_data")]
pub mod lgb;

#[cfg(feature = "visual_data")]
pub mod tera;

/// Reading data from executables
pub mod execlookup;

mod common_file_operations;

/// Reading word dictionaries, such as the vulgar word list.
pub mod dic;

#[doc(hidden)]
pub const PHYSIS_VERSION: &str = env!("CARGO_PKG_VERSION");