Skip to content

Commit ba5cd1d

Browse files
committed
Improved parsing. Fix support for old replays.
Adds a few now-fixed replays for regressions and improves parsing to exactly match the structure dictated by the s2protocol library. Closes #132.
1 parent e4b7b5e commit ba5cd1d

12 files changed

+246
-145
lines changed

sc2reader/readers.py

Lines changed: 236 additions & 138 deletions
Large diffs are not rendered by default.

sc2reader/resources.py

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -247,6 +247,7 @@ def __init__(self, replay_file, filename=None, load_level=4, **options):
247247
self.versions = header_data[1].values()
248248
self.frames = header_data[3]
249249
self.build = self.versions[4]
250+
self.base_build = self.versions[5]
250251
self.release_string = "{0}.{1}.{2}.{3}".format(*self.versions[1:5])
251252
self.game_length = utils.Length(seconds=self.frames/16)
252253
self.length = self.real_length = utils.Length(seconds=int(self.frames/self.game_fps))
@@ -553,13 +554,15 @@ def register_default_readers(self):
553554
self.register_reader('replay.message.events', readers.MessageEventsReader_Beta_24247(), lambda r: r.build >= 24247 and r.versions[1]==2)
554555
self.register_reader('replay.attributes.events', readers.AttributesEventsReader_Base(), lambda r: r.build < 17326)
555556
self.register_reader('replay.attributes.events', readers.AttributesEventsReader_17326(), lambda r: r.build >= 17326)
556-
self.register_reader('replay.game.events', readers.GameEventsReader_16117(), lambda r: 16117 <= r.build < 16561)
557-
self.register_reader('replay.game.events', readers.GameEventsReader_16561(), lambda r: 16561 <= r.build < 18574)
558-
self.register_reader('replay.game.events', readers.GameEventsReader_18574(), lambda r: 18574 <= r.build < 19595)
559-
self.register_reader('replay.game.events', readers.GameEventsReader_19595(), lambda r: 19595 <= r.build < 22612)
560-
self.register_reader('replay.game.events', readers.GameEventsReader_22612(), lambda r: r.versions[1]==1 and 22612 <= r.build) # Last WoL
561-
self.register_reader('replay.game.events', readers.GameEventsReader_HotS_Beta(), lambda r: r.versions[1]==2 and r.build < 24247) #HotS Beta
562-
self.register_reader('replay.game.events', readers.GameEventsReader_HotS(), lambda r: r.versions[1]==2 and 24247 <= r.build ) # First HotS
557+
self.register_reader('replay.game.events', readers.GameEventsReader_15405(), lambda r: 15405 <= r.base_build < 16561)
558+
self.register_reader('replay.game.events', readers.GameEventsReader_16561(), lambda r: 16561 <= r.base_build < 17326)
559+
self.register_reader('replay.game.events', readers.GameEventsReader_17326(), lambda r: 17326 <= r.base_build < 18574)
560+
self.register_reader('replay.game.events', readers.GameEventsReader_18574(), lambda r: 18574 <= r.base_build < 19595)
561+
self.register_reader('replay.game.events', readers.GameEventsReader_19595(), lambda r: 19595 <= r.base_build < 22612)
562+
self.register_reader('replay.game.events', readers.GameEventsReader_22612(), lambda r: 22612 <= r.base_build < 23260)
563+
self.register_reader('replay.game.events', readers.GameEventsReader_23260(), lambda r: 23260 <= r.base_build < 24247)
564+
self.register_reader('replay.game.events', readers.GameEventsReader_24247(), lambda r: 24247 <= r.base_build )
565+
self.register_reader('replay.game.events', readers.GameEventsReader_HotSBeta(), lambda r: r.versions[1]==2 and r.build < 24247)
563566
self.register_reader('replay.tracker.events', readers.TrackerEventsReader_Base(), lambda r: True)
564567

565568

Binary file not shown.
96.7 KB
Binary file not shown.
212 KB
Binary file not shown.
93 KB
Binary file not shown.
32 KB
Binary file not shown.
54.9 KB
Binary file not shown.
83.3 KB
Binary file not shown.
90.7 KB
Binary file not shown.

0 commit comments

Comments
 (0)