localcc / gvas

GVAS file format parsing library for rust
MIT License
19 stars 2 forks source link

Avoid use of UnknownProperty by adding more concrete property types #27

Closed scottanderson closed 1 year ago

scottanderson commented 1 year ago

From the test cases present in main, the following properties are being handled by UnknownProperty:

localcc commented 1 year ago

Unknown property should always stay just in case there are unknown engine changes for a specific game, etc., but hints on how to implement these particular properties can be found inside unreal_asset

scottanderson commented 1 year ago

I'm happy to reduce the scope of this ticket to simply adding the types mentioned - removal of UnknownProperty is not actually an objective.

ObjectProperty appears to be another clone of StrProperty, the others are unreal structs. References to other projects that have implemented them: https://github.com/rob0rt/drg-save-parser/blob/15082eda2fd6645fa96a64df663caa934c84ec60/src/properties/multicast_inline_delegate_property.rs https://github.com/rob0rt/drg-save-parser/blob/15082eda2fd6645fa96a64df663caa934c84ec60/src/properties/object_property.rs https://github.com/Sprayxe/unreal.js/blob/50b4080b2f6393e120b98b3479b30ed54e7856d3/src/ue4/assets/objects/FProperty.ts#L398 https://github.com/Sprayxe/unreal.js/blob/50b4080b2f6393e120b98b3479b30ed54e7856d3/src/ue4/assets/exports/UStruct.ts

localcc commented 1 year ago

I don't think object property is a string, is it a string in a binary file? Uasset object property is just an FPackageIndex It definitely is a string in gvas