@@ -252,8 +252,11 @@ def __init__(self, replay_file, filename=None, load_level=4, engine=sc2reader.en
252
252
self .build = self .versions [4 ]
253
253
self .base_build = self .versions [5 ]
254
254
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 ))
257
260
258
261
# Load basic details if requested
259
262
if load_level >= 1 :
@@ -362,7 +365,7 @@ def load_details(self):
362
365
self .time_zone = (details ['utc_adjustment' ]- details ['file_time' ])/ (10 ** 7 * 60 * 60 )
363
366
364
367
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 ]))
366
369
self .start_time = datetime .utcfromtimestamp (self .unix_timestamp - self .real_length .seconds )
367
370
self .date = self .end_time # backwards compatibility
368
371
@@ -772,26 +775,26 @@ def __init__(self, summary_file, filename=None, lang='enUS', **options):
772
775
while not buffer .done ():
773
776
self .parts .append (buffer .read_struct ())
774
777
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
+
775
787
self .end_time = datetime .utcfromtimestamp (self .parts [0 ][8 ])
776
788
self .game_speed = LOBBY_PROPERTIES [0xBB8 ][1 ][self .parts [0 ][0 ][1 ].decode ('utf8' )]
777
789
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 ]))
779
791
self .start_time = datetime .utcfromtimestamp (self .parts [0 ][8 ] - self .real_length .seconds )
780
792
781
- self .load_translations ()
782
793
self .load_map_info ()
783
794
self .load_settings ()
784
795
self .load_player_stats ()
785
796
self .load_players ()
786
797
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
-
795
798
self .game_type = self .settings ['Teams' ].replace (" " , "" )
796
799
self .real_type = utils .get_real_type (self .teams )
797
800
0 commit comments