additional tests
parent
1f81a5b043
commit
76dd2160e7
|
@ -8,7 +8,7 @@ macro_rules! define_fixed_type {
|
||||||
(
|
(
|
||||||
$Type:ident : $IT:ident, $UT:ident, $LT:ident, $FracBits:expr
|
$Type:ident : $IT:ident, $UT:ident, $LT:ident, $FracBits:expr
|
||||||
) => {
|
) => {
|
||||||
#[derive(Serialize)]
|
#[derive(Clone, PartialEq, Serialize)]
|
||||||
pub struct $Type($IT);
|
pub struct $Type($IT);
|
||||||
|
|
||||||
impl $Type
|
impl $Type
|
||||||
|
@ -27,7 +27,7 @@ macro_rules! define_fixed_type {
|
||||||
self.0 = bits as $IT
|
self.0 = bits as $IT
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn from_bits(bits: $UT) -> Self
|
pub const fn from_bits(bits: $UT) -> Self
|
||||||
{
|
{
|
||||||
$Type(bits as $IT)
|
$Type(bits as $IT)
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,10 +41,7 @@ fn dump_chunk(opt: &Options, cid: Ident, cnk: &[u8], eid: u16) -> ResultS<()>
|
||||||
{
|
{
|
||||||
if opt.wad_all {
|
if opt.wad_all {
|
||||||
make_chunk(opt, cid, cnk, eid)?;
|
make_chunk(opt, cid, cnk, eid)?;
|
||||||
return Ok(());
|
} else if opt.wad_chunks.contains(&cid) {
|
||||||
}
|
|
||||||
|
|
||||||
if opt.wad_chunks.contains(&cid) {
|
|
||||||
match &cid {
|
match &cid {
|
||||||
b"PICT" => {
|
b"PICT" => {
|
||||||
let im = pict::load_pict(cnk)?;
|
let im = pict::load_pict(cnk)?;
|
||||||
|
@ -59,9 +56,7 @@ fn dump_chunk(opt: &Options, cid: Ident, cnk: &[u8], eid: u16) -> ResultS<()>
|
||||||
b"term" => make_yaml(opt, &rd_array(cnk, trm::read_term)?)?,
|
b"term" => make_yaml(opt, &rd_array(cnk, trm::read_term)?)?,
|
||||||
_ => (),
|
_ => (),
|
||||||
}
|
}
|
||||||
}
|
} else if opt.wad_unknown {
|
||||||
|
|
||||||
if opt.wad_unknown {
|
|
||||||
make_chunk(opt, cid, cnk, eid)?;
|
make_chunk(opt, cid, cnk, eid)?;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -154,11 +154,11 @@ pub fn read_poly(b: &[u8]) -> ResultS<(Polygon, usize)>
|
||||||
media_l, sound, snd_amb, snd_rnd}, 128))
|
media_l, sound, snd_amb, snd_rnd}, 128))
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Serialize)]
|
#[derive(Clone, PartialEq, Serialize)]
|
||||||
pub struct Point
|
pub struct Point
|
||||||
{
|
{
|
||||||
x: Unit,
|
pub x: Unit,
|
||||||
y: Unit,
|
pub y: Unit,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Serialize)]
|
#[derive(Debug, Serialize)]
|
||||||
|
@ -219,16 +219,16 @@ pub struct Polygon
|
||||||
snd_rnd: ObjID,
|
snd_rnd: ObjID,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Serialize)]
|
#[derive(Debug, PartialEq, Serialize)]
|
||||||
pub struct Minf
|
pub struct Minf
|
||||||
{
|
{
|
||||||
env_code: u16,
|
pub env_code: u16,
|
||||||
physi_id: u16,
|
pub physi_id: u16,
|
||||||
music_id: u16,
|
pub music_id: u16,
|
||||||
msn_flag: MsnFlags,
|
pub msn_flag: MsnFlags,
|
||||||
env_flag: EnvFlags,
|
pub env_flag: EnvFlags,
|
||||||
ent_flag: EntFlags,
|
pub ent_flag: EntFlags,
|
||||||
levelnam: String,
|
pub levelnam: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
bitflags! {
|
bitflags! {
|
||||||
|
|
Binary file not shown.
|
@ -0,0 +1,56 @@
|
||||||
|
[
|
||||||
|
map::Point{x: Unit::from_bits(5120), y: Unit::from_bits(4096)},
|
||||||
|
map::Point{x: Unit::from_bits(6144), y: Unit::from_bits(4096)},
|
||||||
|
map::Point{x: Unit::from_bits(7168), y: Unit::from_bits(5120)},
|
||||||
|
map::Point{x: Unit::from_bits(7168), y: Unit::from_bits(6144)},
|
||||||
|
map::Point{x: Unit::from_bits(6144), y: Unit::from_bits(7168)},
|
||||||
|
map::Point{x: Unit::from_bits(5120), y: Unit::from_bits(7168)},
|
||||||
|
map::Point{x: Unit::from_bits(4096), y: Unit::from_bits(6144)},
|
||||||
|
map::Point{x: Unit::from_bits(4096), y: Unit::from_bits(5120)},
|
||||||
|
map::Point{x: Unit::from_bits(4608), y: Unit::from_bits(3072)},
|
||||||
|
map::Point{x: Unit::from_bits(3072), y: Unit::from_bits(4608)},
|
||||||
|
map::Point{x: Unit::from_bits(6656), y: Unit::from_bits(3072)},
|
||||||
|
map::Point{x: Unit::from_bits(8192), y: Unit::from_bits(4608)},
|
||||||
|
map::Point{x: Unit::from_bits(8192), y: Unit::from_bits(6656)},
|
||||||
|
map::Point{x: Unit::from_bits(6656), y: Unit::from_bits(8192)},
|
||||||
|
map::Point{x: Unit::from_bits(4608), y: Unit::from_bits(8192)},
|
||||||
|
map::Point{x: Unit::from_bits(3072), y: Unit::from_bits(6656)},
|
||||||
|
map::Point{x: Unit::from_bits(1536), y: Unit::from_bits(13312)},
|
||||||
|
map::Point{x: Unit::from_bits(9728), y: Unit::from_bits(13312)},
|
||||||
|
map::Point{x: Unit::from_bits(1536), y: Unit::from_bits(63488)},
|
||||||
|
map::Point{x: Unit::from_bits(9728), y: Unit::from_bits(63488)},
|
||||||
|
map::Point{x: Unit::from_bits(13312), y: Unit::from_bits(1536)},
|
||||||
|
map::Point{x: Unit::from_bits(13312), y: Unit::from_bits(9728)},
|
||||||
|
map::Point{x: Unit::from_bits(63488), y: Unit::from_bits(1536)},
|
||||||
|
map::Point{x: Unit::from_bits(63488), y: Unit::from_bits(9728)},
|
||||||
|
map::Point{x: Unit::from_bits(5120), y: Unit::from_bits(13312)},
|
||||||
|
map::Point{x: Unit::from_bits(5120), y: Unit::from_bits(14336)},
|
||||||
|
map::Point{x: Unit::from_bits(6144), y: Unit::from_bits(13312)},
|
||||||
|
map::Point{x: Unit::from_bits(6144), y: Unit::from_bits(14336)},
|
||||||
|
map::Point{x: Unit::from_bits(5120), y: Unit::from_bits(63488)},
|
||||||
|
map::Point{x: Unit::from_bits(5120), y: Unit::from_bits(62464)},
|
||||||
|
map::Point{x: Unit::from_bits(4096), y: Unit::from_bits(62464)},
|
||||||
|
map::Point{x: Unit::from_bits(4096), y: Unit::from_bits(61440)},
|
||||||
|
map::Point{x: Unit::from_bits(7168), y: Unit::from_bits(61440)},
|
||||||
|
map::Point{x: Unit::from_bits(7168), y: Unit::from_bits(62464)},
|
||||||
|
map::Point{x: Unit::from_bits(6144), y: Unit::from_bits(62464)},
|
||||||
|
map::Point{x: Unit::from_bits(6144), y: Unit::from_bits(63488)},
|
||||||
|
map::Point{x: Unit::from_bits(13312), y: Unit::from_bits(5120)},
|
||||||
|
map::Point{x: Unit::from_bits(14336), y: Unit::from_bits(5120)},
|
||||||
|
map::Point{x: Unit::from_bits(14336), y: Unit::from_bits(6144)},
|
||||||
|
map::Point{x: Unit::from_bits(13312), y: Unit::from_bits(6144)},
|
||||||
|
map::Point{x: Unit::from_bits(63488), y: Unit::from_bits(5120)},
|
||||||
|
map::Point{x: Unit::from_bits(62464), y: Unit::from_bits(5120)},
|
||||||
|
map::Point{x: Unit::from_bits(62464), y: Unit::from_bits(4096)},
|
||||||
|
map::Point{x: Unit::from_bits(61440), y: Unit::from_bits(4096)},
|
||||||
|
map::Point{x: Unit::from_bits(61440), y: Unit::from_bits(7168)},
|
||||||
|
map::Point{x: Unit::from_bits(62464), y: Unit::from_bits(7168)},
|
||||||
|
map::Point{x: Unit::from_bits(62464), y: Unit::from_bits(6144)},
|
||||||
|
map::Point{x: Unit::from_bits(63488), y: Unit::from_bits(6144)},
|
||||||
|
map::Point{x: Unit::from_bits(61440), y: Unit::from_bits(7680)},
|
||||||
|
map::Point{x: Unit::from_bits(62464), y: Unit::from_bits(7680)},
|
||||||
|
map::Point{x: Unit::from_bits(62464), y: Unit::from_bits(13312)},
|
||||||
|
map::Point{x: Unit::from_bits(61440), y: Unit::from_bits(8704)},
|
||||||
|
map::Point{x: Unit::from_bits(57344), y: Unit::from_bits(8704)},
|
||||||
|
map::Point{x: Unit::from_bits(57344), y: Unit::from_bits(13312)}
|
||||||
|
]
|
|
@ -0,0 +1,12 @@
|
||||||
|
use maraiah::{durandal::{bin, fixed::*}, marathon::map};
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn read_epnt_must_process_this()
|
||||||
|
{
|
||||||
|
assert_eq!(bin::rd_array(INPUT, map::read_epnt).unwrap(), OUTPUT.to_vec());
|
||||||
|
}
|
||||||
|
|
||||||
|
const INPUT: &'static [u8] = include_bytes!("epnt.in");
|
||||||
|
const OUTPUT: [map::Point; 54] = include!("epnt.out");
|
||||||
|
|
||||||
|
// EOF
|
Binary file not shown.
|
@ -0,0 +1,19 @@
|
||||||
|
use maraiah::marathon::map;
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn read_minf_must_process_map0()
|
||||||
|
{
|
||||||
|
assert_eq!(map::read_minf(INPUT).unwrap(), map::Minf{
|
||||||
|
env_code: 0,
|
||||||
|
physi_id: 1,
|
||||||
|
music_id: 1,
|
||||||
|
msn_flag: map::MsnFlags::Repair,
|
||||||
|
env_flag: map::EnvFlags::empty(),
|
||||||
|
ent_flag: map::EntFlags::Solo | map::EntFlags::CoOp,
|
||||||
|
levelnam: "Waterloo Waterpark".to_string()
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
const INPUT: &'static [u8] = include_bytes!("minf.in");
|
||||||
|
|
||||||
|
// EOF
|
Loading…
Reference in New Issue