diff options
| author | robojumper <robojumper@gmail.com> | 2025-12-04 22:49:27 +0100 |
|---|---|---|
| committer | robojumper <robojumper@gmail.com> | 2025-12-04 22:50:16 +0100 |
| commit | 22cff3e05dbcb408d3a792b81547c38ec9b425e9 (patch) | |
| tree | 5d0bcab72c566d2c1ad19d904583581be62e5d2b /include | |
| parent | f8c9af7dc612f635253eb4b75d8b4e802a8e15cd (diff) | |
95%
Diffstat (limited to 'include')
| -rw-r--r-- | include/d/d_sc_game.h | 9 | ||||
| -rw-r--r-- | include/d/d_stage_mgr.h | 5 | ||||
| -rw-r--r-- | include/d/lyt/d_lyt_mini_game.h | 193 | ||||
| -rw-r--r-- | include/d/lyt/meter/d_lyt_meter.h | 18 | ||||
| -rw-r--r-- | include/d/lyt/meter/d_lyt_meter_rupy.h | 3 | ||||
| -rw-r--r-- | include/toBeSorted/minigame_mgr.h | 3 |
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() {} |
