mirror of https://github.com/zeldaret/botw.git
ksys/phys: Add RagdollRigidBody stub
Needed for RagdollController.
This commit is contained in:
parent
7e9d9927e1
commit
301ad689ab
|
@ -95341,11 +95341,11 @@ Address,Quality,Size,Name
|
|||
0x00000071012acc6c,O,000004,_ZN4ksys4phys15RagdollResourceD1Ev
|
||||
0x00000071012acc70,O,000036,_ZN4ksys4phys15RagdollResourceD0Ev
|
||||
0x00000071012acc94,O,000004,_ZN4ksys4phys15RagdollResource9doCreate_EPhjPN4sead4HeapE
|
||||
0x00000071012acc98,U,000148,RigidBodyDerivedType1::ctor
|
||||
0x00000071012acd2c,U,000076,
|
||||
0x00000071012acd78,U,000076,
|
||||
0x00000071012acdc4,U,000084,
|
||||
0x00000071012ace18,U,000084,
|
||||
0x00000071012acc98,O,000148,_ZN4ksys4phys16RagdollRigidBodyC1ERKN4sead14SafeStringBaseIcEEPNS0_17RagdollControllerEiP12hkpRigidBodyPNS2_4HeapE
|
||||
0x00000071012acd2c,O,000076,_ZN4ksys4phys16RagdollRigidBodyD1Ev
|
||||
0x00000071012acd78,O,000076,_ZThn32_N4ksys4phys16RagdollRigidBodyD1Ev
|
||||
0x00000071012acdc4,O,000084,_ZN4ksys4phys16RagdollRigidBodyD0Ev
|
||||
0x00000071012ace18,O,000084,_ZThn32_N4ksys4phys16RagdollRigidBodyD0Ev
|
||||
0x00000071012ace6c,U,000376,
|
||||
0x00000071012acfe4,U,000088,
|
||||
0x00000071012ad03c,U,000076,
|
||||
|
@ -95353,8 +95353,8 @@ Address,Quality,Size,Name
|
|||
0x00000071012ad0d4,U,000036,
|
||||
0x00000071012ad0f8,U,000032,
|
||||
0x00000071012ad118,U,000228,
|
||||
0x00000071012ad1fc,U,000204,
|
||||
0x00000071012ad2c8,U,000092,
|
||||
0x00000071012ad1fc,O,000204,_ZNK4ksys4phys16RagdollRigidBody27checkDerivedRuntimeTypeInfoEPKN4sead15RuntimeTypeInfo9InterfaceE
|
||||
0x00000071012ad2c8,O,000092,_ZNK4ksys4phys16RagdollRigidBody18getRuntimeTypeInfoEv
|
||||
0x00000071012ad324,U,000048,
|
||||
0x00000071012ad354,U,000060,
|
||||
0x00000071012ad390,U,000060,
|
||||
|
|
Can't render this file because it is too large.
|
|
@ -19,6 +19,8 @@ target_sources(uking PRIVATE
|
|||
Ragdoll/physRagdollParam.h
|
||||
Ragdoll/physRagdollResource.cpp
|
||||
Ragdoll/physRagdollResource.h
|
||||
Ragdoll/physRagdollRigidBody.cpp
|
||||
Ragdoll/physRagdollRigidBody.h
|
||||
|
||||
RigidBody/physEdgeRigidBodyParam.cpp
|
||||
RigidBody/physEdgeRigidBodyParam.h
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
#include "KingSystem/Physics/Ragdoll/physRagdollRigidBody.h"
|
||||
|
||||
namespace ksys::phys {
|
||||
|
||||
RagdollRigidBody::RagdollRigidBody(const sead::SafeString& name, RagdollController* ctrl,
|
||||
int ragdoll_body_index, hkpRigidBody* hkp_rigid_body,
|
||||
sead::Heap* heap)
|
||||
: RigidBody(RigidBody::Type::Ragdoll, ContactLayerType::Entity, hkp_rigid_body, name, heap,
|
||||
true),
|
||||
mCtrl(ctrl), mRagdollBodyIndex(ragdoll_body_index) {
|
||||
updateCollidableQualityType(true);
|
||||
mFlags.set(Flag::NoCharStandingOn);
|
||||
}
|
||||
|
||||
RagdollRigidBody::~RagdollRigidBody() {
|
||||
_e8.freeBuffer();
|
||||
}
|
||||
|
||||
} // namespace ksys::phys
|
|
@ -0,0 +1,30 @@
|
|||
#pragma once
|
||||
|
||||
#include <container/seadBuffer.h>
|
||||
#include "KingSystem/Physics/RigidBody/physRigidBody.h"
|
||||
|
||||
namespace ksys::phys {
|
||||
|
||||
class RagdollController;
|
||||
|
||||
// TODO
|
||||
class RagdollRigidBody : public RigidBody {
|
||||
SEAD_RTTI_OVERRIDE(RagdollRigidBody, RigidBody)
|
||||
public:
|
||||
RagdollRigidBody(const sead::SafeString& name, RagdollController* ctrl, int ragdoll_body_index,
|
||||
hkpRigidBody* hkp_rigid_body, sead::Heap* heap);
|
||||
~RagdollRigidBody() override;
|
||||
|
||||
float getVolume() override;
|
||||
u32 getCollisionMasks(RigidBody::CollisionMasks* masks, const u32* shape_key,
|
||||
const sead::Vector3f& contact_point) override;
|
||||
|
||||
private:
|
||||
RagdollController* mCtrl{};
|
||||
int mRagdollBodyIndex{};
|
||||
void* _e0{};
|
||||
sead::Buffer<void*> _e8{};
|
||||
void* _f8{};
|
||||
};
|
||||
|
||||
} // namespace ksys::phys
|
|
@ -56,7 +56,7 @@ public:
|
|||
|
||||
enum class Type {
|
||||
FromShape = 0,
|
||||
_1 = 1,
|
||||
Ragdoll = 1,
|
||||
_2 = 2,
|
||||
TerrainHeightField = 3,
|
||||
StaticCompoundBody = 4,
|
||||
|
|
Loading…
Reference in New Issue