Transworld Snowboarding HPF: Difference between revisions
Jump to navigation
Jump to search
imported>Ikskoks m (Ikskoks moved page Transworld Snowboarding to Transworld Snowboarding HPF) |
imported>Ikskoks m (Ikskoks moved page Transworld Snowboarding to Transworld Snowboarding HPF) |
(No difference)
| |
Latest revision as of 23:48, 24 January 2021
Choose archive extension:
HPF
- Format Type : Archive
- Endian Order : Little Endian
Format Specifications
char {32} - Header ("HMG_PACKED_FILE" + null + spaces to fill)
char {256} - Absolute Archive Path (null terminated, spaces to fill)
uint32 {4} - Number Of Files
// for each file (80 bytes for each entry)
- uint32 {4} - File/Directory Identifier (0/3)
- if (FileDirID == 0){
- // file
- uint32 {4} - null
- uint32 {4} - File Offset (relative to the start of the file data)
- uint32 {4} - File Length
- char {64} - Filename (null terminated, filled with spaces after the null)
- }
- // file
- else if (FileDirID == 3){
- // directory
- uint32 {4} - null
- uint32 {4} - File ID (incremental from 48) -OR- Root Directory Identifier (=(byte)1)
- // directory
- if (fileID == (byte)1){
- uint32 {4} - File ID (incremental from 48)
- }
- uint32 {4} - File ID (incremental from 48)
- else {
- uint32 {4} - Unknown (1)
- }
- uint32 {4} - Unknown (1)
- if (fileID == (byte)1){
- char {64} - Directory Name (null terminated, filled with spaces after the null)
- }
- char {64} - Directory Name (null terminated, filled with spaces after the null)
byte {X} - File Data
MultiEx BMS
IDString 0 HMG_PACKED_FILE ; Set S Long 32 ; GoTo S 0 ; Get OriginalName String 0 ; Math S += 256 ; GoTo S 0 ; Get Entries Long 0 ; SavePos S 0 ; Math Entries *= 80 ; Math S += Entries ; Get AType Long 0 ; Get Unknown Long 0 ; Get Unknown Long 0 ; Get FileNum Long 0 ; SavePos J 0 ; Math J += 64 ; GoTo J 0 ; For T = 1 To FileNum ; Get RType Long 0 ; Get Unknown Long 0 ; Get ROff Long 0 ; Get Size Long 0 ; GetDString Name 64 0 ; Math ROff += S ; Log Name ROff Size 0 0 ; Next T ;