Crate lcf

Crate lcf 

Source
Expand description

§Lcf-rs

Lcf is the file format used by the RPG Maker 2000/2003 game engine.

Each of the different file types is in a module with its extension as the name:

The crate::Lcf enum contains all of the above 4 types as variants and can be used if the exact one is not known ahead of time.


The above 5 types are wrappers around their corresponding structs in the crate::raw module:

All of the raw structs implement binrw::BinRead and binrw::BinWrite, as well as From and TryInto for their wrapper.

§Example

use lcf::ConvertExt as _; // Bring the conversion trait into scope for wrapper formats.

let bytes = std::fs::read("RPG_RT.ldb").expect("file exists");
let mut reader = std::io::Cursor::new(bytes);
let database = lcf::Lcf::read(&mut reader).expect("valid lcf file");
assert!(matches!(database, lcf::Lcf::DataBase(_)))

§Disclaimers

  • This crate is currently incomplete, some fields are left as uninterpreted byte arrays.
  • The raw structs can complete round trips successfully but the managed structs lose information.
  • RPG Maker 2003 features are entirely unsupported.
  • Save data is completely unimplemented.

JavaScript bindings are available with lcf-js.

Additionally see lcf-explorer and d2k for full examples.

Modules§

enums
helpers
ldb
lmt
lmu
lsd
raw

Enums§

Lcf
LcfReadError

Traits§

ConvertExt
Provides ConvertExt::read and ConvertExt::write for the non-raw formats.