AI: merge the duplicate DummyAction into ksys

The action factory uses the single ksys ctor for both entries and
DummyDropTable's ctor calls it too; deriving from it makes
DummyDropTable's five functions match.

(AI assisted using Claude Fable 5.1 and Claude Opus 5.5)
This commit is contained in:
Léo Lam
2026-09-28 03:39:30 +02:00
parent a168b93bbc
commit 34e57daf61
7 changed files with 16 additions and 60 deletions
+6 -6
View File
@@ -73928,18 +73928,18 @@ Address,Quality,Size,Name
0x0000007100d32550,O,000288,_ZNK4ksys3act2ai11DummyAction27checkDerivedRuntimeTypeInfoEPKN4sead15RuntimeTypeInfo9InterfaceE
0x0000007100d32670,O,000092,_ZNK4ksys3act2ai11DummyAction18getRuntimeTypeInfoEv
0x0000007100d326cc,O,000052,_ZN4ksys3act2ai11DummyActionD0Ev
0x0000007100d32700,M,000072,_ZN5uking6action14DummyDropTableC1ERKN4ksys3act2ai10ActionBase7InitArgE
0x0000007100d32700,O,000072,_ZN5uking6action14DummyDropTableC1ERKN4ksys3act2ai10ActionBase7InitArgE
0x0000007100d32748,O,000020,_ZN5uking6action14DummyDropTableD1Ev
0x0000007100d3275c,O,000052,_ZN5uking6action14DummyDropTableD0Ev
0x0000007100d32790,O,000008,_ZN5uking6action14DummyDropTable5init_EPN4sead4HeapE
0x0000007100d32798,W,000004,_ZN5uking6action14DummyDropTable6enter_EPN4ksys3act2ai15InlineParamPackE
0x0000007100d3279c,W,000004,_ZN5uking6action14DummyDropTable5calc_Ev
0x0000007100d327a0,W,000004,_ZN5uking6action14DummyDropTable6leave_Ev
0x0000007100d327a4,W,000084,_ZN5uking6action14DummyDropTable11loadParams_Ev
0x0000007100d32798,O,000004,_ZN5uking6action14DummyDropTable6enter_EPN4ksys3act2ai15InlineParamPackE
0x0000007100d3279c,O,000004,_ZN5uking6action14DummyDropTable5calc_Ev
0x0000007100d327a0,O,000004,_ZN5uking6action14DummyDropTable6leave_Ev
0x0000007100d327a4,O,000084,_ZN5uking6action14DummyDropTable11loadParams_Ev
0x0000007100d327f8,O,000008,_ZNK5uking6action14DummyDropTable27checkDerivedRuntimeTypeInfoEPKN4sead15RuntimeTypeInfo9InterfaceE
0x0000007100d32800,O,000092,_ZNK5uking6action14DummyDropTable18getRuntimeTypeInfoEv
0x0000007100d3285c,O,000372,_ZN5uking6action14DummyDropTable33checkDerivedRuntimeTypeInfoStaticEPKN4sead15RuntimeTypeInfo9InterfaceE
0x0000007100d329d0,O,000140,_ZNK4sead15RuntimeTypeInfo6DeriveIN5uking6action11DummyActionEE9isDerivedEPKNS0_9InterfaceE
0x0000007100d329d0,O,000140,_ZNK4sead15RuntimeTypeInfo6DeriveIN4ksys3act2ai11DummyActionEE9isDerivedEPKNS0_9InterfaceE
0x0000007100d32a5c,O,000048,_ZN5uking6action18DummyTriggerActionC1ERKN4ksys3act2ai10ActionBase7InitArgE
0x0000007100d32a8c,O,000020,_ZN5uking6action18DummyTriggerActionD1Ev
0x0000007100d32aa0,O,000052,_ZN5uking6action18DummyTriggerActionD0Ev
Can't render this file because it is too large.
-2
View File
@@ -623,8 +623,6 @@ target_sources(uking PRIVATE
actionDropWeapon.h
actionDrowningDeath.cpp
actionDrowningDeath.h
actionDummyAction.cpp
actionDummyAction.h
actionDummyDropTable.cpp
actionDummyDropTable.h
actionDummyTriggerAction.cpp
@@ -1,21 +0,0 @@
#include "Game/Actor/Action/actionDummyAction.h"
namespace uking::action {
DummyAction::DummyAction(const InitArg& arg) : ksys::act::ai::Action(arg) {}
void DummyAction::enter_(ksys::act::ai::InlineParamPack* params) {
ksys::act::ai::Action::enter_(params);
}
void DummyAction::leave_() {
ksys::act::ai::Action::leave_();
}
void DummyAction::loadParams_() {}
void DummyAction::calc_() {
ksys::act::ai::Action::calc_();
}
} // namespace uking::action
-20
View File
@@ -1,20 +0,0 @@
#pragma once
#include "KingSystem/ActorSystem/actAiAction.h"
namespace uking::action {
class DummyAction : public ksys::act::ai::Action {
SEAD_RTTI_OVERRIDE(DummyAction, ksys::act::ai::Action)
public:
explicit DummyAction(const InitArg& arg);
void enter_(ksys::act::ai::InlineParamPack* params) override;
void leave_() override;
void loadParams_() override;
protected:
void calc_() override;
};
} // namespace uking::action
@@ -2,29 +2,29 @@
namespace uking::action {
DummyDropTable::DummyDropTable(const InitArg& arg) : DummyAction(arg) {}
DummyDropTable::DummyDropTable(const InitArg& arg) : ksys::act::ai::DummyAction(arg) {}
DummyDropTable::~DummyDropTable() = default;
bool DummyDropTable::init_(sead::Heap* heap) {
return DummyAction::init_(heap);
return ksys::act::ai::DummyAction::init_(heap);
}
void DummyDropTable::enter_(ksys::act::ai::InlineParamPack* params) {
DummyAction::enter_(params);
ksys::act::ai::DummyAction::enter_(params);
}
void DummyDropTable::leave_() {
DummyAction::leave_();
ksys::act::ai::DummyAction::leave_();
}
void DummyDropTable::loadParams_() {
DummyAction::loadParams_();
ksys::act::ai::DummyAction::loadParams_();
getMapUnitParam(&mDropTable_m, "DropTable");
}
void DummyDropTable::calc_() {
DummyAction::calc_();
ksys::act::ai::DummyAction::calc_();
}
} // namespace uking::action
+3 -3
View File
@@ -1,12 +1,12 @@
#pragma once
#include "Game/Actor/Action/actionDummyAction.h"
#include "KingSystem/ActorSystem/actAiAction.h"
#include "KingSystem/ActorSystem/actionDummyAction.h"
namespace uking::action {
class DummyDropTable : public DummyAction {
SEAD_RTTI_OVERRIDE(DummyDropTable, DummyAction)
class DummyDropTable : public ksys::act::ai::DummyAction {
SEAD_RTTI_OVERRIDE(DummyDropTable, ksys::act::ai::DummyAction)
public:
explicit DummyDropTable(const InitArg& arg);
~DummyDropTable() override;
+1 -2
View File
@@ -283,7 +283,6 @@
#include "Game/Actor/Action/actionDropCreateForReplace.h"
#include "Game/Actor/Action/actionDropWeapon.h"
#include "Game/Actor/Action/actionDrowningDeath.h"
#include "Game/Actor/Action/actionDummyAction.h"
#include "Game/Actor/Action/actionDummyDropTable.h"
#include "Game/Actor/Action/actionDummyTriggerAction.h"
#include "Game/Actor/Action/actionDunegonRotateWait.h"
@@ -2543,7 +2542,7 @@ static Factory sActionFactories[] = {
{0x73664194, Factory::make<action::HorseEatAction>},
{0x7380112a, Factory::make<action::MimicFreeze>},
{0x73df6d4c, Factory::make<ksys::act::ai::DummyAction>},
{0x73e6fb3b, Factory::make<action::DummyAction>},
{0x73e6fb3b, Factory::make<ksys::act::ai::DummyAction>},
{0x73fec15b, Factory::make<ksys::snd::SpotBgmTriggerAction>},
{0x740366f6, Factory::make<action::LynelNavMeshMove>},
{0x74137cda, Factory::make<action::TerrainHideCenter>},