Skip to content

Commit 7f5512f

Browse files
committed
Fix parsing for non-beta replays.
1 parent f9bd389 commit 7f5512f

File tree

2 files changed

+12
-7
lines changed

2 files changed

+12
-7
lines changed

sc2reader/readers.py

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -217,10 +217,9 @@ class GameEventsReader_Base(object):
217217
HOTKEY_OVERLAY = 0
218218
POFFSET = -1
219219

220-
def __call__(self, data, replay):
221-
EVENT_DISPATCH = {
220+
def __init__(self):
221+
self.EVENT_DISPATCH = {
222222
0x05: self.game_start_event,
223-
0x07: self.beta_join_event,
224223
0x0B: self.player_join_event,
225224
0x0C: self.player_join_event,
226225
0x19: self.player_leave_event,
@@ -230,9 +229,9 @@ def __call__(self, data, replay):
230229
0x1F: self.player_send_resource_event,
231230
0x31: self.camera_event,
232231
0x46: self.player_request_resource_event,
233-
0x65: self.beta_win_event,
234232
}
235233

234+
def __call__(self, data, replay):
236235
game_events = list()
237236
fstamp = 0
238237
debug = replay.opt.debug
@@ -254,8 +253,8 @@ def __call__(self, data, replay):
254253
event_type = read_bits(7)
255254

256255
# Check for a lookup
257-
if event_type in EVENT_DISPATCH:
258-
event = EVENT_DISPATCH[event_type](data, fstamp, pid, event_type)
256+
if event_type in self.EVENT_DISPATCH:
257+
event = self.EVENT_DISPATCH[event_type](data, fstamp, pid, event_type)
259258
if debug:
260259
event.bytes = data.read_range(event_start, tell())
261260
append(event)
@@ -510,6 +509,12 @@ class GameEventsReader_22612(GameEventsReader_19595):
510509
UNIT_INDEX_BITS = 9 # Now can select up to 512 units
511510

512511
class GameEventsReader_Beta(GameEventsReader_22612):
512+
513+
def __init__(self):
514+
super(GameEventsReader_Beta, self).__init__()
515+
self.EVENT_DISPATCH[0x07] = self.beta_join_event
516+
self.EVENT_DISPATCH[0x65] = self.beta_win_event
517+
513518
def beta_join_event(self, data, fstamp, pid, event_type):
514519
flags = data.read_bytes(5)
515520
return BetaJoinEvent(fstamp, pid, event_type, flags)

sc2reader/resources.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -334,7 +334,7 @@ def load_players(self):
334334
return
335335

336336
# Create and add the players based on attribute and details information
337-
player_index, obs_index, default_region = 0, 1, ''
337+
player_index, obs_index, default_region = 0, 0, ''
338338
player_data = self.raw_data['replay.details'].players
339339
for pid, attributes in sorted(self.attributes.iteritems()):
340340

0 commit comments

Comments
 (0)