Decompile some Action classes (#104)

* various action classes

* rename instanceset fns

* rename isFork -> isChangeable
This commit is contained in:
notyourav
2022-10-17 23:27:57 -07:00
committed by GitHub
parent bc6fe73df1
commit 2f62d26424
52 changed files with 1062 additions and 823 deletions
+13 -13
View File
@@ -893,17 +893,17 @@ action::Escape:
action::EscapeBackTurn:
status: pending
action::EventAddGameDataIntAction:
status: pending
status: done
action::EventAddGameDataToRupeeAction:
status: pending
status: done
action::EventAppearCheckPointNum:
status: pending
status: done
action::EventAppearFlyDistance:
status: pending
status: done
action::EventAppearGolfCount:
status: pending
status: done
action::EventAppearRaceResult:
status: pending
status: done
action::EventAppearRupeeAction:
status: pending
action::EventAutoSaveAction:
@@ -973,9 +973,9 @@ action::EventFlagOFFAction:
action::EventFlagONAction:
status: pending
action::EventHoverNullASPlay:
status: pending
status: done
action::EventHoverNullASPlayBase:
status: pending
status: done
action::EventIncreaseFameAction:
status: pending
action::EventIncreaseGameDataIntAction:
@@ -2093,13 +2093,13 @@ action::KokkoThrown:
action::KorokFlowerAppear:
status: pending
action::KorokFlowerVanish:
status: pending
status: done
action::KorokFlowerWait:
status: pending
status: done
action::KorokTargetMove:
status: pending
status: done
action::KorokTargetWait:
status: pending
status: done
action::LandOnCeil:
status: pending
action::LandRagdoll:
@@ -2421,7 +2421,7 @@ action::NPCSellHorse:
action::NPCSellItem:
status: pending
action::NPCStartTurnToPlayer:
status: pending
status: done
action::NpcSwimMove:
status: pending
action::NpcSwimNavMove:
+397 -397
View File
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -70,7 +70,7 @@ bool ForkAI::isFailed() const {
for (; i < num_children; ++i) {
auto* child = getChild(i);
failed |= child->isFailed();
if (!child->isFinished() && !child->isFailed() && !child->isFlag4Set())
if (!child->isFinished() && !child->isFailed() && !child->isChangeable())
break;
}
return i == num_children && failed;
@@ -86,16 +86,16 @@ bool ForkAI::isFinished() const {
break;
if (child->isFinished())
finished = true;
else if (!child->isFlag4Set())
else if (!child->isChangeable())
break;
}
return i == num_children && finished;
}
bool ForkAI::isFlag4Set() const {
bool ForkAI::isChangeable() const {
const int num_children = getNumChildren();
for (int i = 0; i < num_children; ++i) {
if (!getChild(i)->isFlag4Set())
if (!getChild(i)->isChangeable())
return false;
}
return true;
+1 -1
View File
@@ -17,7 +17,7 @@ public:
void leave_() override;
bool isFailed() const override;
bool isFinished() const override;
bool isFlag4Set() const override;
bool isChangeable() const override;
bool handleMessage_(const ksys::Message& message) override;
bool handleAck_(const ksys::MessageAck& message) override;
void getCurrentName(sead::BufferedSafeString* name, ActionBase* last) const override;
@@ -1,4 +1,5 @@
#include "Game/AI/Action/actionEventAddGameDataIntAction.h"
#include "KingSystem/GameData/gdtManager.h"
namespace uking::action {
@@ -13,6 +14,14 @@ bool EventAddGameDataIntAction::init_(sead::Heap* heap) {
void EventAddGameDataIntAction::enter_(ksys::act::ai::InlineParamPack* params) {
ksys::act::ai::Action::enter_(params);
if (mGameDataIntSrcName_d.isEmpty() || mGameDataIntDstName_d.isEmpty()) {
setFailed();
mFlags.set(Flag::Changeable);
return;
}
mIsReady = true;
}
void EventAddGameDataIntAction::leave_() {
@@ -27,6 +36,32 @@ void EventAddGameDataIntAction::loadParams_() {
void EventAddGameDataIntAction::calc_() {
ksys::act::ai::Action::calc_();
if (isFinished() || isFailed()) {
return;
}
if (!mIsReady) {
setFinished();
mFlags.set(Flag::Changeable);
return;
}
mIsReady = false;
auto* gdm = ksys::gdt::Manager::instance();
if (gdm == nullptr) {
setFailed();
mFlags.set(Flag::Changeable);
return;
}
s32 value = 0;
if (gdm->getParam().get().getS32(&value, mGameDataIntSrcName_d)) {
if (*mIsSignInversion_d) {
value = -value;
}
gdm->incrementS32(value, mGameDataIntDstName_d);
}
}
} // namespace uking::action
@@ -24,6 +24,8 @@ protected:
sead::SafeString mGameDataIntDstName_d{};
// dynamic_param at offset 0x38
sead::SafeString mGameDataIntSrcName_d{};
bool mIsReady{};
};
} // namespace uking::action
@@ -1,4 +1,6 @@
#include "Game/AI/Action/actionEventAddGameDataToRupeeAction.h"
#include "KingSystem/GameData/gdtManager.h"
#include "KingSystem/System/UIGlue.h"
namespace uking::action {
@@ -13,6 +15,19 @@ bool EventAddGameDataToRupeeAction::init_(sead::Heap* heap) {
void EventAddGameDataToRupeeAction::enter_(ksys::act::ai::InlineParamPack* params) {
ksys::act::ai::Action::enter_(params);
s32 val = 0;
auto* gdm = ksys::gdt::Manager::instance();
if (!gdm->getParam().get().getS32(&val, mGameDataIntAddValueName_d)) {
ksys::ui::initRupeeCounter();
return;
}
if (*mIsSignInversion_d) {
val = -val;
}
gdm->incrementS32(val, "CurrentRupee");
ksys::ui::initRupeeCounter();
}
void EventAddGameDataToRupeeAction::leave_() {
@@ -26,6 +41,10 @@ void EventAddGameDataToRupeeAction::loadParams_() {
void EventAddGameDataToRupeeAction::calc_() {
ksys::act::ai::Action::calc_();
if (!ksys::ui::isRupeeCounterActive()) {
setFinished();
}
}
} // namespace uking::action
@@ -1,4 +1,5 @@
#include "Game/AI/Action/actionEventAppearCheckPointNum.h"
#include "Game/UI/uiUtils.h"
namespace uking::action {
@@ -11,6 +12,11 @@ bool EventAppearCheckPointNum::init_(sead::Heap* heap) {
return ksys::act::ai::Action::init_(heap);
}
bool EventAppearCheckPointNum::oneShot_() {
ui::setShowCheckPoint(*mIconType_d, mGameDataIntTargetCounter_d);
return ksys::act::ai::Action::oneShot_();
}
void EventAppearCheckPointNum::loadParams_() {
getDynamicParam(&mIconType_d, "IconType");
getDynamicParam(&mGameDataIntTargetCounter_d, "GameDataIntTargetCounter");
@@ -14,6 +14,8 @@ public:
void loadParams_() override;
protected:
bool oneShot_() override;
// dynamic_param at offset 0x20
int* mIconType_d{};
// dynamic_param at offset 0x28
@@ -1,4 +1,5 @@
#include "Game/AI/Action/actionEventAppearFlyDistance.h"
#include "Game/UI/uiUtils.h"
namespace uking::action {
@@ -10,6 +11,11 @@ bool EventAppearFlyDistance::init_(sead::Heap* heap) {
return ksys::act::ai::Action::init_(heap);
}
bool EventAppearFlyDistance::oneShot_() {
ui::setShowFlyDistance(mGameDataFloatDistance_d);
return ksys::act::ai::Action::oneShot_();
}
void EventAppearFlyDistance::loadParams_() {
getDynamicParam(&mGameDataFloatDistance_d, "GameDataFloatDistance");
}
@@ -14,6 +14,8 @@ public:
void loadParams_() override;
protected:
bool oneShot_() override;
// dynamic_param at offset 0x20
sead::SafeString mGameDataFloatDistance_d{};
};
@@ -1,4 +1,5 @@
#include "Game/AI/Action/actionEventAppearGolfCount.h"
#include "Game/UI/uiUtils.h"
namespace uking::action {
@@ -10,6 +11,11 @@ bool EventAppearGolfCount::init_(sead::Heap* heap) {
return ksys::act::ai::Action::init_(heap);
}
bool EventAppearGolfCount::oneShot_() {
ui::setShowGolfCount(mGameDataIntTargetCounter_d);
return ksys::act::ai::Action::oneShot_();
}
void EventAppearGolfCount::loadParams_() {
getDynamicParam(&mGameDataIntTargetCounter_d, "GameDataIntTargetCounter");
}
@@ -14,6 +14,8 @@ public:
void loadParams_() override;
protected:
bool oneShot_() override;
// dynamic_param at offset 0x20
sead::SafeString mGameDataIntTargetCounter_d{};
};
@@ -1,4 +1,5 @@
#include "Game/AI/Action/actionEventAppearRaceResult.h"
#include "Game/UI/uiUtils.h"
namespace uking::action {
@@ -10,6 +11,11 @@ bool EventAppearRaceResult::init_(sead::Heap* heap) {
return ksys::act::ai::Action::init_(heap);
}
bool EventAppearRaceResult::oneShot_() {
ui::setShowRaceResult(*mResultType_d);
return ksys::act::ai::Action::oneShot_();
}
void EventAppearRaceResult::loadParams_() {
getDynamicParam(&mResultType_d, "ResultType");
}
@@ -14,6 +14,8 @@ public:
void loadParams_() override;
protected:
bool oneShot_() override;
// dynamic_param at offset 0x20
int* mResultType_d{};
};
@@ -1,4 +1,5 @@
#include "Game/AI/Action/actionEventHoverNullASPlay.h"
#include "KingSystem/Physics/System/physInstanceSet.h"
namespace uking::action {
@@ -12,9 +13,13 @@ bool EventHoverNullASPlay::init_(sead::Heap* heap) {
void EventHoverNullASPlay::enter_(ksys::act::ai::InlineParamPack* params) {
EventHoverNullASPlayBase::enter_(params);
mCCAccessor.changeMotionType(mActor->getCharacterController(), ksys::act::MotionType::Hover);
}
void EventHoverNullASPlay::leave_() {
resetAllMotion(mActor);
EventHoverNullASPlayBase::leave_();
}
@@ -1,7 +1,9 @@
#pragma once
#include "Game/AI/Action/actionEventHoverNullASPlayBase.h"
#include "KingSystem/ActorSystem/actActor.h"
#include "KingSystem/ActorSystem/actAiAction.h"
#include "KingSystem/ActorSystem/actCCAccessor.h"
namespace uking::action {
@@ -18,6 +20,13 @@ public:
protected:
void calc_() override;
void resetAllMotion(ksys::act::Actor* actor) {
mCCAccessor.resetRigidBodyMotion(actor);
mCCAccessor.resetMotionType(actor->getCharacterController());
}
ksys::act::CCAccessor mCCAccessor;
};
} // namespace uking::action
@@ -12,7 +12,8 @@ bool EventHoverNullASPlayBase::init_(sead::Heap* heap) {
}
void EventHoverNullASPlayBase::enter_(ksys::act::ai::InlineParamPack* params) {
ksys::act::ai::Action::enter_(params);
playAS(mASName_d.cstr(), *mIsIgnoreSame_d, *mASSlot_d, *mSequenceBank_d, -1.0);
mFlags.set(ksys::act::ai::Action::Flag::Changeable);
}
void EventHoverNullASPlayBase::leave_() {
@@ -28,7 +29,9 @@ void EventHoverNullASPlayBase::loadParams_() {
}
void EventHoverNullASPlayBase::calc_() {
ksys::act::ai::Action::calc_();
if (!isFailed() && isFinishedAS(*mASSlot_d, *mSequenceBank_d)) {
setFinished();
}
}
} // namespace uking::action
+2 -2
View File
@@ -12,7 +12,7 @@ bool Fork::init_(sead::Heap* heap) {
void Fork::enter_(ksys::act::ai::InlineParamPack* params) {
if (*mIsChangeable_s)
mFlags.set(Flag::_4);
mFlags.set(Flag::Changeable);
}
void Fork::leave_() {
@@ -37,7 +37,7 @@ void Fork::setEndState() {
setFailed();
break;
case 2:
mFlags.set(ksys::act::ai::ActionBase::Flag::_4);
mFlags.set(ksys::act::ai::ActionBase::Flag::Changeable);
break;
}
}
@@ -15,7 +15,7 @@ bool GameDataAddFloat::oneShot_() {
auto* gdm = ksys::gdt::Manager::instance();
if (!gdm) {
setFailed();
mFlags.set(Flag::_4);
mFlags.set(Flag::Changeable);
return false;
}
+1 -1
View File
@@ -15,7 +15,7 @@ bool GameDataAddInt::oneShot_() {
auto* gdm = ksys::gdt::Manager::instance();
if (!gdm) {
setFailed();
mFlags.set(Flag::_4);
mFlags.set(Flag::Changeable);
return false;
}
+1 -1
View File
@@ -15,7 +15,7 @@ bool GameDataAddVec3::oneShot_() {
auto* gdm = ksys::gdt::Manager::instance();
if (!gdm) {
setFailed();
mFlags.set(Flag::_4);
mFlags.set(Flag::Changeable);
return false;
}
+14 -1
View File
@@ -1,4 +1,6 @@
#include "Game/AI/Action/actionKorokFlowerAppear.h"
#include "KingSystem/ActorSystem/actActor.h"
#include "KingSystem/Physics/RigidBody/physRigidBody.h"
namespace uking::action {
@@ -11,7 +13,18 @@ bool KorokFlowerAppear::init_(sead::Heap* heap) {
}
void KorokFlowerAppear::enter_(ksys::act::ai::InlineParamPack* params) {
ksys::act::ai::Action::enter_(params);
mActor->getActorFlags2().reset(ksys::act::Actor::ActorFlag2::_20);
auto* main_body = mActor->getMainBody();
auto* tgt_body = mActor->getTgtBody();
if (main_body != nullptr && tgt_body != nullptr) {
main_body->setContactNone();
main_body->resetFlag200();
tgt_body->setContactNone();
tgt_body->resetFlag200();
}
mFlags.set(Flag::Changeable);
setFinished();
}
void KorokFlowerAppear::leave_() {
+13 -1
View File
@@ -1,4 +1,6 @@
#include "Game/AI/Action/actionKorokFlowerVanish.h"
#include "KingSystem/ActorSystem/actActor.h"
#include "KingSystem/Physics/RigidBody/physRigidBody.h"
namespace uking::action {
@@ -11,7 +13,17 @@ bool KorokFlowerVanish::init_(sead::Heap* heap) {
}
void KorokFlowerVanish::enter_(ksys::act::ai::InlineParamPack* params) {
ksys::act::ai::Action::enter_(params);
mActor->emitBasicSigOn();
mActor->getActorFlags2().set(ksys::act::Actor::ActorFlag2::_20);
auto* main_body = mActor->getMainBody();
auto* tgt_body = mActor->getTgtBody();
if (main_body != nullptr && tgt_body != nullptr) {
main_body->setContactAll();
main_body->setFlag200();
tgt_body->setContactAll();
tgt_body->setFlag200();
}
}
void KorokFlowerVanish::leave_() {
+5 -1
View File
@@ -1,4 +1,5 @@
#include "Game/AI/Action/actionKorokFlowerWait.h"
#include "KingSystem/ActorSystem/actActor.h"
namespace uking::action {
@@ -21,7 +22,10 @@ void KorokFlowerWait::leave_() {
void KorokFlowerWait::loadParams_() {}
void KorokFlowerWait::calc_() {
ksys::act::ai::Action::calc_();
if (mActor->checkBasicSig()) {
mFlags.set(Flag::Changeable);
setFinished();
}
}
} // namespace uking::action
+22 -1
View File
@@ -1,4 +1,8 @@
#include "Game/AI/Action/actionKorokTargetMove.h"
#include <math/seadMatrixCalcCommon.hpp>
#include "KingSystem/ActorSystem/actActor.h"
#include "KingSystem/Physics/RigidBody/physRigidBody.h"
#include "KingSystem/System/VFR.h"
namespace uking::action {
@@ -26,7 +30,24 @@ void KorokTargetMove::loadParams_() {
}
void KorokTargetMove::calc_() {
ksys::act::ai::Action::calc_();
auto* actor = mActor;
auto* body = actor->getMainBody();
if (*mIsBezier_d || *mIsTargetWarp_m) {
body->setPosition(*mTargetPos_d, true);
setFinished();
return;
}
sead::Matrix34f mtx = actor->getMtx();
sead::Vector3f pos(mtx(0, 3), mtx(1, 3), mtx(2, 3));
ksys::VFR::chaseVec(&pos, *mTargetPos_d, *mSpeed_d);
body->changePosition(pos, true);
sead::Vector3f t = pos - *mTargetPos_d;
if (t.length() < *mSpeed_d) {
setFinished();
}
}
} // namespace uking::action
+10 -2
View File
@@ -1,4 +1,6 @@
#include "Game/AI/Action/actionKorokTargetWait.h"
#include "KingSystem/ActorSystem/actActor.h"
#include "KingSystem/Physics/RigidBody/physRigidBody.h"
namespace uking::action {
@@ -11,7 +13,7 @@ bool KorokTargetWait::init_(sead::Heap* heap) {
}
void KorokTargetWait::enter_(ksys::act::ai::InlineParamPack* params) {
ksys::act::ai::Action::enter_(params);
mTime = 0;
}
void KorokTargetWait::leave_() {
@@ -24,7 +26,13 @@ void KorokTargetWait::loadParams_() {
}
void KorokTargetWait::calc_() {
ksys::act::ai::Action::calc_();
mActor->getMainBody()->setLinearVelocity(sead::Vector3f::zero);
if (mTime >= *mDynStopTime_d) {
mFlags.set(ksys::act::ai::Action::Flag::Changeable);
setFinished();
} else {
mTime += 1.0;
}
}
} // namespace uking::action
@@ -22,6 +22,8 @@ protected:
const float* mSpeedDecreRate_s{};
// dynamic_param at offset 0x28
float* mDynStopTime_d{};
f32 mTime;
};
} // namespace uking::action
@@ -1,4 +1,6 @@
#include "Game/AI/Action/actionNPCStartTurnToPlayer.h"
#include "KingSystem/ActorSystem/actActor.h"
#include "KingSystem/Utils/Thread/Message.h"
namespace uking::action {
@@ -10,6 +12,14 @@ bool NPCStartTurnToPlayer::init_(sead::Heap* heap) {
return ksys::act::ai::Action::init_(heap);
}
bool NPCStartTurnToPlayer::oneShot_() {
mValue = *mTurnRange_d * 0.5f;
sendMessage(*mActor->getMesTransceiverId(), ksys::MessageType(0x8000078), &mValue);
return ksys::act::ai::Action::oneShot_();
}
void NPCStartTurnToPlayer::loadParams_() {
getDynamicParam(&mTurnRange_d, "TurnRange");
}
@@ -14,8 +14,12 @@ public:
void loadParams_() override;
protected:
bool oneShot_() override;
// dynamic_param at offset 0x20
float* mTurnRange_d{};
float mValue;
};
} // namespace uking::action
+1 -1
View File
@@ -15,7 +15,7 @@ void SendMessage::enter_(ksys::act::ai::InlineParamPack* params) {
if (*mSendTiming_s == 0)
doSendMessage();
mFlags.set(Flag::_4);
mFlags.set(Flag::Changeable);
setFinished();
}
+5
View File
@@ -34,6 +34,11 @@ int getItemGeneralLife(const char* name);
// TODO: move this to yet another translation unit (TBD but not the same one as the above)
void addItemForDebug(const sead::SafeString& name, int value);
void setShowCheckPoint(s32 icon_type, const sead::SafeString& counter_name);
void setShowFlyDistance(const sead::SafeString& distance);
void setShowGolfCount(const sead::SafeString& counter_name);
void setShowRaceResult(s32 result_type);
int countCookResultsCheck(const sead::SafeString& name, s32 effect_type);
int countCookResultsAllOk(const sead::SafeString& name);
int getItemValue(const sead::SafeString& name);
+121 -120
View File
@@ -1,126 +1,127 @@
target_sources(uking PRIVATE
Attention/actAttention.cpp
Attention/actAttention.h
Attention/actAttention.cpp
Attention/actAttention.h
Awareness/actAwareness.cpp
Awareness/actAwareness.h
Awareness/actAwarenessDefs.cpp
Awareness/actAwarenessDefs.h
Awareness/actAwarenessInstance.cpp
Awareness/actAwarenessInstance.h
Awareness/actAwareness.cpp
Awareness/actAwareness.h
Awareness/actAwarenessDefs.cpp
Awareness/actAwarenessDefs.h
Awareness/actAwarenessInstance.cpp
Awareness/actAwarenessInstance.h
LOD/actLodState.cpp
LOD/actLodState.h
LOD/actLodState.cpp
LOD/actLodState.h
Profiles/actPlayerBase.cpp
Profiles/actPlayerBase.h
Profiles/actRopeBase.cpp
Profiles/actRopeBase.h
Profiles/actPlayerBase.cpp
Profiles/actPlayerBase.h
Profiles/actRopeBase.cpp
Profiles/actRopeBase.h
actActor.cpp
actActor.h
actActorCaptureMgr.cpp
actActorCaptureMgr.h
actActorConstDataAccess.cpp
actActorConstDataAccess.h
actActorCreator.cpp
actActorCreator.h
actActorEditorNode.cpp
actActorEditorNode.h
actActorFactory.cpp
actActorFactory.h
actActorHeapUtil.cpp
actActorHeapUtil.h
actActorLimiter.cpp
actActorLimiter.h
actActorLinkConstDataAccess.cpp
actActorLinkConstDataAccess.h
actActorParam.cpp
actActorParam.h
actActorParamMgr.cpp
actActorParamMgr.h
actActorSystem.cpp
actActorSystem.h
actActorTemplate.cpp
actActorTemplate.h
actActorUtil.cpp
actActorUtil.h
actAiAction.cpp
actAiAction.h
actAiActionBase.cpp
actAiActionBase.h
actAiAi.cpp
actAiAi.h
actAiBehavior.cpp
actAiBehavior.h
actAiClassDef.cpp
actAiClassDef.h
actAiInlineParam.h
actAiParam.cpp
actAiParam.h
actAiQuery.cpp
actAiQuery.h
actAiQueries.cpp
actAiQueries.h
actAiRoot.cpp
actAiRoot.h
actASSetting.cpp
actASSetting.h
actBaseProc.cpp
actBaseProc.h
actBaseProcCreateTask.cpp
actBaseProcCreateTask.h
actBaseProcCreateTaskSelector.cpp
actBaseProcCreateTaskSelector.h
actBaseProcDeleter.cpp
actBaseProcDeleter.h
actBaseProcHandle.cpp
actBaseProcHandle.h
actBaseProcHeapMgr.cpp
actBaseProcHeapMgr.h
actBaseProcInitializer.cpp
actBaseProcInitializer.h
actBaseProcJob.cpp
actBaseProcJob.h
actBaseProcJobHandler.cpp
actBaseProcJobHandler.h
actBaseProcJobQue.cpp
actBaseProcJobQue.h
actBaseProcLink.cpp
actBaseProcLink.h
actBaseProcMap.cpp
actBaseProcMap.h
actBaseProcMgr.cpp
actBaseProcMgr.h
actBaseProcUnit.cpp
actBaseProcUnit.h
actClusteredRenderer.cpp
actClusteredRenderer.h
actDebug.cpp
actDebug.h
actGlobalParameter.cpp
actGlobalParameter.h
actInfoCommon.cpp
actInfoCommon.h
actInfoData.cpp
actInfoData.h
actInstParamPack.cpp
actInstParamPack.h
actLifeRecoveryInfo.h
actPhysicsConstraints.cpp
actPhysicsConstraints.h
actPhysicsUserTag.cpp
actPhysicsUserTag.h
actPlayerInfo.cpp
actPlayerInfo.h
actTag.h
actActor.cpp
actActor.h
actActorCaptureMgr.cpp
actActorCaptureMgr.h
actActorConstDataAccess.cpp
actActorConstDataAccess.h
actActorCreator.cpp
actActorCreator.h
actActorEditorNode.cpp
actActorEditorNode.h
actActorFactory.cpp
actActorFactory.h
actActorHeapUtil.cpp
actActorHeapUtil.h
actActorLimiter.cpp
actActorLimiter.h
actActorLinkConstDataAccess.cpp
actActorLinkConstDataAccess.h
actActorParam.cpp
actActorParam.h
actActorParamMgr.cpp
actActorParamMgr.h
actActorSystem.cpp
actActorSystem.h
actActorTemplate.cpp
actActorTemplate.h
actActorUtil.cpp
actActorUtil.h
actAiAction.cpp
actAiAction.h
actAiActionBase.cpp
actAiActionBase.h
actAiAi.cpp
actAiAi.h
actAiBehavior.cpp
actAiBehavior.h
actAiClassDef.cpp
actAiClassDef.h
actAiInlineParam.h
actAiParam.cpp
actAiParam.h
actAiQuery.cpp
actAiQuery.h
actAiQueries.cpp
actAiQueries.h
actAiRoot.cpp
actAiRoot.h
actASSetting.cpp
actASSetting.h
actBaseProc.cpp
actBaseProc.h
actBaseProcCreateTask.cpp
actBaseProcCreateTask.h
actBaseProcCreateTaskSelector.cpp
actBaseProcCreateTaskSelector.h
actBaseProcDeleter.cpp
actBaseProcDeleter.h
actBaseProcHandle.cpp
actBaseProcHandle.h
actBaseProcHeapMgr.cpp
actBaseProcHeapMgr.h
actBaseProcInitializer.cpp
actBaseProcInitializer.h
actBaseProcJob.cpp
actBaseProcJob.h
actBaseProcJobHandler.cpp
actBaseProcJobHandler.h
actBaseProcJobQue.cpp
actBaseProcJobQue.h
actBaseProcLink.cpp
actBaseProcLink.h
actBaseProcMap.cpp
actBaseProcMap.h
actBaseProcMgr.cpp
actBaseProcMgr.h
actBaseProcUnit.cpp
actBaseProcUnit.h
actCCAccessor.h
actClusteredRenderer.cpp
actClusteredRenderer.h
actDebug.cpp
actDebug.h
actGlobalParameter.cpp
actGlobalParameter.h
actInfoCommon.cpp
actInfoCommon.h
actInfoData.cpp
actInfoData.h
actInstParamPack.cpp
actInstParamPack.h
actLifeRecoveryInfo.h
actPhysicsConstraints.cpp
actPhysicsConstraints.h
actPhysicsUserTag.cpp
actPhysicsUserTag.h
actPlayerInfo.cpp
actPlayerInfo.h
actTag.h
actionDummyAction.cpp
actionDummyAction.h
aiDummyAi.cpp
aiDummyAi.h
behaviorDummyBehavior.cpp
behaviorDummyBehavior.h
queryDummyQuery.cpp
queryDummyQuery.h
)
actionDummyAction.cpp
actionDummyAction.h
aiDummyAi.cpp
aiDummyAi.h
behaviorDummyBehavior.cpp
behaviorDummyBehavior.h
queryDummyQuery.cpp
queryDummyQuery.h
)
+12 -2
View File
@@ -40,9 +40,10 @@ class UMii;
namespace phys {
class StaticCompoundRigidBodyGroup;
class Physics;
class InstanceSet;
class Reaction;
class RigidBody;
class CharacterController;
} // namespace phys
namespace res {
@@ -112,6 +113,7 @@ public:
enum class ActorFlag2 {
InstEvent = 0x8,
_20 = 0x20,
NoDistanceCheck = 0x80,
Alive = 0x4000000,
};
@@ -140,12 +142,19 @@ public:
const sead::Vector3f& getVelocity() const { return mVelocity; }
const sead::Vector3f& getAngVelocity() const { return mAngVelocity; }
const sead::Vector3f& getScale() const { return mScale; }
phys::RigidBody* getMainBody() const { return mMainBody; }
phys::RigidBody* getTgtBody() const { return mTgtBody; }
const MesTransceiverId* getMesTransceiverId() const { return mMsgTransceiver.getId(); }
f32 getDeleteDistance() const {
return sead::Mathf::sqrt(sead::Mathf::clampMin(mDeleteDistanceSq, 0.0f));
}
void setDeleteDistance(f32 distance) { mDeleteDistanceSq = sead::Mathf::square(distance); }
phys::CharacterController* getCharacterController();
void clearFlag(ActorFlag flag);
bool checkFlag(ActorFlag flag) const;
void setFlag(ActorFlag flag);
@@ -278,6 +287,7 @@ public:
void emitBasicSigOn();
void emitBasicSigOff();
bool checkBasicSig() const;
void nullsub_4649(); // Some kind of logging which has been excluded from the build?
@@ -386,7 +396,7 @@ protected:
/* 0x560 */ as::ASList* mASList = nullptr;
/* 0x568 */ xlink::XLink* mXLink = nullptr;
/* 0x570 */ ActorParam* mActorParam = nullptr;
/* 0x578 */ phys::Physics* mPhysics = nullptr;
/* 0x578 */ phys::InstanceSet* mPhysics = nullptr;
/* 0x580 */ PhysicsConstraints mConstraints;
/* 0x598 */ void* _598 = nullptr;
/* 0x5a0 */ BoneControl* mBoneControl = nullptr;
+9 -3
View File
@@ -13,6 +13,7 @@ struct AIDefSet;
class Message;
class MessageAck;
struct MesTransceiverId;
struct MessageType;
} // namespace ksys
namespace ksys::res {
@@ -69,6 +70,8 @@ public:
void leave();
bool oneShot(InlineParamPack* params);
bool sendMessage(const MesTransceiverId& dest, const MessageType& type, void* user_data);
Action* getCurrentAction();
bool handleMessage(const Message& message);
bool handleAck(const MessageAck& message);
@@ -78,9 +81,12 @@ public:
const char* getClassName() const;
const char* getName() const;
void playAS(const char* name, bool repeat, u32 slot, u32 seq_bank, f32 t);
bool isFinishedAS(u32 slot, u32 seq_bank);
virtual bool isFailed() const { return mFlags.isOn(Flag::Failed); }
virtual bool isFinished() const { return mFlags.isOn(Flag::Finished); }
virtual bool isFlag4Set() const { return mFlags.isOn(Flag::_4); }
virtual bool isChangeable() const { return mFlags.isOn(Flag::Changeable); }
virtual bool hasPreDeleteCb() { return false; }
virtual bool hasUpdateForPreDeleteCb() { return false; }
@@ -123,7 +129,7 @@ protected:
enum class Flag : u8 {
Finished = 1,
Failed = 2,
_4 = 4,
Changeable = 4,
TriggerAction = 8,
DynamicParamChild = 0x10,
_20 = 0x20,
@@ -154,7 +160,7 @@ protected:
void resetFlags() {
mFlags.reset(Flag::Failed);
mFlags.reset(Flag::Finished);
mFlags.reset(Flag::_4);
mFlags.reset(Flag::Changeable);
}
res::AIProgram* getAIProg() const;
+3 -3
View File
@@ -186,12 +186,12 @@ bool Ai::reenter(ActionBase* other, const sead::SafeString& context) {
return child->takeOver(other_child, getName());
}
bool Ai::isFlag4Set() const {
bool Ai::isChangeable() const {
auto* child = getCurrentChild();
if (child)
return child->isFlag4Set();
return child->isChangeable();
return mFlags.isOn(Flag::_4);
return mFlags.isOn(Flag::Changeable);
}
ActionBase* Ai::getCurrentChild() const {
+1 -1
View File
@@ -11,7 +11,7 @@ public:
explicit Ai(const InitArg& arg);
~Ai() override;
bool isFlag4Set() const override;
bool isChangeable() const override;
void calc() override;
ActionBase* changeChildLater(const sead::SafeString& name) override;
void getParams(ParamNameTypePairs* pairs, bool update_use_count) const override;
+1 -1
View File
@@ -30,7 +30,7 @@ public:
explicit RootAi(const InitArg& arg);
~RootAi() override;
bool isFlag4Set() const override { return true; }
bool isChangeable() const override { return true; }
bool init_(sead::Heap* heap) override;
void enter_(InlineParamPack* params) override;
void leave_() override;
@@ -0,0 +1,26 @@
#pragma once
namespace ksys::phys {
class CharacterController;
};
namespace ksys::act {
class Actor;
// todo: move?
enum class MotionType {
Hover = 3,
};
class CCAccessor {
public:
CCAccessor();
~CCAccessor();
void changeMotionType(phys::CharacterController* cc, MotionType motion_type);
void resetRigidBodyMotion(Actor* actor);
void resetMotionType(phys::CharacterController* cc);
};
} // namespace ksys::act
@@ -5,7 +5,7 @@ namespace ksys::act::ai {
DummyAction::DummyAction(const InitArg& arg) : Action(arg) {}
void DummyAction::enter_(InlineParamPack* params) {
mFlags.set(ActionBase::Flag::_4);
mFlags.set(ActionBase::Flag::Changeable);
}
void DummyAction::calc_() {}
+1 -1
View File
@@ -9,7 +9,7 @@ class DummyAi : public Ai {
public:
explicit DummyAi(const InitArg& arg);
bool isFlag4Set() const override { return true; }
bool isChangeable() const override { return true; }
void enter_(InlineParamPack* params) override;
protected:
+183 -181
View File
@@ -1,193 +1,195 @@
target_sources(uking PRIVATE
Cloth/physClothParam.cpp
Cloth/physClothParam.h
Cloth/physClothResource.cpp
Cloth/physClothResource.h
CharacterController/physCharacterController.h
Constraint/physConstraint.cpp
Constraint/physConstraint.h
Cloth/physClothParam.cpp
Cloth/physClothParam.h
Cloth/physClothResource.cpp
Cloth/physClothResource.h
Ragdoll/physRagdollConfig.cpp
Ragdoll/physRagdollConfig.h
Ragdoll/physRagdollControllerKeyList.h
Ragdoll/physRagdollControllerKeyList.cpp
Ragdoll/physRagdollController.cpp
Ragdoll/physRagdollController.h
Ragdoll/physRagdollControllerMgr.cpp
Ragdoll/physRagdollControllerMgr.h
Ragdoll/physRagdollParam.cpp
Ragdoll/physRagdollParam.h
Ragdoll/physRagdollResource.cpp
Ragdoll/physRagdollResource.h
Ragdoll/physRagdollRigidBody.cpp
Ragdoll/physRagdollRigidBody.h
Constraint/physConstraint.cpp
Constraint/physConstraint.h
Rig/physBoneAccessor.cpp
Rig/physBoneAccessor.h
Rig/physModelBoneAccessor.cpp
Rig/physModelBoneAccessor.h
Rig/physSkeletonMapper.cpp
Rig/physSkeletonMapper.h
Ragdoll/physRagdollConfig.cpp
Ragdoll/physRagdollConfig.h
Ragdoll/physRagdollControllerKeyList.h
Ragdoll/physRagdollControllerKeyList.cpp
Ragdoll/physRagdollController.cpp
Ragdoll/physRagdollController.h
Ragdoll/physRagdollControllerMgr.cpp
Ragdoll/physRagdollControllerMgr.h
Ragdoll/physRagdollParam.cpp
Ragdoll/physRagdollParam.h
Ragdoll/physRagdollResource.cpp
Ragdoll/physRagdollResource.h
Ragdoll/physRagdollRigidBody.cpp
Ragdoll/physRagdollRigidBody.h
RigidBody/physEdgeRigidBodyParam.cpp
RigidBody/physEdgeRigidBodyParam.h
RigidBody/physMotionAccessor.cpp
RigidBody/physMotionAccessor.h
RigidBody/physRigidBody.cpp
RigidBody/physRigidBody.h
RigidBody/physRigidBodyAccessor.cpp
RigidBody/physRigidBodyAccessor.h
RigidBody/physRigidBodyContactEvent.h
RigidBody/physRigidBodyFromResource.cpp
RigidBody/physRigidBodyFromResource.h
RigidBody/physRigidBodyFromShape.cpp
RigidBody/physRigidBodyFromShape.h
RigidBody/physRigidBodyMotionEntity.cpp
RigidBody/physRigidBodyMotionEntity.h
RigidBody/physRigidBodyMotionSensor.cpp
RigidBody/physRigidBodyMotionSensor.h
RigidBody/physRigidBodyParam.cpp
RigidBody/physRigidBodyParam.h
RigidBody/physRigidBodyRequestMgr.cpp
RigidBody/physRigidBodyRequestMgr.h
RigidBody/physRigidBodyResource.cpp
RigidBody/physRigidBodyResource.h
RigidBody/physRigidBodySet.cpp
RigidBody/physRigidBodySet.h
RigidBody/physRigidBodySetParam.cpp
RigidBody/physRigidBodySetParam.h
Rig/physBoneAccessor.cpp
Rig/physBoneAccessor.h
Rig/physModelBoneAccessor.cpp
Rig/physModelBoneAccessor.h
Rig/physSkeletonMapper.cpp
Rig/physSkeletonMapper.h
RigidBody/Shape/Box/physBoxRigidBody.cpp
RigidBody/Shape/Box/physBoxRigidBody.h
RigidBody/Shape/Box/physBoxShape.cpp
RigidBody/Shape/Box/physBoxShape.h
RigidBody/Shape/BoxWater/physBoxWaterRigidBody.cpp
RigidBody/Shape/BoxWater/physBoxWaterRigidBody.h
RigidBody/Shape/BoxWater/physBoxWaterShape.cpp
RigidBody/Shape/BoxWater/physBoxWaterShape.h
RigidBody/Shape/Capsule/physCapsuleRigidBody.cpp
RigidBody/Shape/Capsule/physCapsuleRigidBody.h
RigidBody/Shape/Capsule/physCapsuleShape.cpp
RigidBody/Shape/Capsule/physCapsuleShape.h
RigidBody/Shape/CharacterPrism/physCharacterPrismShape.cpp
RigidBody/Shape/CharacterPrism/physCharacterPrismShape.h
RigidBody/Shape/Cylinder/physCylinderRigidBody.cpp
RigidBody/Shape/Cylinder/physCylinderRigidBody.h
RigidBody/Shape/Cylinder/physCylinderShape.cpp
RigidBody/Shape/Cylinder/physCylinderShape.h
RigidBody/Shape/CylinderWater/physCylinderWaterRigidBody.cpp
RigidBody/Shape/CylinderWater/physCylinderWaterRigidBody.h
RigidBody/Shape/CylinderWater/physCylinderWaterShape.cpp
RigidBody/Shape/CylinderWater/physCylinderWaterShape.h
RigidBody/Shape/List/physListShape.cpp
RigidBody/Shape/List/physListShape.h
RigidBody/Shape/List/physListShapeRigidBody.cpp
RigidBody/Shape/List/physListShapeRigidBody.h
RigidBody/Shape/Polytope/physPolytopeRigidBody.cpp
RigidBody/Shape/Polytope/physPolytopeRigidBody.h
RigidBody/Shape/Polytope/physPolytopeShape.cpp
RigidBody/Shape/Polytope/physPolytopeShape.h
RigidBody/Shape/Sphere/physSphereRigidBody.cpp
RigidBody/Shape/Sphere/physSphereRigidBody.h
RigidBody/Shape/Sphere/physSphereShape.cpp
RigidBody/Shape/Sphere/physSphereShape.h
RigidBody/Shape/physShape.h
RigidBody/Shape/physShapeParamObj.cpp
RigidBody/Shape/physShapeParamObj.h
RigidBody/physEdgeRigidBodyParam.cpp
RigidBody/physEdgeRigidBodyParam.h
RigidBody/physMotionAccessor.cpp
RigidBody/physMotionAccessor.h
RigidBody/physRigidBody.cpp
RigidBody/physRigidBody.h
RigidBody/physRigidBodyAccessor.cpp
RigidBody/physRigidBodyAccessor.h
RigidBody/physRigidBodyContactEvent.h
RigidBody/physRigidBodyFromResource.cpp
RigidBody/physRigidBodyFromResource.h
RigidBody/physRigidBodyFromShape.cpp
RigidBody/physRigidBodyFromShape.h
RigidBody/physRigidBodyMotionEntity.cpp
RigidBody/physRigidBodyMotionEntity.h
RigidBody/physRigidBodyMotionSensor.cpp
RigidBody/physRigidBodyMotionSensor.h
RigidBody/physRigidBodyParam.cpp
RigidBody/physRigidBodyParam.h
RigidBody/physRigidBodyRequestMgr.cpp
RigidBody/physRigidBodyRequestMgr.h
RigidBody/physRigidBodyResource.cpp
RigidBody/physRigidBodyResource.h
RigidBody/physRigidBodySet.cpp
RigidBody/physRigidBodySet.h
RigidBody/physRigidBodySetParam.cpp
RigidBody/physRigidBodySetParam.h
RigidBody/TeraMesh/physTeraMeshRigidBody.cpp
RigidBody/TeraMesh/physTeraMeshRigidBody.h
RigidBody/TeraMesh/physTeraMeshRigidBodyResource.cpp
RigidBody/TeraMesh/physTeraMeshRigidBodyResource.h
RigidBody/Shape/Box/physBoxRigidBody.cpp
RigidBody/Shape/Box/physBoxRigidBody.h
RigidBody/Shape/Box/physBoxShape.cpp
RigidBody/Shape/Box/physBoxShape.h
RigidBody/Shape/BoxWater/physBoxWaterRigidBody.cpp
RigidBody/Shape/BoxWater/physBoxWaterRigidBody.h
RigidBody/Shape/BoxWater/physBoxWaterShape.cpp
RigidBody/Shape/BoxWater/physBoxWaterShape.h
RigidBody/Shape/Capsule/physCapsuleRigidBody.cpp
RigidBody/Shape/Capsule/physCapsuleRigidBody.h
RigidBody/Shape/Capsule/physCapsuleShape.cpp
RigidBody/Shape/Capsule/physCapsuleShape.h
RigidBody/Shape/CharacterPrism/physCharacterPrismShape.cpp
RigidBody/Shape/CharacterPrism/physCharacterPrismShape.h
RigidBody/Shape/Cylinder/physCylinderRigidBody.cpp
RigidBody/Shape/Cylinder/physCylinderRigidBody.h
RigidBody/Shape/Cylinder/physCylinderShape.cpp
RigidBody/Shape/Cylinder/physCylinderShape.h
RigidBody/Shape/CylinderWater/physCylinderWaterRigidBody.cpp
RigidBody/Shape/CylinderWater/physCylinderWaterRigidBody.h
RigidBody/Shape/CylinderWater/physCylinderWaterShape.cpp
RigidBody/Shape/CylinderWater/physCylinderWaterShape.h
RigidBody/Shape/List/physListShape.cpp
RigidBody/Shape/List/physListShape.h
RigidBody/Shape/List/physListShapeRigidBody.cpp
RigidBody/Shape/List/physListShapeRigidBody.h
RigidBody/Shape/Polytope/physPolytopeRigidBody.cpp
RigidBody/Shape/Polytope/physPolytopeRigidBody.h
RigidBody/Shape/Polytope/physPolytopeShape.cpp
RigidBody/Shape/Polytope/physPolytopeShape.h
RigidBody/Shape/Sphere/physSphereRigidBody.cpp
RigidBody/Shape/Sphere/physSphereRigidBody.h
RigidBody/Shape/Sphere/physSphereShape.cpp
RigidBody/Shape/Sphere/physSphereShape.h
RigidBody/Shape/physShape.h
RigidBody/Shape/physShapeParamObj.cpp
RigidBody/Shape/physShapeParamObj.h
RigidBody/TerrainHeightField/physTerrainHeightFieldRigidBody.h
RigidBody/TeraMesh/physTeraMeshRigidBody.cpp
RigidBody/TeraMesh/physTeraMeshRigidBody.h
RigidBody/TeraMesh/physTeraMeshRigidBodyResource.cpp
RigidBody/TeraMesh/physTeraMeshRigidBodyResource.h
StaticCompound/physStaticCompound.cpp
StaticCompound/physStaticCompound.h
StaticCompound/physStaticCompoundAutogen.cpp
StaticCompound/physStaticCompoundInfo.cpp
StaticCompound/physStaticCompoundInfo.h
StaticCompound/physStaticCompoundMgr.cpp
StaticCompound/physStaticCompoundMgr.h
StaticCompound/physStaticCompoundRigidBodyGroup.cpp
StaticCompound/physStaticCompoundRigidBodyGroup.h
StaticCompound/physStaticCompoundUtil.cpp
StaticCompound/physStaticCompoundUtil.h
RigidBody/TerrainHeightField/physTerrainHeightFieldRigidBody.h
SupportBone/physSupportBoneParam.cpp
SupportBone/physSupportBoneParam.h
SupportBone/physSupportBoneResource.cpp
SupportBone/physSupportBoneResource.h
SupportBone/physSupportBoneResourceMainBone.cpp
StaticCompound/physStaticCompound.cpp
StaticCompound/physStaticCompound.h
StaticCompound/physStaticCompoundAutogen.cpp
StaticCompound/physStaticCompoundInfo.cpp
StaticCompound/physStaticCompoundInfo.h
StaticCompound/physStaticCompoundMgr.cpp
StaticCompound/physStaticCompoundMgr.h
StaticCompound/physStaticCompoundRigidBodyGroup.cpp
StaticCompound/physStaticCompoundRigidBodyGroup.h
StaticCompound/physStaticCompoundUtil.cpp
StaticCompound/physStaticCompoundUtil.h
System/physCharacterControllerParam.cpp
System/physCharacterControllerParam.h
System/physClosestPointQuery.cpp
System/physClosestPointQuery.h
System/physClosestPointQueryWithInfo.cpp
System/physClosestPointQueryWithInfo.h
System/physCollisionInfo.cpp
System/physCollisionInfo.h
System/physContactInfoParam.cpp
System/physContactInfoParam.h
System/physContactLayerCollisionInfo.cpp
System/physContactLayerCollisionInfo.h
System/physContactLayerCollisionInfoGroup.cpp
System/physContactLayerCollisionInfoGroup.h
System/physContactListener.cpp
System/physContactListener.h
System/physContactMgr.cpp
System/physContactMgr.h
System/physContactPointInfo.cpp
System/physContactPointInfo.h
System/physLayerContactPointInfo.cpp
System/physLayerContactPointInfo.h
System/physEntityContactListener.cpp
System/physEntityContactListener.h
System/physEntityGroupFilter.cpp
System/physEntityGroupFilter.h
System/physGroupFilter.cpp
System/physGroupFilter.h
System/physInstanceSet.cpp
System/physInstanceSet.h
System/physMaterialTable.cpp
System/physMaterialTable.h
System/physParamSet.cpp
System/physParamSet.h
System/physPhantom.cpp
System/physPhantom.h
System/physQueryContactPointInfo.cpp
System/physQueryContactPointInfo.h
System/physRayCast.cpp
System/physRayCast.h
System/physRayCastBodyQuery.cpp
System/physRayCastBodyQuery.h
System/physRayCastForRequest.cpp
System/physRayCastForRequest.h
System/physRayCastRequestMgr.cpp
System/physRayCastRequestMgr.h
System/physSensorContactListener.cpp
System/physSensorContactListener.h
System/physSensorGroupFilter.cpp
System/physSensorGroupFilter.h
System/physShapeCast.cpp
System/physShapeCast.h
System/physShapeCastWithInfo.cpp
System/physShapeCastWithInfo.h
System/physSystem.cpp
System/physSystem.h
System/physSystemData.cpp
System/physSystemData.h
System/physUserTag.cpp
System/physUserTag.h
SupportBone/physSupportBoneParam.cpp
SupportBone/physSupportBoneParam.h
SupportBone/physSupportBoneResource.cpp
SupportBone/physSupportBoneResource.h
SupportBone/physSupportBoneResourceMainBone.cpp
physConversions.h
physDefines.cpp
physDefines.h
physHavokMemoryAllocator.cpp
physHavokMemoryAllocator.h
physHeapUtil.h
physLayerMaskBuilder.h
physMaterialMask.cpp
physMaterialMask.h
)
System/physCharacterControllerParam.cpp
System/physCharacterControllerParam.h
System/physClosestPointQuery.cpp
System/physClosestPointQuery.h
System/physClosestPointQueryWithInfo.cpp
System/physClosestPointQueryWithInfo.h
System/physCollisionInfo.cpp
System/physCollisionInfo.h
System/physContactInfoParam.cpp
System/physContactInfoParam.h
System/physContactLayerCollisionInfo.cpp
System/physContactLayerCollisionInfo.h
System/physContactLayerCollisionInfoGroup.cpp
System/physContactLayerCollisionInfoGroup.h
System/physContactListener.cpp
System/physContactListener.h
System/physContactMgr.cpp
System/physContactMgr.h
System/physContactPointInfo.cpp
System/physContactPointInfo.h
System/physLayerContactPointInfo.cpp
System/physLayerContactPointInfo.h
System/physEntityContactListener.cpp
System/physEntityContactListener.h
System/physEntityGroupFilter.cpp
System/physEntityGroupFilter.h
System/physGroupFilter.cpp
System/physGroupFilter.h
System/physInstanceSet.cpp
System/physInstanceSet.h
System/physMaterialTable.cpp
System/physMaterialTable.h
System/physParamSet.cpp
System/physParamSet.h
System/physPhantom.cpp
System/physPhantom.h
System/physQueryContactPointInfo.cpp
System/physQueryContactPointInfo.h
System/physRayCast.cpp
System/physRayCast.h
System/physRayCastBodyQuery.cpp
System/physRayCastBodyQuery.h
System/physRayCastForRequest.cpp
System/physRayCastForRequest.h
System/physRayCastRequestMgr.cpp
System/physRayCastRequestMgr.h
System/physSensorContactListener.cpp
System/physSensorContactListener.h
System/physSensorGroupFilter.cpp
System/physSensorGroupFilter.h
System/physShapeCast.cpp
System/physShapeCast.h
System/physShapeCastWithInfo.cpp
System/physShapeCastWithInfo.h
System/physSystem.cpp
System/physSystem.h
System/physSystemData.cpp
System/physSystemData.h
System/physUserTag.cpp
System/physUserTag.h
physConversions.h
physDefines.cpp
physDefines.h
physHavokMemoryAllocator.cpp
physHavokMemoryAllocator.h
physHeapUtil.h
physLayerMaskBuilder.h
physMaterialMask.cpp
physMaterialMask.h
)
@@ -0,0 +1,13 @@
#pragma once
#include "KingSystem/Physics/physDefines.h"
namespace ksys::phys {
class CharacterController {
public:
void sub_7100F5EC30();
void sub_7100F60604();
void enableCollisionMaybe_0(ContactLayer);
};
} // namespace ksys::phys
@@ -479,6 +479,8 @@ public:
const auto& getMotionFlags() const { return mMotionFlags; }
void resetMotionFlagDirect(const MotionFlag flag) { mMotionFlags.reset(flag); }
void setMotionFlag(MotionFlag flag);
void setFlag200() { mFlags.set(Flag::_200); }
void resetFlag200() { mFlags.reset(Flag::_200); }
hkpRigidBody* getHkBody() const { return mHkBody; }
@@ -1,4 +1,5 @@
#include "KingSystem/Physics/System/physInstanceSet.h"
#include "KingSystem/Physics/CharacterController/physCharacterController.h"
#include "KingSystem/Physics/Ragdoll/physRagdollController.h"
#include "KingSystem/Physics/RigidBody/physRigidBodySet.h"
#include "KingSystem/Physics/System/physCollisionInfo.h"
@@ -146,16 +147,16 @@ void InstanceSet::sub_7100FBB00C(phys::RigidBody* body, phys::RigidBodyParam* pa
body->clearSensorReceiverIgnoredLayer();
}
void* InstanceSet::sub_7100FBBC28(const sead::SafeString& name) const {
RigidBody* InstanceSet::findRigidBody(const sead::SafeString& name) const {
for (auto& rb : mRigidBodySets) {
void* p = rb.findBodyByHavokName(name);
RigidBody* p = rb.findBodyByHavokName(name);
if (p != nullptr)
return p;
}
return nullptr;
}
s32 InstanceSet::sub_7100FBBC78(const sead::SafeString& name) const {
s32 InstanceSet::findContactPointInfo(const sead::SafeString& name) const {
s32 idx = 0;
for (auto& info : mContactPointInfo) {
if (name == info.getName())
@@ -165,7 +166,7 @@ s32 InstanceSet::sub_7100FBBC78(const sead::SafeString& name) const {
return -1;
}
s32 InstanceSet::sub_7100FBBD9C(const sead::SafeString& name) const {
s32 InstanceSet::findCollisionInfo(const sead::SafeString& name) const {
s32 idx = 0;
for (auto& info : mCollisionInfo) {
if (name == info.getName())
@@ -37,14 +37,6 @@ class RigidBodySet;
class SystemGroupHandler;
class UserTag;
// TODO: move to a separate header
class CharacterController {
public:
void sub_7100F5EC30();
void sub_7100F60604();
void enableCollisionMaybe_0(ContactLayer);
};
class InstanceSet : public sead::hostio::Node {
public:
enum class Flag : u32 {
@@ -82,9 +74,9 @@ public:
void setMtxAndScale(const sead::Matrix34f& mtx, bool a2, bool a3, f32 scale);
void sub_7100FBB4B4();
void* findX(const sead::SafeString& a1, const sead::SafeString& a2) const;
void* sub_7100FBBC28(const sead::SafeString& name) const;
s32 sub_7100FBBC78(const sead::SafeString& name) const;
s32 sub_7100FBBD9C(const sead::SafeString& name) const;
RigidBody* findRigidBody(const sead::SafeString& name) const;
s32 findContactPointInfo(const sead::SafeString& name) const;
s32 findCollisionInfo(const sead::SafeString& name) const;
void sub_7100FBD284(const sead::Matrix34f& mtx);
void sub_7100FBC890(const sead::Matrix34f& mtx, bool a2, bool a3);
s32 sub_7100FBDA2C(const sead::SafeString& name) const;
+62 -62
View File
@@ -1,63 +1,63 @@
target_sources(uking PRIVATE
Account.cpp
Account.h
AutoDim.cpp
AutoDim.h
BasicProfiler.cpp
BasicProfiler.h
CameraEditor.cpp
CameraEditor.h
CameraMgr.cpp
CameraMgr.h
CoreInfo.h
DebugFinder.cpp
DebugFinder.h
DebugMessage.h
HavokWorkerMgr.cpp
HavokWorkerMgr.h
Hio.cpp
Hio.h
KingEditor.cpp
KingEditor.h
MemoryProfiler.cpp
MemoryProfiler.h
MessageCapture.cpp
MessageCapture.h
OcclusionQueryCylinder.cpp
OcclusionQueryCylinder.h
OverlayArena.cpp
OverlayArena.h
OverlayArenaSystem.cpp
OverlayArenaSystem.h
OverlayArenaSystemS1.h
OverlayArenaSystemS2.h
Patrol.cpp
Patrol.h
PlayReportMgr.cpp
PlayReportMgr.h
ProductReporter.cpp
ProductReporter.h
Revision.cpp
Revision.h
StageInfo.cpp
StageInfo.h
StarterPackMgr.cpp
StarterPackMgr.h
StringBoard.h
SystemPauseMgr.cpp
SystemPauseMgr.h
SystemTimers.cpp
SystemTimers.h
Terminal.cpp
Terminal.h
Timer.cpp
Timer.h
UIGlue.cpp
UIGlue.h
VideoRecorder.cpp
VideoRecorder.h
VFR.cpp
VFR.h
VFRValue.cpp
VFRValue.h
)
Account.cpp
Account.h
AutoDim.cpp
AutoDim.h
BasicProfiler.cpp
BasicProfiler.h
CameraEditor.cpp
CameraEditor.h
CameraMgr.cpp
CameraMgr.h
CoreInfo.h
DebugFinder.cpp
DebugFinder.h
DebugMessage.h
HavokWorkerMgr.cpp
HavokWorkerMgr.h
Hio.cpp
Hio.h
KingEditor.cpp
KingEditor.h
MemoryProfiler.cpp
MemoryProfiler.h
MessageCapture.cpp
MessageCapture.h
OcclusionQueryCylinder.cpp
OcclusionQueryCylinder.h
OverlayArena.cpp
OverlayArena.h
OverlayArenaSystem.cpp
OverlayArenaSystem.h
OverlayArenaSystemS1.h
OverlayArenaSystemS2.h
Patrol.cpp
Patrol.h
PlayReportMgr.cpp
PlayReportMgr.h
ProductReporter.cpp
ProductReporter.h
Revision.cpp
Revision.h
StageInfo.cpp
StageInfo.h
StarterPackMgr.cpp
StarterPackMgr.h
StringBoard.h
SystemPauseMgr.cpp
SystemPauseMgr.h
SystemTimers.cpp
SystemTimers.h
Terminal.cpp
Terminal.h
Timer.cpp
Timer.h
UIGlue.cpp
UIGlue.h
VideoRecorder.cpp
VideoRecorder.h
VFR.cpp
VFR.h
VFRValue.cpp
VFRValue.h
)
+2
View File
@@ -5,5 +5,7 @@
namespace ksys::ui {
int getPorchNum(const sead::SafeString& name);
void initRupeeCounter();
bool isRupeeCounterActive();
} // namespace ksys::ui
+1 -1
View File
@@ -14,7 +14,7 @@ _vtable_fn_names = [
"_ZN5uking6action{}D0Ev",
"_ZNK5uking6action{}8isFailedEv",
"_ZNK5uking6action{}10isFinishedEv",
"_ZNK5uking6action{}10isFlag4SetEv",
"_ZNK5uking6action{}12isChangeableEv",
"_ZN5uking6action{}14hasPreDeleteCbEv",
"_ZN5uking6action{}23hasUpdateForPreDeleteCbEv",
"_ZN5uking6action{}2m9Ev",
+1 -1
View File
@@ -14,7 +14,7 @@ _vtable_fn_names = [
"_ZN5uking2ai{}D0Ev",
"_ZNK5uking2ai{}8isFailedEv",
"_ZNK5uking2ai{}10isFinishedEv",
"_ZNK5uking2ai{}10isFlag4SetEv",
"_ZNK5uking2ai{}12isChangeableEv",
"_ZN5uking2ai{}14hasPreDeleteCbEv",
"_ZN5uking2ai{}23hasUpdateForPreDeleteCbEv",
"_ZN5uking2ai{}2m9Ev",