diff --git a/ToolsTOR.py b/ToolsTOR.py index 0c30721..bc43d0f 100644 --- a/ToolsTOR.py +++ b/ToolsTOR.py @@ -67,13 +67,17 @@ class ToolsTOR(ToolsTales): # Extract the story files def extract_All_Story_Files(self,debug=False): - + i = 1 self.mkdir( self.story_XML_patch + "XML") listFiles = [self.dat_archive_extract + 'SCPK/' + ele for ele in os.listdir( os.path.join(self.dat_archive_extract, "SCPK"))] for scpk_file in listFiles: - - self.extract_TheirSce_XML(scpk_file) + + theirsce = self.get_theirsce_from_scpk(scpk_file) + self.extract_TheirSce_XML(theirsce, scpk_file, self.story_XML_patch, "Story") self.id = 1 + print("Writing file %05d.." % i, end="\r") # Not healthy + i += 1 + print("Writing file %05d..." % (i-1)) # Extract all the skits files def extract_Skits(self): @@ -112,52 +116,27 @@ class ToolsTOR(ToolsTales): for i in range(nbFiles): data = scpk.read(filesSize[i]) + + if self.is_compressed(data) and data[:8] != b"THEIRSCE": + data_decompressed = comptolib.decompress_data(data) + + if data_decompressed[:8] == b"THEIRSCE": + return io.BytesIO(data_decompressed) - scpk.read(4) - nbFiles = struct.unpack("