Skip to content

Commit

Permalink
Fixed MovieClip parsing
Browse files Browse the repository at this point in the history
  • Loading branch information
danila-schelkov committed Aug 26, 2021
1 parent 6c71643 commit 2a74a18
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 25 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,3 +33,4 @@ On Android:

### TODO:
- CSV updating.
- Shapes rendering.
1 change: 0 additions & 1 deletion lib.py
Original file line number Diff line number Diff line change
Expand Up @@ -215,7 +215,6 @@ def download_update(zip_url):

with zipfile.ZipFile('updates/update.zip') as zf:
zf.extractall('updates/')

zf.close()

Console.done_text(locale.update_done % f'"{zf.namelist()[0]}"')
Expand Down
4 changes: 2 additions & 2 deletions system/lib/console.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ def ask_integer(message):
@staticmethod
def question(message):
answer = input(f'[????] {message} [Y/n] ').lower()
if answer in 'nY':
return 'nY'.index(answer)
if answer in 'ny':
return 'ny'.index(answer)
else:
return Console.question(message)

Expand Down
44 changes: 22 additions & 22 deletions system/lib/objects/movie_clip.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,47 +17,47 @@ def load(self, swf, tag: int):
self.fps = swf.reader.read_byte()
self.frames_count = swf.reader.read_uint16()

transforms_count = swf.reader.read_uint32()
if tag in (3, 14,):
pass
else:
transforms_count = swf.reader.read_uint32()

for i in range(transforms_count):
bind_index = swf.reader.read_uint16()
matrix_id = swf.reader.read_uint16()
color_transform_id = swf.reader.read_uint16()
for i in range(transforms_count):
bind_id = swf.reader.read_uint16()
matrix_id = swf.reader.read_uint16()
color_transform_id = swf.reader.read_uint16()

if not (bind_index in self.transforms):
self.transforms[bind_index] = {'matrices': [], 'color_transforms': []}
self.transforms[bind_index]['matrices'].append(matrix_id)
self.transforms[bind_index]['color_transforms'].append(color_transform_id)
if not (bind_id in self.transforms):
self.transforms[bind_id] = {'matrices': [], 'color_transforms': []}
self.transforms[bind_id]['matrices'].append(matrix_id)
self.transforms[bind_id]['color_transforms'].append(color_transform_id)

binds_count = swf.reader.read_uint16()

for i in range(binds_count):
bind_id = swf.reader.read_uint16() # bind_id
self.binds.append(bind_id)

for i in range(binds_count):
blend = swf.reader.read_byte() # blend
self.blends.append(blend)
if tag in (12, 35,):
for i in range(binds_count):
blend = swf.reader.read_byte() # blend
self.blends.append(blend)

for i in range(binds_count):
swf.reader.read_string() # bind_name

while True:
inline_data_type = swf.reader.read_ubyte()
swf.reader.read_int32() # data_length
frame_tag = swf.reader.read_ubyte()
frame_length = swf.reader.read_int32()

if inline_data_type == 0:
if frame_tag == 0:
break

if inline_data_type == 11:
if frame_tag == 11:
swf.reader.read_int16() # frame_id
swf.reader.read_string() # frame_name
elif inline_data_type == 31:
for x in range(4):
swf.reader.read_ubyte()
swf.reader.read_ubyte()
swf.reader.read_string()
swf.reader.read_string()
else:
swf.reader.read(frame_length)

def render(self, swf):
# shape_min_x = 0
Expand Down

0 comments on commit 2a74a18

Please sign in to comment.