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
|
||||
) => {
|
||||
#[derive(Serialize)]
|
||||
#[derive(Clone, PartialEq, Serialize)]
|
||||
pub struct $Type($IT);
|
||||
|
||||
impl $Type
|
||||
|
@ -27,7 +27,7 @@ macro_rules! define_fixed_type {
|
|||
self.0 = bits as $IT
|
||||
}
|
||||
|
||||
pub fn from_bits(bits: $UT) -> Self
|
||||
pub const fn from_bits(bits: $UT) -> Self
|
||||
{
|
||||
$Type(bits as $IT)
|
||||
}
|
||||
|
|
|
@ -41,10 +41,7 @@ fn dump_chunk(opt: &Options, cid: Ident, cnk: &[u8], eid: u16) -> ResultS<()>
|
|||
{
|
||||
if opt.wad_all {
|
||||
make_chunk(opt, cid, cnk, eid)?;
|
||||
return Ok(());
|
||||
}
|
||||
|
||||
if opt.wad_chunks.contains(&cid) {
|
||||
} else if opt.wad_chunks.contains(&cid) {
|
||||
match &cid {
|
||||
b"PICT" => {
|
||||
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)?)?,
|
||||
_ => (),
|
||||
}
|
||||
}
|
||||
|
||||
if opt.wad_unknown {
|
||||
} else if opt.wad_unknown {
|
||||
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))
|
||||
}
|
||||
|
||||
#[derive(Serialize)]
|
||||
#[derive(Clone, PartialEq, Serialize)]
|
||||
pub struct Point
|
||||
{
|
||||
x: Unit,
|
||||
y: Unit,
|
||||
pub x: Unit,
|
||||
pub y: Unit,
|
||||
}
|
||||
|
||||
#[derive(Debug, Serialize)]
|
||||
|
@ -219,16 +219,16 @@ pub struct Polygon
|
|||
snd_rnd: ObjID,
|
||||
}
|
||||
|
||||
#[derive(Debug, Serialize)]
|
||||
#[derive(Debug, PartialEq, Serialize)]
|
||||
pub struct Minf
|
||||
{
|
||||
env_code: u16,
|
||||
physi_id: u16,
|
||||
music_id: u16,
|
||||
msn_flag: MsnFlags,
|
||||
env_flag: EnvFlags,
|
||||
ent_flag: EntFlags,
|
||||
levelnam: String,
|
||||
pub env_code: u16,
|
||||
pub physi_id: u16,
|
||||
pub music_id: u16,
|
||||
pub msn_flag: MsnFlags,
|
||||
pub env_flag: EnvFlags,
|
||||
pub ent_flag: EntFlags,
|
||||
pub levelnam: String,
|
||||
}
|
||||
|
||||
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