summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorelijah-thomas774 <elijahthomas774@gmail.com>2026-02-16 21:39:24 -0500
committerelijah-thomas774 <elijahthomas774@gmail.com>2026-02-16 21:39:24 -0500
commit90e60e3341d82a6cf9faa84b532ab7d998ea9813 (patch)
tree860d876db4a5840b2eefcf3ead02382735450fd9 /include
parentb2d191f4a4fe8c2528ecc8af5ef5782a318e680b (diff)
porgress on d_t_scene_change. Area calc rename
Diffstat (limited to 'include')
-rw-r--r--include/d/d_player_act.h2
-rw-r--r--include/d/t/d_t_scene_change.h40
-rw-r--r--include/toBeSorted/area_math.h3
3 files changed, 43 insertions, 2 deletions
diff --git a/include/d/d_player_act.h b/include/d/d_player_act.h
index 4d3b9dc2..579e0558 100644
--- a/include/d/d_player_act.h
+++ b/include/d/d_player_act.h
@@ -372,7 +372,7 @@ public:
/* vt 0x26C */ virtual bool doesGameOver() {
return true;
}
- /* vt 0x270 */ virtual void triggerExitRelated() {}
+ /* vt 0x270 */ virtual void triggerExitRelated(UNKWORD sceneLink, UNKWORD pathIdx, UNKWORD sceneType) {}
/* vt 0x274 */ virtual mAng vt_0x274() {
return mRotation.y;
}
diff --git a/include/d/t/d_t_scene_change.h b/include/d/t/d_t_scene_change.h
index 0b6c063b..017c8d58 100644
--- a/include/d/t/d_t_scene_change.h
+++ b/include/d/t/d_t_scene_change.h
@@ -2,13 +2,53 @@
#define D_T_SCENE_CHANGE_H
#include "d/t/d_tg.h"
+#include "m/m_mtx.h"
+#include "m/m_vec.h"
class dTgSceneChange_c : public dTg_c {
public:
+ // TODO: Move this somewhere not in d_t_scene_change.
+ // The Variable gets passed to dAcPy_c::triggerExitRelated
+ enum Type_e {
+ /* 0x0 */ TYPE_0,
+ /* 0x1 */ TYPE_1, // Restricting Movement?
+ /* 0x2 */ TYPE_2,
+ /* 0x3 */ TYPE_3, // Forced Walk
+ /* 0x4 */ TYPE_4, // Loftwing
+ /* 0x5 */ TYPE_5, // Landing on Skyloft
+ /* 0x6 */ TYPE_6, // Enter/Exit Dungeon
+ /* 0x7 */ TYPE_7, // Minecart
+ /* 0x8 */ TYPE_8, // Cistern Rope to Basement
+ /* 0x9 */ TYPE_9, // Light Pillar?
+ /* 0xA */ TYPE_A, // Boat
+ /* 0xB */ TYPE_B, // Actor Related
+ };
+
dTgSceneChange_c() {}
virtual ~dTgSceneChange_c() {}
+ virtual int create() override;
+ virtual int draw() override;
+ virtual int actorExecute() override;
+
+private:
+ bool checkDisabled() const;
+ bool checkScrapper();
+
+ void savePlayerPosition();
+
private:
+ /* 0x0FC */ mMtx_c mArea;
+ /* 0x12C */ u8 mSceneLink;
+ /* 0x12D */ u8 mSceneType;
+ /* 0x12E */ u8 mPathId;
+ /* 0x12F */ u8 mEnableSceneflag;
+ /* 0x130 */ u16 mEnableStoryflag;
+ /* 0x132 */ u16 mDisableStoryflag;
+ /* 0x134 */ bool field_0x134;
+ /* 0x135 */ bool field_0x135;
+ /* 0x136 */ bool field_0x136;
+ /* 0x138 */ mVec3_c field_0x138; // Player position on Scrapper Stop
};
#endif
diff --git a/include/toBeSorted/area_math.h b/include/toBeSorted/area_math.h
index b30a62fa..f4f52600 100644
--- a/include/toBeSorted/area_math.h
+++ b/include/toBeSorted/area_math.h
@@ -6,6 +6,7 @@
#include "m/m_vec.h"
void matrixCreateFromPosRotYScale(mMtx_c &, const mVec3_c &, const mAng, const mVec3_c &, mMtx_c *, f32);
-bool checkIfVec3fInMatrix(const mMtx_c &, const mVec3_c &);
+bool checkAreaBox(const mMtx_c &, const mVec3_c &);
+bool checkAreaCyl(const mMtx_c &, const mVec3_c &);
#endif