DaZombieKiller / TypeTreeTools

Export type tree information straight from the Unity editor. Superceded by https://github.com/DaZombieKiller/TypeTreeDumper
MIT License
8 stars 4 forks source link

ExportStructDump Abstract Type and PersistentTypeID enum format #6

Closed spacehamster closed 4 years ago

spacehamster commented 4 years ago

ExportStructDump dumps the abstract type, while ExportStructData dumps the the first non-abstract base type. https://github.com/DaZombieKiller/TypeTreeTools/blob/40b77ef170a6cbf272d7516f5c94b079a45fd548/Assembly-TypeTreeTools/TypeTreeTools/ExportCommands.Legacy.cs#L142 https://github.com/DaZombieKiller/TypeTreeTools/blob/40b77ef170a6cbf272d7516f5c94b079a45fd548/Assembly-TypeTreeTools/TypeTreeTools/ExportCommands.Legacy.cs#L75 I suspect ExportStructDump should be dumping the first non-abstract base type?

PersistentTypeID is dumped as a enum string in https://github.com/DaZombieKiller/TypeTreeTools/blob/40b77ef170a6cbf272d7516f5c94b079a45fd548/Assembly-TypeTreeTools/TypeTreeTools/ExportCommands.Legacy.cs#L129 and https://github.com/DaZombieKiller/TypeTreeTools/blob/40b77ef170a6cbf272d7516f5c94b079a45fd548/Assembly-TypeTreeTools/TypeTreeTools/ExportCommands.Legacy.cs#L39 should it be cast as an int?

DaZombieKiller commented 4 years ago

ExportStructDump dumps the abstract type, while ExportStructData dumps the the first non-abstract base type. I suspect ExportStructDump should be dumping the first non-abstract base type?

There used to be support for dumping abstract types, however I disabled it recently due to it causing crashes on newer editor versions. I haven't investigated the cause just yet. I believe I left some comments in the NativeObject struct that explains the steps necessary to reimplement it.

Since support for abstract type dumping isn't implemented right now though, you are correct, it should be using iter and not type.

PersistentTypeID is dumped as a enum string in [...] should it be cast as an int?

Yes, I think this was caused by an oversight on my part when I changed PersistentTypeID to an enum field.