Skip to content

Commit 64217c7

Browse files
committed
handle 38749. test passes now.
1 parent 7d12c2a commit 64217c7

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

sc2reader/readers.py

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -79,10 +79,10 @@ def __call__(self, data, replay):
7979
allowedDifficulty=data.read_bits(data.read_bits(6)),
8080
allowedControls=data.read_bits(data.read_uint8()),
8181
allowed_observe_types=data.read_bits(data.read_bits(2)),
82-
allowed_ai_builds=data.read_bits(data.read_bits(7)) if replay.base_build >= 23925 else None,
82+
allowed_ai_builds=data.read_bits(data.read_bits(8 if replay.base_build >= 38749 else 7)) if replay.base_build >= 23925 else None,
8383
) for i in range(data.read_bits(5))],
8484
default_difficulty=data.read_bits(6),
85-
default_ai_build=data.read_bits(7) if replay.base_build >= 23925 else None,
85+
default_ai_build=data.read_bits(8 if replay.base_build >= 38749 else 7) if replay.base_build >= 23925 else None,
8686
cache_handles=[DepotFile(data.read_aligned_bytes(40)) for i in range(data.read_bits(6 if replay.base_build >= 21955 else 4))],
8787
has_extension_mod=data.read_bool() if replay.base_build >= 27950 else None,
8888
is_blizzardMap=data.read_bool(),
@@ -101,7 +101,7 @@ def __call__(self, data, replay):
101101
colorPref=data.read_bits(5) if data.read_bool() else None,
102102
race_pref=data.read_uint8() if data.read_bool() else None,
103103
difficulty=data.read_bits(6),
104-
ai_build=data.read_bits(7) if replay.base_build >= 23925 else None,
104+
ai_build=data.read_bits(8 if replay.base_build >= 38749 else 7) if replay.base_build >= 23925 else None,
105105
handicap=data.read_bits(7),
106106
observe=data.read_bits(2),
107107
logo_index=data.read_uint32() if replay.base_build >= 32283 else None,
@@ -126,7 +126,7 @@ def __call__(self, data, replay):
126126
picked_map_tag=data.read_uint8() if replay.base_build >= 36442 else None,
127127
game_duration=data.read_uint32(),
128128
default_difficulty=data.read_bits(6),
129-
default_ai_build=data.read_bits(7) if replay.base_build >= 24764 else None,
129+
default_ai_build=data.read_bits(8 if replay.base_build >= 38749 else 7) if replay.base_build >= 24764 else None,
130130
),
131131
)
132132
if not data.done():
@@ -1215,6 +1215,14 @@ def trigger_ping_event(self, data):
12151215
y=data.read_uint32()-2147483648,
12161216
),
12171217
unit_tag=data.read_uint32(),
1218+
unit_link=data.read_uint16() if replay.build >= 38749 else None,
1219+
unit_control_player_id=(data.read_bits(4) if data.read_bool() else None) if replay.build >= 38749 else None,
1220+
unit_upkeep_player_id=(data.read_bits(4) if data.read_bool() else None) if replay.build >= 38749 else None,
1221+
unit_position=dict(
1222+
x=data.read_bits(20),
1223+
y=data.read_bits(20),
1224+
z=data.read_bits(32) - 2147483648,
1225+
) if replay.build >= 38749 else None,
12181226
pinged_minimap=data.read_bool(),
12191227
)
12201228

0 commit comments

Comments
 (0)