diff --git a/core/src/display_object/movie_clip.rs b/core/src/display_object/movie_clip.rs index 3b93d522d..524409c6d 100644 --- a/core/src/display_object/movie_clip.rs +++ b/core/src/display_object/movie_clip.rs @@ -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. diff --git a/swf/src/read.rs b/swf/src/read.rs index 1020822e5..a5c739c29 100644 --- a/swf/src/read.rs +++ b/swf/src/read.rs @@ -586,7 +586,7 @@ impl Reader { }, 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 Reader { 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 Reader { 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 Reader { 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 Reader { None }; let clip_depth = if (flags & 0b100_0000) != 0 { - Some(self.read_i16()?) + Some(self.read_u16()?) } else { None }; @@ -2190,13 +2190,13 @@ impl Reader { pub fn read_remove_object_1(&mut self) -> Result { 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 { Ok(RemoveObject { - depth: self.read_i16()?, + depth: self.read_u16()?, character_id: None, }) } diff --git a/swf/src/types.rs b/swf/src/types.rs index 23f42207b..4f19bfea8 100644 --- a/swf/src/types.rs +++ b/swf/src/types.rs @@ -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)] diff --git a/swf/src/write.rs b/swf/src/write.rs index 5ea03200c..67664c4b8 100644 --- a/swf/src/write.rs +++ b/swf/src/write.rs @@ -902,7 +902,7 @@ impl Writer { 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 Writer { } 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 Writer { }; 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 Writer { "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 Writer { }, )?; } - 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 Writer { 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 {