Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- idstring 0 "MES2"
- get NAME basename 0
- endian little
- get DUMMY short 0
- get NUMBER_DAT_FILES byte 0
- get DUMMY long 0
- get EOF_OFFSET long 0
- goto 0x0A 0 SEEK_CUR #unknown part
- endian big
- comtype ZLIB
- get FILECOUNT long 0
- goto 0x4 0 SEEK_CUR #2nd file count
- get BLOCK_SZ long 0 #block 1 size
- get BLOCK_ZSZ long 0 #block 1 compressed size
- savepos OFFSET 0
- clog MEMORY_FILE OFFSET BLOCK_ZSZ BLOCK_SZ 0
- goto BLOCK_ZSZ 0 SEEK_CUR #skip zlib block
- get BLOCK_SZ long 0 #block 2 size
- get BLOCK_ZSZ long 0 #block 2 compressed size
- savepos OFFSET 0
- clog MEMORY_FILE2 OFFSET BLOCK_ZSZ BLOCK_SZ 0
- goto BLOCK_ZSZ 0 SEEK_CUR #skip zlib block
- get BLOCK_SZ long 0 #block 3 size
- get BLOCK_ZSZ long 0 #block 3 compressed size
- savepos OFFSET 0
- clog MEMORY_FILE3 OFFSET BLOCK_ZSZ BLOCK_SZ 0
- goto BLOCK_ZSZ 0 SEEK_CUR #skip zlib block
- savepos OFFSET 0
- ###################################### EXTRACTION ######################################
- endian little
- for i = 0 < FILECOUNT
- get UNKNOWN longlong MEMORY_FILE2 # unknown
- get FILE_SZ long MEMORY_FILE3
- get FILE_ZSZ long MEMORY_FILE3
- get FILE_NAME_HASH long MEMORY_FILE3
- get FILE_OFFSET long MEMORY_FILE3
- get FILE_COMTYPE byte MEMORY_FILE3 # 0 = no compression, 1 = zlib, 2 = snappy
- get FILE_ARCHIVE_NUM byte MEMORY_FILE3
- get DUMMY short MEMORY_FILE3 # unknown
- string ARCHIVE_NAME p= "%s%04d.dat" NAME FILE_ARCHIVE_NUM
- open FDSE ARCHIVE_NAME 1
- for
- get FILE_ID long MEMORY_FILE
- if FILE_ID != 0
- break
- endif
- next
- math FILE_ID += 1
- string FILE_NAME = "__"
- string FILE_NAME += FILE_ID # unique identification
- if FILE_COMTYPE == 0
- log MEMORY_FILE4 FILE_OFFSET FILE_SZ 1
- elif FILE_COMTYPE == 1
- comtype ZLIB
- clog MEMORY_FILE4 FILE_OFFSET FILE_ZSZ FILE_SZ 1
- elif FILE_COMTYPE == 2
- comtype SNAPPY
- clog MEMORY_FILE4 FILE_OFFSET FILE_ZSZ FILE_SZ 1
- endif
- getdstring FILETYPE 3 MEMORY_FILE4
- if FILETYPE ^ "RIF"
- string FILE_NAME += ".wav"
- elif FILETYPE ^ "DDS"
- string FILE_NAME += ".dds"
- elif FILETYPE ^ "ZOS"
- string FILE_NAME += ".zosft"
- else
- string FILE_NAME += ".eso"
- endif
- log FILE_NAME 0 FILE_SZ MEMORY_FILE4
- next i
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement