ksys/phys: Add RagdollRigidBody stub

Needed for RagdollController.
This commit is contained in:
Léo Lam
2022-03-26 18:37:21 +01:00
parent 7e9d9927e1
commit 301ad689ab
5 changed files with 59 additions and 8 deletions
+2
View File
@@ -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,