Skip to content

Commit a28df92

Browse files
committed
Load context across all event types in frame order.
1 parent 210b936 commit a28df92

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

sc2reader/resources.py

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,15 @@ def __init__(self, replay_file, filename=None, load_level=4, **options):
272272
self._read_data(data_file, self._get_reader(data_file))
273273
self.load_events()
274274

275+
# Load tracker events if requested
276+
if load_level >= 4:
277+
for data_file in ['replay.tracker.events']:
278+
self._read_data(data_file, self._get_reader(data_file))
279+
self.load_tracker_events()
280+
281+
for event in self.events:
282+
event.load_context(self)
283+
275284
def load_details(self):
276285
if 'replay.attributes.events' in self.raw_data:
277286
# Organize the attribute data to be useful
@@ -467,9 +476,8 @@ def load_events(self):
467476
# Copy the events over
468477
# TODO: the events need to be fixed both on the reader and processor side
469478
if 'replay.game.events' in self.raw_data:
470-
self.events += self.raw_data['replay.game.events']
471-
472-
self.events = sorted(self.events, key=lambda e: e.frame)
479+
self.game_events = self.raw_data['replay.game.events']
480+
self.events = sorted(self.game_events+self.events, key=lambda e: e.frame)
473481

474482
# hideous hack for HotS 2.0.0.23925, see https://github.com/GraylinKim/sc2reader/issues/87
475483
if self.events and self.events[-1].frame > self.frames:
@@ -480,7 +488,6 @@ def load_events(self):
480488
self.selection_events = list()
481489
self.ability_events = list()
482490
for event in self.events:
483-
event.load_context(self)
484491
if event.pid != 16 and hasattr(event,'player'):
485492
event.player.events.append(event)
486493

@@ -489,9 +496,8 @@ def load_tracker_events(self):
489496
return
490497

491498
self.tracker_events = self.raw_data['replay.tracker.events']
499+
self.events = sorted(self.tracker_events + self.events, key=lambda e: e.frame)
492500

493-
for event in self.tracker_events:
494-
event.load_context(self)
495501

496502
def register_reader(self, data_file, reader, filterfunc=lambda r: True):
497503
"""

0 commit comments

Comments
 (0)