From 38905c8c075ec4ed8f8fcf858aef46bc5e05f8e2 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] AutoPlacement is game code: move it to Game/ It is created only from game code, no engine code calls it, and it hardcodes game actor names. (AI assisted using Claude Fable 5.1 and Claude Opus 5.5) --- data/uking_functions.csv | 54 ++++++++--------- .../Action/actionAddAutoPlacementCreator.cpp | 11 ++-- .../AutoPlacement/AutoPlacement.cpp} | 58 ++++++++++--------- .../AutoPlacement/AutoPlacement.h} | 18 +++--- .../AutoPlacement/AutoPlacementFlowMgr.cpp} | 10 ++-- .../AutoPlacement/AutoPlacementFlowMgr.h} | 6 +- src/Game/AutoPlacement/AutoPlacementMgr.cpp | 7 +++ .../AutoPlacement/AutoPlacementMgr.h} | 8 +-- src/Game/AutoPlacement/CMakeLists.txt | 8 +++ src/Game/CMakeLists.txt | 1 + src/Game/E3Mgr.cpp | 2 +- src/KingSystem/Map/CMakeLists.txt | 6 -- src/KingSystem/Map/mapAutoPlacementMgr.cpp | 7 --- 13 files changed, 100 insertions(+), 96 deletions(-) rename src/{KingSystem/Map/mapAutoPlacement.cpp => Game/AutoPlacement/AutoPlacement.cpp} (81%) rename src/{KingSystem/Map/mapAutoPlacement.h => Game/AutoPlacement/AutoPlacement.h} (91%) rename src/{KingSystem/Map/mapAutoPlacementFlowMgr.cpp => Game/AutoPlacement/AutoPlacementFlowMgr.cpp} (91%) rename src/{KingSystem/Map/mapAutoPlacementFlowMgr.h => Game/AutoPlacement/AutoPlacementFlowMgr.h} (92%) create mode 100644 src/Game/AutoPlacement/AutoPlacementMgr.cpp rename src/{KingSystem/Map/mapAutoPlacementMgr.h => Game/AutoPlacement/AutoPlacementMgr.h} (82%) create mode 100644 src/Game/AutoPlacement/CMakeLists.txt delete mode 100644 src/KingSystem/Map/mapAutoPlacementMgr.cpp diff --git a/data/uking_functions.csv b/data/uking_functions.csv index 3fee62a8..6bf482b0 100644 --- a/data/uking_functions.csv +++ b/data/uking_functions.csv @@ -39840,42 +39840,42 @@ Address,Quality,Size,Name 0x000000710064c3ac,U,000420, 0x000000710064c550,U,000516,sinitAmiiboMgrDates 0x000000710064c754,U,000004,nullsub_2156 -0x000000710064c758,M,000772,_ZN4ksys3map13AutoPlacementC1Ev +0x000000710064c758,M,000772,_ZN5uking13AutoPlacementC1Ev 0x000000710064ca5c,U,000416, -0x000000710064cbfc,O,000388,_ZN4ksys3map13AutoPlacement14sub_710064CBFCEPN4sead4HeapEhii -0x000000710064cd80,O,000052,_ZN4ksys3map13AutoPlacement14sub_710064CD80Ejj -0x000000710064cdb4,O,000428,_ZN4ksys3map14ActorSpawnInfo18calcSpawnLocationsEv -0x000000710064cf60,U,000832,_ZN4ksys3map13AutoPlacement14sub_710064CF60Eb +0x000000710064cbfc,O,000388,_ZN5uking13AutoPlacement14sub_710064CBFCEPN4sead4HeapEhii +0x000000710064cd80,O,000052,_ZN5uking13AutoPlacement14sub_710064CD80Ejj +0x000000710064cdb4,O,000428,_ZN5uking14ActorSpawnInfo18calcSpawnLocationsEv +0x000000710064cf60,U,000832,_ZN5uking13AutoPlacement14sub_710064CF60Eb 0x000000710064d2a0,U,001072, 0x000000710064d6d0,U,000716, -0x000000710064d99c,O,000184,_ZN4ksys3map13AutoPlacement12setSpawnInfoERKN4sead14SafeStringBaseIcEEi -0x000000710064da54,O,000044,_ZN4ksys3map13AutoPlacement14sub_710064DA54Ev +0x000000710064d99c,O,000184,_ZN5uking13AutoPlacement12setSpawnInfoERKN4sead14SafeStringBaseIcEEi +0x000000710064da54,O,000044,_ZN5uking13AutoPlacement14sub_710064DA54Ev 0x000000710064da80,U,000948, 0x000000710064de34,U,000836, -0x000000710064e178,m,000460,_ZN4ksys3map13AutoPlacement14sub_710064E178ERKN4sead14SafeStringBaseIcEEjRKNS2_7Vector3IfEE +0x000000710064e178,m,000460,_ZN5uking13AutoPlacement14sub_710064E178ERKN4sead14SafeStringBaseIcEEjRKNS1_7Vector3IfEE 0x000000710064e344,U,001564, -0x000000710064e960,O,000340,_ZN4ksys3map14PlacementThing6invokeEv +0x000000710064e960,O,000340,_ZN5uking14PlacementThing6invokeEv 0x000000710064eab4,U,000684, 0x000000710064ed60,U,000452, -0x000000710064ef24,m,000264,_ZN4ksys3map13AutoPlacement14sub_710064EF24EPNS0_14ActorSpawnInfoERKN4sead7Vector3IfEE +0x000000710064ef24,m,000264,_ZN5uking13AutoPlacement14sub_710064EF24EPNS_14ActorSpawnInfoERKN4sead7Vector3IfEE 0x000000710064f02c,U,000536, 0x000000710064f244,U,000776, 0x000000710064f54c,U,000504, -0x000000710064f744,O,000072,_ZN4ksys3map13AutoPlacement14sub_710064F744Ehh -0x000000710064f78c,O,000020,_ZN4ksys3map13AutoPlacement14incrementGroupEv +0x000000710064f744,O,000072,_ZN5uking13AutoPlacement14sub_710064F744Ehh +0x000000710064f78c,O,000020,_ZN5uking13AutoPlacement14incrementGroupEv 0x000000710064f7a0,U,001804, 0x000000710064feac,U,000664,checkActorInvalidTimeWeatherStuffMaybe -0x0000007100650144,O,000172,_ZN4ksys3map13AutoPlacement14sub_7100650144EPNS0_14PlacementGroupEb +0x0000007100650144,O,000172,_ZN5uking13AutoPlacement14sub_7100650144EPNS_14PlacementGroupEb 0x00000071006501f0,U,000560, -0x0000007100650420,m,000220,_ZN4ksys3map13AutoPlacement10placeGroupEPNS0_20AutoPlacementFlowResE +0x0000007100650420,m,000220,_ZN5uking13AutoPlacement10placeGroupEPNS_20AutoPlacementFlowResE 0x00000071006504fc,U,001036, -0x0000007100650908,O,000044,_ZN4ksys3map13AutoPlacement14sub_7100650908Ev +0x0000007100650908,O,000044,_ZN5uking13AutoPlacement14sub_7100650908Ev 0x0000007100650934,U,000488,autoplacement::getActorToSpawn -0x0000007100650b1c,O,000060,_ZN4ksys3map13AutoPlacement15stepAllRaycastsEv -0x0000007100650b58,O,000208,_ZN4ksys3map14PlacementThing11stepRaycastEv -0x0000007100650c28,m,000360,_ZN4ksys3map13AutoPlacement14sub_7100650C28EPNS_4phys9RigidBodyE -0x0000007100650d90,O,000024,_ZNK4ksys3map14PlacementThing19getCurrentGroundMatEv -0x0000007100650da8,O,000024,_ZNK4ksys3map14PlacementThing21getCurrentWaterSubMatEv +0x0000007100650b1c,O,000060,_ZN5uking13AutoPlacement15stepAllRaycastsEv +0x0000007100650b58,O,000208,_ZN5uking14PlacementThing11stepRaycastEv +0x0000007100650c28,m,000360,_ZN5uking13AutoPlacement14sub_7100650C28EPN4ksys4phys9RigidBodyE +0x0000007100650d90,O,000024,_ZNK5uking14PlacementThing19getCurrentGroundMatEv +0x0000007100650da8,O,000024,_ZNK5uking14PlacementThing21getCurrentWaterSubMatEv 0x0000007100650dc0,U,000228, 0x0000007100650ea4,U,000244, 0x0000007100650f98,U,000228, @@ -39896,7 +39896,7 @@ Address,Quality,Size,Name 0x0000007100652014,U,000824,AutoPlacementFlowMgr::ctor 0x000000710065234c,U,000360,AutoPlacementFlowMgr::dtor 0x00000071006524b4,U,000100,AutoPlacementFlowMgr::init -0x0000007100652518,M,000616,_ZN4ksys3map20AutoPlacementFlowMgr14loadEventFlowsEv +0x0000007100652518,M,000616,_ZN5uking20AutoPlacementFlowMgr14loadEventFlowsEv 0x0000007100652780,U,000428,AutoPlacementFlowMgr::resAreReady 0x000000710065292c,U,000004,AutoPlacementFlowMgr::nullsub_2157 0x0000007100652930,U,000044,AutoPlacementFlowMgr::getResource1 @@ -39931,9 +39931,9 @@ Address,Quality,Size,Name 0x0000007100654298,U,000916,sinitSomeBfevflStrings 0x000000710065462c,O,000100,_ZN4sead15DebugFontMgrNvn18SingletonDisposer_D1Ev 0x0000007100654690,O,000108,_ZN4sead15DebugFontMgrNvn18SingletonDisposer_D0Ev -0x00000071006546fc,W,000140,_ZN4ksys3map16AutoPlacementMgr14createInstanceEPN4sead4HeapE -0x0000007100654788,O,000088,_ZN4ksys3map16AutoPlacementMgr14deleteInstanceEv -0x00000071006547e0,U,001636,_ZN4ksys3map16AutoPlacementMgrC1Ev +0x00000071006546fc,W,000140,_ZN5uking16AutoPlacementMgr14createInstanceEPN4sead4HeapE +0x0000007100654788,O,000088,_ZN5uking16AutoPlacementMgr14deleteInstanceEv +0x00000071006547e0,U,001636,_ZN5uking16AutoPlacementMgrC1Ev 0x0000007100654e44,U,000572,AutoPlacementMgr::threadFn 0x0000007100655080,U,000152,AutoPlacementMgr::actorCreateCallback 0x0000007100655118,U,000172,AutoPlacementMgr::invoked3 @@ -39945,7 +39945,7 @@ Address,Quality,Size,Name 0x00000071006557f4,U,000036, 0x0000007100655818,U,001012,AutoPlacementMgr::init 0x0000007100655c0c,U,001060,AutoPlacementMgr::calc -0x0000007100656030,U,000024,_ZN4ksys3map16AutoPlacementMgr5auto9Ev +0x0000007100656030,U,000024,_ZN5uking16AutoPlacementMgr5auto9Ev 0x0000007100656048,U,000484, 0x000000710065622c,U,000108, 0x0000007100656298,U,000472,AutoPlacementMgr::cmd1 @@ -39974,8 +39974,8 @@ Address,Quality,Size,Name 0x0000007100659954,U,000680, 0x0000007100659bfc,W,000484,_ZN4sead17StringBuilderBaseIcE15replaceCharListERKNS_14SafeStringBaseIcEES5_ 0x0000007100659de0,U,000096,AutoPlacementMgr::__auto3 -0x0000007100659e40,U,000340,_ZN4ksys3map16AutoPlacementMgr14sub_7100659E40EPNS_3act5ActorERKN4sead14SafeStringBaseIcEEib -0x0000007100659f94,U,000140,_ZN4ksys3map16AutoPlacementMgr14sub_7100659F94EPNS_3act5ActorE +0x0000007100659e40,U,000340,_ZN5uking16AutoPlacementMgr14sub_7100659E40EPN4ksys3act5ActorERKN4sead14SafeStringBaseIcEEib +0x0000007100659f94,U,000140,_ZN5uking16AutoPlacementMgr14sub_7100659F94EPN4ksys3act5ActorE 0x000000710065a020,U,000476, 0x000000710065a1fc,U,000048, 0x000000710065a22c,U,000092, diff --git a/src/Game/Actor/Action/actionAddAutoPlacementCreator.cpp b/src/Game/Actor/Action/actionAddAutoPlacementCreator.cpp index 086fb095..8a1d4e67 100644 --- a/src/Game/Actor/Action/actionAddAutoPlacementCreator.cpp +++ b/src/Game/Actor/Action/actionAddAutoPlacementCreator.cpp @@ -1,6 +1,6 @@ #include "Game/Actor/Action/actionAddAutoPlacementCreator.h" +#include "Game/AutoPlacement/AutoPlacementMgr.h" #include "KingSystem/ActorSystem/actActor.h" -#include "KingSystem/Map/mapAutoPlacementMgr.h" #include "KingSystem/Map/mapDebug.h" #include "KingSystem/Utils/MathUtil.h" @@ -43,9 +43,8 @@ void AddAutoPlacementCreator::enter_(ksys::act::ai::InlineParamPack* params) { return; } - if (ksys::map::AutoPlacementMgr::instance() != nullptr && - ksys::map::AutoPlacementMgr::instance()->sub_7100659E40(mActor, mActorName_m, *mCount_m, - is_box)) { + if (AutoPlacementMgr::instance() != nullptr && + AutoPlacementMgr::instance()->sub_7100659E40(mActor, mActorName_m, *mCount_m, is_box)) { actor->setDeleteDistance(actor->getDeleteDistance() + 100.0f); mInitialised = true; } @@ -57,8 +56,8 @@ void AddAutoPlacementCreator::leave_() { if (!mInitialised) return; - if (ksys::map::AutoPlacementMgr::instance() != nullptr) - ksys::map::AutoPlacementMgr::instance()->sub_7100659F94(mActor); + if (AutoPlacementMgr::instance() != nullptr) + AutoPlacementMgr::instance()->sub_7100659F94(mActor); mInitialised = false; } diff --git a/src/KingSystem/Map/mapAutoPlacement.cpp b/src/Game/AutoPlacement/AutoPlacement.cpp similarity index 81% rename from src/KingSystem/Map/mapAutoPlacement.cpp rename to src/Game/AutoPlacement/AutoPlacement.cpp index b47494c8..d655fb7d 100644 --- a/src/KingSystem/Map/mapAutoPlacement.cpp +++ b/src/Game/AutoPlacement/AutoPlacement.cpp @@ -1,17 +1,17 @@ -#include "KingSystem/Map/mapAutoPlacement.h" +#include "Game/AutoPlacement/AutoPlacement.h" +#include "Game/AutoPlacement/AutoPlacementFlowMgr.h" +#include "Game/AutoPlacement/AutoPlacementMgr.h" #include "KingSystem/ActorSystem/actActor.h" #include "KingSystem/ActorSystem/actActorUtil.h" #include "KingSystem/ActorSystem/actInfoData.h" #include "KingSystem/ActorSystem/actPhysicsUserTag.h" #include "KingSystem/Ecosystem/ecoSystem.h" -#include "KingSystem/Map/mapAutoPlacementFlowMgr.h" -#include "KingSystem/Map/mapAutoPlacementMgr.h" #include "KingSystem/Physics/RigidBody/physRigidBody.h" #include "KingSystem/Physics/System/physRayCastForRequest.h" #include "KingSystem/Utils/Byaml/Byaml.h" #include "KingSystem/World/worldWeatherMgr.h" -namespace ksys::map { +namespace uking { AutoPlacement::AutoPlacement() = default; AutoPlacement::~AutoPlacement() = default; @@ -33,10 +33,10 @@ u32 AutoPlacement::sub_710064CD80(u32 a, u32 b) { } void ActorSpawnInfo::calcSpawnLocations() { - auto* mgr = act::InfoData::instance(); + auto* mgr = ksys::act::InfoData::instance(); al::ByamlIter iter; - using namespace act::tags; + using namespace ksys::act::tags; spawn_location.makeAllZero(); if (mgr == nullptr || !mgr->getActorIter(&iter, name.cstr())) @@ -88,11 +88,12 @@ void AutoPlacement::sub_710064DA54() { _8 = 2; } -eco::AreaItemType sPlacementItemTypesData[] = { - eco::AreaItemType::Enemy, eco::AreaItemType::Animal, eco::AreaItemType::Insect, - eco::AreaItemType::Fish, eco::AreaItemType::Bird, eco::AreaItemType::AutoPlacementMaterial, +ksys::eco::AreaItemType sPlacementItemTypesData[] = { + ksys::eco::AreaItemType::Enemy, ksys::eco::AreaItemType::Animal, + ksys::eco::AreaItemType::Insect, ksys::eco::AreaItemType::Fish, + ksys::eco::AreaItemType::Bird, ksys::eco::AreaItemType::AutoPlacementMaterial, }; -sead::Buffer sPlacementItemTypes{sPlacementItemTypesData}; +sead::Buffer sPlacementItemTypes{sPlacementItemTypesData}; // NON_MATCHING: stack bool AutoPlacement::sub_710064E178(const sead::SafeString& name, u32 placement_type, @@ -100,7 +101,7 @@ bool AutoPlacement::sub_710064E178(const sead::SafeString& name, u32 placement_t if (mNearFlag == 0xFE) return true; - auto* eco = eco::Ecosystem::instance(); + auto* eco = ksys::eco::Ecosystem::instance(); if (eco == nullptr) return false; @@ -108,7 +109,7 @@ bool AutoPlacement::sub_710064E178(const sead::SafeString& name, u32 placement_t if (area < 0) return false; - eco::AreaItemSet item_set; + ksys::eco::AreaItemSet item_set; eco->getAreaItems(area, sPlacementItemTypes[placement_type], &item_set); for (int i = 0; i < item_set.count; ++i) { @@ -129,12 +130,12 @@ bool PlacementThing::invoke() { if (mRaycast == nullptr || mState != State::Initialized) return false; - mRaycast->enableLayer(phys::ContactLayer::EntityGround); - mRaycast->enableLayer(phys::ContactLayer::EntityGroundRough); - mRaycast->enableLayer(phys::ContactLayer::EntityGroundSmooth); - mRaycast->enableLayer(phys::ContactLayer::EntityAirWall); - mRaycast->enableLayer(phys::ContactLayer::EntityGroundObject); - mRaycast->enableLayer(phys::ContactLayer::EntityTree); + mRaycast->enableLayer(ksys::phys::ContactLayer::EntityGround); + mRaycast->enableLayer(ksys::phys::ContactLayer::EntityGroundRough); + mRaycast->enableLayer(ksys::phys::ContactLayer::EntityGroundSmooth); + mRaycast->enableLayer(ksys::phys::ContactLayer::EntityAirWall); + mRaycast->enableLayer(ksys::phys::ContactLayer::EntityGroundObject); + mRaycast->enableLayer(ksys::phys::ContactLayer::EntityTree); if (_8944) { sead::Vector3f v1 = mVec1 + sead::Vector3f{0, 4, 30}; @@ -165,13 +166,13 @@ bool AutoPlacement::sub_7100650144(PlacementGroup* grp, bool check_exposure) { return true; } - if (object->getProc() == nullptr && object->getFlags0().isOn(Object::Flag0::_80)) + if (object->getProc() == nullptr && object->getFlags0().isOn(ksys::map::Object::Flag0::_80)) return true; if (grp->_1d != 2) return false; - if (check_exposure && !world::WeatherMgr::isExposureZero()) + if (check_exposure && !ksys::world::WeatherMgr::isExposureZero()) return true; return false; } @@ -273,11 +274,12 @@ void PlacementThing::stepRaycast() { switch (mState) { case State::Uninitialized: - mRaycast = phys::RayCastForRequest::allocRequest(nullptr, phys::GroundHit::Animal); + mRaycast = + ksys::phys::RayCastForRequest::allocRequest(nullptr, ksys::phys::GroundHit::Animal); next = mRaycast != nullptr ? State::Initialized : State::Invalid; break; case State::LayersDone: - mRaycast->submitRequest(phys::ContactLayerType::Entity); + mRaycast->submitRequest(ksys::phys::ContactLayerType::Entity); next = State::RaycastDone; break; case State::PlacementDone: @@ -295,14 +297,14 @@ void PlacementThing::stepRaycast() { mState = next; } -void AutoPlacement::sub_7100650C28(phys::RigidBody* rb) { +void AutoPlacement::sub_7100650C28(ksys::phys::RigidBody* rb) { if (rb == nullptr) return; - if (rb->getContactLayer() == phys::ContactLayer::EntityTree) + if (rb->getContactLayer() == ksys::phys::ContactLayer::EntityTree) mNearFlag.setDirect(1); - auto* tag = sead::DynamicCast(rb->getUserTag()); + auto* tag = sead::DynamicCast(rb->getUserTag()); if (tag == nullptr) return; @@ -310,8 +312,8 @@ void AutoPlacement::sub_7100650C28(phys::RigidBody* rb) { if (actor == nullptr) return; - mNearFlag.set(act::hasTag(actor, act::tags::Tree) || - act::hasTag(actor, act::tags::AutoPlacementForbidCreate)); + mNearFlag.set(ksys::act::hasTag(actor, ksys::act::tags::Tree) || + ksys::act::hasTag(actor, ksys::act::tags::AutoPlacementForbidCreate)); _b.set(actor->getName() == "AirWallHorse"); } @@ -332,4 +334,4 @@ const char* PlacementThing::getCurrentWaterSubMat() const { } } -} // namespace ksys::map +} // namespace uking diff --git a/src/KingSystem/Map/mapAutoPlacement.h b/src/Game/AutoPlacement/AutoPlacement.h similarity index 91% rename from src/KingSystem/Map/mapAutoPlacement.h rename to src/Game/AutoPlacement/AutoPlacement.h index 5624fddb..1b1db151 100644 --- a/src/KingSystem/Map/mapAutoPlacement.h +++ b/src/Game/AutoPlacement/AutoPlacement.h @@ -15,7 +15,7 @@ class RayCastForRequest; class RigidBody; } // namespace ksys::phys -namespace ksys::map { +namespace uking { class AutoPlacement; struct AutoPlacementFlowRes; @@ -67,24 +67,24 @@ public: bool invoke(); void stepRaycast(); - void sub_7100650C28(phys::RigidBody*); + void sub_7100650C28(ksys::phys::RigidBody*); const char* getCurrentGroundMat() const; const char* getCurrentWaterSubMat() const; private: friend class AutoPlacement; - phys::RayCastForRequest* mRaycast{}; + ksys::phys::RayCastForRequest* mRaycast{}; u8 _8880{}; u8 mUnderwater{}; sead::Vector3f mVec1{}; sead::Vector3f mQueryVec{}; u32 _889c{}; f32 _88a0 = 1.0f; - phys::MaterialMask mMask1; - phys::MaterialMask mMask2; + ksys::phys::MaterialMask mMask1; + ksys::phys::MaterialMask mMask2; f32 mWaterQuery = -1.0f; - sead::Delegate1 mDelegate; + sead::Delegate1 mDelegate; sead::CriticalSection mCS{}; State mState; u8 _8944{}; @@ -141,11 +141,11 @@ public: s32 placeGroup(AutoPlacementFlowRes* res); s32 sub_7100650908(); void stepAllRaycasts(); - void sub_7100650C28(phys::RigidBody* rb); + void sub_7100650C28(ksys::phys::RigidBody* rb); private: struct ObjectRef { - Object* obj; + ksys::map::Object* obj; void* _8; }; @@ -175,4 +175,4 @@ private: sead::Buffer mObjectRefs; }; -} // namespace ksys::map +} // namespace uking diff --git a/src/KingSystem/Map/mapAutoPlacementFlowMgr.cpp b/src/Game/AutoPlacement/AutoPlacementFlowMgr.cpp similarity index 91% rename from src/KingSystem/Map/mapAutoPlacementFlowMgr.cpp rename to src/Game/AutoPlacement/AutoPlacementFlowMgr.cpp index 3bef06c4..10742efa 100644 --- a/src/KingSystem/Map/mapAutoPlacementFlowMgr.cpp +++ b/src/Game/AutoPlacement/AutoPlacementFlowMgr.cpp @@ -1,9 +1,9 @@ -#include "KingSystem/Map/mapAutoPlacementFlowMgr.h" +#include "Game/AutoPlacement/AutoPlacementFlowMgr.h" #include #include #include "KingSystem/Resource/resLoadRequest.h" -namespace ksys::map { +namespace uking { const char* sFlowResNamesData[] = { "AutoPlacement_Animal.bfevfl", @@ -38,7 +38,7 @@ void AutoPlacementFlowMgr::loadEventFlows() { sead::FixedSafeString<128> path; path.format("EventFlow/%s", flow.evfl_name.cstr()); - res::LoadRequest req; + ksys::res::LoadRequest req; req.mRequester = "AutoPlacementFlow"; flow.handle.requestLoad(path, &req); @@ -51,11 +51,11 @@ void AutoPlacementFlowMgr::loadEventFlows() { sead::FixedSafeString<128> path; path.format("EventFlow/%s", flow.evfl_name.cstr()); - res::LoadRequest req; + ksys::res::LoadRequest req; req.mRequester = "AutoPlacementFlow"; flow.handle.requestLoad(path, &req); } } -} // namespace ksys::map +} // namespace uking diff --git a/src/KingSystem/Map/mapAutoPlacementFlowMgr.h b/src/Game/AutoPlacement/AutoPlacementFlowMgr.h similarity index 92% rename from src/KingSystem/Map/mapAutoPlacementFlowMgr.h rename to src/Game/AutoPlacement/AutoPlacementFlowMgr.h index df3b6648..26103f3a 100644 --- a/src/KingSystem/Map/mapAutoPlacementFlowMgr.h +++ b/src/Game/AutoPlacement/AutoPlacementFlowMgr.h @@ -6,14 +6,14 @@ #include #include "KingSystem/Resource/resHandle.h" -namespace ksys::map { +namespace uking { class AutoPlacement; struct AutoPlacementFlowRes { void start(AutoPlacement* placement, const sead::SafeString& unit_name, int*); - res::Handle handle; + ksys::res::Handle handle; sead::SafeString evfl_name; evfl::FlowchartContext flowchart_ctx; AutoPlacement* placement; @@ -38,4 +38,4 @@ private: sead::SafeArray mFlowNearArray; }; -} // namespace ksys::map +} // namespace uking diff --git a/src/Game/AutoPlacement/AutoPlacementMgr.cpp b/src/Game/AutoPlacement/AutoPlacementMgr.cpp new file mode 100644 index 00000000..c73dbfd4 --- /dev/null +++ b/src/Game/AutoPlacement/AutoPlacementMgr.cpp @@ -0,0 +1,7 @@ +#include "Game/AutoPlacement/AutoPlacementMgr.h" + +namespace uking { + +SEAD_SINGLETON_DISPOSER_IMPL(AutoPlacementMgr) + +} // namespace uking diff --git a/src/KingSystem/Map/mapAutoPlacementMgr.h b/src/Game/AutoPlacement/AutoPlacementMgr.h similarity index 82% rename from src/KingSystem/Map/mapAutoPlacementMgr.h rename to src/Game/AutoPlacement/AutoPlacementMgr.h index dc918b32..cad8d489 100644 --- a/src/KingSystem/Map/mapAutoPlacementMgr.h +++ b/src/Game/AutoPlacement/AutoPlacementMgr.h @@ -11,7 +11,7 @@ namespace ksys::act { class Actor; } // namespace ksys::act -namespace ksys::map { +namespace uking { class AutoPlacementMgr { SEAD_SINGLETON_DISPOSER(AutoPlacementMgr) @@ -19,9 +19,9 @@ public: AutoPlacementMgr(); virtual ~AutoPlacementMgr(); - bool sub_7100659E40(act::Actor* actor, const sead::SafeString& actor_name, int count, + bool sub_7100659E40(ksys::act::Actor* actor, const sead::SafeString& actor_name, int count, bool is_box); - void sub_7100659F94(act::Actor* actor); + void sub_7100659F94(ksys::act::Actor* actor); // 0x0000007100654e44 bool threadFn(); @@ -38,4 +38,4 @@ public: }; // KSYS_CHECK_SIZE_NX150(AutoPlacementMgr, 0x189E38); -} // namespace ksys::map +} // namespace uking diff --git a/src/Game/AutoPlacement/CMakeLists.txt b/src/Game/AutoPlacement/CMakeLists.txt new file mode 100644 index 00000000..4e98bbb6 --- /dev/null +++ b/src/Game/AutoPlacement/CMakeLists.txt @@ -0,0 +1,8 @@ +target_sources(uking PRIVATE + AutoPlacement.cpp + AutoPlacement.h + AutoPlacementFlowMgr.cpp + AutoPlacementFlowMgr.h + AutoPlacementMgr.cpp + AutoPlacementMgr.h +) diff --git a/src/Game/CMakeLists.txt b/src/Game/CMakeLists.txt index 457b3f56..702f626f 100644 --- a/src/Game/CMakeLists.txt +++ b/src/Game/CMakeLists.txt @@ -1,4 +1,5 @@ add_subdirectory(Actor) +add_subdirectory(AutoPlacement) add_subdirectory(Cooking) add_subdirectory(DLC) add_subdirectory(Scene) diff --git a/src/Game/E3Mgr.cpp b/src/Game/E3Mgr.cpp index 61b7e60b..63eb18c2 100644 --- a/src/Game/E3Mgr.cpp +++ b/src/Game/E3Mgr.cpp @@ -1,5 +1,5 @@ #include "E3Mgr.h" -#include "KingSystem/Map/mapAutoPlacementMgr.h" +#include "Game/AutoPlacement/AutoPlacementMgr.h" #include "KingSystem/Map/mapPlacementMgr.h" #include "KingSystem/Resource/resLoadRequest.h" #include "controller/seadController.h" diff --git a/src/KingSystem/Map/CMakeLists.txt b/src/KingSystem/Map/CMakeLists.txt index 87d13eee..b201b701 100644 --- a/src/KingSystem/Map/CMakeLists.txt +++ b/src/KingSystem/Map/CMakeLists.txt @@ -1,11 +1,5 @@ target_sources(uking PRIVATE mapTypes.h - mapAutoPlacement.cpp - mapAutoPlacement.h - mapAutoPlacementFlowMgr.cpp - mapAutoPlacementFlowMgr.h - mapAutoPlacementMgr.cpp - mapAutoPlacementMgr.h mapDebug.cpp mapDebug.h mapLazyTraverseList.cpp diff --git a/src/KingSystem/Map/mapAutoPlacementMgr.cpp b/src/KingSystem/Map/mapAutoPlacementMgr.cpp deleted file mode 100644 index 8a3c4983..00000000 --- a/src/KingSystem/Map/mapAutoPlacementMgr.cpp +++ /dev/null @@ -1,7 +0,0 @@ -#include "KingSystem/Map/mapAutoPlacementMgr.h" - -namespace ksys::map { - -SEAD_SINGLETON_DISPOSER_IMPL(AutoPlacementMgr) - -} // namespace ksys::map