add transfer modes
parent
e412a5e0ec
commit
41a3074fe1
|
@ -1,4 +1,5 @@
|
|||
use crate::durandal::{bin::*, chunk::*, err::*, fx32::*, text::mac_roman_conv};
|
||||
use crate::{durandal::{bin::*, chunk::*, err::*, fx32::*, text::mac_roman_conv},
|
||||
marathon::xfer::TransferMode};
|
||||
use bitflags::bitflags;
|
||||
use std::fmt;
|
||||
|
||||
|
@ -85,6 +86,9 @@ impl Chunked<Side> for Side
|
|||
let xfer_tra = c_u16b(b, 46)?;
|
||||
let shade = c_u32b(b, 48)?;
|
||||
let flags = ok!(SideFlags::from_bits(flags), "bad SideFlags")?;
|
||||
let xfer_pri = TransferMode::from_repr(xfer_pri)?;
|
||||
let xfer_sec = TransferMode::from_repr(xfer_sec)?;
|
||||
let xfer_tra = TransferMode::from_repr(xfer_tra)?;
|
||||
let shade = Fx32::from_bits(shade);
|
||||
Ok(Side{stype, flags, tex_pri, tex_sec, tex_tra, ex_tleft, ex_trigh,
|
||||
ex_bleft, ex_brigh, paneltyp, paneldat, xfer_pri, xfer_sec,
|
||||
|
@ -165,9 +169,9 @@ pub struct Side
|
|||
ex_brigh: Point,
|
||||
paneltyp: u16,
|
||||
paneldat: i16,
|
||||
xfer_pri: u16,
|
||||
xfer_sec: u16,
|
||||
xfer_tra: u16,
|
||||
xfer_pri: TransferMode,
|
||||
xfer_sec: TransferMode,
|
||||
xfer_tra: TransferMode,
|
||||
shade: Fx32,
|
||||
}
|
||||
|
||||
|
|
|
@ -6,5 +6,6 @@ pub mod pict;
|
|||
pub mod shp;
|
||||
pub mod term;
|
||||
pub mod wad;
|
||||
pub mod xfer;
|
||||
|
||||
// EOF
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
//! Marathon Shapes format handling.
|
||||
|
||||
use crate::durandal::{bin::*, err::*, fx32::*, image::*, text::*};
|
||||
use crate::{durandal::{bin::*, err::*, fx32::*, image::*, text::*},
|
||||
marathon::xfer::TransferMode};
|
||||
use bitflags::bitflags;
|
||||
|
||||
fn color(b: &[u8]) -> ResultS<(usize, ColorShp)>
|
||||
|
@ -155,6 +156,7 @@ fn sequence(b: &[u8]) -> ResultS<Sequence>
|
|||
let loop_f = c_u16b(b, 58)?;
|
||||
let name = mac_roman_conv(ok!(pascal_str(name), "bad string")?);
|
||||
let v_type = ViewType::from_repr(v_type)?;
|
||||
let xfer = TransferMode::from_repr(xfer)?;
|
||||
let snd_beg = ObjID::from_repr(snd_beg);
|
||||
let snd_key = ObjID::from_repr(snd_key);
|
||||
let snd_end = ObjID::from_repr(snd_end);
|
||||
|
@ -370,7 +372,7 @@ pub struct Sequence
|
|||
frames: u16,
|
||||
ticks: u16,
|
||||
key: u16,
|
||||
xfer: u16,
|
||||
xfer: TransferMode,
|
||||
xfer_pd: u16,
|
||||
snd_beg: ObjID,
|
||||
snd_key: ObjID,
|
||||
|
|
|
@ -0,0 +1,32 @@
|
|||
use crate::durandal::err::*;
|
||||
|
||||
c_enum! {
|
||||
#[derive(Debug)]
|
||||
pub enum TransferMode: u16
|
||||
{
|
||||
0 => Normal,
|
||||
1 => FadeBlack,
|
||||
2 => Invisibility,
|
||||
3 => Invisibility2,
|
||||
4 => Pulsate,
|
||||
5 => Wobble,
|
||||
6 => Wobble2,
|
||||
7 => Static,
|
||||
8 => Static2,
|
||||
9 => Sky,
|
||||
10 => Smear,
|
||||
11 => StaticFade,
|
||||
12 => StaticPulse,
|
||||
13 => FoldIn,
|
||||
14 => FoldOut,
|
||||
15 => SlideHorz,
|
||||
16 => SlideHorz2,
|
||||
17 => SlideVert,
|
||||
18 => SlideVert2,
|
||||
19 => Wander,
|
||||
20 => Wander2,
|
||||
21 => BigSky,
|
||||
}
|
||||
}
|
||||
|
||||
// EOF
|
Loading…
Reference in New Issue