/
wf_unpak.bms
46 lines (33 loc) · 981 Bytes
/
wf_unpak.bms
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# WayForward engine assets extractor 0.3 by artlavrov
# script for QuickBMS http://quickbms.aluigi.org
endian little
get FILES_OFFSET long
get FILES_COUNT long
set ALIGN 8
set SIG_LINK = "FILELINK_____END"
set SIG_DATA = "MANAGEDFILE_DATABLOCK_USED_IN_ENGINE_________________________END"
savepos OFFSET
# determine pak version
getdstring FILE_SIG 16
if FILE_SIG != SIG_LINK
set ALIGN 4
set SIG_LINK = "FILELINK"
set SIG_DATA = "MANAGEDFILE_DATABLOCK_USED_IN_ENGINE_END"
endif
goto OFFSET
for i = 0 < FILES_COUNT
# read file entry from the file list
getdstring FILE_SIG ALIGN*2
get FILE_OFFSET long
get FILE_SIZE long
getct FILE_NAME string 0
padding ALIGN
# calculate file offset
set SIG_DATA_LEN strlen SIG_DATA
math FILE_OFFSET + FILES_OFFSET
math FILE_OFFSET + SIG_DATA_LEN
# replace ':' to '/' in the file name
string FILE_NAME R= ":" "/"
# write file body
log FILE_NAME FILE_OFFSET FILE_SIZE
next i