Heroes Of Might And Magic 4 H4R: Difference between revisions

From XentaxWiki
Jump to navigation Jump to search
imported>AKuHAK
imported>AKuHAK
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">(null)</font><br>  
::: uint16 {2}&nbsp;&nbsp; - Pointer Name Length <font color="purple">(always null for pointer 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">(always null for pointer data)</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 ''' </font> <br>  
::: uint16 {2}&nbsp;&nbsp; - Filename Length <font color="purple">(null)</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>  
::: uint16 {2}&nbsp;&nbsp; - Directory Name Length <font color="purple">(null)</font> <br>  
::: uint16 {2}&nbsp;&nbsp; - Directory Name Length <font color="purple">(always null for pointer data)</font> <br>  
::: char {X}&nbsp;&nbsp;&nbsp;&nbsp; - Directory Name <font color="purple">(null - doesn't exist)</font> <br>  
::: char {X}&nbsp;&nbsp;&nbsp;&nbsp; - Directory Name <font color="purple">(null - doesn't exist)</font> <br>  
::: uint16 {2}&nbsp;&nbsp; - Pointer Name Length<br>  
::: uint16 {2}&nbsp;&nbsp; - Pointer Name Length<br>  
::: char {X}&nbsp;&nbsp;&nbsp;&nbsp; - Pointer Name <font color="purple">(must be equivalent to existing FileName)</font><br>  
::: char {X}&nbsp;&nbsp;&nbsp;&nbsp; - Pointer Name <font color="purple">(must be equivalent to existing FileName)</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">(always null for pointer data)</font><br>  
::: <font color="blue"> ''' } ''' </font> <br>  
::: <font color="blue"> ''' } ''' </font> <br>  



Revision as of 08:03, 23 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}   - Directory Length (compresed size)
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 pointer data)
char {X}     - Pointer Name (null - doesn't exist)
uint32 {4}   - Compression Level (0 - without compression, 3 - normal gzip compression)
}
else {
// Pointer
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