Example #1
0
 def read(self, reader: ByteIO):
     self.file_hash = reader.read_uint32()
     self.type_hash = reader.read_uint32()
     self.fileNo = reader.read_uint16()
     self.part_count = reader.read_uint16()
     self.unk4 = reader.read_uint32()
     self.size1 = reader.read_uint64()
     self.total_size = reader.read_uint64()
Example #2
0
    def read(self, reader: ByteIO):
        self.name_offset = reader.read_uint32()
        self.hash = reader.read_uint32()
        self.type = reader.read_uint16()
        self.loader_index = reader.read_uint16()

        self.name = reader.read_from_offset(0x90 + self.name_offset,
                                            reader.read_ascii_string)
Example #3
0
 def read(self, reader: ByteIO):
     self.hash = reader.read_uint32()
     self.name_offset = reader.read_uint32()
     self.name = reader.read_from_offset(0x90 + self.name_offset,
                                         reader.read_ascii_string)
     self.unknown08 = reader.read_uint32()
     self.unknown0C = reader.read_uint32()
     self.unknown10 = reader.read_uint32()
Example #4
0
 def read(self, reader: ByteIO):
     self.name = reader.read_ascii_string()
     self.index = reader.read_uint32()
     self.offset = reader.read_uint32()
     self.size = reader.read_uint32()
     self.type_map_elements = reader.read_uint32()
     self.types = [reader.read_uint32() for _ in range(self.type_map_elements)]
     return self
Example #5
0
 def read(self, reader: ByteIO):
     self.name_hash = reader.read_uint32()
     self.type_hash = reader.read_uint32()
     self.fileNo = reader.read_uint16()
     self.size = reader.read_uint16()
     self.unk4 = reader.read_uint32()
     self.size1 = reader.read_uint64()
     self.size2 = reader.read_uint64()
Example #6
0
 def read(self, reader: ByteIO, is_x64=True):
     if is_x64:
         self.name_offset = reader.read_uint64()
     else:
         self.name_offset = reader.read_uint32()
     self.type_hash = reader.read_uint32()
     self.loader_type = reader.read_uint32()
     self.symbol_start = reader.read_uint32()
     self.symbols_to_resolve = reader.read_uint32()
     self.name = reader.read_from_offset(0x90 + self.name_offset,
                                         reader.read_ascii_string)
Example #7
0
 def read(self, reader: ByteIO):
     self.unk1 = reader.read_uint32()
     self.unk2 = reader.read_uint32()
     self.size = reader.read_uint32()
     self.offset = reader.read_uint32()
     self.file_hash = reader.read_uint32()
     self.unk6 = reader.read_uint32()
     self.type_hash = reader.read_uint32()
     self.unk8 = reader.read_uint32()
Example #8
0
 def read(self, reader: ByteIO):
     self.magic = reader.read_uint32()
     self.magic_s = "%X" % self.magic
     self.version = reader.read_uint32()
     self.face_count = reader.read_uint32()
     self.vertex_count = reader.read_uint32()
     self.vertex_size = reader.read_uint32()
     self.texture_count = reader.read_uint32()
     self.shader_count = reader.read_uint32()
     self.attrib_count = reader.read_uint32()
     self.read_attributes(reader)
     self.read_textures(reader)
     self.read_shaders(reader)
     self.read_indexes(reader)
     self.read_vertexes(reader)
Example #9
0
    def read(self, reader: ByteIO):
        items = reader.get_items()
        for item in items:
            item.seek_to()

            if item.type == 20:
                self.chunk_name = reader.read_ascii_string(reader.read_int32())
            if item.type == 21:
                self.name = reader.read_ascii_string(reader.read_int32())
            if item.type == 100:
                self.temp_path = reader.read_ascii_string(reader.read_int32())

            if item.type == 1:
                items2 = item.get_items()
                for item2 in items2:
                    item2.seek_to()
                    if item2.type == 30:
                        item2.seek_to()
                        self.size = reader.read_uint32()
                    if item2.type == 31:
                        self.data = reader.read_bytes(self.size)
