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
No known key found for this signature in database
GPG Key ID: 0DF30F9081000741
5 changed files with 59 additions and 8 deletions

View File

@ -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.

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

View File

@ -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

View File

@ -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

View File

@ -56,7 +56,7 @@ public:
enum class Type {
FromShape = 0,
_1 = 1,
Ragdoll = 1,
_2 = 2,
TerrainHeightField = 3,
StaticCompoundBody = 4,