@@ -175,6 +175,8 @@ def parse_lobby(data, version, save):
175175 data .read (8 )
176176 if save >= 64.3 :
177177 data .read (16 )
178+ if save >= 66.3 :
179+ data .read (1 )
178180 data .read (8 )
179181 if version not in (Version .DE , Version .HD ):
180182 data .read (1 )
@@ -280,7 +282,9 @@ def parse_scenario(data, num_players, version, save):
280282 map_id , difficulty_id = unpack ('<II' , data )
281283 remainder = data .read ()
282284 if version is Version .DE :
283- if save >= 64.3 :
285+ if save >= 66.3 :
286+ settings_version = 4.5
287+ elif save >= 64.3 :
284288 settings_version = 4.1
285289 elif save >= 63 :
286290 settings_version = 3.9
@@ -406,7 +410,7 @@ def parse_de(data, version, save, skip=False):
406410 if save > 50 :
407411 data .read (1 )
408412 players = []
409- for _ in range (num_players if save >= 37 else 8 ):
413+ for _ in range (num_players if 66.3 > save >= 37 else 8 ):
410414 data .read (4 )
411415 color_id = unpack ('<i' , data )
412416 data .read (2 )
@@ -424,6 +428,8 @@ def parse_de(data, version, save, skip=False):
424428 data .read (1 )
425429 ai_name = de_string (data )
426430 name = de_string (data )
431+ if save >= 66.3 :
432+ _name2 = de_string (data )
427433 type = unpack ('<I' , data )
428434 profile_id , number = unpack ('<I4xi' , data )
429435 if save < 25.22 :
@@ -448,7 +454,7 @@ def parse_de(data, version, save, skip=False):
448454 prefer_random = prefer_random == 1
449455 ))
450456 data .read (12 )
451- if save >= 37 :
457+ if 66.3 > save >= 37 :
452458 for _ in range (8 - num_players ):
453459 if save >= 61.5 :
454460 data .read (4 )
@@ -509,6 +515,8 @@ def parse_de(data, version, save, skip=False):
509515 data .read (1 )
510516 if save >= 63 :
511517 data .read (5 )
518+ if save >= 66.3 :
519+ data .read (16 )
512520 if not skip :
513521 de_string (data )
514522 data .read (8 )
0 commit comments