# RenderWare 3.6.0.2 binary stream file unpacker v.0.1 (Madagascar: The game) get sSize asize for math I + 1 log memory_file 0 0 get rwType long set fName string I string fName + "_" get sectSize long get rwVersion long savepos sectOffset if rwType != 1814 string fName + rwType string fName + .UNK log fName sectOffset sectSize else log memory_file sectOffset sectSize endif if rwType == 1814 get headerSize long memory_file savepos headerStart memory_file get nameSize long memory_file get rwName string memory_file string fName + rwName strlen fNameLen rwName math nameSize - fNameLen math nameSize - 1 goto nameSize memory_file SEEK_CUR goto 16 memory_file SEEK_CUR get rwID_Size long memory_file get rwID string memory_file if rwID == "rwID_TEXDICTIONARY" string fName - .txd #subtract extension for debug string fName - .TXD string fName + .txd elif rwID == "rwaID_WAVEDICT" string fName - .rws string fName - .RWS string fName + .rws elif rwID == "rwID_WORLD" string fName - .bsp string fName - .BSP string fName + .bsp elif rwID == "TextStringDict" string fName - .txl string fName - .TXL string fName + .txl elif rwID == "rwID_CLUMP" string fName - .dff string fName - .DFF string fName + .dff elif rwID == "rwID_HANIMANIMATION" string fName - .anm string fName - .ANM string fName + .anm elif rwID == "SCRIPT" string fName - .ai string fName - .AI string fName + .ai elif rwID == "TEXT" string fName + .TEXT elif rwID == "rwID_2DFONT" string fName - .fnt string fName - .FNT string fName + .fnt elif rwID == "KFset" string fName - .lpa string fName - .LPA string fName + .lpa #DEBUGELSE else string fName + "." string fName + rwID endif goto headerStart memory_file SEEK_SET goto headerSize memory_file SEEK_CUR get fSize long memory_file savepos fOffset memory_file log fName fOffset fSize memory_file endif goto sectSize 0 SEEK_CUR savepos checkPos if checkPos == sSize Print "Files Extracted: %i%" cleanexit endif next