diff options
| author | lepelog <25211966+lepelog@users.noreply.github.com> | 2025-12-04 13:42:58 +0100 |
|---|---|---|
| committer | lepelog <25211966+lepelog@users.noreply.github.com> | 2025-12-04 13:50:58 +0100 |
| commit | 413cfaa41f0811e209d16dea6a9aa79df757679d (patch) | |
| tree | 1fa2369fc0cb166a8b87c3173be7012257e19b07 /include/d/a/obj | |
| parent | 08844fb5da445344613971b66e7fdc9ff55290ac (diff) | |
insect tag progress
Diffstat (limited to 'include/d/a/obj')
| -rw-r--r-- | include/d/a/obj/d_a_obj_soil.h | 7 | ||||
| -rw-r--r-- | include/d/a/obj/d_a_obj_warp.h | 48 |
2 files changed, 54 insertions, 1 deletions
diff --git a/include/d/a/obj/d_a_obj_soil.h b/include/d/a/obj/d_a_obj_soil.h index c4e24b31..64f1f0f9 100644 --- a/include/d/a/obj/d_a_obj_soil.h +++ b/include/d/a/obj/d_a_obj_soil.h @@ -14,8 +14,13 @@ public: STATE_FUNC_DECLARE(dAcOsoil_c, Hole); STATE_FUNC_DECLARE(dAcOsoil_c, Ready); + bool isStateHole() { + return mStateMgr.isState(StateID_Hole); + } + private: - /* 0x??? */ STATE_MGR_DECLARE(dAcOsoil_c); + /* 0x330 */ u8 field_0x330[0x6CC-0x330]; + /* 0x6CC */ STATE_MGR_DECLARE(dAcOsoil_c); }; #endif diff --git a/include/d/a/obj/d_a_obj_warp.h b/include/d/a/obj/d_a_obj_warp.h index 1c64e61c..0b2f4874 100644 --- a/include/d/a/obj/d_a_obj_warp.h +++ b/include/d/a/obj/d_a_obj_warp.h @@ -2,6 +2,7 @@ #define D_A_OBJ_WARP_H #include "d/a/obj/d_a_obj_base.h" +#include "d/flag/storyflag_manager.h" #include "s/s_State.hpp" #include "s/s_StateMgr.hpp" @@ -18,7 +19,54 @@ public: STATE_FUNC_DECLARE(dAcOWarp_c, GateIn); STATE_FUNC_DECLARE(dAcOWarp_c, GateClear); + virtual void fn_0x80(); + virtual void fn_0x84(); + virtual void fn_0x88(); + virtual s32 checkStateGateOpen(); + virtual s32 fn_0x90(); + virtual s32 checkThisHasSongItem(); + + bool isFaronTrial() const { + return mTrialIndexBitmask & 0x10; + } + + bool isEldinTrial() const { + return mTrialIndexBitmask & 0x40; + } + + bool isLanayruTrial() const { + return mTrialIndexBitmask & 0x20; + } + + bool isHyliaTrial() const { + return mTrialIndexBitmask & 0x80; + } + + bool isFaronTrialAndCompleted() const { + return isFaronTrial() && StoryflagManager::sInstance->getFlag(STORYFLAG_FARON_TRIAL_COMPLETE); + } + + bool isEdlinTrialAndCompleted() const { + return isEldinTrial() && StoryflagManager::sInstance->getFlag(STORYFLAG_ELDIN_TRIAL_COMPLETE); + } + + bool isLanayruTrialAndCompleted() const { + return isLanayruTrial() && StoryflagManager::sInstance->getFlag(STORYFLAG_LANAYRU_TRIAL_COMPLETE); + } + + bool isHyliaTrialAndCompleted() const { + return isHyliaTrial() && StoryflagManager::sInstance->getFlag(STORYFLAG_HYLIA_TRIAL_COMPLETE); + } + + bool isTrialComplete() const { + return isFaronTrialAndCompleted() + || isEdlinTrialAndCompleted() + || isLanayruTrialAndCompleted() + || isHyliaTrialAndCompleted(); + } private: + /* 0x330 */ u8 field_0x330[0xC66-0x330]; + /* 0xC66 */ u8 mTrialIndexBitmask; /* 0x??? */ STATE_MGR_DECLARE(dAcOWarp_c); }; |
