Lemmings 2

From XentaxWiki
Jump to: navigation, search

Back to index

Choose archive extension:

VOC


Format Specifications

// MexCom - Recreation of formats\Lemmings 2 (VOC)\VOC.bms
// THIS IS AN AUTOMATED SPECIFICATION
// READ WITH CARE
// ----------------------------
// LEGEND
// ----------------------------
// ==> (Jump to offset)
// #DECLARE (Set variable to value)
// $$ CALCULATE (Calculate a new value)
// ** (Section that repeats itself on condition)
// // (Comment)
// uint32{4} (Unsigned 32-bit value, 4 bytes)
// uint16{2} (Unsigned 16-bit value, 2 bytes)
// ubyte{1} (Unsigned 8-bit value, 1 byte)
// char{n} (String value, n bytes in length
// ----------------------------


// Format Specification


uint32{4}		D
#DECLARE FST = CURRENT OFFSET
uint32{4}		FS
#DECLARE FO = 512


// Resources have no name, are located at FO and have a size of FS
#DECLARE FN = 512
$$ CALCULATE FN /  4
$$ CALCULATE FN - 1


** Start Repeated entry (T) {FN}


==>FST
uint32{4}		Offset of resource (FO)
$$ CALCULATE FO + 512
#DECLARE FST = CURRENT OFFSET
uint32{4}		FS


** IF FS = 0
#DECLARE FS = CURRENT OFFSET
$$ CALCULATE FS + 1
$$ CALCULATE FS - FO


// Resources have no name, are located at FO and have a size of FS

** ELSE
$$ CALCULATE FS - FO


// Resources have no name, are located at FO and have a size of FS
** END IF
** End Repeated entry (T)
// ----------------------------
// MexCom - Recreation complete 


MultiEx BMS

Get D Long 0 ;
SavePos FST 0 ;
Get FS Long 0 ;
Set FO Long 512 ;
Log "" FO FS 0 0 ;
Set FN Long 512 ;
Math FN /= 4 ;
Math FN -= 1 ;
For T = 1 To FN ;
GoTo FST 0 ;
Get FO Long 0 ;
Math FO += 512 ;
SavePos FST 0 ;
Get FS Long 0 ;
If FS = 0 ;
GoTo EOF 0 ;
SavePos FS 0 ;
Math FS += 1 ;
Math FS -= FO ;
Log "" FO FS 0 0 ;
Set T Long FN ;
Else ;
Math FS -= FO ;
Log "" FO FS 0 0 ;
EndIf ;
Next T ;


Notes and Comments

None


Supported by Programs