Files
OpenAssetTools/src/ZoneCodeGeneratorLib/Domain/Computations/MemberComputations.h
T
Jan Laupetin 00546740e4 fix: filling union members that are not supposed to be written
* This causes some pointers to be partially overwritten when filling in the wrong order as well
2026-01-17 00:45:21 +00:00

37 lines
1.4 KiB
C++

#pragma once
#include "Domain/Information/MemberInformation.h"
#include <vector>
class MemberComputations
{
public:
explicit MemberComputations(const MemberInformation* member);
[[nodiscard]] bool ShouldIgnore() const;
[[nodiscard]] bool ContainsNonEmbeddedReference() const;
[[nodiscard]] bool ContainsSinglePointerReference() const;
[[nodiscard]] bool ContainsArrayPointerReference() const;
[[nodiscard]] bool ContainsPointerArrayReference() const;
[[nodiscard]] bool ContainsArrayReference() const;
[[nodiscard]] const IEvaluation* GetArrayPointerCountEvaluation() const;
[[nodiscard]] bool IsArray() const;
[[nodiscard]] std::vector<int> GetArraySizes() const;
[[nodiscard]] int GetArrayDimension() const;
[[nodiscard]] bool IsPointerToArray() const;
[[nodiscard]] std::vector<int> GetPointerToArraySizes() const;
[[nodiscard]] int GetPointerDepth() const;
[[nodiscard]] bool IsNotInDefaultNormalBlock() const;
[[nodiscard]] bool IsInTempBlock() const;
[[nodiscard]] bool IsInRuntimeBlock() const;
[[nodiscard]] bool IsFirstUsedMember(bool includeLeafs) const;
[[nodiscard]] bool IsLastUsedMember(bool includeLeafs) const;
[[nodiscard]] bool HasDynamicArraySize() const;
[[nodiscard]] bool IsDynamicMember() const;
[[nodiscard]] bool IsAfterPartialLoad() const;
private:
const MemberInformation* const m_info;
};