Heroes Of Might And Magic 4 H4R: Difference between revisions

From XentaxWiki
Jump to navigation Jump to search
imported>AKuHAK
imported>AKuHAK
Line 23: Line 23:
:: uint32 {4}&nbsp;&nbsp; - Data Offset <br>  
:: uint32 {4}&nbsp;&nbsp; - Data Offset <br>  
:: uint32 {4}&nbsp;&nbsp; - File Length <br>  
:: uint32 {4}&nbsp;&nbsp; - File Length <br>  
:: uint32 {4}&nbsp;&nbsp; - Directory Length <font color="purple">(compresed size)</font> <br>  
:: uint32 {4}&nbsp;&nbsp; - Compressed size <font color="purple">(null if fileNameLength=0)</font> <br>  
:: uint32 {4}&nbsp;&nbsp; - <font color="red"> '' Time? (UNIX format) '' </font> <br>  
:: uint32 {4}&nbsp;&nbsp; - <font color="red"> '' Time? (UNIX format) '' </font> <br>  
<br>
<br>
Line 32: Line 32:
::: uint16 {2}&nbsp;&nbsp; - Directory Name Length <br>  
::: uint16 {2}&nbsp;&nbsp; - Directory Name Length <br>  
::: char {X}&nbsp;&nbsp;&nbsp;&nbsp; - Directory Name <br>  
::: char {X}&nbsp;&nbsp;&nbsp;&nbsp; - Directory Name <br>  
::: uint16 {2}&nbsp;&nbsp; - Pointer Name Length <font color="purple">(always null for pointer data)</font><br>  
::: uint16 {2}&nbsp;&nbsp; - Pointer Name Length <font color="purple">(always null for file data)</font><br>  
::: char {X}&nbsp;&nbsp;&nbsp;&nbsp; - Pointer Name <font color="purple">(null - doesn't exist)</font> <br>  
::: char {X}&nbsp;&nbsp;&nbsp;&nbsp; - Pointer Name <font color="purple">(null - doesn't exist)</font> <br>  
::: uint32 {4}&nbsp;&nbsp; - Compression Level <font color="purple">(0 - without compression, 3 - normal gzip compression)</font><br>  
::: uint32 {4}&nbsp;&nbsp; - Compression Level <font color="purple">(0 - without compression, 3 - normal gzip compression)</font><br>  
::: <font color="blue"> ''' } ''' </font> <br>
::: <font color="blue"> ''' } ''' </font> <br>
:: <font color="blue"> ''' else { ''' </font> <br>  
:: <font color="blue"> ''' else { ''' </font> <br>  
::: <font color="blue"> ''' // Pointer ''' </font> <br>  
::: <font color="blue"> ''' // Pointer (this is used when you need to get access to file with another file name)''' </font> <br>  
::: uint16 {2}&nbsp;&nbsp; - Filename Length <font color="purple">(always null for pointer data)</font> <br>  
::: uint16 {2}&nbsp;&nbsp; - Filename Length <font color="purple">(always null for pointer data)</font> <br>  
::: char {X}&nbsp;&nbsp;&nbsp;&nbsp; - Filename <font color="purple">(null - doesn't exist)</font> <br>  
::: char {X}&nbsp;&nbsp;&nbsp;&nbsp; - Filename <font color="purple">(null - doesn't exist)</font> <br>  

Revision as of 07:06, 24 October 2012

Choose archive extension:

H4R


Format Specifications

byte {4}     - Header (72 52 82 5)
uint32 {4}   - Directory Offset

byte {X}     - File Data

// Directory

uint32 {4}   - Number Of Files


// for each file
uint32 {4}   - Data Offset
uint32 {4}   - File Length
uint32 {4}   - Compressed size (null if fileNameLength=0)
uint32 {4}   - Time? (UNIX format)


if (fileNameLength > 0){
// File
uint16 {2}   - Filename Length
char {X}     - Filename
uint16 {2}   - Directory Name Length
char {X}     - Directory Name
uint16 {2}   - Pointer Name Length (always null for file data)
char {X}     - Pointer Name (null - doesn't exist)
uint32 {4}   - Compression Level (0 - without compression, 3 - normal gzip compression)
}
else {
// Pointer (this is used when you need to get access to file with another file name)
uint16 {2}   - Filename Length (always null for pointer data)
char {X}     - Filename (null - doesn't exist)
uint16 {2}   - Directory Name Length (always null for pointer data)
char {X}     - Directory Name (null - doesn't exist)
uint16 {2}   - Pointer Name Length
char {X}     - Pointer Name (must be equivalent to existing FileName)
uint32 {4}   - Compression Level (always null for pointer data)
}


MultiEx BMS Script

Not written yet

Compatible Programs