def read_lap(fileobj): dat = {} data_length = read_uint32(fileobj) #unknown_short = self.fileobj.read(2) dat["sectionsize"] = data_length dat["data"] = fileobj.read(data_length) return dat
def read_hpsd(fileobj): dat = [] length = read_uint32(fileobj) string = fileobj.read(length) dat.append(length) dat.append(string) return dat
def read_dnos(fileobj): dat = {} dat["unknown_int"] = fileobj.read(4) dat["string_length"] = read_uint32(fileobj) dat["name"] = fileobj.read(dat["string_length"]) return dat
def read_dpsd(fileobj): dat = [] length = read_uint32(fileobj) bin_data = fileobj.read(length) dat.append(length) dat.append(bin_data) return dat
def read_section(f, memview): name = f.read(4) size = read_uint32(f) offset = f.tell() data = memoryview(memview[offset:(offset+size)])#f.read(data_len) f.seek(size, io.SEEK_CUR) #print(len(memview), len(f.getbuffer())) return name, size, data
def read_pim(fileobj): dat = {} sectionsize = read_uint32(fileobj) #unknown_short1 = self.fileobj.read(2) dat["sectionsize"] = sectionsize dat["data"] = fileobj.read(sectionsize) #print "PIM Section, size: {0}".format(sectionsize) return dat
def read_dxt(fileobj): dat = {} dat["unknown_int1"] = fileobj.read(4) # Only 0's? dat["unknown_ARGBstring"] = fileobj.read(8) #self.fileobj.read(2092) dat["unknown_int2"] = fileobj.read(4) # Only 0's? dat["unknown_byte1"] = fileobj.read(1) # always 0xFF? dat["unknown_int3_count"] = read_uint32(fileobj) # A count for something? dat["unknown_int4_count"] = fileobj.read(4) dat["unknown_byte2"] = fileobj.read(1) # Often 0x00, once 0x04? (in frontend_0_level.res) dat["unknown_short1"] = fileobj.read(2) # Not sure if short dat["unknown_int5"] = fileobj.read(4) # always 0xFF FF FF FF? dat["unknown_stuff"] = fileobj.read(16) # Unknown data, mostly 0's? Fourth to last byte is 0x1? return dat
def read_dxtg(fileobj): #dat = {} size = read_uint32(fileobj) name = fileobj.read(0x20).strip(b"\x00") unk_int2 = read_uint32_BE(fileobj) unk_int3 = read_uint32_BE(fileobj) unk_int4 = read_uint32_BE(fileobj) unk_int5 = read_uint32_BE(fileobj) image_type = fileobj.read(0x10).strip(b"\x00") unk_int6 = read_uint32_BE(fileobj) unk_int7 = read_uint32_BE(fileobj) unk_int8 = read_uint32_BE(fileobj) unk_int9 = read_uint32_BE(fileobj) unknown_ints = fileobj.read(0x10) unk_int10 = read_uint32_BE(fileobj) size_x = read_uint32_BE(fileobj) size_y = read_uint32_BE(fileobj) unk_int13 = read_uint32_BE(fileobj) return DxtgData(size, name, unk_int2, unk_int3, unk_int4, unk_int5, image_type, unk_int6, unk_int7, unk_int8, unk_int9, unknown_ints, unk_int10, size_x, size_y, unk_int13)
def read_ldom(fileobj): length = read_uint32(fileobj) data = fileobj.read(length) return length, data
def read_dpsd(fileobj): length = read_uint32(fileobj) bin_data = fileobj.read(length) return DpsdData(length, bin_data)
def read_dnos(fileobj): unk_int = fileobj.read(4) strlength = read_uint32(fileobj) name = fileobj.read(strlength) return DnosData(unk_int, strlength, name)
def read_lap(fileobj): data_length = read_uint32(fileobj) data = fileobj.read(data_length) return LapData(data_length, data)
def read_pim(fileobj): data_length = read_uint32(fileobj) data = fileobj.read(data_length) return PimData(data_length, data)
def read_txet(fileobj): dat = {} dat["unknown_int01"] = read_uint32(fileobj) dat["name_string"] = fileobj.read(16) dat["xsize"] = read_uint32(fileobj) dat["ysize"] = read_uint32(fileobj) dat["unknown_int04"] = read_uint32(fileobj) dat["unknown_flags"] = read_uint32(fileobj) nextBits = fileobj.read(4) # Extra data? Seems to be for TXET entries that aren't followed by a DXT1 entry if nextBits in (b"P8\x00\x00", b"A8R8"): dat["unknown_string"] = nextBits+fileobj.read(4) dat["unknown_ARGBstring"] = fileobj.read(8) dat["unknown_int05"] = read_uint32(fileobj) dat["unknown_int06"] = read_uint32(fileobj) dat["unknown_int07"] = read_uint32(fileobj) dat["unknown_int08"] = read_uint32(fileobj) dat["unknown_int09"] = read_uint32(fileobj) dat["unknown_int10"] = read_uint32(fileobj) dat["unknown_int11"] = read_uint32(fileobj) dat["unknown_int12"] = read_uint32(fileobj) dat["pim_count"] = read_uint32(fileobj) else: fileobj.seek(-4, 1) return dat
def read_section(f): id = f.read(4) size = read_uint32(f) data = f.read(size) return id, size, data