diff --git a/data/uking_functions.csv b/data/uking_functions.csv index 0444bc71..480b9941 100644 --- a/data/uking_functions.csv +++ b/data/uking_functions.csv @@ -223,7 +223,7 @@ Address,Quality,Size,Name 0x00000071000040fc,O,000008,_ZN5uking3dmg17DamageManagerBase3m13Ev 0x0000007100004104,O,000008,_ZN5uking3dmg17DamageManagerBase3m14Ev 0x000000710000410c,O,000008,_ZN5uking3dmg17DamageManagerBase3m16Ev -0x0000007100004114,O,000004,_ZN5uking3dmg17DamageManagerBase3m17Ev +0x0000007100004114,O,000004,_ZN5uking3dmg17DamageManagerBase28accumulateStasisBlowVelocityEv 0x0000007100004118,U,000008,DamageMgrBow::m18 0x0000007100004120,O,000008,_ZN5uking3dmg17DamageManagerBase13initCallbacksEPN4sead4HeapE 0x0000007100004128,O,000004,_ZN5uking3dmg17DamageManagerBase10preDelete2Ev @@ -1321,7 +1321,7 @@ Address,Quality,Size,Name 0x000000710004c1a0,O,000012,_ZNK4ksys3act2ai10ActionBase12isChangeableEv 0x000000710004c1ac,O,000008,_ZN4ksys3act2ai10ActionBase14hasPreDeleteCbEv 0x000000710004c1b4,O,000008,_ZN4ksys3act2ai10ActionBase23hasUpdateForPreDeleteCbEv -0x000000710004c1bc,O,000004,_ZN4ksys3act2ai10ActionBase2m9Ev +0x000000710004c1bc,O,000004,_ZN4ksys3act2ai10ActionBase11applyParamsEv 0x000000710004c1c0,O,000008,_ZN4ksys3act2ai10ActionBase8oneShot_Ev 0x000000710004c1c8,O,000008,_ZN4ksys3act2ai10ActionBase14handleMessage_ERKNS_7MessageE 0x000000710004c1d0,O,000008,_ZN4ksys3act2ai10ActionBase10handleAck_ERKNS_10MessageAckE @@ -45189,7 +45189,7 @@ Address,Quality,Size,Name 0x00000071006d8534,U,000024, 0x00000071006d854c,U,000028,DamageMgr::m13 0x00000071006d8568,U,000064,DamageMgr::m14 -0x00000071006d85a8,U,000740,DamageMgr::m45 +0x00000071006d85a8,U,000740,uking::act::DamageMgr::applyRequestedDamage 0x00000071006d888c,U,000456, 0x00000071006d8a54,U,000400,DamageMgr::m54 0x00000071006d8be4,U,000516,DamageMgr::m55 @@ -45383,7 +45383,7 @@ Address,Quality,Size,Name 0x00000071006e1050,U,000128, 0x00000071006e10d0,U,000292, 0x00000071006e11f4,U,000128, -0x00000071006e1274,O,000004,_ZN5uking3dmg17DamageManagerBase3m45Ev +0x00000071006e1274,O,000004,_ZN5uking3dmg17DamageManagerBase20applyRequestedDamageEv 0x00000071006e1278,O,000016,_ZN5uking3dmg17DamageManagerBase3m49Ei 0x00000071006e1288,U,000028,DamageMgr::getActorDamageParam 0x00000071006e12a4,O,000208,_ZN5uking3dmg8Struct2012combineMaybeEPNS0_12Struct20BaseE @@ -83514,7 +83514,7 @@ Address,Quality,Size,Name 0x0000007100f8d840,U,001156,_ZN4ksys4phys9RigidBody26removeFromWorldImmediatelyEPv 0x0000007100f8dcc4,O,000056,_ZNK4ksys4phys9RigidBody13getMotionTypeEv 0x0000007100f8dcfc,O,001044,_ZN4ksys4phys9RigidBody19replaceMotionObjectEv -0x0000007100f8e110,O,000748,_ZN4ksys4phys9RigidBody4x_10Ev +0x0000007100f8e110,O,000748,_ZN4ksys4phys9RigidBody39removeFromWorldImmediatelyAndResetLinksEv 0x0000007100f8e3fc,U,000816,phys::RigidBody::x_11 0x0000007100f8e72c,O,000136,_ZN4ksys4phys9RigidBody16setCollisionInfoEPNS0_13CollisionInfoE 0x0000007100f8e7b4,O,000052,_ZN4ksys4phys9RigidBody19setContactPointInfoEPNS0_16ContactPointInfoE @@ -83524,7 +83524,7 @@ Address,Quality,Size,Name 0x0000007100f8ec3c,O,000312,_ZN4ksys4phys9RigidBody17setLinearVelocityERKN4sead7Vector3IfEEf 0x0000007100f8ed74,O,000196,_ZN4ksys4phys9RigidBody18setAngularVelocityERKN4sead7Vector3IfEEf 0x0000007100f8ee38,O,000024,_ZN4ksys4phys9RigidBody16resetFrozenStateEv -0x0000007100f8ee50,U,000048,_ZN4ksys4phys9RigidBody4x_17Eh +0x0000007100f8ee50,U,000048,_ZN4ksys4phys9RigidBody21requestSuspendGravityEh 0x0000007100f8ee80,O,000384,_ZN4ksys4phys9RigidBody27updateCollidableQualityTypeEb 0x0000007100f8f000,O,000012,_ZNK4ksys4phys9RigidBody13getCollidableEv 0x0000007100f8f00c,O,000080,_ZN4ksys4phys9RigidBody18enableContactLayerENS0_12ContactLayerE @@ -83566,7 +83566,7 @@ Address,Quality,Size,Name 0x0000007100f9006c,O,000040,_ZNK4ksys4phys9RigidBody12getTransformEv 0x0000007100f90094,O,000968,_ZN4ksys4phys9RigidBody16changeMotionTypeENS0_10MotionTypeE 0x0000007100f9045c,U,001132,_ZN4ksys4phys9RigidBody18doChangeMotionTypeENS0_10MotionTypeES2_ -0x0000007100f908c8,U,001632,_ZN4ksys4phys9RigidBody4x_40Ev +0x0000007100f908c8,U,001632,_ZN4ksys4phys9RigidBody18processUpdateFlagsEv 0x0000007100f90f28,O,000140,_ZNK4ksys4phys9RigidBody32getEntityMotionAccessorForSensorEv 0x0000007100f90fb4,O,000332,_ZN4ksys4phys9RigidBody28updateMotionTypeRelatedFlagsEv 0x0000007100f91100,O,000140,_ZN4ksys4phys9RigidBody32triggerScheduledMotionTypeChangeEv @@ -83666,7 +83666,7 @@ Address,Quality,Size,Name 0x0000007100f969a0,O,000072,_ZN4ksys4phys9RigidBody4lockENS1_13AlsoLockWorldE 0x0000007100f969e8,O,000088,_ZN4ksys4phys9RigidBody6unlockENS1_13AlsoLockWorldE 0x0000007100f96a40,O,000012,_ZNK4ksys4phys9RigidBody9getMotionEv -0x0000007100f96a4c,U,000076,phys::RigidBody::x_123 +0x0000007100f96a4c,U,000076,ksys::phys::RigidBody::setRequestMgrContactCallbackEnabled 0x0000007100f96a98,O,000188,_ZN4ksys4phys9RigidBody20setEntityMotionFlag1Eb 0x0000007100f96b54,O,000156,_ZNK4ksys4phys9RigidBody21isEntityMotionFlag1OnEv 0x0000007100f96bf0,O,000204,_ZN4ksys4phys9RigidBody22setEntityMotionFlag100Eb @@ -84044,7 +84044,7 @@ Address,Quality,Size,Name 0x0000007100fa9834,O,000056,_ZN4ksys4phys12RigidBodySet15removeFromWorldEv 0x0000007100fa986c,O,000084,_ZN4ksys4phys12RigidBodySet28removeFromWorldAndResetLinksEv 0x0000007100fa98c0,O,000120,_ZN4ksys4phys12RigidBodySet23hasNoRigidBodyWithFlag8Eb -0x0000007100fa9938,O,000072,_ZN4ksys4phys12RigidBodySet17callRigidBody_x_7Eh +0x0000007100fa9938,O,000072,_ZN4ksys4phys12RigidBodySet21requestSuspendGravityEh 0x0000007100fa9980,O,000004,_ZN4ksys4phys15SphereRigidBody4makeEPNS0_22RigidBodyInstanceParamEPN4sead4HeapE 0x0000007100fa9984,O,000084,_ZN4ksys4phys15SphereRigidBodyC1EP12hkpRigidBodyPNS0_11SphereShapeENS0_16ContactLayerTypeERKN4sead14SafeStringBaseIcEEbPNS7_4HeapE 0x0000007100fa99d8,O,000088,_ZN4ksys4phys15SphereRigidBodyD1Ev diff --git a/src/Game/Actor/Damage/dmgDamageManagerBase.h b/src/Game/Actor/Damage/dmgDamageManagerBase.h index 9fa6a9e8..dc92804c 100644 --- a/src/Game/Actor/Damage/dmgDamageManagerBase.h +++ b/src/Game/Actor/Damage/dmgDamageManagerBase.h @@ -65,7 +65,7 @@ public: virtual bool m14() { return false; } virtual bool applyDamage(s32& life); virtual bool m16() { return false; } - virtual void m17() {} + virtual void accumulateStasisBlowVelocity() {} virtual s32 getNumCallbacks(); virtual bool initCallbacks(sead::Heap* heap); @@ -109,7 +109,7 @@ public: virtual s32 m42() { return 0; } virtual void m43() {} virtual bool canTakeDamage(); - virtual void m45() {} + virtual void applyRequestedDamage() {} virtual void handleDamageForPlayer(u32* a2, u32* a3, u32* a4, u32* a5, u32* a6); virtual bool addDamage(s64 a2, s32 damage, s32 df48, s32 minDmg, s32 f50, s32 f54, s32 f40); virtual void onApplyDamage() {} diff --git a/src/KingSystem/ActorSystem/actActor.h b/src/KingSystem/ActorSystem/actActor.h index 2f29d713..d9b2952b 100644 --- a/src/KingSystem/ActorSystem/actActor.h +++ b/src/KingSystem/ActorSystem/actActor.h @@ -197,7 +197,7 @@ public: virtual void m51(); virtual void m52(); virtual void m53(); - virtual void killWithDropsAndEffects(); + virtual void killWithDropsAndEffects(int emit_type); virtual void m55(); virtual void m56(); virtual void m57(); diff --git a/src/KingSystem/ActorSystem/actAiActionBase.h b/src/KingSystem/ActorSystem/actAiActionBase.h index e20cf06f..c3672731 100644 --- a/src/KingSystem/ActorSystem/actAiActionBase.h +++ b/src/KingSystem/ActorSystem/actAiActionBase.h @@ -90,7 +90,7 @@ public: virtual bool hasPreDeleteCb() { return false; } virtual bool hasUpdateForPreDeleteCb() { return false; } - virtual void m9() {} + virtual void applyParams() {} protected: virtual bool oneShot_() { return true; } diff --git a/src/KingSystem/ActorSystem/actCCAccessor.h b/src/KingSystem/ActorSystem/actCCAccessor.h index cfe0b829..5faaf09c 100644 --- a/src/KingSystem/ActorSystem/actCCAccessor.h +++ b/src/KingSystem/ActorSystem/actCCAccessor.h @@ -1,5 +1,7 @@ #pragma once +#include + namespace ksys::phys { class CharacterController; }; @@ -21,6 +23,13 @@ public: void changeMotionType(phys::CharacterController* cc, MotionType motion_type); void resetRigidBodyMotion(Actor* actor); void resetMotionType(phys::CharacterController* cc); + void saveFlags(phys::CharacterController* cc); + void restoreSavedFlags(phys::CharacterController* cc); + +private: + MotionType mSavedMotionType{}; + u8 mSavedFlagMask{}; + u8 mSavedFlags{}; }; } // namespace ksys::act diff --git a/src/KingSystem/Map/mapObjectLink.h b/src/KingSystem/Map/mapObjectLink.h index 382aa804..efff5f4f 100644 --- a/src/KingSystem/Map/mapObjectLink.h +++ b/src/KingSystem/Map/mapObjectLink.h @@ -106,8 +106,6 @@ public: void setGenGroup(GenGroup* group); - void x_1(act::Actor* actor, Object* obj); - bool checkCreateOrDeleteLinkObjRevival() const { return checkDeleteLinkObjRevival() || checkCreateLinkObjRevival(); } diff --git a/src/KingSystem/Map/mapPlacementAreaMgr.h b/src/KingSystem/Map/mapPlacementAreaMgr.h index 17ddd0ad..dee435f5 100644 --- a/src/KingSystem/Map/mapPlacementAreaMgr.h +++ b/src/KingSystem/Map/mapPlacementAreaMgr.h @@ -203,7 +203,7 @@ public: // d231cc void boundsChecking_1(); // looks eerily similar to boundsChecking // d2388c - void weirdSetup(); // perhaps used with teleport feature? + void weirdSetup(const sead::Vector3f& pos); // perhaps used with teleport feature? bool isInsideNpc(const sead::Vector3f& pos); // d24400 void pushFarModels(); diff --git a/src/KingSystem/Physics/RigidBody/physRigidBody.cpp b/src/KingSystem/Physics/RigidBody/physRigidBody.cpp index 175dac29..e910e5a9 100644 --- a/src/KingSystem/Physics/RigidBody/physRigidBody.cpp +++ b/src/KingSystem/Physics/RigidBody/physRigidBody.cpp @@ -436,7 +436,7 @@ void RigidBody::replaceMotionObject() { } } -void RigidBody::x_10() { +void RigidBody::removeFromWorldImmediatelyAndResetLinks() { auto lock = makeScopedLock(); if (isEntity()) { @@ -988,7 +988,7 @@ void RigidBody::changeMotionType(MotionType motion_type) { mMotionFlags.set(MotionFlag::DirtyMaxVelOrTimeFactor); mMotionFlags.set(MotionFlag::DirtyDampingOrGravityFactor); mMotionFlags.set(MotionFlag::DirtyCenterOfMassLocal); - x_40(); + processUpdateFlags(); } void RigidBody::updateMotionTypeRelatedFlags() { diff --git a/src/KingSystem/Physics/RigidBody/physRigidBody.h b/src/KingSystem/Physics/RigidBody/physRigidBody.h index 6ba83767..8d2e2164 100644 --- a/src/KingSystem/Physics/RigidBody/physRigidBody.h +++ b/src/KingSystem/Physics/RigidBody/physRigidBody.h @@ -200,7 +200,7 @@ public: void replaceMotionObject(); // 0x0000007100f8e110 - void x_10(); + void removeFromWorldImmediatelyAndResetLinks(); // 0x0000007100f8e3fc void x_11(); @@ -217,7 +217,7 @@ public: void resetFrozenState(); // 0x0000007100f8ee50 - FIXME: figure out what type is - void x_17(u8 type); + void requestSuspendGravity(u8 type); void updateCollidableQualityType(bool high_quality); @@ -320,7 +320,7 @@ public: // 0x0000007100f9045c - calls a bunch of Havok world functions void doChangeMotionType(MotionType x, MotionType y); // 0x0000007100f908c8 - void x_40(); + void processUpdateFlags(); void updateMotionTypeRelatedFlags(); void triggerScheduledMotionTypeChange(); @@ -540,7 +540,7 @@ public: hkpMotion* getMotion() const; // 0x0000007100f96a4c - void x_123(bool unk); + void setRequestMgrContactCallbackEnabled(bool enabled); void setEntityMotionFlag1(bool set); bool isEntityMotionFlag1On() const; diff --git a/src/KingSystem/Physics/RigidBody/physRigidBodySet.cpp b/src/KingSystem/Physics/RigidBody/physRigidBodySet.cpp index 1d5bf457..e99cb762 100644 --- a/src/KingSystem/Physics/RigidBody/physRigidBodySet.cpp +++ b/src/KingSystem/Physics/RigidBody/physRigidBodySet.cpp @@ -172,9 +172,9 @@ bool RigidBodySet::hasNoRigidBodyWithFlag8(bool require_motion_flag_1_to_be_unse return true; } -void RigidBodySet::callRigidBody_x_7(u8 type) { +void RigidBodySet::requestSuspendGravity(u8 type) { for (auto& body : mRigidBodies) - body.x_17(type); + body.requestSuspendGravity(type); } } // namespace ksys::phys diff --git a/src/KingSystem/Physics/RigidBody/physRigidBodySet.h b/src/KingSystem/Physics/RigidBody/physRigidBodySet.h index fc225bb4..fb0e8d44 100644 --- a/src/KingSystem/Physics/RigidBody/physRigidBodySet.h +++ b/src/KingSystem/Physics/RigidBody/physRigidBodySet.h @@ -66,7 +66,7 @@ public: void removeFromWorld(); bool removeFromWorldAndResetLinks(); bool hasNoRigidBodyWithFlag8(bool require_motion_flag_1_to_be_unset); - void callRigidBody_x_7(u8 type); + void requestSuspendGravity(u8 type); private: sead::SafeString mName; diff --git a/src/KingSystem/Physics/System/physShapeCastWithInfo.cpp b/src/KingSystem/Physics/System/physShapeCastWithInfo.cpp index cf0a8ac0..10bb5afd 100644 --- a/src/KingSystem/Physics/System/physShapeCastWithInfo.cpp +++ b/src/KingSystem/Physics/System/physShapeCastWithInfo.cpp @@ -88,7 +88,7 @@ SphereCast::~SphereCast() { void SphereCast::setRadius(float radius) { mSphere->setRadius(radius); - mSphere->x_40(); + mSphere->processUpdateFlags(); } } // namespace ksys::phys