diff options
| author | robojumper <robojumper@gmail.com> | 2025-10-10 01:05:19 +0200 |
|---|---|---|
| committer | robojumper <robojumper@gmail.com> | 2025-10-10 01:19:59 +0200 |
| commit | 6d7a7007c057a5fbbdc88f12f44aab6ec7a8d030 (patch) | |
| tree | 76f9b75a57b3f958162069bccc3c041da60b1d9d /include | |
| parent | a7ab2f6fee5eeb545d29fed66381262a163b6f98 (diff) | |
more
Diffstat (limited to 'include')
| -rw-r--r-- | include/d/d_stage.h | 8 | ||||
| -rw-r--r-- | include/d/flag/storyflag_map.h | 4 | ||||
| -rw-r--r-- | include/d/lyt/d_lyt_map.h | 52 | ||||
| -rw-r--r-- | include/d/lyt/d_lyt_map_global.h | 8 | ||||
| -rw-r--r-- | include/d/lyt/d_lyt_map_markers.h | 4 | ||||
| -rw-r--r-- | include/toBeSorted/d_flow_mgr.h | 3 |
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 ¢er, 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]; |
