Total Annihilation HPI
HPI, UFO, CCX, PCK
- Format Type : Archive
- Endian Order : Little Endian
Format Specifications
char {4} - Header (HAPI)
uint32 {4} - Unknown
uint32 {4} - Directory Length
uint32 {4} - Directory Key
uint32 {4} - Main Directory Offset
byte {X} - File Data
// Main Directory
- uint32 {4} - Number Of Files In This Directory
- uint32 {4} - Directory Offset
- // go to this Directory Offset
- // for each file in this directory
- uint32 {4} - Filename Offset
- uint32 {4} - File Offset
- byte {1} - Directory/File ID
- uint32 {4} - Filename Offset
- // for each file in this directory
- if (directoryFileID == 1){
- // go to the name offset
- char {X} - Directory Name
- byte {1} - null Directory Name Terminator
- // go to the name offset
- if (directoryFileID == 1){
- // go to the offset and repeat from "4 - Number Of Files In This Directory"
- }
- // go to the offset and repeat from "4 - Number Of Files In This Directory"
- else {
- // go to the name offset
- char {X} - Filename
- byte {1} - null Filename Terminator
- // go to the name offset
- else {
- // go to the offset
- uint32 {4} - Offset
- uint32 {4} - Length
- byte {1} - Flag
- }
- // go to the offset
MultiEx BMS Script
Not written yet