2
0
mirror of https://github.com/Laupetin/OpenAssetTools.git synced 2025-06-28 23:31:54 +00:00

implement loadzone singlepointer

This commit is contained in:
Jan
2021-02-20 16:46:00 +01:00
parent 04491e21f2
commit 5b7f33b63d
3 changed files with 231 additions and 9 deletions

View File

@ -60,7 +60,13 @@ std::string BaseTemplate::SafeTypeName(const DataDefinition* def)
return safeName;
}
void BaseTemplate::TypeDecl(const TypeDeclaration* decl) const
void BaseTemplate::PrintAccessMember(StructureInformation* info, MemberInformation* member, const DeclarationModifierComputations& modifier) const
{
LINE_MIDDLE(TypeVarName(info->m_definition) << "->" << member->m_member->m_name)
PrintArrayIndices(modifier);
}
void BaseTemplate::PrintTypeDecl(const TypeDeclaration* decl) const
{
if (decl->m_is_const)
{
@ -69,13 +75,13 @@ void BaseTemplate::TypeDecl(const TypeDeclaration* decl) const
LINE_MIDDLE(decl->m_type->GetFullName())
}
void BaseTemplate::PrintFollowingReferences(const std::vector<std::unique_ptr<DeclarationModifier>>& modifiers) const
void BaseTemplate::PrintFollowingReferences(const std::vector<DeclarationModifier*>& modifiers) const
{
for (const auto& modifier : modifiers)
for (const auto* modifier : modifiers)
{
if (modifier->GetType() == DeclarationModifierType::ARRAY)
{
const auto* array = dynamic_cast<const ArrayDeclarationModifier*>(modifier.get());
const auto* array = dynamic_cast<const ArrayDeclarationModifier*>(modifier);
LINE_MIDDLE("["<< array->m_size <<"]")
}
else

View File

@ -26,8 +26,9 @@ protected:
static std::string TypeVarName(const DataDefinition* def);
static std::string TypePtrVarName(const DataDefinition* def);
static std::string SafeTypeName(const DataDefinition* def);
void TypeDecl(const TypeDeclaration* decl) const;
void PrintFollowingReferences(const std::vector<std::unique_ptr<DeclarationModifier>>& modifiers) const;
void PrintAccessMember(StructureInformation* info, MemberInformation* member, const DeclarationModifierComputations& modifier) const;
void PrintTypeDecl(const TypeDeclaration* decl) const;
void PrintFollowingReferences(const std::vector<DeclarationModifier*>& modifiers) const;
void PrintArrayIndices(const DeclarationModifierComputations& modifierComputations) const;
void PrintCustomAction(CustomAction* action) const;