Files
doom-oxidized/src/main.rs
Wesley Irvin 166b047a70 Linedef Loading
Added the ability to load linedefs from a wad file. Also added
functions to the linedef type to allow you to check the status of
each bit of the flags value making it very easy to check linedef
properties.
2023-04-29 09:39:26 -04:00

88 lines
2.3 KiB
Rust

mod doomlevel;
mod wadfile;
use doomlevel::DoomLevel;
use wadfile::WADFile;
fn main() {
let wad_file = WADFile::from_path("WADs/doom1.wad");
let level = DoomLevel::load_level(&wad_file, wad_file.get_index_from_name("e1m1").unwrap());
println!(
"WAD Path: {}
Header:
Identifier: {}
Lump Count: {}
Initial Offset: {}
Number of Found Lumps: {}",
wad_file.wad_path,
wad_file.identifier,
wad_file.num_lumps,
wad_file.init_offset,
wad_file.get_directory_len()
);
println!("First 15 Directory Entries:");
for i in 0..15 {
println!(
"\t{}\tName {}\tPosition {}\tSize {}",
i,
wad_file.get_lump_name(i),
wad_file.get_lump_offset(i),
wad_file.get_lump_size(i)
);
}
println!("\nFirst 15 Vertex Entries for {}:", level.name);
for i in 0..15 {
println!(
"\t{} - ({}, {})",
i, level.vertexes[i].x, level.vertexes[i].y
);
}
let test_linedef = 247;
println!("\nLinedef Entry {} for {}:", test_linedef, level.name);
println!(
"Start Vertex: {}
End Vertex: {}
Flags: {}
Special Type: {}
Sector Tag: {}
Front Sidedef: {}
Back Sidedef: {}
Flags:
\tBlocks Players: {}
\tBlocks Monsters: {}
\tTwo Sided: {}
\tUpper Texture Unpegged: {}
\tLower Texture Unpegged: {}
\tSecret: {}
\tBlocks Sound: {}
\tNever Shows on Automap: {}
\tAlways Shows on Automap {}",
level.linedefs[test_linedef].start_vertex,
level.linedefs[test_linedef].end_vertex,
level.linedefs[test_linedef].flags,
level.linedefs[test_linedef].special_type,
level.linedefs[test_linedef].sector_tag,
level.linedefs[test_linedef].front_sidedef,
level.linedefs[test_linedef].back_sidedef,
level.linedefs[test_linedef].blocks_players(),
level.linedefs[test_linedef].blocks_monsters(),
level.linedefs[test_linedef].is_two_sided(),
level.linedefs[test_linedef].is_upper_unpegged(),
level.linedefs[test_linedef].is_lower_unpegged(),
level.linedefs[test_linedef].is_secret(),
level.linedefs[test_linedef].blocks_sound(),
level.linedefs[test_linedef].never_automap(),
level.linedefs[test_linedef].always_automap()
);
}