4040from .. import bolt
4141from ..bolt import decode , cstrip , unpack_string , unpack_int , unpack_str8 , \
4242 unpack_short , unpack_float , unpack_str16 , unpack_byte , struct_pack , \
43- unpack_int_delim , unpack_str16_delim , unpack_byte_delim , unpack_many , \
44- encode
43+ unpack_str_int_delim , unpack_str16_delim_null , unpack_str_byte_delim , \
44+ unpack_many , encode
4545from ..bosh import ModInfo
4646from ..exception import SaveHeaderError , raise_bolt_error
4747
@@ -427,25 +427,25 @@ class FalloutNVSaveHeader(SaveFileHeader):
427427 _masters_unknown_byte = 0x1B
428428 unpackers = OrderedDict ([
429429 ('header_size' , (00 , unpack_int )),
430- ('_unknown' , (00 , unpack_int_delim )),
430+ ('_unknown' , (00 , unpack_str_int_delim )),
431431 ('language' , (00 , lambda ins : unpack_many (ins , '64sc' )[0 ])),
432- ('ssWidth' , (00 , unpack_int_delim )),
433- ('ssHeight' , (00 , unpack_int_delim )),
434- ('ssDepth' , (00 , unpack_int_delim )),
435- ('pcName' , (00 , unpack_str16_delim )),
436- ('pcNick' , (00 , unpack_str16_delim )),
437- ('pcLevel' , (00 , unpack_int_delim )),
438- ('pcLocation' , (00 , unpack_str16_delim )),
439- ('gameDate' , (00 , unpack_str16_delim )),
432+ ('ssWidth' , (00 , unpack_str_int_delim )),
433+ ('ssHeight' , (00 , unpack_str_int_delim )),
434+ ('ssDepth' , (00 , unpack_str_int_delim )),
435+ ('pcName' , (00 , unpack_str16_delim_null )),
436+ ('pcNick' , (00 , unpack_str16_delim_null )),
437+ ('pcLevel' , (00 , unpack_str_int_delim )),
438+ ('pcLocation' , (00 , unpack_str16_delim_null )),
439+ ('gameDate' , (00 , unpack_str16_delim_null )),
440440 ])
441441
442442 def load_masters (self , ins ):
443443 self ._mastersStart = ins .tell ()
444444 self ._master_list_size (ins )
445445 self .masters = []
446- numMasters = unpack_byte_delim (ins )
446+ numMasters = unpack_str_byte_delim (ins )
447447 for count in xrange (numMasters ):
448- self .masters .append (unpack_str16_delim (ins ))
448+ self .masters .append (unpack_str16_delim_null (ins ))
449449
450450 def _master_list_size (self , ins ):
451451 formVersion , masterListSize = unpack_many (ins , '=BI' )
@@ -459,7 +459,7 @@ def _write_masters(self, ins, out):
459459 _pack (out , '=B' , self ._masters_unknown_byte )
460460 _pack (out , '=I' , self ._master_block_size ())
461461 #--Skip old masters
462- numMasters = unpack_byte_delim (ins ) # get me the Byte
462+ numMasters = unpack_str_byte_delim (ins ) # get me the Byte
463463 oldMasters = self ._dump_masters (ins , numMasters , out )
464464 #--Offsets
465465 offset = out .tell () - ins .tell ()
@@ -473,7 +473,7 @@ def _write_masters(self, ins, out):
473473 def _dump_masters (self , ins , numMasters , out ):
474474 oldMasters = []
475475 for count in xrange (numMasters ):
476- oldMasters .append (unpack_str16_delim (ins ))
476+ oldMasters .append (unpack_str16_delim_null (ins ))
477477 # Write new masters - note the silly delimiters
478478 _pack (out , '=B' , len (self .masters ))
479479 _pack (out , '=c' , '|' )
0 commit comments