openstranded-map-tool 0.2.1

Convert Stranded II .s2 map files to .osmap (OpenStranded MAP) format
Documentation
use openstranded_map_tool::parse_s2;
use std::env;
use std::fs;

fn main() {
    let args: Vec<String> = env::args().collect();
    let path = args.get(1).map(|s| s.as_str()).unwrap_or(
        "/home/admen/sources/projects/openstranded/s2mod-tool/tests/stranded2/maps/adventure/map01.s2",
    );
    let data = fs::read(path).unwrap();
    let map = parse_s2(&data).unwrap();
    let step = 64.0 / map.terrain_size as f32;
    println!("terrain_size: {} (step={})", map.terrain_size, step);
    println!("objects: {:>4}", map.objects.len());
    for o in &map.objects {
        println!("  obj id={:>3} typ={:>3} x={:8.2} z={:8.2}", o.id, o.typ, o.x, o.z);
    }
    println!("units:   {:>4}", map.units.len());
    for u in &map.units {
        println!("  unit id={:>3} typ={:>3} x={:8.2} y={:8.2} z={:8.2}", u.id, u.typ, u.x, u.y, u.z);
    }
    println!("items:   {:>4}", map.items.len());
    for i in &map.items {
        println!("  item id={:>3} typ={:>3} x={:8.2} y={:8.2} z={:8.2}", i.id, i.typ, i.x, i.y, i.z);
    }
    println!("infos:   {:>4}", map.infos.len());
    for i in &map.infos {
        println!("  info id={:>3} typ={:>3} x={:8.2} y={:8.2} z={:8.2}", i.id, i.typ, i.x, i.y, i.z);
    }
}