mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2025-06-08 22:08:29 -05:00
Fix counting padding for root struct even when root struct has no properties
This commit is contained in:
parent
f236d285b6
commit
2e5405deb5
@ -116,11 +116,15 @@ namespace sdd::def_scope_sequences
|
||||
if (newStructPtr->m_name == "root")
|
||||
{
|
||||
state->m_current_struct_padding_offset = 64u;
|
||||
state->m_current_struct_is_root = true;
|
||||
state->m_current_def->m_root_type = CommonStructuredDataType(CommonStructuredDataTypeCategory::STRUCT, newStructIndex);
|
||||
}
|
||||
else
|
||||
{
|
||||
state->m_current_struct_is_root = false;
|
||||
state->m_current_struct_padding_offset = 0;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
class SequenceChecksumOverride final : public StructuredDataDefParser::sequence_t
|
||||
|
@ -232,8 +232,13 @@ namespace sdd::struct_scope_sequences
|
||||
{
|
||||
assert(state->m_current_struct != nullptr);
|
||||
|
||||
// Only include root struct offset of 8 byte when root struct is not empty
|
||||
if (state->m_current_struct_is_root && state->m_current_struct->m_properties.empty())
|
||||
state->m_current_struct_padding_offset -= 64u;
|
||||
|
||||
state->m_current_struct->m_size_in_byte = utils::Align(state->m_current_struct_padding_offset, 8u) / 8;
|
||||
state->m_current_struct_padding_offset = 0u;
|
||||
state->m_current_struct_is_root = false;
|
||||
state->m_current_struct = nullptr;
|
||||
}
|
||||
};
|
||||
|
@ -31,6 +31,7 @@ namespace sdd
|
||||
CommonStructuredDataEnum* m_current_enum;
|
||||
CommonStructuredDataStruct* m_current_struct;
|
||||
|
||||
bool m_current_struct_is_root;
|
||||
size_t m_current_struct_padding_offset;
|
||||
|
||||
size_t m_checksum_override_value;
|
||||
|
Loading…
x
Reference in New Issue
Block a user