summaryrefslogtreecommitdiff
path: root/include/d
diff options
context:
space:
mode:
authorrobojumper <robojumper@gmail.com>2025-11-23 21:00:33 +0100
committerGitHub <noreply@github.com>2025-11-23 21:00:33 +0100
commitfc4700efd66bc1cea1dbe15e8b3ddd8fe5332e39 (patch)
tree2d5ce963d4d14e863caaeaf1aaeca1e373547ff0 /include/d
parent57557d11285aeff9ffd86c6e57fdc09b62b391d1 (diff)
parent88075f00a9a1e021f3eb0e9b88e86a8396ceac17 (diff)
Merge pull request #273 from robojumper/d_lyt_control_game
d_lyt_control_game OK
Diffstat (limited to 'include/d')
-rw-r--r--include/d/a/d_a_item.h9
-rw-r--r--include/d/a/d_a_itembase.h4
-rw-r--r--include/d/d_cs_game.h5
-rw-r--r--include/d/d_message.h16
-rw-r--r--include/d/flag/storyflag_map.h14
-rw-r--r--include/d/lyt/d_lyt_control_game.h73
-rw-r--r--include/d/lyt/d_lyt_draw_mark.h48
-rw-r--r--include/d/lyt/d_lyt_help.h20
-rw-r--r--include/d/lyt/d_lyt_map.h54
-rw-r--r--include/d/lyt/d_lyt_map_global.h10
-rw-r--r--include/d/lyt/d_lyt_pause.h6
-rw-r--r--include/d/lyt/meter/d_lyt_meter.h25
-rw-r--r--include/d/snd/d_snd_source_mgr.h2
13 files changed, 244 insertions, 42 deletions
diff --git a/include/d/a/d_a_item.h b/include/d/a/d_a_item.h
index 0997fb68..ed78c6c4 100644
--- a/include/d/a/d_a_item.h
+++ b/include/d/a/d_a_item.h
@@ -105,8 +105,17 @@ public:
return sIsPerformingInitialCollection;
}
+ static s32 getCollectionCurrentCount() {
+ return sCollectionCurrentCount;
+ }
+
+ s32 getQuantity() const {
+ return mItemQuantity;
+ }
+
private:
static bool sIsPerformingInitialCollection;
+ static s32 sCollectionCurrentCount;
/* 0x334 */ UNKTYPE *mpMdl; // Model has its own handling system
/* 0x338 */ dShadowCircle_c mShdw;
diff --git a/include/d/a/d_a_itembase.h b/include/d/a/d_a_itembase.h
index a08c33a2..9f91e60d 100644
--- a/include/d/a/d_a_itembase.h
+++ b/include/d/a/d_a_itembase.h
@@ -250,6 +250,10 @@ public:
static u16 getTearBit(int tearNum);
static bool setDungeonFlagForTear(int tearNum);
+ u16 getItemId_i() const {
+ return mId;
+ }
+
private:
u16 mId;
diff --git a/include/d/d_cs_game.h b/include/d/d_cs_game.h
index b064844f..52940b71 100644
--- a/include/d/d_cs_game.h
+++ b/include/d/d_cs_game.h
@@ -436,8 +436,9 @@ public:
bool isCursorActive() const {
return mCursorActive;
}
- void setField0x9A0(u8 val) {
- mCursorActive = val;
+
+ void setField_0x9A2(bool value) {
+ field_0x9A2 = value;
}
void offNextCursor() {
diff --git a/include/d/d_message.h b/include/d/d_message.h
index a0729e2c..2c17253a 100644
--- a/include/d/d_message.h
+++ b/include/d/d_message.h
@@ -247,12 +247,12 @@ public:
mInMapEvent = val;
}
- s32 getField_0x32C() const {
- return field_0x32C;
+ s32 getMapEvent() const {
+ return mMapEvent;
}
- void setField_0x32C(s32 val) {
- field_0x32C = val;
+ void setMapEvent(s32 val) {
+ mMapEvent = val;
}
void setField_0x329(bool v) {
@@ -267,6 +267,10 @@ public:
return field_0x32A;
}
+ bool getField_0x330() const {
+ return field_0x330;
+ }
+
void setField_0x330(bool v) {
field_0x330 = v;
}
@@ -367,8 +371,8 @@ private:
/* 0x32A */ bool field_0x32A;
/* 0x32B */ u8 field_0x32B;
- /* 0x32C */ s32 field_0x32C;
- /* 0x330 */ u8 field_0x330;
+ /* 0x32C */ s32 mMapEvent;
+ /* 0x330 */ bool field_0x330;
/* 0x334 */ u32 mMinigameResultPoints;
/* 0x338 */ u32 mMinigameTime;
diff --git a/include/d/flag/storyflag_map.h b/include/d/flag/storyflag_map.h
index 5ebbc965..64ca1504 100644
--- a/include/d/flag/storyflag_map.h
+++ b/include/d/flag/storyflag_map.h
@@ -60,7 +60,7 @@ enum StoryFlags_e {
/** [Harp Cutscene (Lanayru Desert layer 2 / Lanayru Mines layer 2 / Temple of Time layer 2 / Behind The Temple
* layer 3)] Story Flag #9 (0x0009) - JP 805ACD58 0x04 / US 805A9AD8 0x04
*/
- STORYFLAG_9,
+ STORYFLAG_HARP_CUTSCENE,
/** [Entering Ancient Cistern Cutscene]
* Story Flag #10 (0x000A) - JP 805ACD58 0x08 / US 805A9AD8 0x08
@@ -111,7 +111,7 @@ enum StoryFlags_e {
/** [Fire Dragon Text after SotH part Cutscene (Eldin Volcano, Digging Mitts Cave, Volcano Summit Waterfall layer
* 4)] Story Flag #19 (0x0013) - JP 805ACD5B 0x08 / US 805A9ADB 0x08
*/
- STORYFLAG_19,
+ STORYFLAG_BOKO_BASE_BEATEN,
/** [Set when learning 3rd SotH part (Groosenator to Lanayru ready)]
* Story Flag #20 (0x0014) - JP 805ACD5B 0x10 / US 805A9ADB 0x10
@@ -718,7 +718,7 @@ enum StoryFlags_e {
/** [Groose lands in Faron after Harp (Sealed Temple layer 2)]
* Story Flag #140 (0x008C) - JP 805ACD67 0x04 / US 805A9AE7 0x04
*/
- STORYFLAG_140,
+ STORYFLAG_GROOSE_LANDS_IN_FARON,
/** [Ballad of the Goddess played with Impa (Sealed Grounds layer 2)]
* Story Flag #141 (0x008D) - JP 805ACD6C 0x01 / US 805A9AEC 0x01
@@ -863,7 +863,7 @@ enum StoryFlags_e {
/** [Eldin Eruption Cutscene ready to play (set when Levias explains SotH quest, set and unset by Faron and Lanayru
* SotH)] Story Flag #169 (0x00A9) - JP 805ACD62 0x01 / US 805A9AE2 0x01
*/
- STORYFLAG_169,
+ STORYFLAG_ELDIN_VOLCANO_CAN_ERUPT,
/** [Fire Dragon teaches SotH part Cutscene (Fire Dragon's Lair layer 2)]
* Story Flag #170 (0x00AA) - JP 805ACD62 0x02 / US 805A9AE2 0x02
@@ -948,12 +948,12 @@ enum StoryFlags_e {
/** [Water Basin collected (unsets when scrapper picks up anything else)]
* Story Flag #186 (0x00BA) - JP 805ACD69 0x02 / US 805A9AE9 0x02
*/
- STORYFLAG_186,
+ STORYFLAG_SCRAPPER_HAS_WATER_BASIN,
/** [Big Frog Watered]
* Story Flag #187 (0x00BB) - JP 805ACD69 0x04 / US 805A9AE9 0x04
*/
- STORYFLAG_187,
+ STORYFLAG_SUMMIT_BIG_FROG_WATERED,
/** [Asking Fi about the Water Basin after finding the Big Flames in fromt of FS]
* Story Flag #188 (0x00BC) - JP 805ACD69 0x08 / US 805A9AE9 0x08
@@ -3738,7 +3738,7 @@ enum StoryFlags_e {
/** [set after scrappers text at start of Water Basin Escord]
* Story Flag #743 (0x02E7) - JP 805ACDA6 0x80 / US 805A9B26 0x80
*/
- STORYFLAG_743,
+ STORYFLAG_WATER_BASIN_ESCORT_STARTED,
/** [Scrapper text at start of scrapper escort]
* Story Flag #744 (0x02E8) - JP 805ACDA9 0x01 / US 805A9B29 0x01
diff --git a/include/d/lyt/d_lyt_control_game.h b/include/d/lyt/d_lyt_control_game.h
index c36b2ee0..a14bc610 100644
--- a/include/d/lyt/d_lyt_control_game.h
+++ b/include/d/lyt/d_lyt_control_game.h
@@ -1,29 +1,58 @@
#ifndef D_LYT_CONTROL_GAME_H
#define D_LYT_CONTROL_GAME_H
+// clang-format off
+// vtable order
+#include "common.h"
#include "d/d_base.h"
-#include "d/lyt/d_lyt_map.h"
-#include "d/lyt/d_lyt_wipe.h"
#include "d/lyt/meter/d_lyt_meter.h"
#include "d/lyt/msg_window/d_lyt_msg_window.h"
#include "d/lyt/msg_window/d_lyt_simple_window.h"
+#include "d/lyt/d_lyt_wipe.h"
+#include "d/lyt/d_lyt_help.h"
+#include "d/lyt/d_lyt_map.h"
#include "s/s_State.hpp"
#include "toBeSorted/arc_managers/layout_arc_manager.h"
#include "toBeSorted/raii_ptr.h"
+// clang-format on
+
+class dLytDrawMark_c;
class dLytControlGame_c : public dBase_c {
public:
dLytControlGame_c();
virtual ~dLytControlGame_c();
+ enum Cmd_e {
+ CMD_NONE = 0,
+ CMD_MAP = 1,
+ CMD_PAUSE = 2,
+ CMD_HELP = 3,
+ };
+
+ virtual int create() override;
+ virtual int doDelete() override;
+ virtual int execute() override;
+ virtual int draw() override;
+
bool isInSomeMapState() const;
bool isNotInStateMap() const;
- void openCollectionScreenDemo();
- bool isStateNormalOrNotInEvent() const;
- void somehowRelatedToEnteringLightPillars(s32, s32, s32);
-
- void fn_802CCD40(bool);
+ bool isStateNotNormalOrInEvent() const;
+ bool fn_802CFF60() const;
+
+ void setMapEventDone(bool);
void fn_802D04F0();
+ void checkForBeaconNextToMark();
+
+ void hideHelp();
+ void changeHelpText(s32 textIndex);
+ void openPause();
+ void openPauseDemo();
+ void openHelp(s32 textIndex);
+ void openMap();
+ void openMapEvent(s32 mapEvent, s32 arg1, s32 arg2);
+
+ void resetFootsteps();
const dMapFootPrintsQueue_c *getFootprintsQueue() const {
return mFootprintsMgr.getQueue();
@@ -80,31 +109,43 @@ public:
}
private:
+ bool checkStoryflag(s32 flag) const;
+ void fn_802CFA90();
+ bool canOpenPause();
+ bool releaseRes();
+ bool decrementRes();
+
/* 0x00068 */ UI_STATE_MGR_DECLARE(dLytControlGame_c);
- /* 0x000A4 */ RaiiPtr<void*> field_0x000A4;
+ /* 0x000A4 */ RaiiPtr<dLytMap_c> mpMap;
/* 0x000A8 */ dLytMeter_c mMeter;
/* 0x13C10 */ dLytMsgWindow_c mMsgWindow;
/* 0x14E34 */ dLytSimpleWindow_c mSimpleWindow;
/* 0x152A0 */ dLytWipe_c mWipe;
- /* 0x15848 */ u8 _0x15848[0x15850 - 0x15848];
+ /* 0x15848 */ dLytHelp_c *mpHelp;
+ /* 0x1584C */ dLytDrawMark_c *mpDrawMark;
/* 0x15850 */ dMapFootPrintsMgr_c mFootprintsMgr;
- /* 0x15C24 */ UNKWORD field_0x15C24;
- /* 0x15C28 */ UNKWORD field_0x15C28;
-
+ /* 0x15C24 */ s32 mCommand;
+ /* 0x15C28 */ s32 mHelpTextIndex;
/* 0x15C2C */ s32 mCurrentPauseDisp;
/* 0x15C30 */ s32 mPauseDisp00Tab;
+ /* 0x15C34 */ u8 mIsEvent;
+ /* 0x15C38 */ s32 mMapEvent;
- /* 0x15C34 */ u8 _0x15C34[0x15C40 - 0x15C34];
+ /* 0x15C3C */ u8 _0x15C3C[0x15C40 - 0x15C3C];
/* 0x15C40 */ LayoutArcControl mLytArcControl;
- /* 0x15C4C */ u8 _0x15C4C[0x15C60 - 0x15C4C];
+ /* 0x15C4C */ s32 mMapEventArg1;
+ /* 0x15C50 */ s32 mMapEventArg2;
- /* 0x15C60 */ u16 mItemForPauseDemo;
+ /* 0x15C54 */ UNKWORD field_0x15C54;
+ /* 0x15C58 */ UNKWORD field_0x15C58;
- /* 0x15C62 */ u8 _0x15C62[0x15C64 - 0x15C62];
+ /* 0x15C5C */ u8 _0x15C5C[0x15C60 - 0x15C5C];
+ /* 0x15C60 */ u16 mItemForPauseDemo;
+ /* 0x15C62 */ u16 mPickupItemCount;
/* 0x15C64 */ u16 mItemCountForPauseDemo;
/* 0x15C66 */ u8 field_0x15C66;
/* 0x15C67 */ bool mIsPauseDemo;
diff --git a/include/d/lyt/d_lyt_draw_mark.h b/include/d/lyt/d_lyt_draw_mark.h
new file mode 100644
index 00000000..8ec65799
--- /dev/null
+++ b/include/d/lyt/d_lyt_draw_mark.h
@@ -0,0 +1,48 @@
+#ifndef D_LYT_DRAW_MARK_H
+#define D_LYT_DRAW_MARK_H
+
+#include "d/lyt/d2d.h"
+#include "m/m_vec.h"
+#include "s/s_State.hpp"
+
+class dLytDrawMark_c {
+public:
+ dLytDrawMark_c() : mStateMgr(*this) {}
+ ~dLytDrawMark_c() {}
+
+ bool build(UNKWORD);
+ bool remove();
+ bool execute();
+ bool draw();
+
+ u8 getField_0x940() const {
+ return field_0x940;
+ }
+
+ void setField_0x941(u8 v) {
+ field_0x941 = v;
+ }
+
+private:
+ /* 0x000 */ UI_STATE_MGR_DECLARE(dLytDrawMark_c);
+ /* 0x018 */ d2d::LytBase_c mLyt;
+ /* 0x0CC */ d2d::AnmGroup_c mAnm[16];
+
+ /* 0x4CC */ u8 _0x4CC[0x504 - 0x4CC];
+
+ /* 0x504 */ d2d::ResAccIf_c mResAcc;
+
+ /* 0x874 */ u8 _0x874[0x88C - 0x874];
+
+ /* 0x88C */ mVec2_c field_0x88C[6];
+ /* 0x8BC */ mVec2_c field_0x8BC[6];
+
+ /* 0x8EC */ u8 _0x8EC[0x940 - 0x8EC];
+
+ /* 0x940 */ u8 field_0x940;
+ /* 0x941 */ u8 field_0x941;
+
+ /* 0x942 */ u8 _0x942[0x958 - 0x942];
+};
+
+#endif
diff --git a/include/d/lyt/d_lyt_help.h b/include/d/lyt/d_lyt_help.h
index e3bd2401..10f9f377 100644
--- a/include/d/lyt/d_lyt_help.h
+++ b/include/d/lyt/d_lyt_help.h
@@ -65,6 +65,22 @@ public:
bool setText(s32 textIndex);
void changeText(s32 textIndex);
+ static dLytHelp_c *GetInstance() {
+ return sInstance;
+ }
+
+ bool isStateEnd() const {
+ return *mStateMgr.getStateID() == StateID_End;
+ }
+
+ void requestOut() {
+ mOutRequest = true;
+ }
+
+ bool isWaiting() const {
+ return mIsWaiting;
+ }
+
private:
static dLytHelp_c *sInstance;
@@ -80,8 +96,8 @@ private:
/* 0x04C */ d2d::ResAccIf_c mResAcc;
/* 0x3BC */ dLytHelpMain_c *mpMain;
/* 0x3C0 */ bool field_0x3C0;
- /* 0x3C1 */ bool field_0x3C1;
- /* 0x3C2 */ bool field_0x3C2;
+ /* 0x3C1 */ bool mOutRequest;
+ /* 0x3C2 */ bool mIsWaiting;
/* 0x3C4 */ s32 mTextIndex;
/* 0x3C8 */ s32 field_0x3C8;
};
diff --git a/include/d/lyt/d_lyt_map.h b/include/d/lyt/d_lyt_map.h
index 54df7cf9..539c0721 100644
--- a/include/d/lyt/d_lyt_map.h
+++ b/include/d/lyt/d_lyt_map.h
@@ -4,6 +4,7 @@
#include "common.h"
#include "d/d_cursor_hit_check.h"
#include "d/d_message.h"
+#include "d/d_sc_game.h"
#include "d/lyt/d2d.h"
#include "d/lyt/d_lyt_map_capture.h"
#include "d/lyt/d_lyt_map_global.h"
@@ -13,6 +14,7 @@
#include "egg/core/eggColorFader.h"
#include "egg/core/eggFader.h"
#include "m/m2d.h"
+#include "m/m_allocator.h"
#include "m/m_angle.h"
#include "m/m_vec.h"
#include "nw4r/lyt/lyt_bounding.h"
@@ -87,10 +89,18 @@ public:
void execute();
+ void reset() {
+ mQueue.init();
+ }
+
const dMapFootPrintsQueue_c *getQueue() const {
return &mQueue;
}
+ void setFootstepMinDistSq(f32 value) {
+ mMinStepDistanceSq = value;
+ }
+
private:
/* 0x004 */ dMapFootPrintsQueue_c mQueue;
/* 0x3D0 */ f32 mMinStepDistanceSq;
@@ -636,10 +646,9 @@ public:
/** arg1 = surface province */
MAP_EVENT_SAVE_OBJ = 10,
MAP_EVENT_11 = 11,
- };
-private:
- // TODO - need to come up with better names for all of these enums and concepts
+ MAP_EVENT_MAX = 12,
+ };
enum SurfaceProvince_e {
SURFACE_PROVINCE_FARON = 0,
@@ -647,6 +656,9 @@ private:
SURFACE_PROVINCE_LANAYRU = 2,
};
+private:
+ // TODO - need to come up with better names for all of these enums and concepts
+
enum AreaGroup_e {
AREAGROUP_SKY = 1,
AREAGROUP_FARON = 2,
@@ -716,7 +728,7 @@ private:
void loadTextboxes();
void saveMapState();
- void initMapState();
+ static void initMapState();
void loadMapState();
void checkCursorPointedAtMap();
@@ -747,6 +759,10 @@ private:
mMapEvent == MAP_EVENT_11;
}
+ void setMapEventDone(bool done) {
+ mEventDone = done;
+ }
+
/* 0x0010 */ UI_STATE_MGR_DECLARE(dLytMapMain_c);
/* 0x004C */ dFlowMgrBase_c mFlowMgr;
/* 0x00A4 */ dFlow_c mFlow;
@@ -896,9 +912,13 @@ private:
class dLytMap_c {
public:
dLytMap_c() {
+ mMapFader.setVisible(false);
sInstance = this;
}
virtual ~dLytMap_c() {
+ if (dScGame_c::GetInstance() != nullptr) {
+ dScGame_c::GetInstance()->setTargetingScreenPrio(0x85);
+ }
sInstance = nullptr;
}
@@ -918,6 +938,22 @@ public:
return mMapMain.isOpen();
}
+ bool checkClose() const {
+ return mMapMain.checkClose();
+ }
+
+ bool isMapIntroDone() const {
+ return mMapMain.isMapIntroDone();
+ }
+
+ void close() {
+ mMapMain.close();
+ }
+
+ static void initMapState() {
+ dLytMapMain_c::initMapState();
+ }
+
bool isVisibleNoIntro() const {
return mMapMain.isVisibleNoIntro();
}
@@ -938,6 +974,14 @@ public:
return mMapMain.mMapEvent == dLytMapMain_c::MAP_EVENT_SAVE_OBJ;
}
+ void startMapEvent(s32 mapEvent, s32 arg1, s32 arg2) {
+ mMapMain.startMapEvent(mapEvent, arg1, arg2);
+ }
+
+ void setMapEventDone(bool done) {
+ mMapMain.setMapEventDone(done);
+ }
+
void queueMapEvent(s32 mapEvent, s32 arg1, s32 arg2) {
mMapMain.queueMapEvent(mapEvent, arg1, arg2);
}
@@ -951,7 +995,7 @@ public:
private:
/* 0x0004 */ d2d::ResAccIf_c mResAcc;
/* 0x0374 */ dLytMapMain_c mMapMain;
- /* 0x91A4 */ u8 _0x91A4[0x91C0 - 0x91A4];
+ /* 0x91A4 */ mHeapAllocator_c field_0x91A4;
/* 0x91C0 */ dLytMapFader_c mMapFader;
static dLytMap_c *sInstance;
diff --git a/include/d/lyt/d_lyt_map_global.h b/include/d/lyt/d_lyt_map_global.h
index fb0b25bf..ef5d74fa 100644
--- a/include/d/lyt/d_lyt_map_global.h
+++ b/include/d/lyt/d_lyt_map_global.h
@@ -176,8 +176,12 @@ public:
mMapEvent = v;
}
- u8 getField_0x54() const {
- return field_0x54;
+ bool isInMapEvent() const {
+ return mInMapEvent;
+ }
+
+ void setInMapEvent(bool v) {
+ mInMapEvent = v;
}
void projectOntoMap(mVec2_c &result, const mVec3_c &position) const;
@@ -213,7 +217,7 @@ private:
/* 0x4E */ u8 mAlpha;
/* 0x4F */ u8 field_0x4F;
/* 0x50 */ s32 mMapEvent;
- /* 0x54 */ u8 field_0x54;
+ /* 0x54 */ bool mInMapEvent;
/* 0x55 */ u8 field_0x55;
/* 0x56 */ mAng field_0x56;
/* 0x58 */ f32 field_0x58;
diff --git a/include/d/lyt/d_lyt_pause.h b/include/d/lyt/d_lyt_pause.h
index 033ee400..f38dcc3a 100644
--- a/include/d/lyt/d_lyt_pause.h
+++ b/include/d/lyt/d_lyt_pause.h
@@ -215,6 +215,10 @@ public:
void inRequest();
+ bool isActive() const {
+ return mIsActive;
+ }
+
static f32 sDisp00ArrowRotation;
static f32 sDisp00ArrowLength;
@@ -256,7 +260,7 @@ private:
/* 0x0833 */ u8 mCurrentSelectionTab;
/* 0x0834 */ u8 mTimer;
/* 0x0835 */ u8 field_0x0835;
- /* 0x0836 */ bool field_0x0836;
+ /* 0x0836 */ bool mIsActive;
/* 0x0837 */ bool field_0x0837;
/* 0x0838 */ bool field_0x0838;
/* 0x0839 */ bool field_0x0839;
diff --git a/include/d/lyt/meter/d_lyt_meter.h b/include/d/lyt/meter/d_lyt_meter.h
index 26f36e5a..a0ae18cc 100644
--- a/include/d/lyt/meter/d_lyt_meter.h
+++ b/include/d/lyt/meter/d_lyt_meter.h
@@ -74,6 +74,13 @@ public:
POSITION_MAP = 1,
};
+ enum Mode_e {
+ MODE_MAP_INIT = 0,
+ MODE_MAP = 1,
+ MODE_PAUSE = 2,
+ MODE_NONE = 4,
+ };
+
dLytMeterMain_c();
virtual ~dLytMeterMain_c() {}
@@ -250,6 +257,18 @@ public:
return mMain.mItemSelect.fn_800F0220(arg);
}
+ bool itemSelectFn800EFDF0(bool b) const {
+ return mMain.mItemSelect.fn_800EFDF0(b);
+ }
+
+ bool minusBtnFn800F7600() const {
+ return mMain.mMinusBtn.fn_800F7600();
+ }
+
+ bool dowsingFn800FE4B0() const {
+ return mMain.mDowsing.fn_800FE4B0();
+ }
+
bool dowsingDemoRelated(s32 arg) {
return mMain.mDowsing.fn_800FE3C0(arg);
}
@@ -484,6 +503,12 @@ public:
}
}
+ static void setPlusBtnCall(bool call) {
+ if (sInstance != nullptr) {
+ sInstance->mMain.mPlusBtn.setCall(call);
+ }
+ }
+
static void setSelectBtn(f32 angle, f32 length) {
if (sInstance != nullptr) {
dLytMeterMain_c *main = &sInstance->mMain;
diff --git a/include/d/snd/d_snd_source_mgr.h b/include/d/snd/d_snd_source_mgr.h
index f3f56952..c94b3404 100644
--- a/include/d/snd/d_snd_source_mgr.h
+++ b/include/d/snd/d_snd_source_mgr.h
@@ -66,6 +66,8 @@ public:
void setMutedFromFader(bool muteFlag);
void onEventStart();
void onEventEnd();
+ void fn_803852B0();
+ void fn_803852F0();
private:
void calcEnemyObjVolume();