mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2025-06-07 21:38:01 -05:00
fix: dynamic fill loading missing conditions on unions
This commit is contained in:
parent
d46c31c047
commit
fff00af67b
@ -525,7 +525,7 @@ namespace
|
||||
}
|
||||
else
|
||||
{
|
||||
LINEF("#error Unsupported anonymous struct with name: {0}", memberInfo.m_member->m_name);
|
||||
LINEF("#error Unsupported anonymous struct with name: {0}", memberInfo.m_member->m_name)
|
||||
}
|
||||
}
|
||||
|
||||
@ -678,6 +678,19 @@ namespace
|
||||
const auto* dynamicMember = StructureComputations(&info).GetDynamicMember();
|
||||
|
||||
if (dynamicMember)
|
||||
{
|
||||
if (info.m_definition->GetType() == DataDefinitionType::UNION)
|
||||
{
|
||||
for (const auto& member : info.m_ordered_members)
|
||||
{
|
||||
const MemberComputations computations(member.get());
|
||||
if (computations.ShouldIgnore())
|
||||
continue;
|
||||
|
||||
PrintFillStruct_Member_Condition_Union(info, *member);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (const auto& member : info.m_ordered_members)
|
||||
{
|
||||
@ -688,11 +701,9 @@ namespace
|
||||
PrintFillStruct_Member(info, *member, DeclarationModifierComputations(member.get()), 0u);
|
||||
}
|
||||
|
||||
if (info.m_definition->GetType() == DataDefinitionType::UNION)
|
||||
PrintFillStruct_Member_Condition_Union(info, *dynamicMember);
|
||||
else
|
||||
PrintFillStruct_Member_Condition_Struct(info, *dynamicMember);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (const auto& member : info.m_ordered_members)
|
||||
|
@ -11,7 +11,7 @@
|
||||
#include <type_traits>
|
||||
#include <vector>
|
||||
|
||||
#define DEBUG_OFFSETS 1
|
||||
// #define DEBUG_OFFSETS 1
|
||||
|
||||
class ZoneStreamFillReadAccessor
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user