# Desura MCF archives
# script for QuickBMS http://quickbms.aluigi.org
comtype bzip2_file
idstring "LMCF"
get VER byte
get ENTRIES long
get DUMMY long
get DUMMY byte
get OFFSET longlong
get SIZE long
get ZIP byte
get DUMMY long
get DUMMY long
if ZIP == 0
log MEMORY_FILE OFFSET SIZE
else
clog MEMORY_FILE OFFSET SIZE SIZE
endif
for
findloc OFFSET string "" MEMORY_FILE
math OFFSET += 6
goto OFFSET MEMORY_FILE
findloc LIMIT string "" MEMORY_FILE
set XML_STRING string ""
callfunction GET_XML_STRING 1
set NAME string XML_STRING
set XML_STRING string ""
callfunction GET_XML_STRING 1
set PATH string XML_STRING
set XML_STRING string ""
callfunction GET_XML_STRING 1
set OFFSET string XML_STRING
set XML_STRING string ""
callfunction GET_XML_STRING 1
set SIZE string XML_STRING
set XML_STRING string ""
callfunction GET_XML_STRING 1
set ZSIZE string XML_STRING
set FNAME string PATH
string FNAME += NAME
if ZSIZE == ""
log FNAME OFFSET SIZE
else
clog FNAME OFFSET ZSIZE SIZE
endif
next
startfunction GET_XML_STRING
strlen XML_STRSZ XML_STRING
findloc TMP string XML_STRING MEMORY_FILE ""
set XML_STRING string ""
if TMP != ""
if TMP < LIMIT
math TMP += XML_STRSZ
savepos TMP_OFF MEMORY_FILE
goto TMP MEMORY_FILE
findloc XML_STRSZ string "<" MEMORY_FILE
math XML_STRSZ -= TMP
getdstring XML_STRING XML_STRSZ MEMORY_FILE
goto TMP_OFF MEMORY_FILE
endif
endif
endfunction