Skip to content

Commit 7a1afe6

Browse files
authored
Merge pull request #106 from Talv/proto77379
Add support for protocol 77379 (v4.11.0)
2 parents 975fc8f + a314527 commit 7a1afe6

File tree

4 files changed

+29
-1
lines changed

4 files changed

+29
-1
lines changed

sc2reader/data/attributes.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -708,6 +708,7 @@
708708
"Horn": "Horner",
709709
"Kara": "Karax",
710710
"Kerr": "Kerrigan",
711+
"Meng": "Mengsk",
711712
"Nova": "Nova",
712713
"Rayn": "Raynor",
713714
"Stet": "Stetmann",

sc2reader/readers.py

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,13 @@ def __call__(self, data, replay):
210210
licenses=[
211211
data.read_uint32()
212212
for i in range(
213-
data.read_bits(13 if replay.base_build >= 70154 else 9)
213+
data.read_bits(
214+
16
215+
if replay.base_build >= 77379
216+
else 13
217+
if replay.base_build >= 70154
218+
else 9
219+
)
214220
)
215221
]
216222
if replay.base_build >= 19132
@@ -250,6 +256,20 @@ def __call__(self, data, replay):
250256
]
251257
if replay.base_build >= 47185
252258
else None,
259+
brutal_plus_difficulty=data.read_uint32()
260+
if replay.base_build >= 77379
261+
else None,
262+
retry_mutation_indexes=[
263+
data.read_uint32() for i in range(data.read_bits(3))
264+
]
265+
if replay.base_build >= 77379
266+
else None,
267+
ac_enemy_race=data.read_uint32()
268+
if replay.base_build >= 77379
269+
else None,
270+
ac_enemy_wave_type=data.read_uint32()
271+
if replay.base_build >= 77379
272+
else None,
253273
)
254274
for i in range(data.read_bits(5))
255275
],
Binary file not shown.

test_replays/test_replays.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -701,6 +701,13 @@ def test_75689(self):
701701
replay = factory.load_replay(replayfilename)
702702
self.assertEqual(replay.players[0].trophy_id, 13)
703703

704+
def test_77379(self):
705+
replay = sc2reader.load_replay(
706+
"test_replays/4.11.0.77379/Oblivion Express.SC2Replay"
707+
)
708+
self.assertEqual(replay.players[0].commander, "Mengsk")
709+
self.assertEqual(replay.players[1].commander, "Stetmann")
710+
704711
def test_anonymous_replay(self):
705712
replayfilename = "test_replays/4.1.2.60604/1.SC2Replay"
706713
factory = sc2reader.factories.SC2Factory()

0 commit comments

Comments
 (0)