@@ -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