diff options
Diffstat (limited to 'extractor/grf.gd')
-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 |