swf: Allow StyleChangeRecord in DefineShape v1
The spec says that StyleChangeRecord is only supported in DefineShape2+, but SWFs exist with StyleChangeRecord in DefineShape1 tags, and these play correctly in the Flash Player. (see #929 HAGIMURA_EXTREME.swf).
This commit is contained in:
parent
07122dc931
commit
4680b01f03
|
@ -2023,7 +2023,10 @@ impl<R: Read> Reader<R> {
|
|||
if (flags & 0b1000) != 0 {
|
||||
new_style.line_style = Some(self.read_ubits(num_line_bits)?);
|
||||
}
|
||||
if shape_version >= 2 && (flags & 0b10000) != 0 {
|
||||
// The spec says that StyleChangeRecord can only occur in DefineShape2+,
|
||||
// but SWFs in the wild exist with them in DefineShape1 (generated by third party tools),
|
||||
// and these run correctly in the Flash Player.
|
||||
if (flags & 0b10000) != 0 {
|
||||
let new_styles = self.read_shape_styles(shape_version)?;
|
||||
new_style.new_styles = Some(new_styles);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue