Skip to content

Commit 9282cfa

Browse files
committed
Accomodate an additional player data field in new builds.
1 parent d4a4f47 commit 9282cfa

File tree

3 files changed

+8
-3
lines changed

3 files changed

+8
-3
lines changed

sc2reader/objects.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
Location = namedtuple('Location',('x','y'))
1111

1212
MapData = namedtuple('MapData',['gateway','map_hash'])
13-
PlayerData = namedtuple('PlayerData',['name','bnet','race','color','unknown1','unknown2','handicap','unknown3','result'])
1413
ColorData = namedtuple('ColorData',['a','r','g','b'])
1514
BnetData = namedtuple('BnetData',['unknown1','unknown2','subregion','uid'])
1615

sc2reader/readers.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,9 @@ class AttributesEventsReader_17326(AttributesEventsReader_Base):
9696

9797

9898
class DetailsReader_Base(Reader):
99+
PlayerData = namedtuple('PlayerData',['name','bnet','race','color','unknown1','unknown2','handicap','unknown3','result'])
99100
Details = namedtuple('Details',['players','map','unknown1','unknown2','os','file_time','utc_adjustment','unknown4','unknown5','unknown6','unknown7','unknown8','unknown9','unknown10'])
101+
100102
def __call__(self, data, replay):
101103
# The entire details file is just a serialized data structure
102104
#
@@ -153,7 +155,7 @@ def __call__(self, data, replay):
153155
for pdata in details[0]:
154156
pdata[1] = BnetData(*ordered_values(pdata[1]))
155157
pdata[3] = ColorData(*ordered_values(pdata[3]))
156-
player = PlayerData(*ordered_values(pdata))
158+
player = self.PlayerData(*ordered_values(pdata))
157159
players.append(player)
158160
details[0] = players
159161

@@ -167,6 +169,9 @@ class DetailsReader_22612(DetailsReader_Base):
167169
class DetailsReader_Beta(DetailsReader_Base):
168170
Details = namedtuple('Details',['players','map','unknown1','unknown2','os','file_time','utc_adjustment','unknown4','unknown5','unknown6','unknown7','unknown8','unknown9','unknown10', 'unknown11', 'unknown12'])
169171

172+
class DetailsReader_Beta_24764(DetailsReader_Beta):
173+
PlayerData = namedtuple('PlayerData',['name','bnet','race','color','unknown1','unknown2','handicap','unknown3','result','unknown4'])
174+
170175
class MessageEventsReader_Base(Reader):
171176
POFFSET=-1
172177
TARGET_BITS=3

sc2reader/resources.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -558,7 +558,8 @@ def register_default_readers(self):
558558
"""Registers factory default readers."""
559559
self.register_reader('replay.details', readers.DetailsReader_Base(), lambda r: r.build < 22612)
560560
self.register_reader('replay.details', readers.DetailsReader_22612(), lambda r: r.build >= 22612 and r.expansion=='WoL')
561-
self.register_reader('replay.details', readers.DetailsReader_Beta(), lambda r: r.expansion=='HotS')
561+
self.register_reader('replay.details', readers.DetailsReader_Beta(), lambda r: r.build < 24764 and r.expansion=='HotS')
562+
self.register_reader('replay.details', readers.DetailsReader_Beta_24764(), lambda r: r.build >= 24764 and r.expansion=='HotS')
562563
self.register_reader('replay.initData', readers.InitDataReader_Base())
563564
self.register_reader('replay.message.events', readers.MessageEventsReader_Base(), lambda r: r.build < 24247)
564565
self.register_reader('replay.message.events', readers.MessageEventsReader_Beta_24247(), lambda r: r.build >= 24247)

0 commit comments

Comments
 (0)