mirror of https://github.com/zeldaret/botw.git
ksys/phys: Add StaticCompoundInfo
This commit is contained in:
parent
a859b356e6
commit
2d1ffdf6d2
|
@ -84203,15 +84203,15 @@ Address,Quality,Size,Name
|
|||
0x0000007100fcaecc,O,000092,_ZNK4ksys4phys14StaticCompound18getRuntimeTypeInfoEv
|
||||
0x0000007100fcaf28,O,000008,_ZNK4ksys4phys14StaticCompound10needsParseEv
|
||||
0x0000007100fcaf30,O,000372,_ZN4ksys4phys14StaticCompound33checkDerivedRuntimeTypeInfoStaticEPKN4sead15RuntimeTypeInfo9InterfaceE
|
||||
0x0000007100fcb0a4,U,000004,nullsub_5551
|
||||
0x0000007100fcb0a8,U,000004,nullsub_5552
|
||||
0x0000007100fcb0ac,U,000136,
|
||||
0x0000007100fcb0a4,O,000004,_ZN10hkTypeInfo19cleanupFunctionImplIN4ksys4phys9ShapeInfoEEEvPv
|
||||
0x0000007100fcb0a8,O,000004,_ZN10hkTypeInfo19cleanupFunctionImplIN4ksys4phys9ActorInfoEEEvPv
|
||||
0x0000007100fcb0ac,O,000136,_ZN10hkTypeInfo19cleanupFunctionImplIN4ksys4phys18StaticCompoundInfoEEEvPv
|
||||
0x0000007100fcb134,U,000088,
|
||||
0x0000007100fcb18c,U,000048,
|
||||
0x0000007100fcb1bc,U,000048,
|
||||
0x0000007100fcb1ec,U,000048,
|
||||
0x0000007100fcb21c,U,000120,
|
||||
0x0000007100fcb294,U,000396,sinitHavokShapeInfo
|
||||
0x0000007100fcb294,O,000396,_GLOBAL__sub_I_physStaticCompoundInfo.cpp
|
||||
0x0000007100fcb420,U,000080,
|
||||
0x0000007100fcb470,U,000076,
|
||||
0x0000007100fcb4bc,U,000084,
|
||||
|
|
Can't render this file because it is too large.
|
|
@ -34,6 +34,8 @@ target_sources(uking PRIVATE
|
|||
StaticCompound/physStaticCompound.h
|
||||
StaticCompound/physStaticCompoundFieldBodyGroup.cpp
|
||||
StaticCompound/physStaticCompoundFieldBodyGroup.h
|
||||
StaticCompound/physStaticCompoundInfo.cpp
|
||||
StaticCompound/physStaticCompoundInfo.h
|
||||
|
||||
SupportBone/physSupportBoneParam.cpp
|
||||
SupportBone/physSupportBoneParam.h
|
||||
|
|
|
@ -0,0 +1,104 @@
|
|||
#include "KingSystem/Physics/StaticCompound/physStaticCompoundInfo.h"
|
||||
#include <Havok/Common/Base/Reflection/hkClass.h>
|
||||
#include <Havok/Common/Base/Reflection/hkClassMember.h>
|
||||
#include <Havok/Common/Base/Reflection/hkTypeInfo.h>
|
||||
#include <array>
|
||||
|
||||
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
|
|
@ -0,0 +1,41 @@
|
|||
#pragma once
|
||||
|
||||
#include <Havok/Common/Base/hkBase.h>
|
||||
|
||||
class hkTypeInfo;
|
||||
|
||||
namespace ksys::phys {
|
||||
|
||||
struct ShapeInfo {
|
||||
HK_DECLARE_REFLECTION()
|
||||
|
||||
hkInt32 m_ActorInfoIndex;
|
||||
hkInt32 m_InstanceId;
|
||||
hkInt8 m_BodyGroup;
|
||||
hkUint8 m_BodyLayerType;
|
||||
};
|
||||
extern const hkClass ShapeInfo_Class;
|
||||
extern const hkTypeInfo ShapeInfo_TypeInfo;
|
||||
|
||||
struct ActorInfo {
|
||||
HK_DECLARE_REFLECTION()
|
||||
|
||||
hkUint32 m_HashId;
|
||||
hkInt32 m_SRTHash;
|
||||
hkInt32 m_ShapeInfoStart;
|
||||
hkInt32 m_ShapeInfoEnd;
|
||||
};
|
||||
extern const hkClass ActorInfo_Class;
|
||||
extern const hkTypeInfo ActorInfo_TypeInfo;
|
||||
|
||||
struct StaticCompoundInfo {
|
||||
HK_DECLARE_REFLECTION()
|
||||
|
||||
hkUint32 m_Offset;
|
||||
hkArray<ActorInfo> m_ActorInfo;
|
||||
hkArray<ShapeInfo> m_ShapeInfo;
|
||||
};
|
||||
extern const hkClass StaticCompoundInfo_Class;
|
||||
extern const hkTypeInfo StaticCompoundInfo_TypeInfo;
|
||||
|
||||
} // namespace ksys::phys
|
Loading…
Reference in New Issue