summaryrefslogtreecommitdiff
path: root/include/d/a/obj
diff options
context:
space:
mode:
authorlepelog <25211966+lepelog@users.noreply.github.com>2025-12-04 13:42:58 +0100
committerlepelog <25211966+lepelog@users.noreply.github.com>2025-12-04 13:50:58 +0100
commit413cfaa41f0811e209d16dea6a9aa79df757679d (patch)
tree1fa2369fc0cb166a8b87c3173be7012257e19b07 /include/d/a/obj
parent08844fb5da445344613971b66e7fdc9ff55290ac (diff)
insect tag progress
Diffstat (limited to 'include/d/a/obj')
-rw-r--r--include/d/a/obj/d_a_obj_soil.h7
-rw-r--r--include/d/a/obj/d_a_obj_warp.h48
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);
};