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
|
0x0000007100fcaecc,O,000092,_ZNK4ksys4phys14StaticCompound18getRuntimeTypeInfoEv
|
||||||
0x0000007100fcaf28,O,000008,_ZNK4ksys4phys14StaticCompound10needsParseEv
|
0x0000007100fcaf28,O,000008,_ZNK4ksys4phys14StaticCompound10needsParseEv
|
||||||
0x0000007100fcaf30,O,000372,_ZN4ksys4phys14StaticCompound33checkDerivedRuntimeTypeInfoStaticEPKN4sead15RuntimeTypeInfo9InterfaceE
|
0x0000007100fcaf30,O,000372,_ZN4ksys4phys14StaticCompound33checkDerivedRuntimeTypeInfoStaticEPKN4sead15RuntimeTypeInfo9InterfaceE
|
||||||
0x0000007100fcb0a4,U,000004,nullsub_5551
|
0x0000007100fcb0a4,O,000004,_ZN10hkTypeInfo19cleanupFunctionImplIN4ksys4phys9ShapeInfoEEEvPv
|
||||||
0x0000007100fcb0a8,U,000004,nullsub_5552
|
0x0000007100fcb0a8,O,000004,_ZN10hkTypeInfo19cleanupFunctionImplIN4ksys4phys9ActorInfoEEEvPv
|
||||||
0x0000007100fcb0ac,U,000136,
|
0x0000007100fcb0ac,O,000136,_ZN10hkTypeInfo19cleanupFunctionImplIN4ksys4phys18StaticCompoundInfoEEEvPv
|
||||||
0x0000007100fcb134,U,000088,
|
0x0000007100fcb134,U,000088,
|
||||||
0x0000007100fcb18c,U,000048,
|
0x0000007100fcb18c,U,000048,
|
||||||
0x0000007100fcb1bc,U,000048,
|
0x0000007100fcb1bc,U,000048,
|
||||||
0x0000007100fcb1ec,U,000048,
|
0x0000007100fcb1ec,U,000048,
|
||||||
0x0000007100fcb21c,U,000120,
|
0x0000007100fcb21c,U,000120,
|
||||||
0x0000007100fcb294,U,000396,sinitHavokShapeInfo
|
0x0000007100fcb294,O,000396,_GLOBAL__sub_I_physStaticCompoundInfo.cpp
|
||||||
0x0000007100fcb420,U,000080,
|
0x0000007100fcb420,U,000080,
|
||||||
0x0000007100fcb470,U,000076,
|
0x0000007100fcb470,U,000076,
|
||||||
0x0000007100fcb4bc,U,000084,
|
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/physStaticCompound.h
|
||||||
StaticCompound/physStaticCompoundFieldBodyGroup.cpp
|
StaticCompound/physStaticCompoundFieldBodyGroup.cpp
|
||||||
StaticCompound/physStaticCompoundFieldBodyGroup.h
|
StaticCompound/physStaticCompoundFieldBodyGroup.h
|
||||||
|
StaticCompound/physStaticCompoundInfo.cpp
|
||||||
|
StaticCompound/physStaticCompoundInfo.h
|
||||||
|
|
||||||
SupportBone/physSupportBoneParam.cpp
|
SupportBone/physSupportBoneParam.cpp
|
||||||
SupportBone/physSupportBoneParam.h
|
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