diff options
Diffstat (limited to 'extractor')
| -rw-r--r-- | extractor/grf.gd | 38 | 
1 files changed, 37 insertions, 1 deletions
| diff --git a/extractor/grf.gd b/extractor/grf.gd index 8cb03c1..27dcab0 100644 --- a/extractor/grf.gd +++ b/extractor/grf.gd @@ -1,4 +1,40 @@  class_name GRF +  class Header: -	var signature: int +	static var byte_length: int = 46 +	 +	## Byte Length: 15 +	## Master of Magic +	var signature: String +	 +	## Byte Length: 15 +	var encryption: PackedByteArray +	 +	## Byte Type: u32 +	## Byte Length: 4 +	var file_table_offset: int +	 +	## Byte Type: u32 +	## Byte Length: 4 +	var reserved_files: int +	 +	## Byte Type: u32 +	## Byte Length: 4 +	var file_count: int +	 +	## Byte Type: u32 +	## Byte Length: 4 +	var version: int +	 +	 +	static func from_file(file: FileAccess): +		var header = Header.new() +		header.signature = file.get_buffer(15).get_string_from_utf8() +		header.encryption = file.get_buffer(15) +		header.file_table_offset = file.get_buffer(4).decode_u32(0) +		header.reserved_files = file.get_buffer(4).decode_u32(0) +		header.file_count = file.get_buffer(4).decode_u32(0) +		header.version = file.get_buffer(4).decode_u32(0) +		 +		return header | 
