diff options
| author | elijah-thomas774 <elijahthomas774@gmail.com> | 2026-02-16 21:39:24 -0500 |
|---|---|---|
| committer | elijah-thomas774 <elijahthomas774@gmail.com> | 2026-02-16 21:39:24 -0500 |
| commit | 90e60e3341d82a6cf9faa84b532ab7d998ea9813 (patch) | |
| tree | 860d876db4a5840b2eefcf3ead02382735450fd9 /include | |
| parent | b2d191f4a4fe8c2528ecc8af5ef5782a318e680b (diff) | |
porgress on d_t_scene_change. Area calc rename
Diffstat (limited to 'include')
| -rw-r--r-- | include/d/d_player_act.h | 2 | ||||
| -rw-r--r-- | include/d/t/d_t_scene_change.h | 40 | ||||
| -rw-r--r-- | include/toBeSorted/area_math.h | 3 |
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 |
