summaryrefslogtreecommitdiff
path: root/include/toBeSorted
diff options
context:
space:
mode:
authorrobojumper <robojumper@gmail.com>2025-11-22 15:43:26 +0100
committerGitHub <noreply@github.com>2025-11-22 15:43:26 +0100
commitb661da78b52958faffb589955df0453c5b0f6740 (patch)
tree20ef8223571890b3b015aee11e227fb9a3ef0077 /include/toBeSorted
parent25c799aef9a58395d1a2e2cd573defce7fc5f34f (diff)
parent9cae4869105d4b891f4d483f9bddd146e93eb989 (diff)
Merge pull request #257 from robojumper/d_lyt_map_more
some more map things
Diffstat (limited to 'include/toBeSorted')
-rw-r--r--include/toBeSorted/d_beacon.h22
-rw-r--r--include/toBeSorted/d_flow_mgr.h31
-rw-r--r--include/toBeSorted/event_manager.h2
-rw-r--r--include/toBeSorted/event_manager_util.h10
-rw-r--r--include/toBeSorted/misc_actor.h5
5 files changed, 65 insertions, 5 deletions
diff --git a/include/toBeSorted/d_beacon.h b/include/toBeSorted/d_beacon.h
new file mode 100644
index 00000000..b963d98a
--- /dev/null
+++ b/include/toBeSorted/d_beacon.h
@@ -0,0 +1,22 @@
+#ifndef D_BEACON_H
+#define D_BEACON_H
+
+#include "m/m_vec.h"
+
+u32 getMaxBeaconCount();
+
+/**
+ * When passed a position, sets the beacon with the given index to the position.
+ * When position is nullptr, removes the beacon.
+ */
+void setBeaconPosition(const mVec3_c *position, u32 beaconIndex);
+
+/**
+ * Sets a beacon position similar to `setBeaconPosition`, but corrects the ground level
+ */
+void setBeaconPositionChecked(const mVec3_c *position, u32 beaconIndex);
+
+/** Checks whether the current stage is ineligible for beacon placement */
+bool doesStageForbidBeaconPlacement();
+
+#endif
diff --git a/include/toBeSorted/d_flow_mgr.h b/include/toBeSorted/d_flow_mgr.h
new file mode 100644
index 00000000..25784a23
--- /dev/null
+++ b/include/toBeSorted/d_flow_mgr.h
@@ -0,0 +1,31 @@
+#ifndef D_FLOW_MGR_H
+#define D_FLOW_MGR_H
+
+#include "common.h"
+#include "d/d_message.h"
+#include "sized_string.h"
+
+class dFlowMgrBase_c {
+public:
+ dFlowMgrBase_c(dFlow_c *flow);
+ virtual ~dFlowMgrBase_c() {}
+
+ void triggerEntryPoint(s32 labelPart1, s32 labelPart2, u8 p4, u8 p5);
+ bool checkFinished();
+
+private:
+ /* 0x04 */ dFlow_c *mpFlow;
+ /* 0x08 */ u8 _0x08[0x14 - 0x08];
+ /* 0x14 */ SizedString<0x40> field_0x14;
+ /* 0x54 */ u8 field_0x54;
+};
+
+class dFlowMgr_c : public dFlowMgrBase_c {
+public:
+ dFlowMgr_c();
+
+private:
+ /* 0x58 */ dFlow_c mFlow;
+};
+
+#endif
diff --git a/include/toBeSorted/event_manager.h b/include/toBeSorted/event_manager.h
index c9a89c2c..6eda3f7d 100644
--- a/include/toBeSorted/event_manager.h
+++ b/include/toBeSorted/event_manager.h
@@ -19,6 +19,8 @@ public:
static bool canSkipCurrentEvent();
static dAcBase_c *getMainActorInEvent();
+ static void execute();
+
static EventManager *sInstance;
static bool isInEvent() {
diff --git a/include/toBeSorted/event_manager_util.h b/include/toBeSorted/event_manager_util.h
index 9d38951f..d2f4670b 100644
--- a/include/toBeSorted/event_manager_util.h
+++ b/include/toBeSorted/event_manager_util.h
@@ -32,15 +32,15 @@ inline bool EventManagerIsInMap() {
}
inline bool EventManagerIsMapOpen() {
- return EventManagerIsInMap() && dLytMap_c::GetInstance()->isOpenMaybe();
+ return EventManagerIsInMap() && dLytMap_c::GetInstance()->isOpen();
}
-inline bool EventManagerIsMapOpenAndMessage() {
- return EventManagerIsMapOpen() && !dMessage_c::getInstance()->getField_0x328();
+inline bool EventManagerIsMapOpenNormal() {
+ return EventManagerIsMapOpen() && !dMessage_c::getInstance()->getInMapEvent();
}
-inline bool EventManagerIsMapOpenAnd0x9008Eq10() {
- return EventManagerIsMapOpen() && dLytMap_c::GetInstance()->isSomeMapFieldEq10();
+inline bool EventManagerIsMapEventSaveObj() {
+ return EventManagerIsMapOpen() && dLytMap_c::GetInstance()->isMapEventSaveObj();
}
#endif
diff --git a/include/toBeSorted/misc_actor.h b/include/toBeSorted/misc_actor.h
index 081734e1..4024e1bc 100644
--- a/include/toBeSorted/misc_actor.h
+++ b/include/toBeSorted/misc_actor.h
@@ -1,6 +1,11 @@
#ifndef MISC_ACTOR_H
#define MISC_ACTOR_H
+// TODO - this header might be unnecessary; a lot of functions in
+// the split corresponding to this header clearly are REL functions
+// that were moved to the DOL because they need to be called from the DOL.
+// So ideally all of these declarations were moved to REL class definitions...
+
bool checkIsInSkykeepPuzzle();
void restoreSkykeepPuzzleFromGlobal();