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: 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) --- src/Game/AutoPlacement/AutoPlacementFlowMgr.cpp | 61 +++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 src/Game/AutoPlacement/AutoPlacementFlowMgr.cpp (limited to 'src/Game/AutoPlacement/AutoPlacementFlowMgr.cpp') diff --git a/src/Game/AutoPlacement/AutoPlacementFlowMgr.cpp b/src/Game/AutoPlacement/AutoPlacementFlowMgr.cpp new file mode 100644 index 00000000..10742efa --- /dev/null +++ b/src/Game/AutoPlacement/AutoPlacementFlowMgr.cpp @@ -0,0 +1,61 @@ +#include "Game/AutoPlacement/AutoPlacementFlowMgr.h" +#include +#include +#include "KingSystem/Resource/resLoadRequest.h" + +namespace uking { + +const char* sFlowResNamesData[] = { + "AutoPlacement_Animal.bfevfl", + "AutoPlacement_Bird.bfevfl", + "AutoPlacement_Enemy_Golem_Little.bfevfl", + "AutoPlacement_Enemy_Keese.bfevfl", + "AutoPlacement_Enemy_Lizalfos.bfevfl", + "AutoPlacement_Enemy_Octarock.bfevfl", + "AutoPlacement_Enemy_Wizzrobe.bfevfl", + "AutoPlacement_Enemy_Fish.bfevfl", + "AutoPlacement_Enemy_Insect.bfevfl", + "AutoPlacement_Enemy_Material.bfevfl", +}; +sead::Buffer sFlowResNames{sFlowResNamesData}; + +const char* sFlowNearResNamesData[] = { + "AutoPlacementNear_Enemy_Assassin_Middle.bfevfl", + "AutoPlacementNear_Enemy_Assassin_Shooter_Junior.bfevfl", + "AutoPlacementNear_Enemy_Chuchu.bfevfl", + "AutoPlacementNear_Enemy_Dragon.bfevfl", + "AutoPlacementNear_Enemy_Lizalfos.bfevfl", + "AutoPlacementNear_Enemy_Octarock.bfevfl", + "AutoPlacementNear_Enemy_Stal.bfevfl", +}; +sead::Buffer sFlowNearResNames{sFlowNearResNamesData}; + +void AutoPlacementFlowMgr::loadEventFlows() { + for (int i = 0; i < mFlowArray.size(); i++) { + auto& flow = mFlowArray[i]; + flow.evfl_name = sFlowResNames[i]; + flow.idx = 0xFF; + + sead::FixedSafeString<128> path; + path.format("EventFlow/%s", flow.evfl_name.cstr()); + ksys::res::LoadRequest req; + req.mRequester = "AutoPlacementFlow"; + + flow.handle.requestLoad(path, &req); + } + + for (int i = 0; i < mFlowNearArray.size(); i++) { + auto& flow = mFlowNearArray[i]; + flow.evfl_name = sFlowResNames[i]; + flow.idx = 0xFF; + + sead::FixedSafeString<128> path; + path.format("EventFlow/%s", flow.evfl_name.cstr()); + ksys::res::LoadRequest req; + req.mRequester = "AutoPlacementFlow"; + + flow.handle.requestLoad(path, &req); + } +} + +} // namespace uking -- cgit v1.2.3