Open ModernMAK opened 1 year ago
Unfortunately, this highlights a major design flaw in EssenceFSSerializer; that we can't override the assembler and disassembler.
BUT.
The disassembler highlights the real problem; how do we specify when to use DoW V2 vs IC V2?
More research needs to be done on the differences between the two formats.
Metadata could potentially be used to store whether it was loaded as an IC or SGA archive.
Manually created archives would still be a bit of an issue, but as of now; it's enough of a solution.
Despite the reduction of scope; (#45), because Impossible Creatures is considered a V2 SGA, it should be handled properly.
If only so it's clear that an invalid DoW-V2 SGA is provided.
According to the tool; Impossible Creatures (Steam Edition) uses SGA v2.0
But the File Block of the Table of Contents does not load properly.
This appears to be caused by IC using a File Def of 17 bytes and DoW using a File Def of 20 bytes. IC seems to treat the StorageFlag as a UInt8 whereas DoW stores it as a UInt32.
Unless something else signifies this discrepancy between versions, V2 will need to be 'hacked' to fallback to a 17 byte FileDef if the 20 byte FileDef fails.