Skip to content

Commit

Permalink
Fixes arscutil to continue parsing, closes #78
Browse files Browse the repository at this point in the history
  • Loading branch information
subho007 committed Mar 20, 2024
1 parent 09ce7ab commit c05fca2
Showing 1 changed file with 18 additions and 9 deletions.
27 changes: 18 additions & 9 deletions pyaxmlparser/arscutil.py
Original file line number Diff line number Diff line change
Expand Up @@ -126,13 +126,20 @@ def __init__(self, buff, parent=None):
self.id = unpack('<B', buff.read(1))[0]
self.res0 = unpack('<B', buff.read(1))[0]
self.res1 = unpack('<H', buff.read(2))[0]
assert self.res0 == 0, "res0 must be zero!"
assert self.res1 == 0, "res1 must be zero!"
self.entryCount = unpack('<I', buff.read(4))[0]
res_error = False
if self.res0 != 0:
log.warning("res0 is not zero!")
res_error = True
if self.res1 != 0:
log.warning("res1 is not zero!")
res_error = True

if not res_error: # Skips processing attempt if there was an error
self.entryCount = unpack("<I", buff.read(4))[0]

self.typespec_entries = []
for i in range(0, self.entryCount):
self.typespec_entries.append(unpack('<I', buff.read(4))[0])
self.typespec_entries = []
for i in range(0, self.entryCount):
self.typespec_entries.append(unpack("<I", buff.read(4))[0])


class ARSCResType(object):
Expand Down Expand Up @@ -584,9 +591,11 @@ def __init__(self, buff, parent=None):

self.size, = unpack("<H", buff.read(2))
self.res0, = unpack("<B", buff.read(1))
assert self.res0 == 0, "res0 must be always zero!"
self.data_type = unpack('<B', buff.read(1))[0]
self.data = unpack('<I', buff.read(4))[0]
if self.res0 != 0:
log.warning("res0 is not zero!")
else:
self.data_type = unpack('<B', buff.read(1))[0]
self.data = unpack('<I', buff.read(4))[0]

def get_data_value(self):
return self.parent.stringpool_main.getString(self.data)
Expand Down

0 comments on commit c05fca2

Please sign in to comment.