#slp #empires #genie #aoe #engine #file-format #read-file

chariot_slp

用于读取/写入《帝国时代》(1997年)SLP文件的库

3 个版本

使用旧的 Rust 2015

0.1.2 2017年5月16日
0.1.1 2017年5月10日
0.1.0 2017年5月5日

#genie 中排名 #4

Download history 3/week @ 2024-03-02 48/week @ 2024-03-30 18/week @ 2024-04-06

每月下载 56

MIT 许可证

21KB
307 代码行

Chariot SLP 库

此库处理《帝国时代》(1997年)使用的 SLP 文件格式。目前,它可以读取 SLP 文件。

尽管写入 SLP 文件的能力是一个很好的功能,但它对于 Chariot 项目的其余部分不是必需的,因此目前没有实现。

此处代码受 Chariot 项目的同一许可证约束。

构建

您需要 Rust 编译器和 Cargo 构建系统。一旦您有了这些,您就可以使用以下命令进行编译:

$ cargo build

示例

match slp::SlpFile::read_from_file("/path/to/file.slp", 1u8) {
    Ok(slp_file) => {
        println!("Shape count: {}", slp_file.header.shape_count);
        for shape in &slp_file.shapes {
            println!("{:?}", shape.header);
        }
    },
    Err(err) => {
        println!("Failed to read the SLP file: {}", err);
    }
}

ASCII 形式的 SLP 格式

+-----------------------------+
|          SlpHeader          |
+-----------------------------+
|SlpShapeHeader|SlpShapeHeader|
+-----------------------------+
|                             |
| Array of u16 padding pairs  | <-+ Each SlpShapeHeader has a "shape_outline_offset"
|                             |     that points to a pair in this array
+-----------------------------+
|                             |
| Arrays of u32 offsets to    | <-+ Each SlpShapeHeader has a "shape_data_offsets"
|  first command in each row  |     that points to an array
|                             |
+-----------------------------+
|                             |
| Drawing commands used to    |
|  produce indexed image data |
|                             |
+-----------------------------+

依赖关系

~1.5MB
~26K SLoC