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)
This commit is contained in:
Léo Lam
2026-09-28 03:39:31 +02:00
parent 4a6239bbbf
commit 38905c8c07
13 changed files with 100 additions and 96 deletions
+27 -27
View File
@@ -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,
Can't render this file because it is too large.
@@ -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;
}
@@ -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<eco::AreaItemType> sPlacementItemTypes{sPlacementItemTypesData};
sead::Buffer<ksys::eco::AreaItemType> 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<act::PhysicsUserTag>(rb->getUserTag());
auto* tag = sead::DynamicCast<ksys::act::PhysicsUserTag>(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
@@ -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<PlacementThing, phys::RigidBody*> mDelegate;
sead::Delegate1<PlacementThing, ksys::phys::RigidBody*> 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<ObjectRef> mObjectRefs;
};
} // namespace ksys::map
} // namespace uking
@@ -1,9 +1,9 @@
#include "KingSystem/Map/mapAutoPlacementFlowMgr.h"
#include "Game/AutoPlacement/AutoPlacementFlowMgr.h"
#include <container/seadBuffer.h>
#include <evfl/ResActor.h>
#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
@@ -6,14 +6,14 @@
#include <prim/seadSafeString.h>
#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<AutoPlacementFlowRes, 7> mFlowNearArray;
};
} // namespace ksys::map
} // namespace uking
@@ -0,0 +1,7 @@
#include "Game/AutoPlacement/AutoPlacementMgr.h"
namespace uking {
SEAD_SINGLETON_DISPOSER_IMPL(AutoPlacementMgr)
} // namespace uking
@@ -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
+8
View File
@@ -0,0 +1,8 @@
target_sources(uking PRIVATE
AutoPlacement.cpp
AutoPlacement.h
AutoPlacementFlowMgr.cpp
AutoPlacementFlowMgr.h
AutoPlacementMgr.cpp
AutoPlacementMgr.h
)
+1
View File
@@ -1,4 +1,5 @@
add_subdirectory(Actor)
add_subdirectory(AutoPlacement)
add_subdirectory(Cooking)
add_subdirectory(DLC)
add_subdirectory(Scene)
+1 -1
View File
@@ -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"
-6
View File
@@ -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
@@ -1,7 +0,0 @@
#include "KingSystem/Map/mapAutoPlacementMgr.h"
namespace ksys::map {
SEAD_SINGLETON_DISPOSER_IMPL(AutoPlacementMgr)
} // namespace ksys::map