summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorrobojumper <robojumper@gmail.com>2025-12-04 22:49:27 +0100
committerrobojumper <robojumper@gmail.com>2025-12-04 22:50:16 +0100
commit22cff3e05dbcb408d3a792b81547c38ec9b425e9 (patch)
tree5d0bcab72c566d2c1ad19d904583581be62e5d2b /include
parentf8c9af7dc612f635253eb4b75d8b4e802a8e15cd (diff)
95%
Diffstat (limited to 'include')
-rw-r--r--include/d/d_sc_game.h9
-rw-r--r--include/d/d_stage_mgr.h5
-rw-r--r--include/d/lyt/d_lyt_mini_game.h193
-rw-r--r--include/d/lyt/meter/d_lyt_meter.h18
-rw-r--r--include/d/lyt/meter/d_lyt_meter_rupy.h3
-rw-r--r--include/toBeSorted/minigame_mgr.h3
6 files changed, 161 insertions, 70 deletions
diff --git a/include/d/d_sc_game.h b/include/d/d_sc_game.h
index d1a905b7..b1ba5573 100644
--- a/include/d/d_sc_game.h
+++ b/include/d/d_sc_game.h
@@ -11,6 +11,7 @@
#include "f/f_profile_name.h"
#include "m/m2d.h"
#include "m/m_angle.h"
+#include "m/m_fader_base.h"
#include "m/m_vec.h"
#include "s/s_FPhase.h"
#include "s/s_State.hpp"
@@ -210,6 +211,14 @@ public:
return mFader.isSettled();
}
+ bool isFadingOut() const {
+ return mFader.isStatus(mFaderBase_c::FADING_OUT);
+ }
+
+ bool isFadingIn() const {
+ return mFader.isStatus(mFaderBase_c::FADING_IN);
+ }
+
f32 targetingScreenFn_801BBEC0() const {
return mScreen1.fn_801BBEC0();
}
diff --git a/include/d/d_stage_mgr.h b/include/d/d_stage_mgr.h
index f7a00405..de4d0b47 100644
--- a/include/d/d_stage_mgr.h
+++ b/include/d/d_stage_mgr.h
@@ -11,6 +11,7 @@
#include "egg/gfx/eggScreen.h"
#include "m/m_allocator.h"
#include "m/m_dvd.h"
+#include "m/m_fader_base.h"
#include "nw4r/g3d/g3d_camera.h"
#include "s/s_FPhase.h"
#include "s/s_State.hpp"
@@ -176,6 +177,10 @@ public:
return mFader.isSettled();
}
+ bool isFadingOut() const {
+ return mFader.isStatus(mFaderBase_c::FADING_OUT);
+ }
+
bool isInLastBoss() const {
return mIsInLastBoss;
}
diff --git a/include/d/lyt/d_lyt_mini_game.h b/include/d/lyt/d_lyt_mini_game.h
index 6ec7bc2d..b8dfb374 100644
--- a/include/d/lyt/d_lyt_mini_game.h
+++ b/include/d/lyt/d_lyt_mini_game.h
@@ -99,17 +99,22 @@ public:
ELDIN_ROLLER,
};
-private:
void startAllIconsIn();
- void startOut();
- void startIn();
- void startOutForced();
+ void setBugsNumLevel(u8 level) {
+ mBugsNumLevel = level;
+ }
+ void setBug(s32 slot, s32 bugIndex);
void collectBug(s32 slot);
void startBugsFlash();
- void setBug(s32 slot, s32 bugIndex);
bool isSlotIconOnEndReached(s32 slot) const;
+ bool isSlotBugCollected(s32 slot) const;
+
+ void startOut();
+ void startIn();
+ void startOutTemp();
+
+private:
bool isSlotIconOnEnabled(s32 slot) const;
- bool isSlotBugCollected(s32 slot);
void resetBugIconsIn();
void resetIn();
void resetOut();
@@ -147,12 +152,12 @@ private:
class dLytMiniGameTime_c {
public:
enum Variant_e {
- TIME_VARIANT_0,
- TIME_VARIANT_1,
- TIME_VARIANT_2,
- TIME_VARIANT_3,
- TIME_VARIANT_4,
- TIME_VARIANT_5,
+ TIME_VARIANT_INSECT_CAPTURE,
+ TIME_VARIANT_SPIRAL_CHARGE_TUTORIAL,
+ TIME_VARIANT_PUMPKIN_ARCHERY,
+ TIME_VARIANT_ROLLERCOASTER,
+ TIME_VARIANT_BOSS_RUSH,
+ TIME_VARIANT_TRIAL_TIME_ATTACK,
};
public:
@@ -185,27 +190,29 @@ public:
field_0x7EE = v;
}
+ void fn_8028DD80();
+ void startOut();
+ void startIn();
+ void startOutTemp();
+ void startFinish();
+ void startAlphaIn();
+ void startAlphaOut();
+
+ void setTimerValueInMilliSeconds(s32 time);
+ void setTimerSecondsValueInMilliSeconds(s32 time);
+ void setBestTime(s32 time);
+ void setShowBestTime(bool show);
+
private:
enum TimeFormat_e {
TIMER_LONG,
TIMER_SECONDS,
};
- void fn_8028DD80();
- void fn_8028DE40();
- void fn_8028DED0();
- void fn_8028DFD0();
- void startAlphaIn();
- void startAlphaOut();
- void startFinish();
void startLoop();
- void setTimerValueInMilliSeconds(s32 time);
void updateLongTimer();
- void setTimerSecondsValueInMilliSeconds(s32 time);
void updateSecondsTimer();
void saveSecondsTimer();
- void setBestTime(s32 time);
- void setShowBestTime(bool show);
void resetIn();
void resetOut();
void resetAlphaIn();
@@ -264,7 +271,6 @@ public:
bool draw();
void init();
-private:
void startCountdown();
void startCountdown120();
void startFinish();
@@ -272,6 +278,8 @@ private:
bool isCountdownEndReached() const;
bool isFinishEndReached() const;
bool isTimeupEndReached() const;
+
+private:
void resetPlayedSounds();
void resetCountdown();
void resetFinish();
@@ -298,11 +306,11 @@ private:
class dLytMiniGameScore_c {
public:
enum Variant_e {
- SCORE_VARIANT_0,
- SCORE_VARIANT_1,
- SCORE_VARIANT_2,
- SCORE_VARIANT_3,
- SCORE_VARIANT_4,
+ SCORE_VARIANT_BAMBOO_CUTTING,
+ SCORE_VARIANT_FUN_FUN_ISLAND,
+ SCORE_VARIANT_THRILL_DIGGER,
+ SCORE_VARIANT_PUMPKIN_ARCHERY,
+ SCORE_VARIANT_SPIRAL_CHARGE_TUTORIAL,
};
public:
@@ -325,7 +333,7 @@ public:
field_0x814(false),
field_0x815(false),
field_0x816(false),
- mVariant(SCORE_VARIANT_0),
+ mVariant(SCORE_VARIANT_BAMBOO_CUTTING),
field_0x81C(0),
field_0x820(false),
field_0x824(0),
@@ -350,22 +358,31 @@ public:
field_0x816 = v;
}
-private:
+ void setField_0x828(bool v) {
+ field_0x828 = v;
+ }
+
+ s32 getScore() const {
+ return mScore;
+ }
+
+ void startIn();
+ void startOut();
+ void startOutTemp();
+ void setScore(s32 score);
void fn_80291410();
- void fn_802915B0();
- void fn_80291640();
- void fn_80291740();
void startAlphaIn();
void startAlphaOut();
- void startGetScore();
+ void fn_80291D40(s32 score);
+ void fn_80291ED0(s32);
void startFinish();
+
+private:
+ void startGetScore();
void startLoop();
- void setScore(s32 score);
void fn_80291BC0();
- void fn_80291D40(s32 arg);
bool hasIncreasedScore() const;
bool hasDecreasedScore() const;
- void fn_80291ED0(s32);
void fn_80291EF0();
void increaseScore(s32);
void fn_80292040();
@@ -455,11 +472,12 @@ public:
bool draw();
void init();
+ void setScoreUp(s32 score);
+ void setScoreDown(s32 score);
+
private:
static dLytMiniGameScoreSd_c *sInstance;
- void setScoreUp(s32 score);
- void setScoreDown(s32 score);
void setScoreInternal(s32 score);
void setHighestDigitIndex(s32);
void setDigit(s32 digitIndex, s32 number);
@@ -485,15 +503,18 @@ class dLytMiniGame_c : public dBase_c {
public:
enum Variant_e {
VARIANT_0,
- VARIANT_1,
- VARIANT_2,
- VARIANT_3,
- VARIANT_4,
- VARIANT_5,
- VARIANT_6,
- VARIANT_7,
- VARIANT_8,
- VARIANT_9,
+ VARIANT_BAMBOO_CUTTING,
+ VARIANT_FUN_FUN_ISLAND,
+ VARIANT_THRILL_DIGGER,
+ VARIANT_INSECT_CAPTURE,
+ VARIANT_SPIRAL_CHARGE_TUTORIAL,
+ VARIANT_PUMPKIN_ARCHERY,
+ VARIANT_ROLLERCOASTER,
+ VARIANT_BOSS_RUSH,
+ VARIANT_TRIAL_TIME_ATTACK,
+ // These are created by dFlow_c and correspond to above entries.
+ // They also cause things to behave a bit differently. What is the purpose
+ // of these special variants?
VARIANT_10,
VARIANT_11,
VARIANT_12,
@@ -515,12 +536,12 @@ private:
public:
dLytMiniGame_c()
- : field_0x0068(0),
- field_0x0069(0),
- field_0x006A(0),
- field_0x006B(0),
- field_0x006C(0),
- field_0x006D(0),
+ : field_0x0068(false),
+ field_0x0069(false),
+ field_0x006A(false),
+ field_0x006B(false),
+ field_0x006C(false),
+ field_0x006D(false),
mVariant(1),
field_0x3864(0),
field_0x3865(0),
@@ -539,28 +560,35 @@ public:
}
/** Updates some window */
- void fn_80295940();
+ void startCountdown();
/** ??? */
- void fn_80295980();
+ void startFinish();
+ void fn_80295A20();
/** Checks to see if in BAMBOO_CUTTING .. BOSS_RUSH and returns some boolean (start?) */
- bool fn_80295AB0();
+ bool isStartCountdownDone();
/** Checks to see if in BAMBOO_CUTTING .. BOSS_RUSH and returns some boolean (end?) */
- bool fn_80295AD0();
+ bool isFinishAnimDone();
+ bool isTimeupAnimDone();
+
+ void fn_80295B20(s32);
+ void fn_80295B30(s32);
void setHighscore(s32 time);
/** GUESS: sets the start for the high score? */
- void fn_80295CB0(bool);
+ void setShowBestTime(bool);
void timeRelatedExecute();
void scoreRelatedExecute();
void setDisplayedTime(s32 time);
- void setDisplayedPoints(s32 time);
+ void setDisplayedPoints(s32 points);
void timeRelated();
void scoreRelated();
+ void fn_80295900(s32);
+
/** GUESS: Assumption based on function caller */
void setComplete() {
field_0x3866 = true;
@@ -573,16 +601,45 @@ private:
bool loadData(const char *name, s32 slot);
void unloadData(const char *name);
void attachLoadedData(const char *name, d2d::ResAccIf_c &resAcc);
-
void init();
- /* 0x0068 */ u8 field_0x0068;
- /* 0x0069 */ u8 field_0x0069;
- /* 0x006A */ u8 field_0x006A;
- /* 0x006B */ u8 field_0x006B;
- /* 0x006C */ u8 field_0x006C;
- /* 0x006D */ u8 field_0x006D;
+ void startBugsAllIconsIn();
+ void set5Bugs();
+ void set10Bugs();
+ void reInitBugs();
+ void setBug(s32 slot, s32 bugIndex);
+ void collectBug(s32 slot);
+ void startBugsFlash();
+ bool isBugIconOnEndReached(s32 slot) const;
+ bool isBugCollected(s32 slot) const;
+ void fn_80295D80();
+ void fn_80295D90(s32 points);
+ void getPumpkin(const mVec3_c &pumpkinPos, s32 unk, bool doubleScore);
+ bool fn_80295DB0();
+ bool isInEvent() const;
+ bool isPopupOpen() const;
+ bool isPopupOpenExceptHelp() const;
+ bool isFadingOut() const;
+
+ void fn_80295F90();
+ void fn_80296000();
+ void fn_80296070();
+ void fn_80296150();
+ void fn_80296210();
+ void fn_802962A0();
+ void fn_80296330();
+
+ // These two do the same thing
+ void fn_802963E0();
+ void fn_80296480();
+
+ /* 0x0068 */ bool field_0x0068;
+ /* 0x0069 */ bool field_0x0069;
+ /* 0x006A */ bool field_0x006A;
+ /* 0x006B */ bool field_0x006B;
+ /* 0x006C */ bool field_0x006C;
+ /* 0x006D */ bool field_0x006D;
/* 0x0070 */ d2d::ResAccIf_c mResAccStart;
/* 0x03E0 */ d2d::ResAccIf_c mResAccScore;
diff --git a/include/d/lyt/meter/d_lyt_meter.h b/include/d/lyt/meter/d_lyt_meter.h
index 48fef6cb..8c6dfc28 100644
--- a/include/d/lyt/meter/d_lyt_meter.h
+++ b/include/d/lyt/meter/d_lyt_meter.h
@@ -93,7 +93,7 @@ public:
bool fn_800C9F70();
bool fn_800C9FE0();
- bool fn_800CA040();
+ bool isPopupOpen();
bool isInMapEvent();
bool fn_800D5380(u8);
@@ -402,6 +402,14 @@ public:
}
}
+ static s32 getRupeeDifference() {
+ if (sInstance != nullptr) {
+ return sInstance->mMain.mRupy.getRupeeDifference();
+ } else {
+ return 0;
+ }
+ }
+
static void setField_0x13B61(u8 val) {
if (sInstance != nullptr) {
sInstance->field_0x13B61 = val;
@@ -452,6 +460,14 @@ public:
}
}
+ static bool isPopupOpen() {
+ if (sInstance != nullptr) {
+ return sInstance->mMain.isPopupOpen();
+ } else {
+ return false;
+ }
+ }
+
static bool getfn_800D97A0() {
if (sInstance != nullptr) {
return sInstance->fn_800D97A0();
diff --git a/include/d/lyt/meter/d_lyt_meter_rupy.h b/include/d/lyt/meter/d_lyt_meter_rupy.h
index 65b04517..d295d749 100644
--- a/include/d/lyt/meter/d_lyt_meter_rupy.h
+++ b/include/d/lyt/meter/d_lyt_meter_rupy.h
@@ -117,10 +117,11 @@ public:
mSize = size;
}
+ s32 getRupeeDifference() const;
+
private:
bool updateDisplayedAmount(bool suppressSound);
bool hasChangeInRupees() const;
- s32 getRupeeDifference() const;
void setDigit(s32 index, s32 digit);
void executeDigitJump();
void executeDigitBlink(s32 amount);
diff --git a/include/toBeSorted/minigame_mgr.h b/include/toBeSorted/minigame_mgr.h
index 10bb4be3..941d3ed6 100644
--- a/include/toBeSorted/minigame_mgr.h
+++ b/include/toBeSorted/minigame_mgr.h
@@ -34,6 +34,9 @@ public:
static bool checkInBossRush() {
return isInMinigameState(BOSS_RUSH);
}
+ static bool checkInFunFunIsland() {
+ return isInMinigameState(FUN_FUN_ISLAND);
+ }
private:
MinigameManager() {}