Example #10
0
 def read(self, reader: ByteIO):
     self.unknown00 = reader.read_uint32()
     self.unknown08 = reader.read_uint64()
Example #11
0
    def read(self, reader: ByteIO):
        items = reader.get_items()
        for item in items:
            item.seek_to()

            if item.type == 20:
                self.chunk_name = reader.read_ascii_string(reader.read_int32())
            if item.type == 21:
                self.name = reader.read_ascii_string(reader.read_int32())
                print(self.name)
            if item.type == 1:
                items2 = item.get_items()
                for item2 in items2:
                    item2.seek_to()
                    if item2.type == 10:
                        reader.skip(3)
                        items4 = item2.get_items()
                        for item4 in items4:
                            item4.seek_to()
                            flag = reader.read_fmt('BBBB')
                            print(flag)
                            if flag == (7, 0, 65, 0):  #bone
                                items5 = item4.get_items()
                                for item5 in items5:
                                    print(item5)
                                    item5.seek_to()

                                    if item5.type == 20:
                                        b_name = reader.read_ascii_string(
                                            reader.read_int32())
                                        print('\t', b_name)
                                        self.bone_names.append(b_name)
                                    if item5.type == 24:
                                        items6 = item5.get_items()
                                        for item6 in items6:
                                            item6.seek_to()
                                            if item6.type == 21:
                                                self.frame_count = reader.read_uint32(
                                                )
                                            if item6.type == 22:
                                                self.frame_offset = reader.tell(
                                                )
                                        if self.frame_offset and self.frame_count:
                                            for _ in range(self.frame_count):
                                                self.anim_data.append(
                                                    reader.read_bytes(16))

                                    if item5.type == 25:
                                        items6 = item5.get_items()
                                        for item6 in items6:
                                            item6.seek_to()
                                            if item6.type == 21:
                                                items7 = item5.get_items()
                                                for item7 in items7:
                                                    item7.seek_to()
                                                    if item7.type == 22:
                                                        self.frame_count = reader.read_uint32(
                                                        )
                                                    if item7.type == 23:
                                                        self.frame_offset = reader.tell(
                                                        )
                                                    if item7.type == 30:
                                                        self.frame_count2 = reader.read_uint32(
                                                        )
                                                    if item7.type == 31:
                                                        self.frame_offset2 = reader.tell(
                                                        )

                                        if self.frame_offset and self.frame_count:
                                            reader.seek(self.frame_offset)
                                            for _ in range(self.frame_count):
                                                self.anim_data2.append(
                                                    reader.read_bytes(6))
                                        if self.frame_offset2 and self.frame_count2:
                                            reader.seek(self.frame_offset2)
                                            for _ in range(self.frame_count2):
                                                self.anim_data3.append(
                                                    reader.read_bytes(8))
Example #12
0
 def read(self, reader: ByteIO):
     self.name_offset = reader.read_uint32()
     self.name = reader.read_from_offset(0x90 + self.name_offset,
                                         reader.read_ascii_string)
Example #13
0
 def read(self, reader: ByteIO, archive_name_table_offset):
     self.nameIndex = reader.read_uint32()
     self.Block1a = reader.read_uint16()
     self.Block1b = reader.read_uint16()
     self.Block2a = reader.read_uint16()
     self.Block2b = reader.read_uint16()
     self.sub_header_count = reader.read_uint32()
     self.file_data_header_count = reader.read_uint16()
     self.file_type_header_count = reader.read_uint16()
     self.Block5a = reader.read_uint16()
     self.Block5b = reader.read_uint16()
     self.embedded_file_count = reader.read_uint32()
     self.relocation_num = reader.read_uint32()
     self.asset_count = reader.read_uint32()
     self.ovs_offset = reader.read_uint32()
     self.size_extra = reader.read_uint32()
     self.packed_size = reader.read_uint32()
     self.unpacked_size = reader.read_uint32()
     self.Unknown2 = reader.read_uint32()
     self.Unknown3 = reader.read_uint32()
     self.Header2Size = reader.read_uint32()
     self.Unknown5 = reader.read_uint32()
     self.name = reader.read_from_offset(
         archive_name_table_offset + self.nameIndex,
         reader.read_ascii_string)
