@@ -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