summaryrefslogtreecommitdiff
path: root/src/KingSystem/Physics/StaticCompound/physStaticCompoundAutogen.cpp
blob: 20d6066e44faa20935b9d58b6d640f023c7b91ca (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#include <Havok/Common/Base/Reflection/hkClass.h>
#include <Havok/Common/Base/Reflection/hkClassMember.h>
#include <Havok/Common/Base/Reflection/hkTypeInfo.h>
#include <array>
#include "KingSystem/Physics/StaticCompound/physStaticCompoundInfo.h"

namespace ksys::phys {

// Reflection data is normally autogenerated with a Havok script and type parser,
// but considering we only have 3 classes it's easier to just write the data manually.

// ShapeInfo

static constexpr hkClassMember ShapeInfo_Members[] = {
    {"ActorInfoIndex", nullptr, nullptr, hkClassMember::Type::TYPE_INT32,
     hkClassMember::Type::TYPE_VOID, 0, 0, 0, nullptr},
    {"InstanceId", nullptr, nullptr, hkClassMember::Type::TYPE_INT32,
     hkClassMember::Type::TYPE_VOID, 0, 0, 4, nullptr},
    {"BodyGroup", nullptr, nullptr, hkClassMember::Type::TYPE_INT8, hkClassMember::Type::TYPE_VOID,
     0, 0, 8, nullptr},
    {"BodyLayerType", nullptr, nullptr, hkClassMember::Type::TYPE_UINT8,
     hkClassMember::Type::TYPE_VOID, 0, 0, 9, nullptr},
};

const hkClass ShapeInfo_Class{
    "ShapeInfo",
    nullptr,
    sizeof(ShapeInfo),
    nullptr,
    0,
    nullptr,
    0,
    ShapeInfo_Members,
    std::size(ShapeInfo_Members),
};

const hkClass& ShapeInfo::staticClass() {
    return ShapeInfo_Class;
}

const hkTypeInfo ShapeInfo_TypeInfo = hkTypeInfo::make<ShapeInfo>("ShapeInfo", "!ShapeInfo");

// ActorInfo

static constexpr hkClassMember ActorInfo_Members[] = {
    {"HashId", nullptr, nullptr, hkClassMember::Type::TYPE_UINT32, hkClassMember::Type::TYPE_VOID,
     0, 0, 0, nullptr},
    {"SRTHash", nullptr, nullptr, hkClassMember::Type::TYPE_INT32, hkClassMember::Type::TYPE_VOID,
     0, 0, 4, nullptr},
    {"ShapeInfoStart", nullptr, nullptr, hkClassMember::Type::TYPE_INT32,
     hkClassMember::Type::TYPE_VOID, 0, 0, 8, nullptr},
    {"ShapeInfoEnd", nullptr, nullptr, hkClassMember::Type::TYPE_INT32,
     hkClassMember::Type::TYPE_VOID, 0, 0, 0xc, nullptr},
};

const hkClass ActorInfo_Class{
    "ActorInfo",
    nullptr,
    sizeof(ActorInfo),
    nullptr,
    0,
    nullptr,
    0,
    ActorInfo_Members,
    std::size(ActorInfo_Members),
};

const hkClass& ActorInfo::staticClass() {
    return ActorInfo_Class;
}

const hkTypeInfo ActorInfo_TypeInfo = hkTypeInfo::make<ActorInfo>("ActorInfo", "!ActorInfo");

// StaticCompoundInfo

static constexpr hkClassMember StaticCompoundInfo_Members[] = {
    {"Offset", nullptr, nullptr, hkClassMember::Type::TYPE_UINT32, hkClassMember::Type::TYPE_VOID,
     0, 0, 0, nullptr},
    {"ActorInfo", &ActorInfo_Class, nullptr, hkClassMember::Type::TYPE_ARRAY,
     hkClassMember::Type::TYPE_STRUCT, 0, 0, 8, nullptr},
    {"ShapeInfo", &ShapeInfo_Class, nullptr, hkClassMember::Type::TYPE_ARRAY,
     hkClassMember::Type::TYPE_STRUCT, 0, 0, 0x18, nullptr},
};

const hkClass StaticCompoundInfo_Class{
    "StaticCompoundInfo",
    nullptr,
    sizeof(StaticCompoundInfo),
    nullptr,
    0,
    nullptr,
    0,
    StaticCompoundInfo_Members,
    std::size(StaticCompoundInfo_Members),
};

const hkClass& StaticCompoundInfo::staticClass() {
    return StaticCompoundInfo_Class;
}

const hkTypeInfo StaticCompoundInfo_TypeInfo =
    hkTypeInfo::make<StaticCompoundInfo>("StaticCompoundInfo", "!StaticCompoundInfo");

}  // namespace ksys::phys