diff options
| author | Léo Lam <leo@leolam.fr> | 2026-09-28 03:39:30 +0200 |
|---|---|---|
| committer | Léo Lam <leo@leolam.fr> | 2026-10-06 03:19:38 +0200 |
| commit | a168b93bbcf603816bf718962fc4d706b5fc772d (patch) | |
| tree | ad3af063d67313243431beef39f4f58b6e6ce2b3 /src/KingSystem/Sound/Actor/AI | |
| parent | 7bc225838a580adea925fd56421f520db4c5d393 (diff) | |
snd: move sound actions and AIs to KingSystem/Sound
They link with KingSystem/Sound (0x7100fe8b54-0x7101060ed4) as sorted
Action/AI passes of their own. The three area tag actions keep their
game base AreaTagAction, which links in the Game/Actor/Area block.
(AI assisted using Claude Fable 5.1 and Claude Opus 5.5)
Diffstat (limited to 'src/KingSystem/Sound/Actor/AI')
7 files changed, 161 insertions, 0 deletions
diff --git a/src/KingSystem/Sound/Actor/AI/CMakeLists.txt b/src/KingSystem/Sound/Actor/AI/CMakeLists.txt new file mode 100644 index 00000000..726297a4 --- /dev/null +++ b/src/KingSystem/Sound/Actor/AI/CMakeLists.txt @@ -0,0 +1,8 @@ +target_sources(uking PRIVATE + aiEnvSeEmitPointRootAI.cpp + aiEnvSeEmitPointRootAI.h + aiSignaledSpotBgmTrigger.cpp + aiSignaledSpotBgmTrigger.h + aiSpotBgmTrigger.cpp + aiSpotBgmTrigger.h +) diff --git a/src/KingSystem/Sound/Actor/AI/aiEnvSeEmitPointRootAI.cpp b/src/KingSystem/Sound/Actor/AI/aiEnvSeEmitPointRootAI.cpp new file mode 100644 index 00000000..f63f9e15 --- /dev/null +++ b/src/KingSystem/Sound/Actor/AI/aiEnvSeEmitPointRootAI.cpp @@ -0,0 +1,26 @@ +#include "KingSystem/Sound/Actor/AI/aiEnvSeEmitPointRootAI.h" + +namespace ksys::snd { + +EnvSeEmitPointRootAI::EnvSeEmitPointRootAI(const InitArg& arg) : ksys::act::ai::Ai(arg) {} + +EnvSeEmitPointRootAI::~EnvSeEmitPointRootAI() = default; + +bool EnvSeEmitPointRootAI::init_(sead::Heap* heap) { + return ksys::act::ai::Ai::init_(heap); +} + +void EnvSeEmitPointRootAI::enter_(ksys::act::ai::InlineParamPack* params) { + ksys::act::ai::Ai::enter_(params); +} + +void EnvSeEmitPointRootAI::leave_() { + ksys::act::ai::Ai::leave_(); +} + +void EnvSeEmitPointRootAI::loadParams_() { + getStaticParam(&mInvalidatePlayDistance_s, "InvalidatePlayDistance"); + getStaticParam(&mPlayDistance_s, "PlayDistance"); +} + +} // namespace ksys::snd diff --git a/src/KingSystem/Sound/Actor/AI/aiEnvSeEmitPointRootAI.h b/src/KingSystem/Sound/Actor/AI/aiEnvSeEmitPointRootAI.h new file mode 100644 index 00000000..dfbe0aba --- /dev/null +++ b/src/KingSystem/Sound/Actor/AI/aiEnvSeEmitPointRootAI.h @@ -0,0 +1,25 @@ +#pragma once + +#include "KingSystem/ActorSystem/actAiAi.h" + +namespace ksys::snd { + +class EnvSeEmitPointRootAI : public ksys::act::ai::Ai { + SEAD_RTTI_OVERRIDE(EnvSeEmitPointRootAI, ksys::act::ai::Ai) +public: + explicit EnvSeEmitPointRootAI(const InitArg& arg); + ~EnvSeEmitPointRootAI() override; + + bool init_(sead::Heap* heap) override; + void enter_(ksys::act::ai::InlineParamPack* params) override; + void leave_() override; + void loadParams_() override; + +protected: + // static_param at offset 0x38 + const float* mInvalidatePlayDistance_s{}; + // static_param at offset 0x40 + const float* mPlayDistance_s{}; +}; + +} // namespace ksys::snd diff --git a/src/KingSystem/Sound/Actor/AI/aiSignaledSpotBgmTrigger.cpp b/src/KingSystem/Sound/Actor/AI/aiSignaledSpotBgmTrigger.cpp new file mode 100644 index 00000000..d9540710 --- /dev/null +++ b/src/KingSystem/Sound/Actor/AI/aiSignaledSpotBgmTrigger.cpp @@ -0,0 +1,26 @@ +#include "KingSystem/Sound/Actor/AI/aiSignaledSpotBgmTrigger.h" + +namespace ksys::snd { + +SignaledSpotBgmTrigger::SignaledSpotBgmTrigger(const InitArg& arg) : ksys::act::ai::Ai(arg) {} + +SignaledSpotBgmTrigger::~SignaledSpotBgmTrigger() = default; + +bool SignaledSpotBgmTrigger::init_(sead::Heap* heap) { + return ksys::act::ai::Ai::init_(heap); +} + +void SignaledSpotBgmTrigger::enter_(ksys::act::ai::InlineParamPack* params) { + ksys::act::ai::Ai::enter_(params); +} + +void SignaledSpotBgmTrigger::leave_() { + ksys::act::ai::Ai::leave_(); +} + +void SignaledSpotBgmTrigger::loadParams_() { + getMapUnitParam(&mIsStopWithoutReductionY_m, "IsStopWithoutReductionY"); + getMapUnitParam(&mSound_m, "Sound"); +} + +} // namespace ksys::snd diff --git a/src/KingSystem/Sound/Actor/AI/aiSignaledSpotBgmTrigger.h b/src/KingSystem/Sound/Actor/AI/aiSignaledSpotBgmTrigger.h new file mode 100644 index 00000000..aafdb05b --- /dev/null +++ b/src/KingSystem/Sound/Actor/AI/aiSignaledSpotBgmTrigger.h @@ -0,0 +1,25 @@ +#pragma once + +#include "KingSystem/ActorSystem/actAiAi.h" + +namespace ksys::snd { + +class SignaledSpotBgmTrigger : public ksys::act::ai::Ai { + SEAD_RTTI_OVERRIDE(SignaledSpotBgmTrigger, ksys::act::ai::Ai) +public: + explicit SignaledSpotBgmTrigger(const InitArg& arg); + ~SignaledSpotBgmTrigger() override; + + bool init_(sead::Heap* heap) override; + void enter_(ksys::act::ai::InlineParamPack* params) override; + void leave_() override; + void loadParams_() override; + +protected: + // map_unit_param at offset 0x38 + const bool* mIsStopWithoutReductionY_m{}; + // map_unit_param at offset 0x40 + sead::SafeString mSound_m{}; +}; + +} // namespace ksys::snd diff --git a/src/KingSystem/Sound/Actor/AI/aiSpotBgmTrigger.cpp b/src/KingSystem/Sound/Actor/AI/aiSpotBgmTrigger.cpp new file mode 100644 index 00000000..78e730c8 --- /dev/null +++ b/src/KingSystem/Sound/Actor/AI/aiSpotBgmTrigger.cpp @@ -0,0 +1,26 @@ +#include "KingSystem/Sound/Actor/AI/aiSpotBgmTrigger.h" + +namespace ksys::snd { + +SpotBgmTrigger::SpotBgmTrigger(const InitArg& arg) : ksys::act::ai::Ai(arg) {} + +SpotBgmTrigger::~SpotBgmTrigger() = default; + +bool SpotBgmTrigger::init_(sead::Heap* heap) { + return ksys::act::ai::Ai::init_(heap); +} + +void SpotBgmTrigger::enter_(ksys::act::ai::InlineParamPack* params) { + ksys::act::ai::Ai::enter_(params); +} + +void SpotBgmTrigger::leave_() { + ksys::act::ai::Ai::leave_(); +} + +void SpotBgmTrigger::loadParams_() { + getMapUnitParam(&mIsStopWithoutReductionY_m, "IsStopWithoutReductionY"); + getMapUnitParam(&mSound_m, "Sound"); +} + +} // namespace ksys::snd diff --git a/src/KingSystem/Sound/Actor/AI/aiSpotBgmTrigger.h b/src/KingSystem/Sound/Actor/AI/aiSpotBgmTrigger.h new file mode 100644 index 00000000..4727c6c7 --- /dev/null +++ b/src/KingSystem/Sound/Actor/AI/aiSpotBgmTrigger.h @@ -0,0 +1,25 @@ +#pragma once + +#include "KingSystem/ActorSystem/actAiAi.h" + +namespace ksys::snd { + +class SpotBgmTrigger : public ksys::act::ai::Ai { + SEAD_RTTI_OVERRIDE(SpotBgmTrigger, ksys::act::ai::Ai) +public: + explicit SpotBgmTrigger(const InitArg& arg); + ~SpotBgmTrigger() override; + + bool init_(sead::Heap* heap) override; + void enter_(ksys::act::ai::InlineParamPack* params) override; + void leave_() override; + void loadParams_() override; + +protected: + // map_unit_param at offset 0x38 + const bool* mIsStopWithoutReductionY_m{}; + // map_unit_param at offset 0x40 + sead::SafeString mSound_m{}; +}; + +} // namespace ksys::snd |
