@@ -118,6 +118,7 @@ def __call__(self, data, replay):
118118 tandem_leader_user_id = data .read_bits (4 ) if replay .base_build >= 34784 and data .read_bool () else None ,
119119 commander = data .read_aligned_bytes (data .read_bits (9 )) if replay .base_build >= 34784 else None ,
120120 commander_level = data .read_uint32 () if replay .base_build >= 36442 else None ,
121+ has_silence_penalty = data .read_bool () if replay .base_build >= 38215 else None ,
121122 ) for i in range (data .read_bits (5 ))],
122123 random_seed = data .read_uint32 (),
123124 host_user_id = data .read_bits (4 ) if data .read_bool () else None ,
@@ -1723,6 +1724,50 @@ def control_group_update_event(self, data):
17231724 }[data .read_bits (2 )](),
17241725 )
17251726
1727+ class GameEventsReader_38215 (GameEventsReader_36442 ):
1728+
1729+ def command_event (self , data ):
1730+ # this function is exactly the same as command_event() from GameEventsReader_36442
1731+ # with the only change being that flags now has 25 bits instead of 23.
1732+ return dict (
1733+ flags = data .read_bits (25 ),
1734+ ability = dict (
1735+ ability_link = data .read_uint16 (),
1736+ ability_command_index = data .read_bits (5 ),
1737+ ability_command_data = data .read_uint8 () if data .read_bool () else None ,
1738+ ) if data .read_bool () else None ,
1739+ data = { # Choice
1740+ 0 : lambda : ('None' , None ),
1741+ 1 : lambda : ('TargetPoint' , dict (
1742+ point = dict (
1743+ x = data .read_bits (20 ),
1744+ y = data .read_bits (20 ),
1745+ z = data .read_uint32 () - 2147483648 ,
1746+ )
1747+ )),
1748+ 2 : lambda : ('TargetUnit' , dict (
1749+ flags = data .read_uint16 (),
1750+ timer = data .read_uint8 (),
1751+ unit_tag = data .read_uint32 (),
1752+ unit_link = data .read_uint16 (),
1753+ control_player_id = data .read_bits (4 ) if data .read_bool () else None ,
1754+ upkeep_player_id = data .read_bits (4 ) if data .read_bool () else None ,
1755+ point = dict (
1756+ x = data .read_bits (20 ),
1757+ y = data .read_bits (20 ),
1758+ z = data .read_uint32 () - 2147483648 ,
1759+ ),
1760+ )),
1761+ 3 : lambda : ('Data' , dict (
1762+ data = data .read_uint32 ()
1763+ )),
1764+ }[data .read_bits (2 )](),
1765+ sequence = data .read_uint32 () + 1 ,
1766+ other_unit_tag = data .read_uint32 () if data .read_bool () else None ,
1767+ unit_group = data .read_uint32 () if data .read_bool () else None ,
1768+ )
1769+
1770+
17261771class TrackerEventsReader (object ):
17271772
17281773 def __init__ (self ):
0 commit comments