mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2025-04-20 16:15:43 +00:00
34 lines
834 B
C++
34 lines
834 B
C++
#pragma once
|
|
|
|
#include "DataDefinition.h"
|
|
#include "Variable.h"
|
|
|
|
#include <memory>
|
|
#include <vector>
|
|
|
|
class DefinitionWithMembers : public DataDefinition
|
|
{
|
|
public:
|
|
static constexpr int FLAG_FIELDS_CALCULATED = 1 << 0;
|
|
static constexpr int FLAG_FIELDS_CALCULATING = 1 << 1;
|
|
static constexpr int FLAG_ALIGNMENT_FORCED = 1 << 2;
|
|
|
|
unsigned m_flags;
|
|
unsigned m_size;
|
|
unsigned m_alignment;
|
|
|
|
bool m_has_alignment_override;
|
|
bool m_anonymous;
|
|
|
|
const unsigned m_pack;
|
|
unsigned m_alignment_override;
|
|
|
|
std::vector<std::shared_ptr<Variable>> m_members;
|
|
|
|
DefinitionWithMembers(std::string _namespace, std::string name, unsigned pack);
|
|
|
|
_NODISCARD unsigned GetAlignment() const override;
|
|
_NODISCARD bool GetForceAlignment() const override;
|
|
_NODISCARD unsigned GetSize() const override;
|
|
};
|