fix module use
parent
7a231fb351
commit
c8ebe009e7
|
@ -1,14 +1,14 @@
|
||||||
//! `EndPoint` type.
|
//! `EndPoint` type.
|
||||||
|
|
||||||
use crate::durandal::err::*;
|
use crate::durandal::err::*;
|
||||||
use super::pnts::*;
|
use super::pnts;
|
||||||
|
|
||||||
/// Reads an `EPNT` chunk.
|
/// Reads an `EPNT` chunk.
|
||||||
pub fn read(b: &[u8]) -> ResultS<(Point, usize)>
|
pub fn read(b: &[u8]) -> ResultS<(pnts::Point, usize)>
|
||||||
{
|
{
|
||||||
read_data! {
|
read_data! {
|
||||||
endian: BIG, buf: b, size: 16, start: 0, data {
|
endian: BIG, buf: b, size: 16, start: 0, data {
|
||||||
let pnt = read_point[6; 4];
|
let pnt = pnts::read_o[6; 4];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
//! `Light` type.
|
//! `Light` type.
|
||||||
|
|
||||||
use crate::durandal::{err::*, fixed::Fixed};
|
use crate::durandal::{err::*, fixed::Fixed};
|
||||||
use super::{ltfn::{self, LightFunc, LightFuncType}, TICKS_PER_SECOND};
|
use super::{ltfn, TICKS_PER_SECOND};
|
||||||
use bitflags::bitflags;
|
use bitflags::bitflags;
|
||||||
|
|
||||||
/// Reads a `LITE` chunk.
|
/// Reads a `LITE` chunk.
|
||||||
|
@ -50,12 +50,12 @@ pub fn read_old(b: &[u8]) -> ResultS<(Light, usize)>
|
||||||
let flags = if on {lite.flags | LightFlags::INIT_ACTIVE} else {lite.flags};
|
let flags = if on {lite.flags | LightFlags::INIT_ACTIVE} else {lite.flags};
|
||||||
|
|
||||||
// modify each old light function accordingly
|
// modify each old light function accordingly
|
||||||
let old_lfun = move |func: &LightFunc| -> LightFunc {
|
let old_lfun = move |func: <fn::LightFunc| -> ltfn::LightFunc {
|
||||||
LightFunc{ftype: func.ftype,
|
ltfn::LightFunc{ftype: func.ftype,
|
||||||
prd_nrm: if strobe {prd / 4 + 1} else {func.prd_nrm},
|
prd_nrm: if strobe {prd / 4 + 1} else {func.prd_nrm},
|
||||||
prd_dta: func.prd_dta,
|
prd_dta: func.prd_dta,
|
||||||
val_nrm: if func.val_nrm > 0.into() {max} else {min},
|
val_nrm: if func.val_nrm > 0.into() {max} else {min},
|
||||||
val_dta: func.val_dta}
|
val_dta: func.val_dta}
|
||||||
};
|
};
|
||||||
|
|
||||||
Ok((Light{flags,
|
Ok((Light{flags,
|
||||||
|
@ -78,12 +78,12 @@ pub struct Light
|
||||||
pub ltype: LightType,
|
pub ltype: LightType,
|
||||||
pub flags: LightFlags,
|
pub flags: LightFlags,
|
||||||
pub phase: i16,
|
pub phase: i16,
|
||||||
pub act_pri: LightFunc,
|
pub act_pri: ltfn::LightFunc,
|
||||||
pub act_sec: LightFunc,
|
pub act_sec: ltfn::LightFunc,
|
||||||
pub act_mid: LightFunc,
|
pub act_mid: ltfn::LightFunc,
|
||||||
pub ina_pri: LightFunc,
|
pub ina_pri: ltfn::LightFunc,
|
||||||
pub ina_sec: LightFunc,
|
pub ina_sec: ltfn::LightFunc,
|
||||||
pub ina_mid: LightFunc,
|
pub ina_mid: ltfn::LightFunc,
|
||||||
pub tag: u16,
|
pub tag: u16,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -115,288 +115,288 @@ const OLD_LIGHT_DEFINITIONS: [Light; 8] = [
|
||||||
Light{ltype: LightType::Normal,
|
Light{ltype: LightType::Normal,
|
||||||
flags: LightFlags::SLAVE_VALUE,
|
flags: LightFlags::SLAVE_VALUE,
|
||||||
phase: 0,
|
phase: 0,
|
||||||
act_pri: LightFunc{ftype: LightFuncType::Constant,
|
act_pri: ltfn::LightFunc{ftype: ltfn::LightFuncType::Constant,
|
||||||
prd_nrm: TICKS_PER_SECOND,
|
prd_nrm: TICKS_PER_SECOND,
|
||||||
prd_dta: 0,
|
prd_dta: 0,
|
||||||
val_nrm: Fixed::from_int(1),
|
val_nrm: Fixed::from_int(1),
|
||||||
val_dta: Fixed::from_int(0)},
|
val_dta: Fixed::from_int(0)},
|
||||||
act_sec: LightFunc{ftype: LightFuncType::Constant,
|
act_sec: ltfn::LightFunc{ftype: ltfn::LightFuncType::Constant,
|
||||||
prd_nrm: TICKS_PER_SECOND,
|
prd_nrm: TICKS_PER_SECOND,
|
||||||
prd_dta: 0,
|
prd_dta: 0,
|
||||||
val_nrm: Fixed::from_int(1),
|
val_nrm: Fixed::from_int(1),
|
||||||
val_dta: Fixed::from_int(0)},
|
val_dta: Fixed::from_int(0)},
|
||||||
act_mid: LightFunc{ftype: LightFuncType::Constant,
|
act_mid: ltfn::LightFunc{ftype: ltfn::LightFuncType::Constant,
|
||||||
prd_nrm: 1,
|
prd_nrm: 1,
|
||||||
prd_dta: 0,
|
prd_dta: 0,
|
||||||
val_nrm: Fixed::from_int(1),
|
val_nrm: Fixed::from_int(1),
|
||||||
val_dta: Fixed::from_int(0)},
|
val_dta: Fixed::from_int(0)},
|
||||||
ina_pri: LightFunc{ftype: LightFuncType::Constant,
|
ina_pri: ltfn::LightFunc{ftype: ltfn::LightFuncType::Constant,
|
||||||
prd_nrm: TICKS_PER_SECOND,
|
prd_nrm: TICKS_PER_SECOND,
|
||||||
prd_dta: 0,
|
prd_dta: 0,
|
||||||
val_nrm: Fixed::from_int(0),
|
val_nrm: Fixed::from_int(0),
|
||||||
val_dta: Fixed::from_int(0)},
|
val_dta: Fixed::from_int(0)},
|
||||||
ina_sec: LightFunc{ftype: LightFuncType::Constant,
|
ina_sec: ltfn::LightFunc{ftype: ltfn::LightFuncType::Constant,
|
||||||
prd_nrm: TICKS_PER_SECOND,
|
prd_nrm: TICKS_PER_SECOND,
|
||||||
prd_dta: 0,
|
prd_dta: 0,
|
||||||
val_nrm: Fixed::from_int(0),
|
val_nrm: Fixed::from_int(0),
|
||||||
val_dta: Fixed::from_int(0)},
|
val_dta: Fixed::from_int(0)},
|
||||||
ina_mid: LightFunc{ftype: LightFuncType::Constant,
|
ina_mid: ltfn::LightFunc{ftype: ltfn::LightFuncType::Constant,
|
||||||
prd_nrm: 1,
|
prd_nrm: 1,
|
||||||
prd_dta: 0,
|
prd_dta: 0,
|
||||||
val_nrm: Fixed::from_int(1),
|
val_nrm: Fixed::from_int(1),
|
||||||
val_dta: Fixed::from_int(0)},
|
val_dta: Fixed::from_int(0)},
|
||||||
tag: 0},
|
tag: 0},
|
||||||
|
|
||||||
// Rheostat
|
// Rheostat
|
||||||
Light{ltype: LightType::Normal,
|
Light{ltype: LightType::Normal,
|
||||||
flags: LightFlags::SLAVE_VALUE,
|
flags: LightFlags::SLAVE_VALUE,
|
||||||
phase: 0,
|
phase: 0,
|
||||||
act_pri: LightFunc{ftype: LightFuncType::Constant,
|
act_pri: ltfn::LightFunc{ftype: ltfn::LightFuncType::Constant,
|
||||||
prd_nrm: TICKS_PER_SECOND,
|
prd_nrm: TICKS_PER_SECOND,
|
||||||
prd_dta: 0,
|
prd_dta: 0,
|
||||||
val_nrm: Fixed::from_int(1),
|
val_nrm: Fixed::from_int(1),
|
||||||
val_dta: Fixed::from_int(0)},
|
val_dta: Fixed::from_int(0)},
|
||||||
act_sec: LightFunc{ftype: LightFuncType::Constant,
|
act_sec: ltfn::LightFunc{ftype: ltfn::LightFuncType::Constant,
|
||||||
prd_nrm: TICKS_PER_SECOND,
|
prd_nrm: TICKS_PER_SECOND,
|
||||||
prd_dta: 0,
|
prd_dta: 0,
|
||||||
val_nrm: Fixed::from_int(1),
|
val_nrm: Fixed::from_int(1),
|
||||||
val_dta: Fixed::from_int(0)},
|
val_dta: Fixed::from_int(0)},
|
||||||
act_mid: LightFunc{ftype: LightFuncType::Smooth,
|
act_mid: ltfn::LightFunc{ftype: ltfn::LightFuncType::Smooth,
|
||||||
prd_nrm: TICKS_PER_SECOND * 3,
|
prd_nrm: TICKS_PER_SECOND * 3,
|
||||||
prd_dta: 0,
|
prd_dta: 0,
|
||||||
val_nrm: Fixed::from_int(1),
|
val_nrm: Fixed::from_int(1),
|
||||||
val_dta: Fixed::from_int(0)},
|
val_dta: Fixed::from_int(0)},
|
||||||
ina_pri: LightFunc{ftype: LightFuncType::Constant,
|
ina_pri: ltfn::LightFunc{ftype: ltfn::LightFuncType::Constant,
|
||||||
prd_nrm: TICKS_PER_SECOND,
|
prd_nrm: TICKS_PER_SECOND,
|
||||||
prd_dta: 0,
|
prd_dta: 0,
|
||||||
val_nrm: Fixed::from_int(0),
|
val_nrm: Fixed::from_int(0),
|
||||||
val_dta: Fixed::from_int(0)},
|
val_dta: Fixed::from_int(0)},
|
||||||
ina_sec: LightFunc{ftype: LightFuncType::Constant,
|
ina_sec: ltfn::LightFunc{ftype: ltfn::LightFuncType::Constant,
|
||||||
prd_nrm: TICKS_PER_SECOND,
|
prd_nrm: TICKS_PER_SECOND,
|
||||||
prd_dta: 0,
|
prd_dta: 0,
|
||||||
val_nrm: Fixed::from_int(0),
|
val_nrm: Fixed::from_int(0),
|
||||||
val_dta: Fixed::from_int(0)},
|
val_dta: Fixed::from_int(0)},
|
||||||
ina_mid: LightFunc{ftype: LightFuncType::Smooth,
|
ina_mid: ltfn::LightFunc{ftype: ltfn::LightFuncType::Smooth,
|
||||||
prd_nrm: TICKS_PER_SECOND * 3,
|
prd_nrm: TICKS_PER_SECOND * 3,
|
||||||
prd_dta: 0,
|
prd_dta: 0,
|
||||||
val_nrm: Fixed::from_int(0),
|
val_nrm: Fixed::from_int(0),
|
||||||
val_dta: Fixed::from_int(0)},
|
val_dta: Fixed::from_int(0)},
|
||||||
tag: 0},
|
tag: 0},
|
||||||
|
|
||||||
// Flourescent
|
// Flourescent
|
||||||
Light{ltype: LightType::Normal,
|
Light{ltype: LightType::Normal,
|
||||||
flags: LightFlags::SLAVE_VALUE,
|
flags: LightFlags::SLAVE_VALUE,
|
||||||
phase: 0,
|
phase: 0,
|
||||||
act_pri: LightFunc{ftype: LightFuncType::Constant,
|
act_pri: ltfn::LightFunc{ftype: ltfn::LightFuncType::Constant,
|
||||||
prd_nrm: TICKS_PER_SECOND,
|
prd_nrm: TICKS_PER_SECOND,
|
||||||
prd_dta: 0,
|
prd_dta: 0,
|
||||||
val_nrm: Fixed::from_int(1),
|
val_nrm: Fixed::from_int(1),
|
||||||
val_dta: Fixed::from_int(0)},
|
val_dta: Fixed::from_int(0)},
|
||||||
act_sec: LightFunc{ftype: LightFuncType::Constant,
|
act_sec: ltfn::LightFunc{ftype: ltfn::LightFuncType::Constant,
|
||||||
prd_nrm: TICKS_PER_SECOND,
|
prd_nrm: TICKS_PER_SECOND,
|
||||||
prd_dta: 0,
|
prd_dta: 0,
|
||||||
val_nrm: Fixed::from_int(1),
|
val_nrm: Fixed::from_int(1),
|
||||||
val_dta: Fixed::from_int(0)},
|
val_dta: Fixed::from_int(0)},
|
||||||
act_mid: LightFunc{ftype: LightFuncType::Fluorescent,
|
act_mid: ltfn::LightFunc{ftype: ltfn::LightFuncType::Fluorescent,
|
||||||
prd_nrm: TICKS_PER_SECOND * 3,
|
prd_nrm: TICKS_PER_SECOND * 3,
|
||||||
prd_dta: 0,
|
prd_dta: 0,
|
||||||
val_nrm: Fixed::from_int(1),
|
val_nrm: Fixed::from_int(1),
|
||||||
val_dta: Fixed::from_int(0)},
|
val_dta: Fixed::from_int(0)},
|
||||||
ina_pri: LightFunc{ftype: LightFuncType::Constant,
|
ina_pri: ltfn::LightFunc{ftype: ltfn::LightFuncType::Constant,
|
||||||
prd_nrm: TICKS_PER_SECOND,
|
prd_nrm: TICKS_PER_SECOND,
|
||||||
prd_dta: 0,
|
prd_dta: 0,
|
||||||
val_nrm: Fixed::from_int(0),
|
val_nrm: Fixed::from_int(0),
|
||||||
val_dta: Fixed::from_int(0)},
|
val_dta: Fixed::from_int(0)},
|
||||||
ina_sec: LightFunc{ftype: LightFuncType::Constant,
|
ina_sec: ltfn::LightFunc{ftype: ltfn::LightFuncType::Constant,
|
||||||
prd_nrm: TICKS_PER_SECOND,
|
prd_nrm: TICKS_PER_SECOND,
|
||||||
prd_dta: 0,
|
prd_dta: 0,
|
||||||
val_nrm: Fixed::from_int(0),
|
val_nrm: Fixed::from_int(0),
|
||||||
val_dta: Fixed::from_int(0)},
|
val_dta: Fixed::from_int(0)},
|
||||||
ina_mid: LightFunc{ftype: LightFuncType::Constant,
|
ina_mid: ltfn::LightFunc{ftype: ltfn::LightFuncType::Constant,
|
||||||
prd_nrm: 1,
|
prd_nrm: 1,
|
||||||
prd_dta: 0,
|
prd_dta: 0,
|
||||||
val_nrm: Fixed::from_int(0),
|
val_nrm: Fixed::from_int(0),
|
||||||
val_dta: Fixed::from_int(0)},
|
val_dta: Fixed::from_int(0)},
|
||||||
tag: 0},
|
tag: 0},
|
||||||
|
|
||||||
// Strobe
|
// Strobe
|
||||||
Light{ltype: LightType::Normal,
|
Light{ltype: LightType::Normal,
|
||||||
flags: LightFlags::SLAVE_VALUE,
|
flags: LightFlags::SLAVE_VALUE,
|
||||||
phase: 0,
|
phase: 0,
|
||||||
act_pri: LightFunc{ftype: LightFuncType::Constant,
|
act_pri: ltfn::LightFunc{ftype: ltfn::LightFuncType::Constant,
|
||||||
prd_nrm: TICKS_PER_SECOND,
|
prd_nrm: TICKS_PER_SECOND,
|
||||||
prd_dta: 0,
|
prd_dta: 0,
|
||||||
val_nrm: Fixed::from_int(1),
|
val_nrm: Fixed::from_int(1),
|
||||||
val_dta: Fixed::from_int(0)},
|
val_dta: Fixed::from_int(0)},
|
||||||
act_sec: LightFunc{ftype: LightFuncType::Constant,
|
act_sec: ltfn::LightFunc{ftype: ltfn::LightFuncType::Constant,
|
||||||
prd_nrm: TICKS_PER_SECOND,
|
prd_nrm: TICKS_PER_SECOND,
|
||||||
prd_dta: 0,
|
prd_dta: 0,
|
||||||
val_nrm: Fixed::from_int(0),
|
val_nrm: Fixed::from_int(0),
|
||||||
val_dta: Fixed::from_int(0)},
|
val_dta: Fixed::from_int(0)},
|
||||||
act_mid: LightFunc{ftype: LightFuncType::Constant,
|
act_mid: ltfn::LightFunc{ftype: ltfn::LightFuncType::Constant,
|
||||||
prd_nrm: 1,
|
prd_nrm: 1,
|
||||||
prd_dta: 0,
|
prd_dta: 0,
|
||||||
val_nrm: Fixed::from_int(1),
|
val_nrm: Fixed::from_int(1),
|
||||||
val_dta: Fixed::from_int(0)},
|
val_dta: Fixed::from_int(0)},
|
||||||
ina_pri: LightFunc{ftype: LightFuncType::Constant,
|
ina_pri: ltfn::LightFunc{ftype: ltfn::LightFuncType::Constant,
|
||||||
prd_nrm: TICKS_PER_SECOND,
|
prd_nrm: TICKS_PER_SECOND,
|
||||||
prd_dta: 0,
|
prd_dta: 0,
|
||||||
val_nrm: Fixed::from_int(0),
|
val_nrm: Fixed::from_int(0),
|
||||||
val_dta: Fixed::from_int(0)},
|
val_dta: Fixed::from_int(0)},
|
||||||
ina_sec: LightFunc{ftype: LightFuncType::Constant,
|
ina_sec: ltfn::LightFunc{ftype: ltfn::LightFuncType::Constant,
|
||||||
prd_nrm: TICKS_PER_SECOND,
|
prd_nrm: TICKS_PER_SECOND,
|
||||||
prd_dta: 0,
|
prd_dta: 0,
|
||||||
val_nrm: Fixed::from_int(1),
|
val_nrm: Fixed::from_int(1),
|
||||||
val_dta: Fixed::from_int(0)},
|
val_dta: Fixed::from_int(0)},
|
||||||
ina_mid: LightFunc{ftype: LightFuncType::Constant,
|
ina_mid: ltfn::LightFunc{ftype: ltfn::LightFuncType::Constant,
|
||||||
prd_nrm: 1,
|
prd_nrm: 1,
|
||||||
prd_dta: 0,
|
prd_dta: 0,
|
||||||
val_nrm: Fixed::from_int(0),
|
val_nrm: Fixed::from_int(0),
|
||||||
val_dta: Fixed::from_int(0)},
|
val_dta: Fixed::from_int(0)},
|
||||||
tag: 0},
|
tag: 0},
|
||||||
|
|
||||||
// Flicker
|
// Flicker
|
||||||
Light{ltype: LightType::Normal,
|
Light{ltype: LightType::Normal,
|
||||||
flags: LightFlags::SLAVE_VALUE,
|
flags: LightFlags::SLAVE_VALUE,
|
||||||
phase: 0,
|
phase: 0,
|
||||||
act_pri: LightFunc{ftype: LightFuncType::Constant,
|
act_pri: ltfn::LightFunc{ftype: ltfn::LightFuncType::Constant,
|
||||||
prd_nrm: TICKS_PER_SECOND,
|
prd_nrm: TICKS_PER_SECOND,
|
||||||
prd_dta: 0,
|
prd_dta: 0,
|
||||||
val_nrm: Fixed::from_int(1),
|
val_nrm: Fixed::from_int(1),
|
||||||
val_dta: Fixed::from_int(0)},
|
val_dta: Fixed::from_int(0)},
|
||||||
act_sec: LightFunc{ftype: LightFuncType::Constant,
|
act_sec: ltfn::LightFunc{ftype: ltfn::LightFuncType::Constant,
|
||||||
prd_nrm: TICKS_PER_SECOND,
|
prd_nrm: TICKS_PER_SECOND,
|
||||||
prd_dta: 0,
|
prd_dta: 0,
|
||||||
val_nrm: Fixed::from_int(1),
|
val_nrm: Fixed::from_int(1),
|
||||||
val_dta: Fixed::from_int(0)},
|
val_dta: Fixed::from_int(0)},
|
||||||
act_mid: LightFunc{ftype: LightFuncType::Flicker,
|
act_mid: ltfn::LightFunc{ftype: ltfn::LightFuncType::Flicker,
|
||||||
prd_nrm: TICKS_PER_SECOND * 3,
|
prd_nrm: TICKS_PER_SECOND * 3,
|
||||||
prd_dta: 0,
|
prd_dta: 0,
|
||||||
val_nrm: Fixed::from_int(1),
|
val_nrm: Fixed::from_int(1),
|
||||||
val_dta: Fixed::from_int(0)},
|
val_dta: Fixed::from_int(0)},
|
||||||
ina_pri: LightFunc{ftype: LightFuncType::Constant,
|
ina_pri: ltfn::LightFunc{ftype: ltfn::LightFuncType::Constant,
|
||||||
prd_nrm: TICKS_PER_SECOND,
|
prd_nrm: TICKS_PER_SECOND,
|
||||||
prd_dta: 0,
|
prd_dta: 0,
|
||||||
val_nrm: Fixed::from_int(0),
|
val_nrm: Fixed::from_int(0),
|
||||||
val_dta: Fixed::from_int(0)},
|
val_dta: Fixed::from_int(0)},
|
||||||
ina_sec: LightFunc{ftype: LightFuncType::Constant,
|
ina_sec: ltfn::LightFunc{ftype: ltfn::LightFuncType::Constant,
|
||||||
prd_nrm: TICKS_PER_SECOND,
|
prd_nrm: TICKS_PER_SECOND,
|
||||||
prd_dta: 0,
|
prd_dta: 0,
|
||||||
val_nrm: Fixed::from_int(0),
|
val_nrm: Fixed::from_int(0),
|
||||||
val_dta: Fixed::from_int(0)},
|
val_dta: Fixed::from_int(0)},
|
||||||
ina_mid: LightFunc{ftype: LightFuncType::Constant,
|
ina_mid: ltfn::LightFunc{ftype: ltfn::LightFuncType::Constant,
|
||||||
prd_nrm: 1,
|
prd_nrm: 1,
|
||||||
prd_dta: 0,
|
prd_dta: 0,
|
||||||
val_nrm: Fixed::from_int(0),
|
val_nrm: Fixed::from_int(0),
|
||||||
val_dta: Fixed::from_int(0)},
|
val_dta: Fixed::from_int(0)},
|
||||||
tag: 0},
|
tag: 0},
|
||||||
|
|
||||||
// Pulsate
|
// Pulsate
|
||||||
Light{ltype: LightType::Normal,
|
Light{ltype: LightType::Normal,
|
||||||
flags: LightFlags::SLAVE_VALUE,
|
flags: LightFlags::SLAVE_VALUE,
|
||||||
phase: 0,
|
phase: 0,
|
||||||
act_pri: LightFunc{ftype: LightFuncType::Smooth,
|
act_pri: ltfn::LightFunc{ftype: ltfn::LightFuncType::Smooth,
|
||||||
prd_nrm: TICKS_PER_SECOND * 2,
|
prd_nrm: TICKS_PER_SECOND * 2,
|
||||||
prd_dta: 0,
|
prd_dta: 0,
|
||||||
val_nrm: Fixed::from_int(1),
|
val_nrm: Fixed::from_int(1),
|
||||||
val_dta: Fixed::from_int(0)},
|
val_dta: Fixed::from_int(0)},
|
||||||
act_sec: LightFunc{ftype: LightFuncType::Smooth,
|
act_sec: ltfn::LightFunc{ftype: ltfn::LightFuncType::Smooth,
|
||||||
prd_nrm: TICKS_PER_SECOND * 2 - 1,
|
prd_nrm: TICKS_PER_SECOND * 2 - 1,
|
||||||
prd_dta: 0,
|
prd_dta: 0,
|
||||||
val_nrm: Fixed::from_int(0),
|
val_nrm: Fixed::from_int(0),
|
||||||
val_dta: Fixed::from_int(0)},
|
val_dta: Fixed::from_int(0)},
|
||||||
act_mid: LightFunc{ftype: LightFuncType::Smooth,
|
act_mid: ltfn::LightFunc{ftype: ltfn::LightFuncType::Smooth,
|
||||||
prd_nrm: TICKS_PER_SECOND * 2 - 1,
|
prd_nrm: TICKS_PER_SECOND * 2 - 1,
|
||||||
prd_dta: 0,
|
prd_dta: 0,
|
||||||
val_nrm: Fixed::from_int(1),
|
val_nrm: Fixed::from_int(1),
|
||||||
val_dta: Fixed::from_int(0)},
|
val_dta: Fixed::from_int(0)},
|
||||||
ina_pri: LightFunc{ftype: LightFuncType::Smooth,
|
ina_pri: ltfn::LightFunc{ftype: ltfn::LightFuncType::Smooth,
|
||||||
prd_nrm: TICKS_PER_SECOND * 2,
|
prd_nrm: TICKS_PER_SECOND * 2,
|
||||||
prd_dta: 0,
|
prd_dta: 0,
|
||||||
val_nrm: Fixed::from_int(0),
|
val_nrm: Fixed::from_int(0),
|
||||||
val_dta: Fixed::from_int(0)},
|
val_dta: Fixed::from_int(0)},
|
||||||
ina_sec: LightFunc{ftype: LightFuncType::Smooth,
|
ina_sec: ltfn::LightFunc{ftype: ltfn::LightFuncType::Smooth,
|
||||||
prd_nrm: TICKS_PER_SECOND * 2 - 1,
|
prd_nrm: TICKS_PER_SECOND * 2 - 1,
|
||||||
prd_dta: 0,
|
prd_dta: 0,
|
||||||
val_nrm: Fixed::from_int(1),
|
val_nrm: Fixed::from_int(1),
|
||||||
val_dta: Fixed::from_int(0)},
|
val_dta: Fixed::from_int(0)},
|
||||||
ina_mid: LightFunc{ftype: LightFuncType::Smooth,
|
ina_mid: ltfn::LightFunc{ftype: ltfn::LightFuncType::Smooth,
|
||||||
prd_nrm: TICKS_PER_SECOND * 2,
|
prd_nrm: TICKS_PER_SECOND * 2,
|
||||||
prd_dta: 0,
|
prd_dta: 0,
|
||||||
val_nrm: Fixed::from_int(0),
|
val_nrm: Fixed::from_int(0),
|
||||||
val_dta: Fixed::from_int(0)},
|
val_dta: Fixed::from_int(0)},
|
||||||
tag: 0},
|
tag: 0},
|
||||||
|
|
||||||
// Annoying
|
// Annoying
|
||||||
Light{ltype: LightType::Normal,
|
Light{ltype: LightType::Normal,
|
||||||
flags: LightFlags::SLAVE_VALUE,
|
flags: LightFlags::SLAVE_VALUE,
|
||||||
phase: 0,
|
phase: 0,
|
||||||
act_pri: LightFunc{ftype: LightFuncType::Random,
|
act_pri: ltfn::LightFunc{ftype: ltfn::LightFuncType::Random,
|
||||||
prd_nrm: 2,
|
prd_nrm: 2,
|
||||||
prd_dta: 1,
|
prd_dta: 1,
|
||||||
val_nrm: Fixed::from_int(1),
|
val_nrm: Fixed::from_int(1),
|
||||||
val_dta: Fixed::from_int(0)},
|
val_dta: Fixed::from_int(0)},
|
||||||
act_sec: LightFunc{ftype: LightFuncType::Constant,
|
act_sec: ltfn::LightFunc{ftype: ltfn::LightFuncType::Constant,
|
||||||
prd_nrm: 2,
|
prd_nrm: 2,
|
||||||
prd_dta: 0,
|
prd_dta: 0,
|
||||||
val_nrm: Fixed::from_int(0),
|
val_nrm: Fixed::from_int(0),
|
||||||
val_dta: Fixed::from_int(0)},
|
val_dta: Fixed::from_int(0)},
|
||||||
act_mid: LightFunc{ftype: LightFuncType::Random,
|
act_mid: ltfn::LightFunc{ftype: ltfn::LightFuncType::Random,
|
||||||
prd_nrm: 1,
|
prd_nrm: 1,
|
||||||
prd_dta: 0,
|
prd_dta: 0,
|
||||||
val_nrm: Fixed::from_int(1),
|
val_nrm: Fixed::from_int(1),
|
||||||
val_dta: Fixed::from_int(0)},
|
val_dta: Fixed::from_int(0)},
|
||||||
ina_pri: LightFunc{ftype: LightFuncType::Constant,
|
ina_pri: ltfn::LightFunc{ftype: ltfn::LightFuncType::Constant,
|
||||||
prd_nrm: TICKS_PER_SECOND,
|
prd_nrm: TICKS_PER_SECOND,
|
||||||
prd_dta: 0,
|
prd_dta: 0,
|
||||||
val_nrm: Fixed::from_int(0),
|
val_nrm: Fixed::from_int(0),
|
||||||
val_dta: Fixed::from_int(0)},
|
val_dta: Fixed::from_int(0)},
|
||||||
ina_sec: LightFunc{ftype: LightFuncType::Constant,
|
ina_sec: ltfn::LightFunc{ftype: ltfn::LightFuncType::Constant,
|
||||||
prd_nrm: TICKS_PER_SECOND,
|
prd_nrm: TICKS_PER_SECOND,
|
||||||
prd_dta: 0,
|
prd_dta: 0,
|
||||||
val_nrm: Fixed::from_int(0),
|
val_nrm: Fixed::from_int(0),
|
||||||
val_dta: Fixed::from_int(0)},
|
val_dta: Fixed::from_int(0)},
|
||||||
ina_mid: LightFunc{ftype: LightFuncType::Constant,
|
ina_mid: ltfn::LightFunc{ftype: ltfn::LightFuncType::Constant,
|
||||||
prd_nrm: TICKS_PER_SECOND,
|
prd_nrm: TICKS_PER_SECOND,
|
||||||
prd_dta: 0,
|
prd_dta: 0,
|
||||||
val_nrm: Fixed::from_int(0),
|
val_nrm: Fixed::from_int(0),
|
||||||
val_dta: Fixed::from_int(0)},
|
val_dta: Fixed::from_int(0)},
|
||||||
tag: 0},
|
tag: 0},
|
||||||
|
|
||||||
// Energy Efficient
|
// Energy Efficient
|
||||||
Light{ltype: LightType::Normal,
|
Light{ltype: LightType::Normal,
|
||||||
flags: LightFlags::SLAVE_VALUE,
|
flags: LightFlags::SLAVE_VALUE,
|
||||||
phase: 0,
|
phase: 0,
|
||||||
act_pri: LightFunc{ftype: LightFuncType::Constant,
|
act_pri: ltfn::LightFunc{ftype: ltfn::LightFuncType::Constant,
|
||||||
prd_nrm: TICKS_PER_SECOND,
|
prd_nrm: TICKS_PER_SECOND,
|
||||||
prd_dta: 0,
|
prd_dta: 0,
|
||||||
val_nrm: Fixed::from_int(1),
|
val_nrm: Fixed::from_int(1),
|
||||||
val_dta: Fixed::from_int(0)},
|
val_dta: Fixed::from_int(0)},
|
||||||
act_sec: LightFunc{ftype: LightFuncType::Constant,
|
act_sec: ltfn::LightFunc{ftype: ltfn::LightFuncType::Constant,
|
||||||
prd_nrm: TICKS_PER_SECOND,
|
prd_nrm: TICKS_PER_SECOND,
|
||||||
prd_dta: 0,
|
prd_dta: 0,
|
||||||
val_nrm: Fixed::from_int(0),
|
val_nrm: Fixed::from_int(0),
|
||||||
val_dta: Fixed::from_int(0)},
|
val_dta: Fixed::from_int(0)},
|
||||||
act_mid: LightFunc{ftype: LightFuncType::Linear,
|
act_mid: ltfn::LightFunc{ftype: ltfn::LightFuncType::Linear,
|
||||||
prd_nrm: TICKS_PER_SECOND * 2,
|
prd_nrm: TICKS_PER_SECOND * 2,
|
||||||
prd_dta: 0,
|
prd_dta: 0,
|
||||||
val_nrm: Fixed::from_int(1),
|
val_nrm: Fixed::from_int(1),
|
||||||
val_dta: Fixed::from_int(0)},
|
val_dta: Fixed::from_int(0)},
|
||||||
ina_pri: LightFunc{ftype: LightFuncType::Constant,
|
ina_pri: ltfn::LightFunc{ftype: ltfn::LightFuncType::Constant,
|
||||||
prd_nrm: TICKS_PER_SECOND,
|
prd_nrm: TICKS_PER_SECOND,
|
||||||
prd_dta: 0,
|
prd_dta: 0,
|
||||||
val_nrm: Fixed::from_int(0),
|
val_nrm: Fixed::from_int(0),
|
||||||
val_dta: Fixed::from_int(0)},
|
val_dta: Fixed::from_int(0)},
|
||||||
ina_sec: LightFunc{ftype: LightFuncType::Constant,
|
ina_sec: ltfn::LightFunc{ftype: ltfn::LightFuncType::Constant,
|
||||||
prd_nrm: TICKS_PER_SECOND,
|
prd_nrm: TICKS_PER_SECOND,
|
||||||
prd_dta: 0,
|
prd_dta: 0,
|
||||||
val_nrm: Fixed::from_int(0),
|
val_nrm: Fixed::from_int(0),
|
||||||
val_dta: Fixed::from_int(0)},
|
val_dta: Fixed::from_int(0)},
|
||||||
ina_mid: LightFunc{ftype: LightFuncType::Linear,
|
ina_mid: ltfn::LightFunc{ftype: ltfn::LightFuncType::Linear,
|
||||||
prd_nrm: TICKS_PER_SECOND * 2,
|
prd_nrm: TICKS_PER_SECOND * 2,
|
||||||
prd_dta: 0,
|
prd_dta: 0,
|
||||||
val_nrm: Fixed::from_int(0),
|
val_nrm: Fixed::from_int(0),
|
||||||
val_dta: Fixed::from_int(0)},
|
val_dta: Fixed::from_int(0)},
|
||||||
tag: 0},
|
tag: 0},
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
use crate::{durandal::{bin::OptU16, err::*, fixed::{Angle, Fixed, Unit}},
|
use crate::{durandal::{bin::OptU16, err::*, fixed::{Angle, Fixed, Unit}},
|
||||||
marathon::xfer::TransferMode};
|
marathon::xfer::TransferMode};
|
||||||
use super::pnts::*;
|
use super::pnts;
|
||||||
|
|
||||||
/// Reads a `medi` chunk.
|
/// Reads a `medi` chunk.
|
||||||
pub fn read(b: &[u8]) -> ResultS<(Media, usize)>
|
pub fn read(b: &[u8]) -> ResultS<(Media, usize)>
|
||||||
|
@ -16,7 +16,7 @@ pub fn read(b: &[u8]) -> ResultS<(Media, usize)>
|
||||||
let mag = Unit[8];
|
let mag = Unit[8];
|
||||||
let hei_lo = Unit[10];
|
let hei_lo = Unit[10];
|
||||||
let hei_hi = Unit[12];
|
let hei_hi = Unit[12];
|
||||||
let orig = read_point[14; 4];
|
let orig = pnts::read_o[14; 4];
|
||||||
let hei_nrm = Unit[18];
|
let hei_nrm = Unit[18];
|
||||||
let min_lt = Fixed[20];
|
let min_lt = Fixed[20];
|
||||||
let texture = OptU16[24];
|
let texture = OptU16[24];
|
||||||
|
@ -42,7 +42,7 @@ pub struct Media
|
||||||
pub mag: Unit,
|
pub mag: Unit,
|
||||||
pub hei_lo: Unit,
|
pub hei_lo: Unit,
|
||||||
pub hei_hi: Unit,
|
pub hei_hi: Unit,
|
||||||
pub orig: Point,
|
pub orig: pnts::Point,
|
||||||
pub hei_nrm: Unit,
|
pub hei_nrm: Unit,
|
||||||
pub min_lt: Fixed,
|
pub min_lt: Fixed,
|
||||||
pub texture: OptU16,
|
pub texture: OptU16,
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
//! `Note` type.
|
//! `Note` type.
|
||||||
|
|
||||||
use crate::{durandal::err::*, marathon::text::*};
|
use crate::{durandal::err::*, marathon::text::*};
|
||||||
use super::pnts::*;
|
use super::pnts;
|
||||||
|
|
||||||
/// Reads a `NOTE` chunk.
|
/// Reads a `NOTE` chunk.
|
||||||
pub fn read(b: &[u8]) -> ResultS<(Note, usize)>
|
pub fn read(b: &[u8]) -> ResultS<(Note, usize)>
|
||||||
{
|
{
|
||||||
read_data! {
|
read_data! {
|
||||||
endian: BIG, buf: b, size: 72, start: 0, data {
|
endian: BIG, buf: b, size: 72, start: 0, data {
|
||||||
let pos = read_point[2; 4];
|
let pos = pnts::read_o[2; 4];
|
||||||
let poly = u16[6];
|
let poly = u16[6];
|
||||||
let text = mac_roman_cstr[8; 64] no_try;
|
let text = mac_roman_cstr[8; 64] no_try;
|
||||||
}
|
}
|
||||||
|
@ -22,7 +22,7 @@ pub fn read(b: &[u8]) -> ResultS<(Note, usize)>
|
||||||
#[derive(Debug, Eq, PartialEq)]
|
#[derive(Debug, Eq, PartialEq)]
|
||||||
pub struct Note
|
pub struct Note
|
||||||
{
|
{
|
||||||
pub pos: Point,
|
pub pos: pnts::Point,
|
||||||
pub poly: u16,
|
pub poly: u16,
|
||||||
pub text: String,
|
pub text: String,
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
use crate::durandal::{err::*, fixed::Unit};
|
use crate::durandal::{err::*, fixed::Unit};
|
||||||
|
|
||||||
/// Reads a `Point` object.
|
/// Reads a `Point` object.
|
||||||
pub fn read_point(b: &[u8]) -> ResultS<Point>
|
pub fn read_o(b: &[u8]) -> ResultS<Point>
|
||||||
{
|
{
|
||||||
read_data! {
|
read_data! {
|
||||||
endian: BIG, buf: b, size: 4, start: 0, data {
|
endian: BIG, buf: b, size: 4, start: 0, data {
|
||||||
|
@ -16,7 +16,7 @@ pub fn read_point(b: &[u8]) -> ResultS<Point>
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Writes a `Point` object.
|
/// Writes a `Point` object.
|
||||||
pub fn write_point(v: Point) -> Vec<u8>
|
pub fn write_o(v: Point) -> Vec<u8>
|
||||||
{
|
{
|
||||||
let mut o = Vec::with_capacity(4);
|
let mut o = Vec::with_capacity(4);
|
||||||
o.extend(&v.x.to_be_bytes());
|
o.extend(&v.x.to_be_bytes());
|
||||||
|
@ -27,7 +27,7 @@ pub fn write_point(v: Point) -> Vec<u8>
|
||||||
/// Reads a `PNTS` chunk.
|
/// Reads a `PNTS` chunk.
|
||||||
pub fn read(b: &[u8]) -> ResultS<(Point, usize)>
|
pub fn read(b: &[u8]) -> ResultS<(Point, usize)>
|
||||||
{
|
{
|
||||||
Ok((read_point(b)?, 4))
|
Ok((read_o(b)?, 4))
|
||||||
}
|
}
|
||||||
|
|
||||||
/// A point in world-space.
|
/// A point in world-space.
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
use crate::{durandal::{bin::OptU16, err::*, fixed::Unit},
|
use crate::{durandal::{bin::OptU16, err::*, fixed::Unit},
|
||||||
marathon::xfer::TransferMode};
|
marathon::xfer::TransferMode};
|
||||||
use super::pnts::*;
|
use super::pnts;
|
||||||
use bitflags::bitflags;
|
use bitflags::bitflags;
|
||||||
|
|
||||||
/// Reads a polygon for either M1 or M2.
|
/// Reads a polygon for either M1 or M2.
|
||||||
|
@ -32,8 +32,8 @@ pub fn read(b: &[u8]) -> ResultS<(Polygon, usize)>
|
||||||
endian: BIG, buf: b, size: 128, start: 0, data {
|
endian: BIG, buf: b, size: 128, start: 0, data {
|
||||||
let ptype = u16[0];
|
let ptype = u16[0];
|
||||||
let pdata = u16[4];
|
let pdata = u16[4];
|
||||||
let ori_flr = read_point[108; 4];
|
let ori_flr = pnts::read_o[108; 4];
|
||||||
let ori_cei = read_point[112; 4];
|
let ori_cei = pnts::read_o[112; 4];
|
||||||
let med_ind = OptU16[116];
|
let med_ind = OptU16[116];
|
||||||
let med_ctl = u16[118];
|
let med_ctl = u16[118];
|
||||||
let snd_amb = OptU16[122];
|
let snd_amb = OptU16[122];
|
||||||
|
@ -143,8 +143,8 @@ pub struct Polygon
|
||||||
pub lit_cei: u16,
|
pub lit_cei: u16,
|
||||||
pub xfr_flr: TransferMode,
|
pub xfr_flr: TransferMode,
|
||||||
pub xfr_cei: TransferMode,
|
pub xfr_cei: TransferMode,
|
||||||
pub ori_flr: Point,
|
pub ori_flr: pnts::Point,
|
||||||
pub ori_cei: Point,
|
pub ori_cei: pnts::Point,
|
||||||
pub med_ind: OptU16,
|
pub med_ind: OptU16,
|
||||||
pub med_ctl: u16,
|
pub med_ctl: u16,
|
||||||
pub snd_ind: u16,
|
pub snd_ind: u16,
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
use crate::{durandal::{bin::OptU16, err::*, fixed::Fixed},
|
use crate::{durandal::{bin::OptU16, err::*, fixed::Fixed},
|
||||||
marathon::xfer::TransferMode};
|
marathon::xfer::TransferMode};
|
||||||
use super::stex::{self, SideTex};
|
use super::stex;
|
||||||
use bitflags::bitflags;
|
use bitflags::bitflags;
|
||||||
|
|
||||||
/// Reads a `SIDS` chunk.
|
/// Reads a `SIDS` chunk.
|
||||||
|
@ -33,7 +33,7 @@ pub fn read_old(b: &[u8]) -> ResultS<(Side, usize)>
|
||||||
{
|
{
|
||||||
let (side, siz) = read(b)?;
|
let (side, siz) = read(b)?;
|
||||||
|
|
||||||
Ok((Side{tex_tra: SideTex{tex_id: OptU16::none(), ..side.tex_tra},
|
Ok((Side{tex_tra: stex::SideTex{tex_id: OptU16::none(), ..side.tex_tra},
|
||||||
shade: 0.into(),
|
shade: 0.into(),
|
||||||
flags: side.flags | SideFlags::ITEM_OPT,
|
flags: side.flags | SideFlags::ITEM_OPT,
|
||||||
..side}, siz))
|
..side}, siz))
|
||||||
|
@ -46,9 +46,9 @@ pub struct Side
|
||||||
{
|
{
|
||||||
pub stype: SideType,
|
pub stype: SideType,
|
||||||
pub flags: SideFlags,
|
pub flags: SideFlags,
|
||||||
pub tex_pri: SideTex,
|
pub tex_pri: stex::SideTex,
|
||||||
pub tex_sec: SideTex,
|
pub tex_sec: stex::SideTex,
|
||||||
pub tex_tra: SideTex,
|
pub tex_tra: stex::SideTex,
|
||||||
pub paneltyp: u16,
|
pub paneltyp: u16,
|
||||||
pub paneldat: i16,
|
pub paneldat: i16,
|
||||||
pub xfer_pri: TransferMode,
|
pub xfer_pri: TransferMode,
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
//! `SideTex` type.
|
//! `SideTex` type.
|
||||||
|
|
||||||
use crate::durandal::{bin::OptU16, err::*};
|
use crate::durandal::{bin::OptU16, err::*};
|
||||||
use super::pnts::*;
|
use super::pnts;
|
||||||
|
|
||||||
/// Reads a `SideTex` object.
|
/// Reads a `SideTex` object.
|
||||||
pub fn read(b: &[u8]) -> ResultS<SideTex>
|
pub fn read(b: &[u8]) -> ResultS<SideTex>
|
||||||
{
|
{
|
||||||
read_data! {
|
read_data! {
|
||||||
endian: BIG, buf: b, size: 6, start: 0, data {
|
endian: BIG, buf: b, size: 6, start: 0, data {
|
||||||
let offs = read_point[0; 4];
|
let offs = pnts::read_o[0; 4];
|
||||||
let tex_id = OptU16[4];
|
let tex_id = OptU16[4];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -20,7 +20,7 @@ pub fn read(b: &[u8]) -> ResultS<SideTex>
|
||||||
pub fn write(v: &SideTex) -> Vec<u8>
|
pub fn write(v: &SideTex) -> Vec<u8>
|
||||||
{
|
{
|
||||||
let mut o = Vec::with_capacity(6);
|
let mut o = Vec::with_capacity(6);
|
||||||
o.extend(write_point(v.offs));
|
o.extend(pnts::write_o(v.offs));
|
||||||
o.extend(&v.tex_id.to_be_bytes());
|
o.extend(&v.tex_id.to_be_bytes());
|
||||||
o
|
o
|
||||||
}
|
}
|
||||||
|
@ -30,7 +30,7 @@ pub fn write(v: &SideTex) -> Vec<u8>
|
||||||
#[derive(Debug, Eq, PartialEq)]
|
#[derive(Debug, Eq, PartialEq)]
|
||||||
pub struct SideTex
|
pub struct SideTex
|
||||||
{
|
{
|
||||||
pub offs: Point,
|
pub offs: pnts::Point,
|
||||||
pub tex_id: OptU16,
|
pub tex_id: OptU16,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue