From fa2b8b7d4738e5ee098fc105adc60e10356dd410 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Lam?= Date: Mon, 28 Sep 2026 03:39:31 +0200 Subject: [PATCH] Move code to the TUs that match link order and rename files Rename classes and files so that they sort where their code is linked, and move code that is linked inside another TU into that TU's file. | Old | New | TU start | |---|---|---| | ActorAreaInOutSendMessage | AreaInOutSendMessage | 0x710009fa64 | | AreaTagAction | AreaActionBase | 0x7100e21e64 | | sndResource.{h,cpp} | sndSound.{h,cpp} | | | Code | From | To | |---|---|---| | SoundMgr | sndMgr.h | sndSound.h | | PlayReport | PlayReportMgr.cpp | PlayReport.cpp | | PlayReport::addPlayTimes, addPosition | PlayReportMgr.cpp | ProductReporter.cpp | (AI assisted using Claude Fable 5.1 and Claude Opus 5.5) --- data/uking_functions.csv | 50 +++++----- src/Game/Actor/Action/CMakeLists.txt | 4 +- .../actionActorAreaInOutSendMessage.cpp | 29 ------ src/Game/Actor/Action/actionAreaBottomTag.cpp | 10 +- src/Game/Actor/Action/actionAreaBottomTag.h | 6 +- .../Action/actionAreaInOutSendMessage.cpp | 29 ++++++ ...Message.h => actionAreaInOutSendMessage.h} | 10 +- .../actionCollaboShootingStarAreaTag.cpp | 10 +- .../Action/actionCollaboShootingStarAreaTag.h | 6 +- .../Actor/Action/actionControlBombEffect.cpp | 10 +- .../Actor/Action/actionControlBombEffect.h | 6 +- .../actionEnemyAreaInOutSendMessage.cpp | 12 +-- .../Action/actionEnemyAreaInOutSendMessage.h | 6 +- .../Actor/Action/actionForbidComeback.cpp | 10 +- src/Game/Actor/Action/actionForbidComeback.h | 6 +- .../actionPlayerAreaInOutSendMessage.cpp | 12 +-- .../Action/actionPlayerAreaInOutSendMessage.h | 6 +- .../Action/actionSandwichDetectionAreaTag.cpp | 10 +- .../Action/actionSandwichDetectionAreaTag.h | 6 +- .../actionSandwichDetectionAreaTagSimple.cpp | 10 +- .../actionSandwichDetectionAreaTagSimple.h | 6 +- .../Action/actionSetComebackPosition.cpp | 10 +- .../Actor/Action/actionSetComebackPosition.h | 6 +- .../Actor/Action/actionShelterFromRain.cpp | 10 +- src/Game/Actor/Action/actionShelterFromRain.h | 6 +- src/Game/Actor/Area/Action/CMakeLists.txt | 4 +- .../Area/Action/actionAreaActionBase.cpp | 17 ++++ ...AreaTagAction.h => actionAreaActionBase.h} | 8 +- .../Area/Action/actionAreaActorObserve.cpp | 4 +- .../Area/Action/actionAreaActorObserve.h | 6 +- .../actionAreaHorseSpeedLimitAction.cpp | 4 +- .../Action/actionAreaHorseSpeedLimitAction.h | 6 +- .../actionAreaOutRecreateActorAction.cpp | 4 +- .../Action/actionAreaOutRecreateActorAction.h | 6 +- .../Action/actionAreaRecreateActorAction.cpp | 4 +- .../Action/actionAreaRecreateActorAction.h | 6 +- .../Actor/Area/Action/actionAreaTagAction.cpp | 17 ---- .../Action/actionOwnedHorseObserveAction.cpp | 8 +- .../Action/actionOwnedHorseObserveAction.h | 6 +- .../Action/actionSoundOcclusionTagAction.cpp | 10 +- .../Action/actionSoundOcclusionTagAction.h | 6 +- .../Action/actionSoundReverbAreaTagAction.cpp | 10 +- .../Action/actionSoundReverbAreaTagAction.h | 6 +- .../actionSoundShieldingAreaTagAction.cpp | 11 ++- .../actionSoundShieldingAreaTagAction.h | 6 +- src/KingSystem/Sound/CMakeLists.txt | 6 +- src/KingSystem/Sound/sndMgr.cpp | 1 - src/KingSystem/Sound/sndMgr.h | 26 ----- .../Sound/{sndResource.cpp => sndSound.cpp} | 2 +- .../Sound/{sndResource.h => sndSound.h} | 19 ++++ src/KingSystem/System/CMakeLists.txt | 1 + src/KingSystem/System/OverlayArenaSystem.cpp | 2 +- src/KingSystem/System/PlayReport.cpp | 77 +++++++++++++++ src/KingSystem/System/PlayReportMgr.cpp | 96 ------------------- src/KingSystem/System/ProductReporter.cpp | 27 +++++- 55 files changed, 345 insertions(+), 347 deletions(-) delete mode 100644 src/Game/Actor/Action/actionActorAreaInOutSendMessage.cpp create mode 100644 src/Game/Actor/Action/actionAreaInOutSendMessage.cpp rename src/Game/Actor/Action/{actionActorAreaInOutSendMessage.h => actionAreaInOutSendMessage.h} (59%) create mode 100644 src/Game/Actor/Area/Action/actionAreaActionBase.cpp rename src/Game/Actor/Area/Action/{actionAreaTagAction.h => actionAreaActionBase.h} (54%) delete mode 100644 src/Game/Actor/Area/Action/actionAreaTagAction.cpp delete mode 100644 src/KingSystem/Sound/sndMgr.cpp delete mode 100644 src/KingSystem/Sound/sndMgr.h rename src/KingSystem/Sound/{sndResource.cpp => sndSound.cpp} (95%) rename src/KingSystem/Sound/{sndResource.h => sndSound.h} (64%) create mode 100644 src/KingSystem/System/PlayReport.cpp diff --git a/data/uking_functions.csv b/data/uking_functions.csv index 902d3694..a4f97988 100644 --- a/data/uking_functions.csv +++ b/data/uking_functions.csv @@ -1503,7 +1503,7 @@ Address,Quality,Size,Name 0x00000071000541cc,U,000004,ActorObserverBase::m5_null 0x00000071000541d0,U,000008,ActorObserverBase::m6 0x00000071000541d8,O,000372,_ZN5uking6action26CollaboShootingStarAreaTag33checkDerivedRuntimeTypeInfoStaticEPKN4sead15RuntimeTypeInfo9InterfaceE -0x000000710005434c,O,000140,_ZNK4sead15RuntimeTypeInfo6DeriveIN5uking6action13AreaTagActionEE9isDerivedEPKNS0_9InterfaceE +0x000000710005434c,O,000140,_ZNK4sead15RuntimeTypeInfo6DeriveIN5uking6action14AreaActionBaseEE9isDerivedEPKNS0_9InterfaceE 0x00000071000543d8,O,000140,_ZNK4sead15RuntimeTypeInfo6DeriveIN4ksys5world3JobEE9isDerivedEPKNS0_9InterfaceE 0x0000007100054464,O,000052,_ZN5uking6action26CreateDragonChallengeXLinkC1ERKN4ksys3act2ai10ActionBase7InitArgE 0x0000007100054498,O,000020,_ZN5uking6action26CreateDragonChallengeXLinkD1Ev @@ -3269,27 +3269,27 @@ Address,Quality,Size,Name 0x000000710009f810,O,000372,_ZN5uking6action15AreaFireObserve33checkDerivedRuntimeTypeInfoStaticEPKN4sead15RuntimeTypeInfo9InterfaceE 0x000000710009f984,O,000140,_ZNK4sead15RuntimeTypeInfo6DeriveIN5uking6action15FireObserveBaseEE9isDerivedEPKNS0_9InterfaceE 0x000000710009fa10,U,000084,AI_ActionInOutSendMessage::ctor -0x000000710009fa64,W,000200,_ZN5uking6action25ActorAreaInOutSendMessageD1Ev +0x000000710009fa64,W,000200,_ZN5uking6action20AreaInOutSendMessageD1Ev 0x000000710009fb2c,U,000008, -0x000000710009fb34,W,000036,_ZN5uking6action25ActorAreaInOutSendMessageD0Ev +0x000000710009fb34,W,000036,_ZN5uking6action20AreaInOutSendMessageD0Ev 0x000000710009fb58,U,000040,_ZThn48_N3agl2fx12OfxLensFlare6PresetD0Ev -0x000000710009fb80,W,000300,_ZN5uking6action25ActorAreaInOutSendMessage5init_EPN4sead4HeapE -0x000000710009fcac,W,000132,_ZN5uking6action25ActorAreaInOutSendMessage6enter_EPN4ksys3act2ai15InlineParamPackE -0x000000710009fd30,O,000004,_ZN5uking6action25ActorAreaInOutSendMessage5calc_Ev -0x000000710009fd34,W,000148,_ZN5uking6action25ActorAreaInOutSendMessage6leave_Ev -0x000000710009fdc8,W,000064,_ZN5uking6action25ActorAreaInOutSendMessage11loadParams_Ev -0x000000710009fe08,U,000112,uking::action::ActorAreaInOutSendMessage::m35 +0x000000710009fb80,W,000300,_ZN5uking6action20AreaInOutSendMessage5init_EPN4sead4HeapE +0x000000710009fcac,W,000132,_ZN5uking6action20AreaInOutSendMessage6enter_EPN4ksys3act2ai15InlineParamPackE +0x000000710009fd30,O,000004,_ZN5uking6action20AreaInOutSendMessage5calc_Ev +0x000000710009fd34,W,000148,_ZN5uking6action20AreaInOutSendMessage6leave_Ev +0x000000710009fdc8,W,000064,_ZN5uking6action20AreaInOutSendMessage11loadParams_Ev +0x000000710009fe08,U,000112,uking::action::AreaInOutSendMessage::m35 0x000000710009fe78,U,000112, -0x000000710009fee8,U,000200,uking::action::ActorAreaInOutSendMessage::m36 +0x000000710009fee8,U,000200,uking::action::AreaInOutSendMessage::m36 0x000000710009ffb0,U,000204, -0x00000071000a007c,U,000692,uking::action::ActorAreaInOutSendMessage::m37 +0x00000071000a007c,U,000692,uking::action::AreaInOutSendMessage::m37 0x00000071000a0330,U,000008, -0x00000071000a0338,O,000008,_ZNK5uking6action25ActorAreaInOutSendMessage27checkDerivedRuntimeTypeInfoEPKN4sead15RuntimeTypeInfo9InterfaceE -0x00000071000a0340,O,000092,_ZNK5uking6action25ActorAreaInOutSendMessage18getRuntimeTypeInfoEv -0x00000071000a039c,U,000004,uking::action::ActorAreaInOutSendMessage::m32 -0x00000071000a03a0,U,000004,uking::action::ActorAreaInOutSendMessage::m33 -0x00000071000a03a4,U,000008,uking::action::ActorAreaInOutSendMessage::m34 -0x00000071000a03ac,O,000372,_ZN5uking6action25ActorAreaInOutSendMessage33checkDerivedRuntimeTypeInfoStaticEPKN4sead15RuntimeTypeInfo9InterfaceE +0x00000071000a0338,O,000008,_ZNK5uking6action20AreaInOutSendMessage27checkDerivedRuntimeTypeInfoEPKN4sead15RuntimeTypeInfo9InterfaceE +0x00000071000a0340,O,000092,_ZNK5uking6action20AreaInOutSendMessage18getRuntimeTypeInfoEv +0x00000071000a039c,U,000004,uking::action::AreaInOutSendMessage::m32 +0x00000071000a03a0,U,000004,uking::action::AreaInOutSendMessage::m33 +0x00000071000a03a4,U,000008,uking::action::AreaInOutSendMessage::m34 +0x00000071000a03ac,O,000372,_ZN5uking6action20AreaInOutSendMessage33checkDerivedRuntimeTypeInfoStaticEPKN4sead15RuntimeTypeInfo9InterfaceE 0x00000071000a0520,U,000292,AI_Action_AreaLocation::ctor 0x00000071000a0644,W,000104,_ZN5uking6action12AreaLocationD1Ev 0x00000071000a06ac,U,000068, @@ -6045,7 +6045,7 @@ Address,Quality,Size,Name 0x00000071001064b0,O,000092,_ZNK5uking6action25EnemyAreaInOutSendMessage18getRuntimeTypeInfoEv 0x000000710010650c,U,000008,uking::action::EnemyAreaInOutSendMessage::m38 0x0000007100106514,U,000008, -0x000000710010651c,O,000140,_ZNK4sead15RuntimeTypeInfo6DeriveIN5uking6action25ActorAreaInOutSendMessageEE9isDerivedEPKNS0_9InterfaceE +0x000000710010651c,O,000140,_ZNK4sead15RuntimeTypeInfo6DeriveIN5uking6action20AreaInOutSendMessageEE9isDerivedEPKNS0_9InterfaceE 0x00000071001065a8,U,000080,AI_Action_EnemyChangeWeapon::ctor 0x00000071001065f8,O,000020,_ZN5uking6action17EnemyChangeWeaponD1Ev 0x000000710010660c,O,000052,_ZN5uking6action17EnemyChangeWeaponD0Ev @@ -77807,13 +77807,13 @@ Address,Quality,Size,Name 0x0000007100e21ce8,U,000288,Anchor::m2 0x0000007100e21e08,U,000092,Anchor::m3 0x0000007100e21e64,U,000088,AI_ActionAreaTag::ctor -0x0000007100e21ebc,W,000008,_ZN5uking6action13AreaTagAction6enter_EPN4ksys3act2ai15InlineParamPackE -0x0000007100e21ec4,W,000008,_ZN5uking6action13AreaTagAction5calc_Ev -0x0000007100e21ecc,U,000008,_ZN5uking6action13AreaTagAction14handleMessage_ERKN4ksys7MessageE -0x0000007100e21ed4,O,000288,_ZNK5uking6action13AreaTagAction27checkDerivedRuntimeTypeInfoEPKN4sead15RuntimeTypeInfo9InterfaceE -0x0000007100e21ff4,O,000092,_ZNK5uking6action13AreaTagAction18getRuntimeTypeInfoEv -0x0000007100e22050,O,000020,_ZN5uking6action13AreaTagActionD1Ev -0x0000007100e22064,O,000052,_ZN5uking6action13AreaTagActionD0Ev +0x0000007100e21ebc,W,000008,_ZN5uking6action14AreaActionBase6enter_EPN4ksys3act2ai15InlineParamPackE +0x0000007100e21ec4,W,000008,_ZN5uking6action14AreaActionBase5calc_Ev +0x0000007100e21ecc,U,000008,_ZN5uking6action14AreaActionBase14handleMessage_ERKN4ksys7MessageE +0x0000007100e21ed4,O,000288,_ZNK5uking6action14AreaActionBase27checkDerivedRuntimeTypeInfoEPKN4sead15RuntimeTypeInfo9InterfaceE +0x0000007100e21ff4,O,000092,_ZNK5uking6action14AreaActionBase18getRuntimeTypeInfoEv +0x0000007100e22050,O,000020,_ZN5uking6action14AreaActionBaseD1Ev +0x0000007100e22064,O,000052,_ZN5uking6action14AreaActionBaseD0Ev 0x0000007100e22098,U,000024, 0x0000007100e220b0,U,000056, 0x0000007100e220e8,U,000008,ActorObserver::m15 diff --git a/src/Game/Actor/Action/CMakeLists.txt b/src/Game/Actor/Action/CMakeLists.txt index 5ec20b43..e88de418 100644 --- a/src/Game/Actor/Action/CMakeLists.txt +++ b/src/Game/Actor/Action/CMakeLists.txt @@ -5,8 +5,6 @@ target_sources(uking PRIVATE actionActionWithAS.h actionActivateAttackSensor.cpp actionActivateAttackSensor.h - actionActorAreaInOutSendMessage.cpp - actionActorAreaInOutSendMessage.h actionActorInfoToGameDataFloat.cpp actionActorInfoToGameDataFloat.h actionActorInfoToGameDataInt.cpp @@ -149,6 +147,8 @@ target_sources(uking PRIVATE actionAreaBottomTag.h actionAreaFireObserve.cpp actionAreaFireObserve.h + actionAreaInOutSendMessage.cpp + actionAreaInOutSendMessage.h actionAreaLocation.cpp actionAreaLocation.h actionAreaRoot.cpp diff --git a/src/Game/Actor/Action/actionActorAreaInOutSendMessage.cpp b/src/Game/Actor/Action/actionActorAreaInOutSendMessage.cpp deleted file mode 100644 index c10750a0..00000000 --- a/src/Game/Actor/Action/actionActorAreaInOutSendMessage.cpp +++ /dev/null @@ -1,29 +0,0 @@ -#include "Game/Actor/Action/actionActorAreaInOutSendMessage.h" - -namespace uking::action { - -ActorAreaInOutSendMessage::ActorAreaInOutSendMessage(const InitArg& arg) : AreaTagAction(arg) {} - -ActorAreaInOutSendMessage::~ActorAreaInOutSendMessage() = default; - -bool ActorAreaInOutSendMessage::init_(sead::Heap* heap) { - return AreaTagAction::init_(heap); -} - -void ActorAreaInOutSendMessage::enter_(ksys::act::ai::InlineParamPack* params) { - AreaTagAction::enter_(params); -} - -void ActorAreaInOutSendMessage::leave_() { - AreaTagAction::leave_(); -} - -void ActorAreaInOutSendMessage::loadParams_() { - getStaticParam(&mBufferNum_s, "BufferNum"); -} - -void ActorAreaInOutSendMessage::calc_() { - AreaTagAction::calc_(); -} - -} // namespace uking::action diff --git a/src/Game/Actor/Action/actionAreaBottomTag.cpp b/src/Game/Actor/Action/actionAreaBottomTag.cpp index 96ef1e2c..625fefbc 100644 --- a/src/Game/Actor/Action/actionAreaBottomTag.cpp +++ b/src/Game/Actor/Action/actionAreaBottomTag.cpp @@ -2,26 +2,26 @@ namespace uking::action { -AreaBottomTag::AreaBottomTag(const InitArg& arg) : AreaTagAction(arg) {} +AreaBottomTag::AreaBottomTag(const InitArg& arg) : AreaActionBase(arg) {} AreaBottomTag::~AreaBottomTag() = default; bool AreaBottomTag::init_(sead::Heap* heap) { - return AreaTagAction::init_(heap); + return AreaActionBase::init_(heap); } void AreaBottomTag::enter_(ksys::act::ai::InlineParamPack* params) { - AreaTagAction::enter_(params); + AreaActionBase::enter_(params); } void AreaBottomTag::leave_() { - AreaTagAction::leave_(); + AreaActionBase::leave_(); } void AreaBottomTag::loadParams_() {} void AreaBottomTag::calc_() { - AreaTagAction::calc_(); + AreaActionBase::calc_(); } } // namespace uking::action diff --git a/src/Game/Actor/Action/actionAreaBottomTag.h b/src/Game/Actor/Action/actionAreaBottomTag.h index 2cd312e9..cde6ce67 100644 --- a/src/Game/Actor/Action/actionAreaBottomTag.h +++ b/src/Game/Actor/Action/actionAreaBottomTag.h @@ -1,12 +1,12 @@ #pragma once -#include "Game/Actor/Area/Action/actionAreaTagAction.h" +#include "Game/Actor/Area/Action/actionAreaActionBase.h" #include "KingSystem/ActorSystem/actAiAction.h" namespace uking::action { -class AreaBottomTag : public AreaTagAction { - SEAD_RTTI_OVERRIDE(AreaBottomTag, AreaTagAction) +class AreaBottomTag : public AreaActionBase { + SEAD_RTTI_OVERRIDE(AreaBottomTag, AreaActionBase) public: explicit AreaBottomTag(const InitArg& arg); ~AreaBottomTag() override; diff --git a/src/Game/Actor/Action/actionAreaInOutSendMessage.cpp b/src/Game/Actor/Action/actionAreaInOutSendMessage.cpp new file mode 100644 index 00000000..b67b296a --- /dev/null +++ b/src/Game/Actor/Action/actionAreaInOutSendMessage.cpp @@ -0,0 +1,29 @@ +#include "Game/Actor/Action/actionAreaInOutSendMessage.h" + +namespace uking::action { + +AreaInOutSendMessage::AreaInOutSendMessage(const InitArg& arg) : AreaActionBase(arg) {} + +AreaInOutSendMessage::~AreaInOutSendMessage() = default; + +bool AreaInOutSendMessage::init_(sead::Heap* heap) { + return AreaActionBase::init_(heap); +} + +void AreaInOutSendMessage::enter_(ksys::act::ai::InlineParamPack* params) { + AreaActionBase::enter_(params); +} + +void AreaInOutSendMessage::leave_() { + AreaActionBase::leave_(); +} + +void AreaInOutSendMessage::loadParams_() { + getStaticParam(&mBufferNum_s, "BufferNum"); +} + +void AreaInOutSendMessage::calc_() { + AreaActionBase::calc_(); +} + +} // namespace uking::action diff --git a/src/Game/Actor/Action/actionActorAreaInOutSendMessage.h b/src/Game/Actor/Action/actionAreaInOutSendMessage.h similarity index 59% rename from src/Game/Actor/Action/actionActorAreaInOutSendMessage.h rename to src/Game/Actor/Action/actionAreaInOutSendMessage.h index 9c9e555d..42273c53 100644 --- a/src/Game/Actor/Action/actionActorAreaInOutSendMessage.h +++ b/src/Game/Actor/Action/actionAreaInOutSendMessage.h @@ -1,15 +1,15 @@ #pragma once -#include "Game/Actor/Area/Action/actionAreaTagAction.h" +#include "Game/Actor/Area/Action/actionAreaActionBase.h" #include "KingSystem/ActorSystem/actAiAction.h" namespace uking::action { -class ActorAreaInOutSendMessage : public AreaTagAction { - SEAD_RTTI_OVERRIDE(ActorAreaInOutSendMessage, AreaTagAction) +class AreaInOutSendMessage : public AreaActionBase { + SEAD_RTTI_OVERRIDE(AreaInOutSendMessage, AreaActionBase) public: - explicit ActorAreaInOutSendMessage(const InitArg& arg); - ~ActorAreaInOutSendMessage() override; + explicit AreaInOutSendMessage(const InitArg& arg); + ~AreaInOutSendMessage() override; bool init_(sead::Heap* heap) override; void enter_(ksys::act::ai::InlineParamPack* params) override; diff --git a/src/Game/Actor/Action/actionCollaboShootingStarAreaTag.cpp b/src/Game/Actor/Action/actionCollaboShootingStarAreaTag.cpp index a89a1e24..894b5544 100644 --- a/src/Game/Actor/Action/actionCollaboShootingStarAreaTag.cpp +++ b/src/Game/Actor/Action/actionCollaboShootingStarAreaTag.cpp @@ -2,20 +2,20 @@ namespace uking::action { -CollaboShootingStarAreaTag::CollaboShootingStarAreaTag(const InitArg& arg) : AreaTagAction(arg) {} +CollaboShootingStarAreaTag::CollaboShootingStarAreaTag(const InitArg& arg) : AreaActionBase(arg) {} CollaboShootingStarAreaTag::~CollaboShootingStarAreaTag() = default; bool CollaboShootingStarAreaTag::init_(sead::Heap* heap) { - return AreaTagAction::init_(heap); + return AreaActionBase::init_(heap); } void CollaboShootingStarAreaTag::enter_(ksys::act::ai::InlineParamPack* params) { - AreaTagAction::enter_(params); + AreaActionBase::enter_(params); } void CollaboShootingStarAreaTag::leave_() { - AreaTagAction::leave_(); + AreaActionBase::leave_(); } void CollaboShootingStarAreaTag::loadParams_() { @@ -23,7 +23,7 @@ void CollaboShootingStarAreaTag::loadParams_() { } void CollaboShootingStarAreaTag::calc_() { - AreaTagAction::calc_(); + AreaActionBase::calc_(); } } // namespace uking::action diff --git a/src/Game/Actor/Action/actionCollaboShootingStarAreaTag.h b/src/Game/Actor/Action/actionCollaboShootingStarAreaTag.h index f0a788a4..d98461db 100644 --- a/src/Game/Actor/Action/actionCollaboShootingStarAreaTag.h +++ b/src/Game/Actor/Action/actionCollaboShootingStarAreaTag.h @@ -1,12 +1,12 @@ #pragma once -#include "Game/Actor/Area/Action/actionAreaTagAction.h" +#include "Game/Actor/Area/Action/actionAreaActionBase.h" #include "KingSystem/ActorSystem/actAiAction.h" namespace uking::action { -class CollaboShootingStarAreaTag : public AreaTagAction { - SEAD_RTTI_OVERRIDE(CollaboShootingStarAreaTag, AreaTagAction) +class CollaboShootingStarAreaTag : public AreaActionBase { + SEAD_RTTI_OVERRIDE(CollaboShootingStarAreaTag, AreaActionBase) public: explicit CollaboShootingStarAreaTag(const InitArg& arg); ~CollaboShootingStarAreaTag() override; diff --git a/src/Game/Actor/Action/actionControlBombEffect.cpp b/src/Game/Actor/Action/actionControlBombEffect.cpp index 775466f5..81b5d377 100644 --- a/src/Game/Actor/Action/actionControlBombEffect.cpp +++ b/src/Game/Actor/Action/actionControlBombEffect.cpp @@ -2,26 +2,26 @@ namespace uking::action { -ControlBombEffect::ControlBombEffect(const InitArg& arg) : AreaTagAction(arg) {} +ControlBombEffect::ControlBombEffect(const InitArg& arg) : AreaActionBase(arg) {} ControlBombEffect::~ControlBombEffect() = default; bool ControlBombEffect::init_(sead::Heap* heap) { - return AreaTagAction::init_(heap); + return AreaActionBase::init_(heap); } void ControlBombEffect::enter_(ksys::act::ai::InlineParamPack* params) { - AreaTagAction::enter_(params); + AreaActionBase::enter_(params); } void ControlBombEffect::leave_() { - AreaTagAction::leave_(); + AreaActionBase::leave_(); } void ControlBombEffect::loadParams_() {} void ControlBombEffect::calc_() { - AreaTagAction::calc_(); + AreaActionBase::calc_(); } } // namespace uking::action diff --git a/src/Game/Actor/Action/actionControlBombEffect.h b/src/Game/Actor/Action/actionControlBombEffect.h index 7fc575f8..12f7f1f6 100644 --- a/src/Game/Actor/Action/actionControlBombEffect.h +++ b/src/Game/Actor/Action/actionControlBombEffect.h @@ -1,12 +1,12 @@ #pragma once -#include "Game/Actor/Area/Action/actionAreaTagAction.h" +#include "Game/Actor/Area/Action/actionAreaActionBase.h" #include "KingSystem/ActorSystem/actAiAction.h" namespace uking::action { -class ControlBombEffect : public AreaTagAction { - SEAD_RTTI_OVERRIDE(ControlBombEffect, AreaTagAction) +class ControlBombEffect : public AreaActionBase { + SEAD_RTTI_OVERRIDE(ControlBombEffect, AreaActionBase) public: explicit ControlBombEffect(const InitArg& arg); ~ControlBombEffect() override; diff --git a/src/Game/Actor/Action/actionEnemyAreaInOutSendMessage.cpp b/src/Game/Actor/Action/actionEnemyAreaInOutSendMessage.cpp index 9ee4bf08..24fadb14 100644 --- a/src/Game/Actor/Action/actionEnemyAreaInOutSendMessage.cpp +++ b/src/Game/Actor/Action/actionEnemyAreaInOutSendMessage.cpp @@ -3,29 +3,29 @@ namespace uking::action { EnemyAreaInOutSendMessage::EnemyAreaInOutSendMessage(const InitArg& arg) - : ActorAreaInOutSendMessage(arg) {} + : AreaInOutSendMessage(arg) {} EnemyAreaInOutSendMessage::~EnemyAreaInOutSendMessage() = default; bool EnemyAreaInOutSendMessage::init_(sead::Heap* heap) { - return ActorAreaInOutSendMessage::init_(heap); + return AreaInOutSendMessage::init_(heap); } void EnemyAreaInOutSendMessage::enter_(ksys::act::ai::InlineParamPack* params) { - ActorAreaInOutSendMessage::enter_(params); + AreaInOutSendMessage::enter_(params); } void EnemyAreaInOutSendMessage::leave_() { - ActorAreaInOutSendMessage::leave_(); + AreaInOutSendMessage::leave_(); } void EnemyAreaInOutSendMessage::loadParams_() { - ActorAreaInOutSendMessage::loadParams_(); + AreaInOutSendMessage::loadParams_(); getStaticParam(&mMessageID_s, "MessageID"); } void EnemyAreaInOutSendMessage::calc_() { - ActorAreaInOutSendMessage::calc_(); + AreaInOutSendMessage::calc_(); } } // namespace uking::action diff --git a/src/Game/Actor/Action/actionEnemyAreaInOutSendMessage.h b/src/Game/Actor/Action/actionEnemyAreaInOutSendMessage.h index e8217e00..c1011dc1 100644 --- a/src/Game/Actor/Action/actionEnemyAreaInOutSendMessage.h +++ b/src/Game/Actor/Action/actionEnemyAreaInOutSendMessage.h @@ -1,12 +1,12 @@ #pragma once -#include "Game/Actor/Action/actionActorAreaInOutSendMessage.h" +#include "Game/Actor/Action/actionAreaInOutSendMessage.h" #include "KingSystem/ActorSystem/actAiAction.h" namespace uking::action { -class EnemyAreaInOutSendMessage : public ActorAreaInOutSendMessage { - SEAD_RTTI_OVERRIDE(EnemyAreaInOutSendMessage, ActorAreaInOutSendMessage) +class EnemyAreaInOutSendMessage : public AreaInOutSendMessage { + SEAD_RTTI_OVERRIDE(EnemyAreaInOutSendMessage, AreaInOutSendMessage) public: explicit EnemyAreaInOutSendMessage(const InitArg& arg); ~EnemyAreaInOutSendMessage() override; diff --git a/src/Game/Actor/Action/actionForbidComeback.cpp b/src/Game/Actor/Action/actionForbidComeback.cpp index 0fd6f54f..ba4d795f 100644 --- a/src/Game/Actor/Action/actionForbidComeback.cpp +++ b/src/Game/Actor/Action/actionForbidComeback.cpp @@ -2,26 +2,26 @@ namespace uking::action { -ForbidComeback::ForbidComeback(const InitArg& arg) : AreaTagAction(arg) {} +ForbidComeback::ForbidComeback(const InitArg& arg) : AreaActionBase(arg) {} ForbidComeback::~ForbidComeback() = default; bool ForbidComeback::init_(sead::Heap* heap) { - return AreaTagAction::init_(heap); + return AreaActionBase::init_(heap); } void ForbidComeback::enter_(ksys::act::ai::InlineParamPack* params) { - AreaTagAction::enter_(params); + AreaActionBase::enter_(params); } void ForbidComeback::leave_() { - AreaTagAction::leave_(); + AreaActionBase::leave_(); } void ForbidComeback::loadParams_() {} void ForbidComeback::calc_() { - AreaTagAction::calc_(); + AreaActionBase::calc_(); } } // namespace uking::action diff --git a/src/Game/Actor/Action/actionForbidComeback.h b/src/Game/Actor/Action/actionForbidComeback.h index e970ddb1..6b7ce82c 100644 --- a/src/Game/Actor/Action/actionForbidComeback.h +++ b/src/Game/Actor/Action/actionForbidComeback.h @@ -1,12 +1,12 @@ #pragma once -#include "Game/Actor/Area/Action/actionAreaTagAction.h" +#include "Game/Actor/Area/Action/actionAreaActionBase.h" #include "KingSystem/ActorSystem/actAiAction.h" namespace uking::action { -class ForbidComeback : public AreaTagAction { - SEAD_RTTI_OVERRIDE(ForbidComeback, AreaTagAction) +class ForbidComeback : public AreaActionBase { + SEAD_RTTI_OVERRIDE(ForbidComeback, AreaActionBase) public: explicit ForbidComeback(const InitArg& arg); ~ForbidComeback() override; diff --git a/src/Game/Actor/Action/actionPlayerAreaInOutSendMessage.cpp b/src/Game/Actor/Action/actionPlayerAreaInOutSendMessage.cpp index 1285d87a..16e725f0 100644 --- a/src/Game/Actor/Action/actionPlayerAreaInOutSendMessage.cpp +++ b/src/Game/Actor/Action/actionPlayerAreaInOutSendMessage.cpp @@ -3,29 +3,29 @@ namespace uking::action { PlayerAreaInOutSendMessage::PlayerAreaInOutSendMessage(const InitArg& arg) - : ActorAreaInOutSendMessage(arg) {} + : AreaInOutSendMessage(arg) {} PlayerAreaInOutSendMessage::~PlayerAreaInOutSendMessage() = default; bool PlayerAreaInOutSendMessage::init_(sead::Heap* heap) { - return ActorAreaInOutSendMessage::init_(heap); + return AreaInOutSendMessage::init_(heap); } void PlayerAreaInOutSendMessage::enter_(ksys::act::ai::InlineParamPack* params) { - ActorAreaInOutSendMessage::enter_(params); + AreaInOutSendMessage::enter_(params); } void PlayerAreaInOutSendMessage::leave_() { - ActorAreaInOutSendMessage::leave_(); + AreaInOutSendMessage::leave_(); } void PlayerAreaInOutSendMessage::loadParams_() { - ActorAreaInOutSendMessage::loadParams_(); + AreaInOutSendMessage::loadParams_(); getStaticParam(&mMessageSet_s, "MessageSet"); } void PlayerAreaInOutSendMessage::calc_() { - ActorAreaInOutSendMessage::calc_(); + AreaInOutSendMessage::calc_(); } } // namespace uking::action diff --git a/src/Game/Actor/Action/actionPlayerAreaInOutSendMessage.h b/src/Game/Actor/Action/actionPlayerAreaInOutSendMessage.h index bf3e0a9b..e00b10c1 100644 --- a/src/Game/Actor/Action/actionPlayerAreaInOutSendMessage.h +++ b/src/Game/Actor/Action/actionPlayerAreaInOutSendMessage.h @@ -1,12 +1,12 @@ #pragma once -#include "Game/Actor/Action/actionActorAreaInOutSendMessage.h" +#include "Game/Actor/Action/actionAreaInOutSendMessage.h" #include "KingSystem/ActorSystem/actAiAction.h" namespace uking::action { -class PlayerAreaInOutSendMessage : public ActorAreaInOutSendMessage { - SEAD_RTTI_OVERRIDE(PlayerAreaInOutSendMessage, ActorAreaInOutSendMessage) +class PlayerAreaInOutSendMessage : public AreaInOutSendMessage { + SEAD_RTTI_OVERRIDE(PlayerAreaInOutSendMessage, AreaInOutSendMessage) public: explicit PlayerAreaInOutSendMessage(const InitArg& arg); ~PlayerAreaInOutSendMessage() override; diff --git a/src/Game/Actor/Action/actionSandwichDetectionAreaTag.cpp b/src/Game/Actor/Action/actionSandwichDetectionAreaTag.cpp index 9e5874a6..3223fbe3 100644 --- a/src/Game/Actor/Action/actionSandwichDetectionAreaTag.cpp +++ b/src/Game/Actor/Action/actionSandwichDetectionAreaTag.cpp @@ -2,26 +2,26 @@ namespace uking::action { -SandwichDetectionAreaTag::SandwichDetectionAreaTag(const InitArg& arg) : AreaTagAction(arg) {} +SandwichDetectionAreaTag::SandwichDetectionAreaTag(const InitArg& arg) : AreaActionBase(arg) {} SandwichDetectionAreaTag::~SandwichDetectionAreaTag() = default; bool SandwichDetectionAreaTag::init_(sead::Heap* heap) { - return AreaTagAction::init_(heap); + return AreaActionBase::init_(heap); } void SandwichDetectionAreaTag::enter_(ksys::act::ai::InlineParamPack* params) { - AreaTagAction::enter_(params); + AreaActionBase::enter_(params); } void SandwichDetectionAreaTag::leave_() { - AreaTagAction::leave_(); + AreaActionBase::leave_(); } void SandwichDetectionAreaTag::loadParams_() {} void SandwichDetectionAreaTag::calc_() { - AreaTagAction::calc_(); + AreaActionBase::calc_(); } } // namespace uking::action diff --git a/src/Game/Actor/Action/actionSandwichDetectionAreaTag.h b/src/Game/Actor/Action/actionSandwichDetectionAreaTag.h index 0137a815..b45e799b 100644 --- a/src/Game/Actor/Action/actionSandwichDetectionAreaTag.h +++ b/src/Game/Actor/Action/actionSandwichDetectionAreaTag.h @@ -1,12 +1,12 @@ #pragma once -#include "Game/Actor/Area/Action/actionAreaTagAction.h" +#include "Game/Actor/Area/Action/actionAreaActionBase.h" #include "KingSystem/ActorSystem/actAiAction.h" namespace uking::action { -class SandwichDetectionAreaTag : public AreaTagAction { - SEAD_RTTI_OVERRIDE(SandwichDetectionAreaTag, AreaTagAction) +class SandwichDetectionAreaTag : public AreaActionBase { + SEAD_RTTI_OVERRIDE(SandwichDetectionAreaTag, AreaActionBase) public: explicit SandwichDetectionAreaTag(const InitArg& arg); ~SandwichDetectionAreaTag() override; diff --git a/src/Game/Actor/Action/actionSandwichDetectionAreaTagSimple.cpp b/src/Game/Actor/Action/actionSandwichDetectionAreaTagSimple.cpp index bab1e4aa..d7456e50 100644 --- a/src/Game/Actor/Action/actionSandwichDetectionAreaTagSimple.cpp +++ b/src/Game/Actor/Action/actionSandwichDetectionAreaTagSimple.cpp @@ -3,26 +3,26 @@ namespace uking::action { SandwichDetectionAreaTagSimple::SandwichDetectionAreaTagSimple(const InitArg& arg) - : AreaTagAction(arg) {} + : AreaActionBase(arg) {} SandwichDetectionAreaTagSimple::~SandwichDetectionAreaTagSimple() = default; bool SandwichDetectionAreaTagSimple::init_(sead::Heap* heap) { - return AreaTagAction::init_(heap); + return AreaActionBase::init_(heap); } void SandwichDetectionAreaTagSimple::enter_(ksys::act::ai::InlineParamPack* params) { - AreaTagAction::enter_(params); + AreaActionBase::enter_(params); } void SandwichDetectionAreaTagSimple::leave_() { - AreaTagAction::leave_(); + AreaActionBase::leave_(); } void SandwichDetectionAreaTagSimple::loadParams_() {} void SandwichDetectionAreaTagSimple::calc_() { - AreaTagAction::calc_(); + AreaActionBase::calc_(); } } // namespace uking::action diff --git a/src/Game/Actor/Action/actionSandwichDetectionAreaTagSimple.h b/src/Game/Actor/Action/actionSandwichDetectionAreaTagSimple.h index 0528d2ca..fc95de29 100644 --- a/src/Game/Actor/Action/actionSandwichDetectionAreaTagSimple.h +++ b/src/Game/Actor/Action/actionSandwichDetectionAreaTagSimple.h @@ -1,12 +1,12 @@ #pragma once -#include "Game/Actor/Area/Action/actionAreaTagAction.h" +#include "Game/Actor/Area/Action/actionAreaActionBase.h" #include "KingSystem/ActorSystem/actAiAction.h" namespace uking::action { -class SandwichDetectionAreaTagSimple : public AreaTagAction { - SEAD_RTTI_OVERRIDE(SandwichDetectionAreaTagSimple, AreaTagAction) +class SandwichDetectionAreaTagSimple : public AreaActionBase { + SEAD_RTTI_OVERRIDE(SandwichDetectionAreaTagSimple, AreaActionBase) public: explicit SandwichDetectionAreaTagSimple(const InitArg& arg); ~SandwichDetectionAreaTagSimple() override; diff --git a/src/Game/Actor/Action/actionSetComebackPosition.cpp b/src/Game/Actor/Action/actionSetComebackPosition.cpp index 4f2b3666..8cdf87ab 100644 --- a/src/Game/Actor/Action/actionSetComebackPosition.cpp +++ b/src/Game/Actor/Action/actionSetComebackPosition.cpp @@ -2,20 +2,20 @@ namespace uking::action { -SetComebackPosition::SetComebackPosition(const InitArg& arg) : AreaTagAction(arg) {} +SetComebackPosition::SetComebackPosition(const InitArg& arg) : AreaActionBase(arg) {} SetComebackPosition::~SetComebackPosition() = default; bool SetComebackPosition::init_(sead::Heap* heap) { - return AreaTagAction::init_(heap); + return AreaActionBase::init_(heap); } void SetComebackPosition::enter_(ksys::act::ai::InlineParamPack* params) { - AreaTagAction::enter_(params); + AreaActionBase::enter_(params); } void SetComebackPosition::leave_() { - AreaTagAction::leave_(); + AreaActionBase::leave_(); } void SetComebackPosition::loadParams_() { @@ -23,7 +23,7 @@ void SetComebackPosition::loadParams_() { } void SetComebackPosition::calc_() { - AreaTagAction::calc_(); + AreaActionBase::calc_(); } } // namespace uking::action diff --git a/src/Game/Actor/Action/actionSetComebackPosition.h b/src/Game/Actor/Action/actionSetComebackPosition.h index 18d46a35..974862a8 100644 --- a/src/Game/Actor/Action/actionSetComebackPosition.h +++ b/src/Game/Actor/Action/actionSetComebackPosition.h @@ -1,12 +1,12 @@ #pragma once -#include "Game/Actor/Area/Action/actionAreaTagAction.h" +#include "Game/Actor/Area/Action/actionAreaActionBase.h" #include "KingSystem/ActorSystem/actAiAction.h" namespace uking::action { -class SetComebackPosition : public AreaTagAction { - SEAD_RTTI_OVERRIDE(SetComebackPosition, AreaTagAction) +class SetComebackPosition : public AreaActionBase { + SEAD_RTTI_OVERRIDE(SetComebackPosition, AreaActionBase) public: explicit SetComebackPosition(const InitArg& arg); ~SetComebackPosition() override; diff --git a/src/Game/Actor/Action/actionShelterFromRain.cpp b/src/Game/Actor/Action/actionShelterFromRain.cpp index 01670c32..94450433 100644 --- a/src/Game/Actor/Action/actionShelterFromRain.cpp +++ b/src/Game/Actor/Action/actionShelterFromRain.cpp @@ -2,20 +2,20 @@ namespace uking::action { -ShelterFromRain::ShelterFromRain(const InitArg& arg) : AreaTagAction(arg) {} +ShelterFromRain::ShelterFromRain(const InitArg& arg) : AreaActionBase(arg) {} ShelterFromRain::~ShelterFromRain() = default; bool ShelterFromRain::init_(sead::Heap* heap) { - return AreaTagAction::init_(heap); + return AreaActionBase::init_(heap); } void ShelterFromRain::enter_(ksys::act::ai::InlineParamPack* params) { - AreaTagAction::enter_(params); + AreaActionBase::enter_(params); } void ShelterFromRain::leave_() { - AreaTagAction::leave_(); + AreaActionBase::leave_(); } void ShelterFromRain::loadParams_() { @@ -23,7 +23,7 @@ void ShelterFromRain::loadParams_() { } void ShelterFromRain::calc_() { - AreaTagAction::calc_(); + AreaActionBase::calc_(); } } // namespace uking::action diff --git a/src/Game/Actor/Action/actionShelterFromRain.h b/src/Game/Actor/Action/actionShelterFromRain.h index b8712bd3..f227dd8a 100644 --- a/src/Game/Actor/Action/actionShelterFromRain.h +++ b/src/Game/Actor/Action/actionShelterFromRain.h @@ -1,12 +1,12 @@ #pragma once -#include "Game/Actor/Area/Action/actionAreaTagAction.h" +#include "Game/Actor/Area/Action/actionAreaActionBase.h" #include "KingSystem/ActorSystem/actAiAction.h" namespace uking::action { -class ShelterFromRain : public AreaTagAction { - SEAD_RTTI_OVERRIDE(ShelterFromRain, AreaTagAction) +class ShelterFromRain : public AreaActionBase { + SEAD_RTTI_OVERRIDE(ShelterFromRain, AreaActionBase) public: explicit ShelterFromRain(const InitArg& arg); ~ShelterFromRain() override; diff --git a/src/Game/Actor/Area/Action/CMakeLists.txt b/src/Game/Actor/Area/Action/CMakeLists.txt index 8fed1308..ea8831b3 100644 --- a/src/Game/Actor/Area/Action/CMakeLists.txt +++ b/src/Game/Actor/Area/Action/CMakeLists.txt @@ -1,4 +1,6 @@ target_sources(uking PRIVATE + actionAreaActionBase.cpp + actionAreaActionBase.h actionAreaActorObserve.cpp actionAreaActorObserve.h actionAreaHorseSpeedLimitAction.cpp @@ -9,8 +11,6 @@ target_sources(uking PRIVATE actionAreaOutRecreateActorAction.h actionAreaRecreateActorAction.cpp actionAreaRecreateActorAction.h - actionAreaTagAction.cpp - actionAreaTagAction.h actionFireObserveBase.cpp actionFireObserveBase.h actionOwnedHorseObserveAction.cpp diff --git a/src/Game/Actor/Area/Action/actionAreaActionBase.cpp b/src/Game/Actor/Area/Action/actionAreaActionBase.cpp new file mode 100644 index 00000000..7bf0d482 --- /dev/null +++ b/src/Game/Actor/Area/Action/actionAreaActionBase.cpp @@ -0,0 +1,17 @@ +#include "Game/Actor/Area/Action/actionAreaActionBase.h" + +namespace uking::action { + +AreaActionBase::AreaActionBase(const InitArg& arg) : ksys::act::ai::Action(arg) {} + +AreaActionBase::~AreaActionBase() = default; + +void AreaActionBase::enter_(ksys::act::ai::InlineParamPack* params) { + ksys::act::ai::Action::enter_(params); +} + +void AreaActionBase::calc_() { + ksys::act::ai::Action::calc_(); +} + +} // namespace uking::action diff --git a/src/Game/Actor/Area/Action/actionAreaTagAction.h b/src/Game/Actor/Area/Action/actionAreaActionBase.h similarity index 54% rename from src/Game/Actor/Area/Action/actionAreaTagAction.h rename to src/Game/Actor/Area/Action/actionAreaActionBase.h index 0fcaf4a6..b6e3e8e0 100644 --- a/src/Game/Actor/Area/Action/actionAreaTagAction.h +++ b/src/Game/Actor/Area/Action/actionAreaActionBase.h @@ -4,11 +4,11 @@ namespace uking::action { -class AreaTagAction : public ksys::act::ai::Action { - SEAD_RTTI_OVERRIDE(AreaTagAction, ksys::act::ai::Action) +class AreaActionBase : public ksys::act::ai::Action { + SEAD_RTTI_OVERRIDE(AreaActionBase, ksys::act::ai::Action) public: - explicit AreaTagAction(const InitArg& arg); - ~AreaTagAction() override; + explicit AreaActionBase(const InitArg& arg); + ~AreaActionBase() override; void enter_(ksys::act::ai::InlineParamPack* params) override; diff --git a/src/Game/Actor/Area/Action/actionAreaActorObserve.cpp b/src/Game/Actor/Area/Action/actionAreaActorObserve.cpp index 63c21921..25153867 100644 --- a/src/Game/Actor/Area/Action/actionAreaActorObserve.cpp +++ b/src/Game/Actor/Area/Action/actionAreaActorObserve.cpp @@ -2,12 +2,12 @@ namespace uking::action { -AreaActorObserve::AreaActorObserve(const InitArg& arg) : AreaTagAction(arg) {} +AreaActorObserve::AreaActorObserve(const InitArg& arg) : AreaActionBase(arg) {} AreaActorObserve::~AreaActorObserve() = default; bool AreaActorObserve::init_(sead::Heap* heap) { - return AreaTagAction::init_(heap); + return AreaActionBase::init_(heap); } void AreaActorObserve::loadParams_() { diff --git a/src/Game/Actor/Area/Action/actionAreaActorObserve.h b/src/Game/Actor/Area/Action/actionAreaActorObserve.h index 0b97d144..78dcaefd 100644 --- a/src/Game/Actor/Area/Action/actionAreaActorObserve.h +++ b/src/Game/Actor/Area/Action/actionAreaActorObserve.h @@ -1,12 +1,12 @@ #pragma once -#include "Game/Actor/Area/Action/actionAreaTagAction.h" +#include "Game/Actor/Area/Action/actionAreaActionBase.h" #include "KingSystem/ActorSystem/actAiAction.h" namespace uking::action { -class AreaActorObserve : public AreaTagAction { - SEAD_RTTI_OVERRIDE(AreaActorObserve, AreaTagAction) +class AreaActorObserve : public AreaActionBase { + SEAD_RTTI_OVERRIDE(AreaActorObserve, AreaActionBase) public: explicit AreaActorObserve(const InitArg& arg); ~AreaActorObserve() override; diff --git a/src/Game/Actor/Area/Action/actionAreaHorseSpeedLimitAction.cpp b/src/Game/Actor/Area/Action/actionAreaHorseSpeedLimitAction.cpp index c9a415ea..d950bbd3 100644 --- a/src/Game/Actor/Area/Action/actionAreaHorseSpeedLimitAction.cpp +++ b/src/Game/Actor/Area/Action/actionAreaHorseSpeedLimitAction.cpp @@ -2,12 +2,12 @@ namespace uking::action { -AreaHorseSpeedLimitAction::AreaHorseSpeedLimitAction(const InitArg& arg) : AreaTagAction(arg) {} +AreaHorseSpeedLimitAction::AreaHorseSpeedLimitAction(const InitArg& arg) : AreaActionBase(arg) {} AreaHorseSpeedLimitAction::~AreaHorseSpeedLimitAction() = default; bool AreaHorseSpeedLimitAction::init_(sead::Heap* heap) { - return AreaTagAction::init_(heap); + return AreaActionBase::init_(heap); } } // namespace uking::action diff --git a/src/Game/Actor/Area/Action/actionAreaHorseSpeedLimitAction.h b/src/Game/Actor/Area/Action/actionAreaHorseSpeedLimitAction.h index ebe9224e..6d29543b 100644 --- a/src/Game/Actor/Area/Action/actionAreaHorseSpeedLimitAction.h +++ b/src/Game/Actor/Area/Action/actionAreaHorseSpeedLimitAction.h @@ -1,12 +1,12 @@ #pragma once -#include "Game/Actor/Area/Action/actionAreaTagAction.h" +#include "Game/Actor/Area/Action/actionAreaActionBase.h" #include "KingSystem/ActorSystem/actAiAction.h" namespace uking::action { -class AreaHorseSpeedLimitAction : public AreaTagAction { - SEAD_RTTI_OVERRIDE(AreaHorseSpeedLimitAction, AreaTagAction) +class AreaHorseSpeedLimitAction : public AreaActionBase { + SEAD_RTTI_OVERRIDE(AreaHorseSpeedLimitAction, AreaActionBase) public: explicit AreaHorseSpeedLimitAction(const InitArg& arg); ~AreaHorseSpeedLimitAction() override; diff --git a/src/Game/Actor/Area/Action/actionAreaOutRecreateActorAction.cpp b/src/Game/Actor/Area/Action/actionAreaOutRecreateActorAction.cpp index 9383d06d..d8945d90 100644 --- a/src/Game/Actor/Area/Action/actionAreaOutRecreateActorAction.cpp +++ b/src/Game/Actor/Area/Action/actionAreaOutRecreateActorAction.cpp @@ -2,12 +2,12 @@ namespace uking::action { -AreaOutRecreateActorAction::AreaOutRecreateActorAction(const InitArg& arg) : AreaTagAction(arg) {} +AreaOutRecreateActorAction::AreaOutRecreateActorAction(const InitArg& arg) : AreaActionBase(arg) {} AreaOutRecreateActorAction::~AreaOutRecreateActorAction() = default; bool AreaOutRecreateActorAction::init_(sead::Heap* heap) { - return AreaTagAction::init_(heap); + return AreaActionBase::init_(heap); } } // namespace uking::action diff --git a/src/Game/Actor/Area/Action/actionAreaOutRecreateActorAction.h b/src/Game/Actor/Area/Action/actionAreaOutRecreateActorAction.h index cb48f96b..b4e7df8e 100644 --- a/src/Game/Actor/Area/Action/actionAreaOutRecreateActorAction.h +++ b/src/Game/Actor/Area/Action/actionAreaOutRecreateActorAction.h @@ -1,12 +1,12 @@ #pragma once -#include "Game/Actor/Area/Action/actionAreaTagAction.h" +#include "Game/Actor/Area/Action/actionAreaActionBase.h" #include "KingSystem/ActorSystem/actAiAction.h" namespace uking::action { -class AreaOutRecreateActorAction : public AreaTagAction { - SEAD_RTTI_OVERRIDE(AreaOutRecreateActorAction, AreaTagAction) +class AreaOutRecreateActorAction : public AreaActionBase { + SEAD_RTTI_OVERRIDE(AreaOutRecreateActorAction, AreaActionBase) public: explicit AreaOutRecreateActorAction(const InitArg& arg); ~AreaOutRecreateActorAction() override; diff --git a/src/Game/Actor/Area/Action/actionAreaRecreateActorAction.cpp b/src/Game/Actor/Area/Action/actionAreaRecreateActorAction.cpp index 7c4d0cf2..0561d881 100644 --- a/src/Game/Actor/Area/Action/actionAreaRecreateActorAction.cpp +++ b/src/Game/Actor/Area/Action/actionAreaRecreateActorAction.cpp @@ -2,12 +2,12 @@ namespace uking::action { -AreaRecreateActorAction::AreaRecreateActorAction(const InitArg& arg) : AreaTagAction(arg) {} +AreaRecreateActorAction::AreaRecreateActorAction(const InitArg& arg) : AreaActionBase(arg) {} AreaRecreateActorAction::~AreaRecreateActorAction() = default; bool AreaRecreateActorAction::init_(sead::Heap* heap) { - return AreaTagAction::init_(heap); + return AreaActionBase::init_(heap); } } // namespace uking::action diff --git a/src/Game/Actor/Area/Action/actionAreaRecreateActorAction.h b/src/Game/Actor/Area/Action/actionAreaRecreateActorAction.h index 15b5eb93..51109382 100644 --- a/src/Game/Actor/Area/Action/actionAreaRecreateActorAction.h +++ b/src/Game/Actor/Area/Action/actionAreaRecreateActorAction.h @@ -1,12 +1,12 @@ #pragma once -#include "Game/Actor/Area/Action/actionAreaTagAction.h" +#include "Game/Actor/Area/Action/actionAreaActionBase.h" #include "KingSystem/ActorSystem/actAiAction.h" namespace uking::action { -class AreaRecreateActorAction : public AreaTagAction { - SEAD_RTTI_OVERRIDE(AreaRecreateActorAction, AreaTagAction) +class AreaRecreateActorAction : public AreaActionBase { + SEAD_RTTI_OVERRIDE(AreaRecreateActorAction, AreaActionBase) public: explicit AreaRecreateActorAction(const InitArg& arg); ~AreaRecreateActorAction() override; diff --git a/src/Game/Actor/Area/Action/actionAreaTagAction.cpp b/src/Game/Actor/Area/Action/actionAreaTagAction.cpp deleted file mode 100644 index 2efe1f7a..00000000 --- a/src/Game/Actor/Area/Action/actionAreaTagAction.cpp +++ /dev/null @@ -1,17 +0,0 @@ -#include "Game/Actor/Area/Action/actionAreaTagAction.h" - -namespace uking::action { - -AreaTagAction::AreaTagAction(const InitArg& arg) : ksys::act::ai::Action(arg) {} - -AreaTagAction::~AreaTagAction() = default; - -void AreaTagAction::enter_(ksys::act::ai::InlineParamPack* params) { - ksys::act::ai::Action::enter_(params); -} - -void AreaTagAction::calc_() { - ksys::act::ai::Action::calc_(); -} - -} // namespace uking::action diff --git a/src/Game/Actor/Area/Action/actionOwnedHorseObserveAction.cpp b/src/Game/Actor/Area/Action/actionOwnedHorseObserveAction.cpp index 70329ff1..0511bd60 100644 --- a/src/Game/Actor/Area/Action/actionOwnedHorseObserveAction.cpp +++ b/src/Game/Actor/Area/Action/actionOwnedHorseObserveAction.cpp @@ -2,16 +2,16 @@ namespace uking::action { -OwnedHorseObserveAction::OwnedHorseObserveAction(const InitArg& arg) : AreaTagAction(arg) {} +OwnedHorseObserveAction::OwnedHorseObserveAction(const InitArg& arg) : AreaActionBase(arg) {} OwnedHorseObserveAction::~OwnedHorseObserveAction() = default; bool OwnedHorseObserveAction::init_(sead::Heap* heap) { - return AreaTagAction::init_(heap); + return AreaActionBase::init_(heap); } void OwnedHorseObserveAction::enter_(ksys::act::ai::InlineParamPack* params) { - AreaTagAction::enter_(params); + AreaActionBase::enter_(params); } void OwnedHorseObserveAction::loadParams_() { @@ -19,7 +19,7 @@ void OwnedHorseObserveAction::loadParams_() { } void OwnedHorseObserveAction::calc_() { - AreaTagAction::calc_(); + AreaActionBase::calc_(); } } // namespace uking::action diff --git a/src/Game/Actor/Area/Action/actionOwnedHorseObserveAction.h b/src/Game/Actor/Area/Action/actionOwnedHorseObserveAction.h index 0b24d16a..883ac200 100644 --- a/src/Game/Actor/Area/Action/actionOwnedHorseObserveAction.h +++ b/src/Game/Actor/Area/Action/actionOwnedHorseObserveAction.h @@ -1,12 +1,12 @@ #pragma once -#include "Game/Actor/Area/Action/actionAreaTagAction.h" +#include "Game/Actor/Area/Action/actionAreaActionBase.h" #include "KingSystem/ActorSystem/actAiAction.h" namespace uking::action { -class OwnedHorseObserveAction : public AreaTagAction { - SEAD_RTTI_OVERRIDE(OwnedHorseObserveAction, AreaTagAction) +class OwnedHorseObserveAction : public AreaActionBase { + SEAD_RTTI_OVERRIDE(OwnedHorseObserveAction, AreaActionBase) public: explicit OwnedHorseObserveAction(const InitArg& arg); ~OwnedHorseObserveAction() override; diff --git a/src/KingSystem/Sound/Actor/Action/actionSoundOcclusionTagAction.cpp b/src/KingSystem/Sound/Actor/Action/actionSoundOcclusionTagAction.cpp index d1c7d5e8..8c784b41 100644 --- a/src/KingSystem/Sound/Actor/Action/actionSoundOcclusionTagAction.cpp +++ b/src/KingSystem/Sound/Actor/Action/actionSoundOcclusionTagAction.cpp @@ -2,20 +2,20 @@ namespace ksys::snd { -SoundOcclusionTagAction::SoundOcclusionTagAction(const InitArg& arg) : AreaTagAction(arg) {} +SoundOcclusionTagAction::SoundOcclusionTagAction(const InitArg& arg) : AreaActionBase(arg) {} SoundOcclusionTagAction::~SoundOcclusionTagAction() = default; bool SoundOcclusionTagAction::init_(sead::Heap* heap) { - return AreaTagAction::init_(heap); + return AreaActionBase::init_(heap); } void SoundOcclusionTagAction::enter_(ksys::act::ai::InlineParamPack* params) { - AreaTagAction::enter_(params); + AreaActionBase::enter_(params); } void SoundOcclusionTagAction::leave_() { - AreaTagAction::leave_(); + AreaActionBase::leave_(); } void SoundOcclusionTagAction::loadParams_() { @@ -23,7 +23,7 @@ void SoundOcclusionTagAction::loadParams_() { } void SoundOcclusionTagAction::calc_() { - AreaTagAction::calc_(); + AreaActionBase::calc_(); } } // namespace ksys::snd diff --git a/src/KingSystem/Sound/Actor/Action/actionSoundOcclusionTagAction.h b/src/KingSystem/Sound/Actor/Action/actionSoundOcclusionTagAction.h index e277e87c..7edb4103 100644 --- a/src/KingSystem/Sound/Actor/Action/actionSoundOcclusionTagAction.h +++ b/src/KingSystem/Sound/Actor/Action/actionSoundOcclusionTagAction.h @@ -1,12 +1,12 @@ #pragma once -#include "Game/Actor/Area/Action/actionAreaTagAction.h" +#include "Game/Actor/Area/Action/actionAreaActionBase.h" #include "KingSystem/ActorSystem/actAiAction.h" namespace ksys::snd { -class SoundOcclusionTagAction : public uking::action::AreaTagAction { - SEAD_RTTI_OVERRIDE(SoundOcclusionTagAction, uking::action::AreaTagAction) +class SoundOcclusionTagAction : public uking::action::AreaActionBase { + SEAD_RTTI_OVERRIDE(SoundOcclusionTagAction, uking::action::AreaActionBase) public: explicit SoundOcclusionTagAction(const InitArg& arg); ~SoundOcclusionTagAction() override; diff --git a/src/KingSystem/Sound/Actor/Action/actionSoundReverbAreaTagAction.cpp b/src/KingSystem/Sound/Actor/Action/actionSoundReverbAreaTagAction.cpp index cac7dde0..92d4571f 100644 --- a/src/KingSystem/Sound/Actor/Action/actionSoundReverbAreaTagAction.cpp +++ b/src/KingSystem/Sound/Actor/Action/actionSoundReverbAreaTagAction.cpp @@ -2,20 +2,20 @@ namespace ksys::snd { -SoundReverbAreaTagAction::SoundReverbAreaTagAction(const InitArg& arg) : AreaTagAction(arg) {} +SoundReverbAreaTagAction::SoundReverbAreaTagAction(const InitArg& arg) : AreaActionBase(arg) {} SoundReverbAreaTagAction::~SoundReverbAreaTagAction() = default; bool SoundReverbAreaTagAction::init_(sead::Heap* heap) { - return AreaTagAction::init_(heap); + return AreaActionBase::init_(heap); } void SoundReverbAreaTagAction::enter_(ksys::act::ai::InlineParamPack* params) { - AreaTagAction::enter_(params); + AreaActionBase::enter_(params); } void SoundReverbAreaTagAction::leave_() { - AreaTagAction::leave_(); + AreaActionBase::leave_(); } void SoundReverbAreaTagAction::loadParams_() { @@ -28,7 +28,7 @@ void SoundReverbAreaTagAction::loadParams_() { } void SoundReverbAreaTagAction::calc_() { - AreaTagAction::calc_(); + AreaActionBase::calc_(); } } // namespace ksys::snd diff --git a/src/KingSystem/Sound/Actor/Action/actionSoundReverbAreaTagAction.h b/src/KingSystem/Sound/Actor/Action/actionSoundReverbAreaTagAction.h index a6d53e8e..2d43cf61 100644 --- a/src/KingSystem/Sound/Actor/Action/actionSoundReverbAreaTagAction.h +++ b/src/KingSystem/Sound/Actor/Action/actionSoundReverbAreaTagAction.h @@ -1,12 +1,12 @@ #pragma once -#include "Game/Actor/Area/Action/actionAreaTagAction.h" +#include "Game/Actor/Area/Action/actionAreaActionBase.h" #include "KingSystem/ActorSystem/actAiAction.h" namespace ksys::snd { -class SoundReverbAreaTagAction : public uking::action::AreaTagAction { - SEAD_RTTI_OVERRIDE(SoundReverbAreaTagAction, uking::action::AreaTagAction) +class SoundReverbAreaTagAction : public uking::action::AreaActionBase { + SEAD_RTTI_OVERRIDE(SoundReverbAreaTagAction, uking::action::AreaActionBase) public: explicit SoundReverbAreaTagAction(const InitArg& arg); ~SoundReverbAreaTagAction() override; diff --git a/src/KingSystem/Sound/Actor/Action/actionSoundShieldingAreaTagAction.cpp b/src/KingSystem/Sound/Actor/Action/actionSoundShieldingAreaTagAction.cpp index 0025a32a..5b54a9cd 100644 --- a/src/KingSystem/Sound/Actor/Action/actionSoundShieldingAreaTagAction.cpp +++ b/src/KingSystem/Sound/Actor/Action/actionSoundShieldingAreaTagAction.cpp @@ -2,20 +2,21 @@ namespace ksys::snd { -SoundShieldingAreaTagAction::SoundShieldingAreaTagAction(const InitArg& arg) : AreaTagAction(arg) {} +SoundShieldingAreaTagAction::SoundShieldingAreaTagAction(const InitArg& arg) + : AreaActionBase(arg) {} SoundShieldingAreaTagAction::~SoundShieldingAreaTagAction() = default; bool SoundShieldingAreaTagAction::init_(sead::Heap* heap) { - return AreaTagAction::init_(heap); + return AreaActionBase::init_(heap); } void SoundShieldingAreaTagAction::enter_(ksys::act::ai::InlineParamPack* params) { - AreaTagAction::enter_(params); + AreaActionBase::enter_(params); } void SoundShieldingAreaTagAction::leave_() { - AreaTagAction::leave_(); + AreaActionBase::leave_(); } void SoundShieldingAreaTagAction::loadParams_() { @@ -24,7 +25,7 @@ void SoundShieldingAreaTagAction::loadParams_() { } void SoundShieldingAreaTagAction::calc_() { - AreaTagAction::calc_(); + AreaActionBase::calc_(); } } // namespace ksys::snd diff --git a/src/KingSystem/Sound/Actor/Action/actionSoundShieldingAreaTagAction.h b/src/KingSystem/Sound/Actor/Action/actionSoundShieldingAreaTagAction.h index e0672e92..c7d7d763 100644 --- a/src/KingSystem/Sound/Actor/Action/actionSoundShieldingAreaTagAction.h +++ b/src/KingSystem/Sound/Actor/Action/actionSoundShieldingAreaTagAction.h @@ -1,12 +1,12 @@ #pragma once -#include "Game/Actor/Area/Action/actionAreaTagAction.h" +#include "Game/Actor/Area/Action/actionAreaActionBase.h" #include "KingSystem/ActorSystem/actAiAction.h" namespace ksys::snd { -class SoundShieldingAreaTagAction : public uking::action::AreaTagAction { - SEAD_RTTI_OVERRIDE(SoundShieldingAreaTagAction, uking::action::AreaTagAction) +class SoundShieldingAreaTagAction : public uking::action::AreaActionBase { + SEAD_RTTI_OVERRIDE(SoundShieldingAreaTagAction, uking::action::AreaActionBase) public: explicit SoundShieldingAreaTagAction(const InitArg& arg); ~SoundShieldingAreaTagAction() override; diff --git a/src/KingSystem/Sound/CMakeLists.txt b/src/KingSystem/Sound/CMakeLists.txt index 0e022d50..6634c66d 100644 --- a/src/KingSystem/Sound/CMakeLists.txt +++ b/src/KingSystem/Sound/CMakeLists.txt @@ -7,8 +7,6 @@ target_sources(uking PRIVATE sndMusicDefinition.h sndMusicInfo.cpp sndMusicInfo.h - sndResource.cpp - sndResource.h - sndMgr.cpp - sndMgr.h + sndSound.cpp + sndSound.h ) diff --git a/src/KingSystem/Sound/sndMgr.cpp b/src/KingSystem/Sound/sndMgr.cpp deleted file mode 100644 index 18af6b65..00000000 --- a/src/KingSystem/Sound/sndMgr.cpp +++ /dev/null @@ -1 +0,0 @@ -#include "KingSystem/Sound/sndMgr.h" \ No newline at end of file diff --git a/src/KingSystem/Sound/sndMgr.h b/src/KingSystem/Sound/sndMgr.h deleted file mode 100644 index 36202a7f..00000000 --- a/src/KingSystem/Sound/sndMgr.h +++ /dev/null @@ -1,26 +0,0 @@ -#pragma once - -#include -#include - -namespace ksys::snd { - -enum class AudioChannelType { - Mono = 1, - Stereo = 2, - _5_1ch = 6, - Other = -1 // TODO: does Other have a definite value? -}; - -// FIXME: incomplete -struct SoundMgr { - SEAD_SINGLETON_DISPOSER(SoundMgr) - - virtual ~SoundMgr(); - -public: - u8 _28[0x248]; - AudioChannelType mAudioChannelType; -}; - -} // namespace ksys::snd diff --git a/src/KingSystem/Sound/sndResource.cpp b/src/KingSystem/Sound/sndSound.cpp similarity index 95% rename from src/KingSystem/Sound/sndResource.cpp rename to src/KingSystem/Sound/sndSound.cpp index df3f6b7d..b9eb6422 100644 --- a/src/KingSystem/Sound/sndResource.cpp +++ b/src/KingSystem/Sound/sndSound.cpp @@ -1,4 +1,4 @@ -#include "KingSystem/Sound/sndResource.h" +#include "KingSystem/Sound/sndSound.h" #include #include #include diff --git a/src/KingSystem/Sound/sndResource.h b/src/KingSystem/Sound/sndSound.h similarity index 64% rename from src/KingSystem/Sound/sndResource.h rename to src/KingSystem/Sound/sndSound.h index 62d00efd..98c4b9e4 100644 --- a/src/KingSystem/Sound/sndResource.h +++ b/src/KingSystem/Sound/sndSound.h @@ -1,5 +1,6 @@ #pragma once +#include #include #include "KingSystem/Utils/Types.h" @@ -21,4 +22,22 @@ private: }; KSYS_CHECK_SIZE_NX150(SoundResource, 0x40); +enum class AudioChannelType { + Mono = 1, + Stereo = 2, + _5_1ch = 6, + Other = -1 // TODO: does Other have a definite value? +}; + +// FIXME: incomplete +struct SoundMgr { + SEAD_SINGLETON_DISPOSER(SoundMgr) + + virtual ~SoundMgr(); + +public: + u8 _28[0x248]; + AudioChannelType mAudioChannelType; +}; + } // namespace ksys::snd diff --git a/src/KingSystem/System/CMakeLists.txt b/src/KingSystem/System/CMakeLists.txt index a2eb28ba..333d110d 100644 --- a/src/KingSystem/System/CMakeLists.txt +++ b/src/KingSystem/System/CMakeLists.txt @@ -39,6 +39,7 @@ target_sources(uking PRIVATE OverlayArenaSystemS2.h Patrol.cpp Patrol.h + PlayReport.cpp PlayReportMgr.cpp PlayReportMgr.h ProductReporter.cpp diff --git a/src/KingSystem/System/OverlayArenaSystem.cpp b/src/KingSystem/System/OverlayArenaSystem.cpp index 82a59aaf..206aa1de 100644 --- a/src/KingSystem/System/OverlayArenaSystem.cpp +++ b/src/KingSystem/System/OverlayArenaSystem.cpp @@ -4,7 +4,7 @@ #include #include #include "KingSystem/Resource/resSystem.h" -#include "KingSystem/Sound/sndResource.h" +#include "KingSystem/Sound/sndSound.h" #include "KingSystem/System/OverlayArena.h" #include "KingSystem/Terrain/teraSystem.h" #include "KingSystem/Utils/Thread/Task.h" diff --git a/src/KingSystem/System/PlayReport.cpp b/src/KingSystem/System/PlayReport.cpp new file mode 100644 index 00000000..1ff33d08 --- /dev/null +++ b/src/KingSystem/System/PlayReport.cpp @@ -0,0 +1,77 @@ +#include +#include +#include "KingSystem/System/Account.h" +#include "KingSystem/System/PlayReportMgr.h" +#include "KingSystem/System/ProductReporter.h" + +namespace ksys { + +bool PlayReport::setEventId(sead::BufferedSafeString& event_id) { + if (!mHasNinPrepoReport) + return false; + + event_id.replaceCharList("ABCDEFGHIJKLMNOPQRSTUVWXYZ", "abcdefghijklmnopqrstuvwxyz"); + return mNinPlayReport->SetEventId(event_id.cstr()).IsSuccess(); +} + +[[gnu::noinline]] bool PlayReport::add(const sead::FixedSafeString<48>& key, u32 value) { + return mHasNinPrepoReport && mNinPlayReport->Add(key.cstr(), s64(value)).IsSuccess(); +} + +[[gnu::noinline]] bool PlayReport::add(const sead::FixedSafeString<48>& key, s32 value) { + return mHasNinPrepoReport && mNinPlayReport->Add(key.cstr(), s64(value)).IsSuccess(); +} + +[[gnu::noinline]] bool PlayReport::add(const sead::FixedSafeString<48>& key, f32 value) { + return mHasNinPrepoReport && mNinPlayReport->Add(key.cstr(), value).IsSuccess(); +} + +[[gnu::noinline]] bool PlayReport::add(const sead::FixedSafeString<48>& key, + const sead::SafeString& value) { + return mHasNinPrepoReport && mNinPlayReport->Add(key.cstr(), value.cstr()).IsSuccess(); +} + +bool PlayReport::save() { + if (!mHasNinPrepoReport) + return false; + + nn::account::Uid uid; + Account::instance()->getUserId(&uid); + if (uid.IsValid()) { + static_cast(mNinPlayReport->GetCount()); + return mNinPlayReport->Save(uid).IsSuccess(); + } + static_cast(ProductReporter::getSomeBool()); + static_cast(mNinPlayReport->GetCount()); + return mNinPlayReport->Save().IsSuccess(); +} + +void PlayReport::init(s32 num_entries, sead::Heap* heap) { + if (mHasNinPrepoReport) + return; + + auto* report = new (heap) nn::prepo::PlayReport; + const u32 buffer_size = nn::prepo::PlayReport::CalcBufferSize(num_entries); + mNinPlayReport = report; + if (buffer_size > 0 && mBuffer.tryAllocBuffer(buffer_size, heap)) { + mNinPlayReport->SetBuffer(mBuffer.getBufferPtr(), buffer_size); + mHasNinPrepoReport = true; + } +} + +PlayReport::~PlayReport() { + if (!mHasNinPrepoReport) + return; + + if (mNinPlayReport) { + delete mNinPlayReport; + mNinPlayReport = nullptr; + } + + if (mHasNinPrepoReport) + mBuffer.freeBuffer(); + + mHasNinPrepoReport = false; +} + +} // namespace ksys diff --git a/src/KingSystem/System/PlayReportMgr.cpp b/src/KingSystem/System/PlayReportMgr.cpp index 29f34e53..706535ca 100644 --- a/src/KingSystem/System/PlayReportMgr.cpp +++ b/src/KingSystem/System/PlayReportMgr.cpp @@ -1,7 +1,4 @@ #include "KingSystem/System/PlayReportMgr.h" -#include -#include -#include "KingSystem/System/Account.h" #include "KingSystem/System/ProductReporter.h" namespace ksys { @@ -47,97 +44,4 @@ void PlayReportMgr::setPlayerTrackReporter30() { reporter->_30 = true; } -bool PlayReport::setEventId(sead::BufferedSafeString& event_id) { - if (!mHasNinPrepoReport) - return false; - - event_id.replaceCharList("ABCDEFGHIJKLMNOPQRSTUVWXYZ", "abcdefghijklmnopqrstuvwxyz"); - return mNinPlayReport->SetEventId(event_id.cstr()).IsSuccess(); -} - -[[gnu::noinline]] bool PlayReport::add(const sead::FixedSafeString<48>& key, u32 value) { - return mHasNinPrepoReport && mNinPlayReport->Add(key.cstr(), s64(value)).IsSuccess(); -} - -[[gnu::noinline]] bool PlayReport::add(const sead::FixedSafeString<48>& key, s32 value) { - return mHasNinPrepoReport && mNinPlayReport->Add(key.cstr(), s64(value)).IsSuccess(); -} - -[[gnu::noinline]] bool PlayReport::add(const sead::FixedSafeString<48>& key, f32 value) { - return mHasNinPrepoReport && mNinPlayReport->Add(key.cstr(), value).IsSuccess(); -} - -[[gnu::noinline]] bool PlayReport::add(const sead::FixedSafeString<48>& key, - const sead::SafeString& value) { - return mHasNinPrepoReport && mNinPlayReport->Add(key.cstr(), value.cstr()).IsSuccess(); -} - -void PlayReport::addPlayTimes() { - if (!gdt::Manager::instance()) - return; - - if (!PlayReportMgr::instance()) - return; - - if (!PlayReportMgr::instance()->getReporter()) - return; - - s32 playTime = - PlayReportMgr::instance()->getReporter()->getS32(PlayReportKey::PlayReport_PlayTime); - - s32 allPlayTime = - PlayReportMgr::instance()->getReporter()->getS32(PlayReportKey::PlayReport_AllPlayTime); - - add(sead::SafeString("PlayTime"), u32(playTime)); - add(sead::SafeString("AllPlayTime"), u32(allPlayTime)); -} - -void PlayReport::addPosition(const sead::Vector2f& position) { - add(sead::SafeString("PosX"), position.x); - add(sead::SafeString("PosZ"), position.y); -} - -bool PlayReport::save() { - if (!mHasNinPrepoReport) - return false; - - nn::account::Uid uid; - Account::instance()->getUserId(&uid); - if (uid.IsValid()) { - static_cast(mNinPlayReport->GetCount()); - return mNinPlayReport->Save(uid).IsSuccess(); - } - static_cast(ProductReporter::getSomeBool()); - static_cast(mNinPlayReport->GetCount()); - return mNinPlayReport->Save().IsSuccess(); -} - -void PlayReport::init(s32 num_entries, sead::Heap* heap) { - if (mHasNinPrepoReport) - return; - - auto* report = new (heap) nn::prepo::PlayReport; - const u32 buffer_size = nn::prepo::PlayReport::CalcBufferSize(num_entries); - mNinPlayReport = report; - if (buffer_size > 0 && mBuffer.tryAllocBuffer(buffer_size, heap)) { - mNinPlayReport->SetBuffer(mBuffer.getBufferPtr(), buffer_size); - mHasNinPrepoReport = true; - } -} - -PlayReport::~PlayReport() { - if (!mHasNinPrepoReport) - return; - - if (mNinPlayReport) { - delete mNinPlayReport; - mNinPlayReport = nullptr; - } - - if (mHasNinPrepoReport) - mBuffer.freeBuffer(); - - mHasNinPrepoReport = false; -} - } // namespace ksys diff --git a/src/KingSystem/System/ProductReporter.cpp b/src/KingSystem/System/ProductReporter.cpp index 4812734a..194a0b91 100644 --- a/src/KingSystem/System/ProductReporter.cpp +++ b/src/KingSystem/System/ProductReporter.cpp @@ -9,7 +9,7 @@ #include "KingSystem/Camera/CameraMgr.h" #include "KingSystem/Framework/frmFramework.h" #include "KingSystem/Map/mapPlacementMgr.h" -#include "KingSystem/Sound/sndMgr.h" +#include "KingSystem/Sound/sndSound.h" #include "KingSystem/System/PlayReportMgr.h" #include "KingSystem/System/VFR.h" @@ -220,6 +220,31 @@ bool ProductReporter::incrementSceneAndRomWorkTime() { return true; } +void PlayReport::addPlayTimes() { + if (!gdt::Manager::instance()) + return; + + if (!PlayReportMgr::instance()) + return; + + if (!PlayReportMgr::instance()->getReporter()) + return; + + s32 playTime = + PlayReportMgr::instance()->getReporter()->getS32(PlayReportKey::PlayReport_PlayTime); + + s32 allPlayTime = + PlayReportMgr::instance()->getReporter()->getS32(PlayReportKey::PlayReport_AllPlayTime); + + add(sead::SafeString("PlayTime"), u32(playTime)); + add(sead::SafeString("AllPlayTime"), u32(allPlayTime)); +} + +void PlayReport::addPosition(const sead::Vector2f& position) { + add(sead::SafeString("PosX"), position.x); + add(sead::SafeString("PosZ"), position.y); +} + #define PRODUCT_REPORTER_S32_GETTER(NAME, PLAY_REPORT_KEY) \ s32 ProductReporter::NAME() const { \ s32 out = 0; \