swf: Switch depth to u16

This commit is contained in:
Mike Welsh 2019-12-16 22:47:22 -08:00
parent 0f3bad8f1b
commit 4cb2cefc5b
4 changed files with 14 additions and 15 deletions

View File

@ -17,7 +17,6 @@ use std::cell::Ref;
use std::collections::{BTreeMap, HashMap};
use swf::read::SwfRead;
type Depth = i16;
type FrameNumber = u16;
/// A movie clip is a display object with its own timeline that runs independently of the root timeline.

View File

@ -586,7 +586,7 @@ impl<R: Read> Reader<R> {
},
Some(TagCode::SetTabIndex) => Tag::SetTabIndex {
depth: tag_reader.read_i16()?,
depth: tag_reader.read_u16()?,
tab_index: tag_reader.read_u16()?,
},
@ -1003,7 +1003,7 @@ impl<R: Read> Reader<R> {
states.insert(ButtonState::HitTest);
}
let id = self.read_u16()?;
let depth = self.read_i16()?;
let depth = self.read_u16()?;
let matrix = self.read_matrix()?;
let color_transform = if version >= 2 {
self.read_color_transform()?
@ -2056,7 +2056,7 @@ impl<R: Read> Reader<R> {
Ok(PlaceObject {
version: 1,
action: PlaceObjectAction::Place(reader.read_u16()?),
depth: reader.read_i16()?,
depth: reader.read_u16()?,
matrix: Some(reader.read_matrix()?),
color_transform: if !reader.get_ref().is_empty() {
Some(reader.read_color_transform_no_alpha()?)
@ -2085,7 +2085,7 @@ impl<R: Read> Reader<R> {
u16::from(self.read_u8()?)
};
let depth = self.read_i16()?;
let depth = self.read_u16()?;
// PlaceObject3
let is_image = (flags & 0b10000_00000000) != 0;
@ -2128,7 +2128,7 @@ impl<R: Read> Reader<R> {
None
};
let clip_depth = if (flags & 0b100_0000) != 0 {
Some(self.read_i16()?)
Some(self.read_u16()?)
} else {
None
};
@ -2190,13 +2190,13 @@ impl<R: Read> Reader<R> {
pub fn read_remove_object_1(&mut self) -> Result<RemoveObject> {
Ok(RemoveObject {
character_id: Some(self.read_u16()?),
depth: self.read_i16()?,
depth: self.read_u16()?,
})
}
pub fn read_remove_object_2(&mut self) -> Result<RemoveObject> {
Ok(RemoveObject {
depth: self.read_i16()?,
depth: self.read_u16()?,
character_id: None,
})
}

View File

@ -261,7 +261,7 @@ pub struct FrameLabelData {
pub label: String,
}
pub type Depth = i16;
pub type Depth = u16;
pub type CharacterId = u16;
#[derive(Debug, PartialEq)]

View File

@ -902,7 +902,7 @@ impl<W: Write> Writer<W> {
Tag::SetTabIndex { depth, tab_index } => {
self.write_tag_header(TagCode::SetTabIndex, 4)?;
self.write_i16(depth)?;
self.write_u16(depth)?;
self.write_u16(tab_index)?;
}
@ -921,7 +921,7 @@ impl<W: Write> Writer<W> {
} else {
self.write_tag_header(TagCode::RemoveObject2, 2)?;
}
self.write_i16(remove_object.depth)?;
self.write_u16(remove_object.depth)?;
}
Tag::SoundStreamBlock(ref data) => {
@ -1606,7 +1606,7 @@ impl<W: Write> Writer<W> {
};
self.write_u8(flags)?;
self.write_u16(record.id)?;
self.write_i16(record.depth)?;
self.write_u16(record.depth)?;
self.write_matrix(&record.matrix)?;
if tag_version >= 2 {
self.write_color_transform(&record.color_transform)?;
@ -1910,7 +1910,7 @@ impl<W: Write> Writer<W> {
"PlaceObject version 1 can only use a Place action.",
));
}
writer.write_i16(place_object.depth)?;
writer.write_u16(place_object.depth)?;
if let Some(ref matrix) = place_object.matrix {
writer.write_matrix(matrix)?;
} else {
@ -1998,7 +1998,7 @@ impl<W: Write> Writer<W> {
},
)?;
}
writer.write_i16(place_object.depth)?;
writer.write_u16(place_object.depth)?;
if place_object_version >= 3 {
if let Some(ref class_name) = place_object.class_name {
@ -2024,7 +2024,7 @@ impl<W: Write> Writer<W> {
writer.write_c_string(name)?;
};
if let Some(clip_depth) = place_object.clip_depth {
writer.write_i16(clip_depth)?;
writer.write_u16(clip_depth)?;
}
if place_object_version >= 3 {