# HG changeset patch # User Emmanuel Gil Peyrot # Date 1661871998 -7200 # Node ID 8a3b8e2ffa24701871a38e27657f13a250048e43 # Parent 2a5279168d5a42dc57757c06a88899935ddea6af formats: Expose color_key on Anm0 diff --git a/formats/src/th06/anm0.rs b/formats/src/th06/anm0.rs --- a/formats/src/th06/anm0.rs +++ b/formats/src/th06/anm0.rs @@ -55,8 +55,12 @@ pub struct Anm0 { pub size: (u32, u32), /// Format of this ANM. + // TODO: use an enum for that. pub format: u32, + /// Color key, probably used for transparency. + pub color_key: u32, + /// File name of the main image. pub png_filename: String, @@ -168,14 +172,14 @@ declare_anm_instructions!{ } fn parse_anm0(input: &[u8]) -> IResult<&[u8], Anm0> { - let (i, (num_sprites, num_scripts, _, width, height, format, _unknown1, - first_name_offset, _unused, second_name_offset, version, _unknown2, - _texture_offset, has_data, _next_offset, unknown3)) = + let (i, (num_sprites, num_scripts, _, width, height, format, color_key, + first_name_offset, _, second_name_offset, version, _, + _texture_offset, has_data, _next_offset, _)) = tuple((le_u32, le_u32, tag(b"\0\0\0\0"), le_u32, le_u32, le_u32, le_u32, le_u32, - le_u32, le_u32, le_u32, le_u32, le_u32, le_u32, le_u32, le_u32))(input)?; + tag(b"\0\0\0\0"), le_u32, le_u32, tag(b"\0\0\0\0"), le_u32, le_u32, le_u32, + tag(b"\0\0\0\0")))(input)?; assert_eq!(version, 0); - assert_eq!(unknown3, 0); assert_eq!(has_data, 0); let num_sprites = num_sprites as usize; let num_scripts = num_scripts as usize; @@ -268,6 +272,7 @@ fn parse_anm0(input: &[u8]) -> IResult<& let anm0 = Anm0 { size: (width, height), format, + color_key, png_filename, alpha_filename, sprites,