def parse_palette(data): palette = [] for a, b in iter_in_groups(data, 2): palette.append(unpack_color([a, b])) return palette
def parse_image(self, data): img = bytearray() for x, y, i in self.iter_image_indexes(2, 1): img += bytes(unpack_color(data[i:])) return img
def parse_image(data, width, height, flip_h=False, flip_v=False): img = bytearray() for x, y, i in iter.iter_image_indexes(width, height, 2, 1, flip_h, flip_v): img += bytes(unpack_color(data[i:])) return img
def from_bytes(data): self = Sprite() image_offsets = Sprite.read_offset_list( data[int.from_bytes(data[0:4], byteorder="big"):]) palette_offsets = Sprite.read_offset_list( data[int.from_bytes(data[4:8], byteorder="big"):]) self.max_components = int.from_bytes(data[8:0xC], byteorder="big") self.num_variations = int.from_bytes(data[0xC:0x10], byteorder="big") animation_offsets = Sprite.read_offset_list(data[0x10:]) for offset in palette_offsets: # 16 colors color_data = data[offset:offset + 16 * 2] self.palettes.append( [unpack_color(c) for c in iter_in_groups(color_data, 2)]) for offset in image_offsets: img = Image.from_bytes(data[offset:], data) self.images.append(img) for offset in animation_offsets: anim = [] for comp_offset in Sprite.read_offset_list(data[offset:]): comp = Component.from_bytes(data[comp_offset:], data) anim.append(comp) self.animations.append(anim) return self
def parse_palette(self, rom_bytes): data = rom_bytes[self.rom_start:self.rom_end] palette = [] for a, b in iter_in_groups(data, 2): palette.append(unpack_color([a, b])) return palette