mirror of
https://github.com/redstrate/Physis.git
synced 2025-04-19 17:36:50 +00:00
We had a few odd dependencies that caused nothing but pain in dependent projects like libphysis. One of these was libunshield (a C library) that our game_install feature used, but to be honest this was the wrong library to put this code. It was really only ever used by Astra, and should live there instead - there's no reason to have it shared between applications (and it's small enough to be copied if *you* need it.) Also that also killed the system-deps dependency which had a significant impact on our build time. Another dependency was replaced: libz-sys. This is replaced by the pure Rust libz-rs (through libz-rs-sys) which should simplify deploying physis without having to worry about manually linking libz or other nonsense. Some leftover copied code from flate2 can also be removed. I also removed the visual_data feature as Astra ended up using it anyway, and the distinction doesn't make much sense now. It was previously to gate some dependencies needed for visual data extraction, but the bitflags and half crates are small. I can look into splitting the crate up into more features if needed later. A dependency that was erroneously included in the refactoring was quote, which has been removed. Also ran cargo fmt, clippy too.
163 lines
3.3 KiB
Rust
Executable file
163 lines
3.3 KiB
Rust
Executable file
// 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.
|
|
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;
|
|
|
|
/// Reading Excel header files (EXH).
|
|
pub mod exh;
|
|
|
|
/// Reading Excel data files (EXD).
|
|
pub mod exd;
|
|
|
|
/// Reading Havok XML sidecar files.
|
|
pub mod skeleton;
|
|
|
|
/// Reading file info files (FIIN).
|
|
pub mod fiin;
|
|
|
|
/// Reading and writing chat logs (LOG).
|
|
pub mod log;
|
|
|
|
/// Reading textures (TEX).
|
|
pub mod tex;
|
|
|
|
/// Reading material files (MTRL)
|
|
pub mod mtrl;
|
|
|
|
/// Reading shader packages (SHPK)
|
|
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 content of gear sets (GEARSET.DAT) which are used to store a character's gear sets.
|
|
pub mod gearsets;
|
|
|
|
/// Reading and writing the plaintext config files (CFG) used by the game to store most of it's configuration.
|
|
pub mod cfg;
|
|
|
|
mod havok;
|
|
|
|
/// Reading bone deform matrices.
|
|
pub mod pbd;
|
|
|
|
mod crc;
|
|
mod sha1;
|
|
|
|
mod model_file_operations;
|
|
|
|
pub mod model_vertex_declarations;
|
|
|
|
pub mod lgb;
|
|
|
|
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");
|
|
|
|
/// Reading ULD files
|
|
pub mod uld;
|
|
|
|
/// Reading SGB files
|
|
pub mod sgb;
|
|
|
|
/// Reading SCD files
|
|
pub mod scd;
|
|
|
|
/// Reading HWC files
|
|
pub mod hwc;
|
|
|
|
/// Reading IWC files
|
|
pub mod iwc;
|
|
|
|
/// Reading TMB files
|
|
pub mod tmb;
|
|
|
|
/// Reading SKP files
|
|
pub mod skp;
|
|
|
|
/// Reading SCHD files
|
|
pub mod schd;
|
|
|
|
/// Reading PHYB files
|
|
pub mod phyb;
|
|
|
|
/// Reading PAP files
|
|
pub mod pap;
|
|
|
|
/// Reading AVFX files
|
|
pub mod avfx;
|
|
|
|
/// Reading STM files
|
|
pub mod stm;
|
|
|
|
/// Find existing installation directories
|
|
pub mod existing_dirs;
|
|
|
|
/// Reading patch lists
|
|
pub mod patchlist;
|
|
|
|
/// Reading SQDB files
|
|
pub mod sqdb;
|
|
|
|
mod bcn;
|