Don't rely on a fixed offset length.

This commit is contained in:
Shiz 2017-03-11 17:14:32 +01:00
parent 5a3b12c464
commit 54daa0bf9b
2 changed files with 4 additions and 3 deletions

View file

@ -6,7 +6,7 @@ Currently, only writing to RPAv2/RPAv3 archives is supported.
Usage Usage
----- -----
rpatool [-l|-x|-c|-d] [-a] [-o OUTFILE] [-2] [-3] [-k KEY] rpatool [-l|-x|-c|-d|-a] [-o OUTFILE] [-2] [-3] [-k KEY]
[-p COUNT] [-h] [-v] [-V] [-p COUNT] [-h] [-v] [-V]
ARCHIVE [FILE [FILE ...]] ARCHIVE [FILE [FILE ...]]

View file

@ -57,10 +57,11 @@ class RenPyArchive:
if self.version == 2 or self.version == 3: if self.version == 2 or self.version == 3:
# Fetch metadata. # Fetch metadata.
metadata = self.handle.readline() metadata = self.handle.readline()
offset = int(metadata[8:24], 16) vals = metadata.split()
offset = int(vals[1], 16)
if self.version == 3: if self.version == 3:
self.key = 0 self.key = 0
for subkey in metadata[25:].split(): for subkey in vals[2:]:
self.key ^= int(subkey, 16) self.key ^= int(subkey, 16)
# Load in indexes. # Load in indexes.