summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorrobojumper <robojumper@gmail.com>2025-10-10 01:05:19 +0200
committerrobojumper <robojumper@gmail.com>2025-10-10 01:19:59 +0200
commit6d7a7007c057a5fbbdc88f12f44aab6ec7a8d030 (patch)
tree76f9b75a57b3f958162069bccc3c041da60b1d9d /include
parenta7ab2f6fee5eeb545d29fed66381262a163b6f98 (diff)
more
Diffstat (limited to 'include')
-rw-r--r--include/d/d_stage.h8
-rw-r--r--include/d/flag/storyflag_map.h4
-rw-r--r--include/d/lyt/d_lyt_map.h52
-rw-r--r--include/d/lyt/d_lyt_map_global.h8
-rw-r--r--include/d/lyt/d_lyt_map_markers.h4
-rw-r--r--include/toBeSorted/d_flow_mgr.h3
6 files changed, 61 insertions, 18 deletions
diff --git a/include/d/d_stage.h b/include/d/d_stage.h
index 5d48f917..9608dd07 100644
--- a/include/d/d_stage.h
+++ b/include/d/d_stage.h
@@ -78,6 +78,14 @@ public:
return field_0x1EE;
}
+ void setField_0x1E8(u8 v) {
+ field_0x1E8 = v;
+ }
+
+ void setField_0x1EF(u8 v) {
+ field_0x1EF = v;
+ }
+
void init(MapRelated *);
void fn_801b4900();
void fn_801B4B80(u32 mapParams, const mVec3_c &center, const mVec3_c &size);
diff --git a/include/d/flag/storyflag_map.h b/include/d/flag/storyflag_map.h
index 759bf0ef..11c5a099 100644
--- a/include/d/flag/storyflag_map.h
+++ b/include/d/flag/storyflag_map.h
@@ -96,7 +96,7 @@ enum StoryFlags_e {
* 3 / Water Dragon's Lair layer 3 / Behind The Temple layer 7)] Story Flag #16 (0x0010) - JP 805ACD5B 0x02 / US
* 805A9ADB 0x02
*/
- STORYFLAG_16,
+ STORYFLAG_WATER_DRAGON_SOTH_PART,
/** [Triforce Completed]
* Story Flag #17 (0x0011) - JP 805ACD5B 0x04 / US 805A9ADB 0x04
@@ -2657,7 +2657,7 @@ enum StoryFlags_e {
/** [Flooded Faron Woods Introductory Cutscene]
* Story Flag #527 (0x020F) - JP 805ACD94 0x10 / US 805A9B14 0x10
*/
- STORYFLAG_527,
+ STORYFLAG_FLOODED_FARON_WOODS_DISCOVERED,
/** [Finishing a Silent Realm for the First time]
* Story Flag #528 (0x0210) - JP 805ACD94 0x20 / US 805A9B14 0x20
diff --git a/include/d/lyt/d_lyt_map.h b/include/d/lyt/d_lyt_map.h
index f79e50d0..8a0551d6 100644
--- a/include/d/lyt/d_lyt_map.h
+++ b/include/d/lyt/d_lyt_map.h
@@ -20,13 +20,15 @@
#include "s/s_State.hpp"
#include "toBeSorted/d_flow_mgr.h"
+class dAcTbox_c;
+
/** Bird Statue Definition (StatueSelectDestination) */
struct dMapSaveObjDefinition {
/* 0x00 */ const char *stageName;
/* 0x04 */ u8 room;
/* 0x05 */ u8 layer;
- /* 0x06 */ u8 enrance;
- /* 0x08 */ UNKWORD field_0x08;
+ /* 0x06 */ u8 entrance;
+ /* 0x08 */ s32 type;
/* 0x0C */ const char *statueLabel;
};
@@ -129,10 +131,9 @@ struct dLytMapFloorBtnAnmGroups {
/* 0xC0 */ d2d::AnmGroup_c mOnOffLight;
};
-// Ostensibly a bounding box for lyt elements
-struct LytMapTwoVecs {
- /* 0x00 */ mVec3_c field_0x00;
- /* 0x0C */ mVec3_c field_0x0C;
+struct dLytMapBoundingWorldBounds {
+ /* 0x00 */ mVec3_c min;
+ /* 0x0C */ mVec3_c max;
};
/** 2D UI - Map - a placed down beacon */
@@ -405,6 +406,10 @@ public:
void set(nw4r::lyt::Bounding **pStatueBoundings, s32 count);
void hide(s32 statueIdx);
+ void setCurrentStatue(s32 idx) {
+ mCurrentlyInStatue = idx;
+ }
+
private:
f32 setStatueLabel(const char *label);
@@ -417,6 +422,8 @@ private:
};
class dLytMapSaveCaption_c {
+ friend class dLytMapMain_c;
+
public:
dLytMapSaveCaption_c() : mStateMgr(*this, sStateID::null) {}
@@ -441,6 +448,8 @@ private:
// Size 0x190
class dLytMapSaveObj_c {
+ friend class dLytMapMain_c;
+
public:
dLytMapSaveObj_c()
: mStateMgr(*this, sStateID::null), mSelectRequest(false), mDecideRequest(false), mDecideFinished(false) {}
@@ -549,6 +558,13 @@ public:
STATE_FUNC_DECLARE(dLytMapMain_c, EventSaveObjDecide);
private:
+ // TODO - used elsewhere?
+ enum Province_e {
+ PROVINCE_FARON = 0,
+ PROVINCE_ELDIN = 1,
+ PROVINCE_LANAYRU = 2,
+ };
+
dLytMapGlobal_c *getGlobal();
void checkScroll();
bool needsNav(s32 mapMode) const;
@@ -561,6 +577,8 @@ private:
bool canPlaceBeacons(s32 mapMode) const;
bool isPointingAtMainMap() const;
+ s32 getSelectedSaveObjIdx() const;
+
f32 fn_80142D90(s32);
void fn_80142F00(mVec3_c &, s32 mapMode, u8, const mVec3_c &, const mAng &);
void fn_8013FB70(const mVec3_c &, f32);
@@ -588,7 +606,11 @@ private:
void checkCursorPointedAtMap();
- void fn_8013B0C0();
+ void calculateBoundingWorldHitboxes();
+
+ dAcTbox_c *findGoddessChestForStoryflag(s32 flag) const;
+ bool checkStoryflag(s32 flag) const;
+ void displaySaveObjs();
static dMapSavedData sSavedMapData;
static const dMapSavedData sDefaultMapData;
@@ -624,7 +646,7 @@ private:
/* 0x825C */ nw4r::lyt::Bounding *field_0x825C[12];
/* 0x828C */ mVec3_c field_0x828C[12];
/* 0x831C */ UNKWORD field_0x831C;
- /* 0x8320 */ UNKWORD field_0x8320;
+ /* 0x8320 */ u32 field_0x8320;
/* 0x8324 */ u8 _0x8324[0x8328 - 0x8324];
@@ -655,7 +677,7 @@ private:
/* 0x8930 */ mVec3_c field_0x8930;
/* 0x893C */ mVec3_c field_0x893C;
- /* 0x8948 */ LytMapTwoVecs field_0x8948[33];
+ /* 0x8948 */ dLytMapBoundingWorldBounds mBoundingWorldBounds[33];
/* 0x8C60 */ s32 mMaxBeaconCount;
/* 0x8C64 */ s32 field_0x8C64;
@@ -673,7 +695,7 @@ private:
/* 0x8C93 */ u8 field_0x8C93;
/* 0x8C94 */ s32 field_0x8C94;
/* 0x8C98 */ UNKWORD field_0x8C98;
- /* 0x8C9C */ UNKWORD field_0x8C9C;
+ /* 0x8C9C */ s32 mProvince;
/* 0x8CA0 */ u8 _0x8CA0[0x8CA4 - 0x8CA0];
@@ -685,11 +707,9 @@ private:
/* 0x8CAE */ u8 _0x8CAE[0x8CB0 - 0x8CAE];
- /* 0x8CB0 */ u32 field_0x8CB0;
+ /* 0x8CB0 */ u32 mEventTimer;
/* 0x8CB4 */ UNKWORD field_0x8CB4;
-
- /* 0x8CB8 */ u8 _0x8CB8[0x8CBC - 0x8CB8];
-
+ /* 0x8CB8 */ u32 field_0x8CB8;
/* 0x8CBC */ nw4r::lyt::Bounding *mpMapBounding;
/* 0x8CC0 */ bool mPointerOnMap;
/* 0x8CC1 */ bool mPointerCanPlaceBeacon;
@@ -732,7 +752,7 @@ private:
/* 0x8DB0 */ UNKWORD field_0x8DB0;
/* 0x8DB4 */ bool mNavEnabled;
/* 0x8DB5 */ bool mDrawScaleFrame;
- /* 0x8DB8 */ UNKWORD field_0x8DB8;
+ /* 0x8DB8 */ s32 mDisplayedBeaconCount;
/* 0x8DBC */ bool mShowIslandNames;
/* 0x8DBD */ bool field_0x8DBD;
/* 0x8DBE */ u8 field_0x8DBE;
@@ -801,7 +821,7 @@ public:
}
const dMapSaveObjDefinition *getSaveObjDefinition(s32 statueIdx) const {
- return mMapMain.getSaveObjDefinition(mMapMain.field_0x8C9C, statueIdx);
+ return mMapMain.getSaveObjDefinition(mMapMain.mProvince, statueIdx);
}
private:
diff --git a/include/d/lyt/d_lyt_map_global.h b/include/d/lyt/d_lyt_map_global.h
index bab821d0..63a464f7 100644
--- a/include/d/lyt/d_lyt_map_global.h
+++ b/include/d/lyt/d_lyt_map_global.h
@@ -128,6 +128,10 @@ public:
return field_0x4C;
}
+ void setField_0x4C(u8 v) {
+ field_0x4C = v;
+ }
+
u8 getField_0x4D() const {
return field_0x4D;
}
@@ -136,6 +140,10 @@ public:
return field_0x4F;
}
+ void setField_0x4F(u8 v) {
+ field_0x4F = v;
+ }
+
UNKWORD getField_0x50() const {
return field_0x50;
}
diff --git a/include/d/lyt/d_lyt_map_markers.h b/include/d/lyt/d_lyt_map_markers.h
index b95d627b..35113431 100644
--- a/include/d/lyt/d_lyt_map_markers.h
+++ b/include/d/lyt/d_lyt_map_markers.h
@@ -480,6 +480,10 @@ public:
field_0x06F4 = v;
}
+ void setField_0x0702(u8 v) {
+ field_0x0702 = v;
+ }
+
void setField_0x0703(u8 v) {
field_0x0703 = v;
}
diff --git a/include/toBeSorted/d_flow_mgr.h b/include/toBeSorted/d_flow_mgr.h
index e1834154..25784a23 100644
--- a/include/toBeSorted/d_flow_mgr.h
+++ b/include/toBeSorted/d_flow_mgr.h
@@ -10,6 +10,9 @@ 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];