# ARCV / Guacamelee / Drinkbox Studios (script 0.1.2) # script for QuickBMS http://quickbms.aluigi.org comtype unzip_dynamic idstring "ARCV" get DUMMY short get INFO_XSIZE long savepos NEXT_OFFSET math NEXT_OFFSET += INFO_XSIZE callfunction UNPACK 1 get FILES long MEMORY_FILE get SIZE long MEMORY_FILE getdstring DUMMY FILES MEMORY_FILE for i = 0 < FILES get NAME string MEMORY_FILE putarray 0 i NAME next i math OFFSET += ZSIZE goto OFFSET get DUMMY long for i = 0 <= FILES get OFFSET long putarray 1 i OFFSET next i sortarray 1 savepos BASE_OFF for i = 0 < FILES getarray NAME 0 i getarray OFFSET 1 i math TMP = i math TMP += 1 getarray NEXT_OFFSET 1 TMP math OFFSET += BASE_OFF math NEXT_OFFSET += BASE_OFF goto OFFSET callfunction UNPACK 1 log NAME 0 SIZE MEMORY_FILE next i startfunction UNPACK getdstring DUMMY 9 savepos OFFSET math CHUNKS = 0 for TMP = OFFSET < NEXT_OFFSET get CHUNK_ZSIZE short math TMP += 2 if CHUNK_ZSIZE == 0 math CHUNK_ZSIZE = 0x00010000 math TMP2 = NEXT_OFFSET math TMP2 -= TMP if CHUNK_ZSIZE > TMP2 math CHUNK_ZSIZE = TMP2 endif endif putarray 2 CHUNKS CHUNK_ZSIZE math TMP += CHUNK_ZSIZE next CHUNKS savepos OFFSET math SIZE = CHUNKS math SIZE *= 0x00010000 putvarchr MEMORY_FILE SIZE 0 log MEMORY_FILE 0 0 append for j = 0 < CHUNKS getarray CHUNK_ZSIZE 2 j clog MEMORY_FILE OFFSET CHUNK_ZSIZE 0x00010000 math OFFSET += CHUNK_ZSIZE goto OFFSET next j append goto 0 MEMORY_FILE get SIZE asize MEMORY_FILE endfunction