Skip to content

Commit cbfdcdf

Browse files
committed
Fix more regressions from the event module changes.
1 parent f872f5a commit cbfdcdf

File tree

3 files changed

+12
-6
lines changed

3 files changed

+12
-6
lines changed

sc2reader/events/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
import base, game, message
2+
from base import *
3+
from game import *
4+
from message import *

sc2reader/events/base.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# -*- coding: utf-8 -*-
22
from __future__ import absolute_import
33

4+
from sc2reader.utils import Length
45
from sc2reader.log_utils import loggable
56

67
@loggable

sc2reader/events/game.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# -*- coding: utf-8 -*-
22
from __future__ import absolute_import
33

4+
from sc2reader.data import Unit
45
from sc2reader.events.base import Event
56
from sc2reader.log_utils import loggable
67

@@ -174,21 +175,21 @@ def load_context(self, replay):
174175
if not replay.datapack:
175176
return
176177

177-
uid = (self.target_id, self.target_type)
178-
if uid in replay.objects:
179-
self.target = replay.objects[uid]
178+
if self.target_id in replay.objects:
179+
self.target = replay.objects[self.target_id]
180+
if not self.target.is_type(self.target_type):
181+
replay.datapack.change_type(self.target, self.target_type, self.frame)
180182

181183
else:
182184
if self.target_type not in replay.datapack.units:
183185
self.logger.error("{0}\t{1}\tMissing unit {2} from {3}".format(self.frame, self.player.name, hex(self.target_type), replay.datapack.id))
184186
unit = Unit(self.target_id, 0x00)
185187

186188
else:
187-
unit_class = replay.datapack.units[self.target_type]
188-
unit = unit_class(self.target_id, 0x00)
189+
unit = replay.datapack.create_unit(self.target_id, self.target_type, 0x00, self.frame)
189190

190191
self.target = unit
191-
replay.objects[uid] = unit
192+
replay.objects[self.target_id] = unit
192193

193194
def __str__(self):
194195
if self.target:

0 commit comments

Comments
 (0)