summaryrefslogtreecommitdiff
path: root/src/Game/AutoPlacement/AutoPlacementFlowMgr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Game/AutoPlacement/AutoPlacementFlowMgr.cpp')
-rw-r--r--src/Game/AutoPlacement/AutoPlacementFlowMgr.cpp61
1 files changed, 61 insertions, 0 deletions
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 <container/seadBuffer.h>
+#include <evfl/ResActor.h>
+#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<const char*> 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<const char*> 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