Example #14
0
 def read(self, reader: ByteIO, archive_name_table_offset):
     self.name_offset = reader.read_uint32()
     self.name = reader.read_from_offset(
         archive_name_table_offset + self.name_offset,
         reader.read_ascii_string)
     self.unknown04 = reader.read_uint32()
     self.unknown08 = reader.read_uint32()
     self.fh2_count = reader.read_uint32()
     self.fh3_count = reader.read_uint16()
     self.headerTypeCnt = reader.read_uint16()
     self.zero14 = reader.read_uint32()
     self.unknown18 = reader.read_uint32()
     self.file_count = reader.read_uint32()
     self.symbol_count = reader.read_uint32()
     self.compressed_data_start = reader.read_uint32()
     self.unknown28 = reader.read_uint32()
     self.comp_size = reader.read_uint32()
     self.uncomp_size = reader.read_uint32()
     self.zero34 = reader.read_uint32()
     self.unknown38 = reader.read_uint32()
     self.header2_size = reader.read_uint32()
     self.unknown40 = reader.read_uint32()
Example #15
0
 def read(self, reader: ByteIO):
     self.file_hash = reader.read_uint32()
     self.local_type_hash = reader.read_uint32()
     self.chunk_id = reader.read_int32()
     self.offset = reader.read_int32()
Example #16
0
 def read(self, reader: ByteIO):
     self.name_hash = reader.read_uint32()
     self.type_hash = reader.read_uint32()
     self.chunk_id = reader.read_int32()
     self.offset = reader.read_int32()
Example #17
0
 def read(self, reader: ByteIO):
     self.unknown00 = reader.read_uint32()
     self.data_size = reader.read_uint32()
Example #18
0
 def read(self, reader: ByteIO):
     self.section1 = reader.read_uint32()
     self.offset1 = reader.read_uint32()
     self.section2 = reader.read_int32()
     self.offset2 = reader.read_int32()
Example #19
0
 def read(self, reader: ByteIO):
     self.sig = reader.read_fourcc()
     assert self.sig == 'FRES'
     self.flags, self.version, self.need_bswap, self.unknown07 = reader.read_fmt(
         '4B')
     self.flags2 = reader.read_uint32()
     self.unknown0C = reader.read_uint32()
     self.names_length = reader.read_uint32()
     self.unknown2_count = reader.read_uint32()
     self.other_count = reader.read_uint32()
     self.dir_count = reader.read_uint16()
     self.type_count = reader.read_uint16()
     self.file_count = reader.read_uint32()
     self.file_count2 = reader.read_uint32()
     self.part_count = reader.read_uint32()
     self.archive_count = reader.read_uint32()
     self.unknown30 = reader.read_uint32()
     self.unknown34 = reader.read_uint32()
     self.unknown38 = reader.read_uint32()
     self.unknown3C = reader.read_uint32()
     self.unknown_count = reader.read_uint32()
     self.unknown44 = reader.read_uint32()
     self.unknown48 = reader.read_uint32()
     self.unknown4C = reader.read_uint32()
     self.archive_names_length = reader.read_uint32()
     self.file_count3 = reader.read_uint32()
     self.type_names_length = reader.read_uint32()
     self.zero0C = reader.read_uint32()
     self.zero10 = reader.read_uint32()
     self.zero14 = reader.read_uint32()
     self.zero18 = reader.read_uint32()
     self.zero1C = reader.read_uint32()
     self.zero20 = reader.read_uint32()
     self.zero24 = reader.read_uint32()
     self.zero28 = reader.read_uint32()
     self.zero2C = reader.read_uint32()
     self.zero30 = reader.read_uint32()
     self.zero34 = reader.read_uint32()
     self.zero38 = reader.read_uint32()
     self.zero3C = reader.read_uint32()
Example #20
0
 def read_indexes(self, reader: ByteIO):
     self.indexes = [(reader.read_uint32(), reader.read_uint32(), reader.read_uint32()) for _ in
                     range(self.face_count)]