@@ -422,6 +422,10 @@ def __init__(self):
422422class Table (object ):
423423
424424 def __init__ (self , directory , filename , suffix ):
425+ self .directory = directory
426+ self .filename = filename
427+ self .suffix = suffix
428+
425429 self .fd = os .open (os .path .join (directory , filename ) + suffix , os .O_RDONLY | os .O_BINARY if hasattr (os , "O_BINARY" ) else os .O_RDONLY )
426430 self .data = mmap .mmap (self .fd , 0 , access = mmap .ACCESS_READ )
427431
@@ -865,7 +869,11 @@ def __exit__(self, type, value, traceback):
865869class WdlTable (Table ):
866870 def __init__ (self , directory , filename ):
867871 super (WdlTable , self ).__init__ (directory , filename , ".rtbw" )
868- self .init_table_wdl ()
872+
873+ assert WDL_MAGIC [0 ] == self .read_ubyte (0 )
874+ assert WDL_MAGIC [1 ] == self .read_ubyte (1 )
875+ assert WDL_MAGIC [2 ] == self .read_ubyte (2 )
876+ assert WDL_MAGIC [3 ] == self .read_ubyte (3 )
869877
870878 def init_table_wdl (self ):
871879 self .tb_size = [0 for _ in range (8 )]
@@ -890,11 +898,6 @@ def init_table_wdl(self):
890898 self ._flags = None
891899 self .flags = None
892900
893- assert WDL_MAGIC [0 ] == self .read_ubyte (0 )
894- assert WDL_MAGIC [1 ] == self .read_ubyte (1 )
895- assert WDL_MAGIC [2 ] == self .read_ubyte (2 )
896- assert WDL_MAGIC [3 ] == self .read_ubyte (3 )
897-
898901 split = self .read_ubyte (4 ) & 0x01
899902 files = 4 if self .read_ubyte (4 ) & 0x02 else 1
900903
@@ -1068,7 +1071,11 @@ class DtzTable(Table):
10681071
10691072 def __init__ (self , directory , filename ):
10701073 super (DtzTable , self ).__init__ (directory , filename , ".rtbz" )
1071- self .init_table_dtz ()
1074+
1075+ assert DTZ_MAGIC [0 ] == self .read_ubyte (0 )
1076+ assert DTZ_MAGIC [1 ] == self .read_ubyte (1 )
1077+ assert DTZ_MAGIC [2 ] == self .read_ubyte (2 )
1078+ assert DTZ_MAGIC [3 ] == self .read_ubyte (3 )
10721079
10731080 def init_table_dtz (self ):
10741081 self .factor = [0 , 0 , 0 , 0 , 0 , 0 ]
@@ -1077,11 +1084,6 @@ def init_table_dtz(self):
10771084 self .size = [0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ]
10781085 self .files = [PawnFileDataDtz () for f in range (4 )]
10791086
1080- assert DTZ_MAGIC [0 ] == self .read_ubyte (0 )
1081- assert DTZ_MAGIC [1 ] == self .read_ubyte (1 )
1082- assert DTZ_MAGIC [2 ] == self .read_ubyte (2 )
1083- assert DTZ_MAGIC [3 ] == self .read_ubyte (3 )
1084-
10851087 files = 4 if self .read_ubyte (4 ) & 0x02 else 1
10861088
10871089 p_data = 5
@@ -1281,6 +1283,9 @@ def open_directory(self, directory, load_wdl=True, load_dtz=True):
12811283 wdl_table = WdlTable (directory , filename )
12821284 if wdl_table .key in self .wdl :
12831285 self .wdl [wdl_table .key ].close ()
1286+
1287+ wdl_table .init_table_wdl ()
1288+
12841289 self .wdl [wdl_table .key ] = wdl_table
12851290 self .wdl [wdl_table .mirrored_key ] = wdl_table
12861291
@@ -1290,6 +1295,9 @@ def open_directory(self, directory, load_wdl=True, load_dtz=True):
12901295 dtz_table = DtzTable (directory , filename )
12911296 if dtz_table .key in self .dtz :
12921297 self .dtz [dtz_table .key ].close ()
1298+
1299+ dtz_table .init_table_dtz ()
1300+
12931301 self .dtz [dtz_table .key ] = dtz_table
12941302 self .dtz [dtz_table .mirrored_key ] = dtz_table
12951303
0 commit comments