@@ -252,8 +252,11 @@ def __init__(self, replay_file, filename=None, load_level=4, engine=sc2reader.en
252252 self .build = self .versions [4 ]
253253 self .base_build = self .versions [5 ]
254254 self .release_string = "{0}.{1}.{2}.{3}" .format (* self .versions [1 :5 ])
255- self .game_length = utils .Length (seconds = self .frames / 16 )
256- self .length = self .real_length = utils .Length (seconds = int (self .frames / self .game_fps ))
255+ fps = self .game_fps
256+ if (34784 <= self .build ): # lotv replay, adjust time
257+ fps = self .game_fps * 1.4
258+
259+ self .length = self .game_length = self .real_length = utils .Length (seconds = int (self .frames / fps ))
257260
258261 # Load basic details if requested
259262 if load_level >= 1 :
@@ -362,7 +365,7 @@ def load_details(self):
362365 self .time_zone = (details ['utc_adjustment' ]- details ['file_time' ])/ (10 ** 7 * 60 * 60 )
363366
364367 self .game_length = self .length
365- self .real_length = utils .Length (seconds = int (self .length .seconds / GAME_SPEED_FACTOR [self .speed ]))
368+ self .real_length = utils .Length (seconds = int (self .length .seconds / GAME_SPEED_FACTOR [self .expansion ][ self . speed ]))
366369 self .start_time = datetime .utcfromtimestamp (self .unix_timestamp - self .real_length .seconds )
367370 self .date = self .end_time # backwards compatibility
368371
@@ -772,26 +775,26 @@ def __init__(self, summary_file, filename=None, lang='enUS', **options):
772775 while not buffer .done ():
773776 self .parts .append (buffer .read_struct ())
774777
778+ self .load_translations ()
779+ dependencies = [sheet [1 ] for sheet in self .lang_sheets ['enUS' ]]
780+ if 'Swarm (Mod)' in dependencies :
781+ self .expansion = 'HotS'
782+ elif 'Liberty (Mod)' in dependencies :
783+ self .expansion = 'WoL'
784+ else :
785+ self .expansion = ''
786+
775787 self .end_time = datetime .utcfromtimestamp (self .parts [0 ][8 ])
776788 self .game_speed = LOBBY_PROPERTIES [0xBB8 ][1 ][self .parts [0 ][0 ][1 ].decode ('utf8' )]
777789 self .game_length = utils .Length (seconds = self .parts [0 ][7 ])
778- self .real_length = utils .Length (seconds = int (self .parts [0 ][7 ]/ GAME_SPEED_FACTOR [self .game_speed ]))
790+ self .real_length = utils .Length (seconds = int (self .parts [0 ][7 ]/ GAME_SPEED_FACTOR [self .expansion ][ self . game_speed ]))
779791 self .start_time = datetime .utcfromtimestamp (self .parts [0 ][8 ] - self .real_length .seconds )
780792
781- self .load_translations ()
782793 self .load_map_info ()
783794 self .load_settings ()
784795 self .load_player_stats ()
785796 self .load_players ()
786797
787- dependencies = [sheet [1 ] for sheet in self .lang_sheets ['enUS' ]]
788- if 'Swarm (Mod)' in dependencies :
789- self .expansion = 'HotS'
790- elif 'Liberty (Mod)' in dependencies :
791- self .expansion = 'WoL'
792- else :
793- self .expansion = ''
794-
795798 self .game_type = self .settings ['Teams' ].replace (" " , "" )
796799 self .real_type = utils .get_real_type (self .teams )
797800
0 commit comments