Skip to content

Commit 2a74a18

Browse files
Fixed MovieClip parsing
1 parent 6c71643 commit 2a74a18

File tree

4 files changed

+25
-25
lines changed

4 files changed

+25
-25
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,4 @@ On Android:
3333

3434
### TODO:
3535
- CSV updating.
36+
- Shapes rendering.

lib.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,6 @@ def download_update(zip_url):
215215

216216
with zipfile.ZipFile('updates/update.zip') as zf:
217217
zf.extractall('updates/')
218-
219218
zf.close()
220219

221220
Console.done_text(locale.update_done % f'"{zf.namelist()[0]}"')

system/lib/console.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ def ask_integer(message):
2626
@staticmethod
2727
def question(message):
2828
answer = input(f'[????] {message} [Y/n] ').lower()
29-
if answer in 'nY':
30-
return 'nY'.index(answer)
29+
if answer in 'ny':
30+
return 'ny'.index(answer)
3131
else:
3232
return Console.question(message)
3333

system/lib/objects/movie_clip.py

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -17,47 +17,47 @@ def load(self, swf, tag: int):
1717
self.fps = swf.reader.read_byte()
1818
self.frames_count = swf.reader.read_uint16()
1919

20-
transforms_count = swf.reader.read_uint32()
20+
if tag in (3, 14,):
21+
pass
22+
else:
23+
transforms_count = swf.reader.read_uint32()
2124

22-
for i in range(transforms_count):
23-
bind_index = swf.reader.read_uint16()
24-
matrix_id = swf.reader.read_uint16()
25-
color_transform_id = swf.reader.read_uint16()
25+
for i in range(transforms_count):
26+
bind_id = swf.reader.read_uint16()
27+
matrix_id = swf.reader.read_uint16()
28+
color_transform_id = swf.reader.read_uint16()
2629

27-
if not (bind_index in self.transforms):
28-
self.transforms[bind_index] = {'matrices': [], 'color_transforms': []}
29-
self.transforms[bind_index]['matrices'].append(matrix_id)
30-
self.transforms[bind_index]['color_transforms'].append(color_transform_id)
30+
if not (bind_id in self.transforms):
31+
self.transforms[bind_id] = {'matrices': [], 'color_transforms': []}
32+
self.transforms[bind_id]['matrices'].append(matrix_id)
33+
self.transforms[bind_id]['color_transforms'].append(color_transform_id)
3134

3235
binds_count = swf.reader.read_uint16()
3336

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

38-
for i in range(binds_count):
39-
blend = swf.reader.read_byte() # blend
40-
self.blends.append(blend)
41+
if tag in (12, 35,):
42+
for i in range(binds_count):
43+
blend = swf.reader.read_byte() # blend
44+
self.blends.append(blend)
4145

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

4549
while True:
46-
inline_data_type = swf.reader.read_ubyte()
47-
swf.reader.read_int32() # data_length
50+
frame_tag = swf.reader.read_ubyte()
51+
frame_length = swf.reader.read_int32()
4852

49-
if inline_data_type == 0:
53+
if frame_tag == 0:
5054
break
5155

52-
if inline_data_type == 11:
56+
if frame_tag == 11:
5357
swf.reader.read_int16() # frame_id
5458
swf.reader.read_string() # frame_name
55-
elif inline_data_type == 31:
56-
for x in range(4):
57-
swf.reader.read_ubyte()
58-
swf.reader.read_ubyte()
59-
swf.reader.read_string()
60-
swf.reader.read_string()
59+
else:
60+
swf.reader.read(frame_length)
6161

6262
def render(self, swf):
6363
# shape_min_x = 0

0 commit comments

Comments
 (0)