mirror of
https://github.com/zeldaret/ss
synced 2026-05-30 00:46:41 -04:00
82%
This commit is contained in:
@@ -1620,6 +1620,7 @@ d/lyt/d_lyt_mini_game.cpp:
|
||||
.text start:0x8028BCE0 end:0x802969E0 align:16
|
||||
.rodata start:0x804EE7D8 end:0x804EEB68
|
||||
.data start:0x80538E58 end:0x80539B68
|
||||
.sdata start:0x80573B90 end:0x80573BB0
|
||||
.sbss start:0x80575970 end:0x80575990
|
||||
.sdata2 start:0x8057C700 end:0x8057C760
|
||||
|
||||
|
||||
+25
-25
@@ -15409,21 +15409,21 @@ remove__21dLytMiniGameScoreSd_cFv = .text:0x802937C0; // type:function size:0x74
|
||||
execute__21dLytMiniGameScoreSd_cFv = .text:0x80293840; // type:function size:0xF0
|
||||
draw__21dLytMiniGameScoreSd_cFv = .text:0x80293930; // type:function size:0x48
|
||||
init__21dLytMiniGameScoreSd_cFv = .text:0x80293980; // type:function size:0xA8
|
||||
fn_80293A30__21dLytMiniGameScoreSd_cFv = .text:0x80293A30; // type:function size:0x60
|
||||
fn_80293A90__21dLytMiniGameScoreSd_cFv = .text:0x80293A90; // type:function size:0x60
|
||||
fn_80293AF0__21dLytMiniGameScoreSd_cFl = .text:0x80293AF0; // type:function size:0xC0
|
||||
fn_80293BB0__21dLytMiniGameScoreSd_cFv = .text:0x80293BB0; // type:function size:0xA8
|
||||
fn_80293C60__21dLytMiniGameScoreSd_cFv = .text:0x80293C60; // type:function size:0xE0
|
||||
fn_80293D40__21dLytMiniGameScoreSd_cFv = .text:0x80293D40; // type:function size:0x80
|
||||
fn_80293DC0__21dLytMiniGameScoreSd_cFv = .text:0x80293DC0; // type:function size:0x80
|
||||
fn_80293E40__21dLytMiniGameScoreSd_cFv = .text:0x80293E40; // type:function size:0x88
|
||||
fn_80293ED0__21dLytMiniGameScoreSd_cFv = .text:0x80293ED0; // type:function size:0x74
|
||||
fn_80293F50__21dLytMiniGameScoreSd_cFv = .text:0x80293F50; // type:function size:0x54
|
||||
fn_80293FB0__21dLytMiniGameScoreSd_cFv = .text:0x80293FB0; // type:function size:0x54
|
||||
fn_80294010__21dLytMiniGameScoreSd_cFv = .text:0x80294010; // type:function size:0xC
|
||||
fn_80294020__21dLytMiniGameScoreSd_cFv = .text:0x80294020; // type:function size:0xC
|
||||
fn_80294030__21dLytMiniGameScoreSd_cCFv = .text:0x80294030; // type:function size:0x44
|
||||
fn_80294080__21dLytMiniGameScoreSd_cCFv = .text:0x80294080; // type:function size:0x44
|
||||
setScoreUp__21dLytMiniGameScoreSd_cFl = .text:0x80293A30; // type:function size:0x60
|
||||
setScoreDown__21dLytMiniGameScoreSd_cFl = .text:0x80293A90; // type:function size:0x60
|
||||
setScoreInternal__21dLytMiniGameScoreSd_cFl = .text:0x80293AF0; // type:function size:0xC0
|
||||
setHighestDigitIndex__21dLytMiniGameScoreSd_cFl = .text:0x80293BB0; // type:function size:0xA8
|
||||
setDigit__21dLytMiniGameScoreSd_cFll = .text:0x80293C60; // type:function size:0xE0
|
||||
resetScoreUp__21dLytMiniGameScoreSd_cFv = .text:0x80293D40; // type:function size:0x80
|
||||
resetScoreDown__21dLytMiniGameScoreSd_cFv = .text:0x80293DC0; // type:function size:0x80
|
||||
resetDigits__21dLytMiniGameScoreSd_cFv = .text:0x80293E40; // type:function size:0x88
|
||||
resetPosition__21dLytMiniGameScoreSd_cFv = .text:0x80293ED0; // type:function size:0x74
|
||||
startScoreUp__21dLytMiniGameScoreSd_cFv = .text:0x80293F50; // type:function size:0x54
|
||||
startScoreDown__21dLytMiniGameScoreSd_cFv = .text:0x80293FB0; // type:function size:0x54
|
||||
stopScoreUp__21dLytMiniGameScoreSd_cFv = .text:0x80294010; // type:function size:0xC
|
||||
stopScoreDown__21dLytMiniGameScoreSd_cFv = .text:0x80294020; // type:function size:0xC
|
||||
isScoreUpEndReached__21dLytMiniGameScoreSd_cCFv = .text:0x80294030; // type:function size:0x44
|
||||
isScoreDownEndReached__21dLytMiniGameScoreSd_cCFv = .text:0x80294080; // type:function size:0x44
|
||||
dLytMiniGame_c_classInit__Fv = .text:0x802940D0; // type:function size:0x380
|
||||
__dt__19dLytMiniGameScore_cFv = .text:0x80294450; // type:function size:0x74
|
||||
__dt__21dLytMiniGameScoreSd_cFv = .text:0x802944D0; // type:function size:0x74
|
||||
@@ -15433,10 +15433,10 @@ __dt__18dLytMiniGameBugs_cFv = .text:0x80294650; // type:function size:0x74
|
||||
__ct__26dLytMiniGamePumpkinParts_cFv = .text:0x802946D0; // type:function size:0x6C
|
||||
__dt__26dLytMiniGamePumpkinParts_cFv = .text:0x80294740; // type:function size:0x74
|
||||
__dt__21dLytMiniGamePumpkin_cFv = .text:0x802947C0; // type:function size:0x68
|
||||
LytMiniGame__init = .text:0x80294830; // type:function size:0xA94
|
||||
LytMiniGame__destructRes = .text:0x802952D0; // type:function size:0x31C
|
||||
fn_802955F0 = .text:0x802955F0; // type:function size:0xD4
|
||||
fn_802956D0 = .text:0x802956D0; // type:function size:0x6C
|
||||
create__14dLytMiniGame_cFv = .text:0x80294830; // type:function size:0xA94
|
||||
doDelete__14dLytMiniGame_cFv = .text:0x802952D0; // type:function size:0x31C
|
||||
execute__14dLytMiniGame_cFv = .text:0x802955F0; // type:function size:0xD4
|
||||
draw__14dLytMiniGame_cFv = .text:0x802956D0; // type:function size:0x6C
|
||||
scoreRelatedExecute__14dLytMiniGame_cFv = .text:0x80295740; // type:function size:0x8C
|
||||
scoreRelated__14dLytMiniGame_cFv = .text:0x802957D0; // type:function size:0x78
|
||||
setDisplayedPoints__14dLytMiniGame_cFl = .text:0x80295850; // type:function size:0xA8
|
||||
@@ -15480,11 +15480,11 @@ fn_802962A0 = .text:0x802962A0; // type:function size:0x88
|
||||
fn_80296330 = .text:0x80296330; // type:function size:0xA4
|
||||
fn_802963E0 = .text:0x802963E0; // type:function size:0x98
|
||||
fn_80296480 = .text:0x80296480; // type:function size:0x98
|
||||
fn_80296520 = .text:0x80296520; // type:function size:0x58
|
||||
fn_80296580 = .text:0x80296580; // type:function size:0x130
|
||||
fn_802966B0 = .text:0x802966B0; // type:function size:0x30
|
||||
fn_802966E0 = .text:0x802966E0; // type:function size:0x40
|
||||
decrementLayoutArcRefCount = .text:0x80296720; // type:function size:0x4C
|
||||
init__14dLytMiniGame_cFv = .text:0x80296520; // type:function size:0x58
|
||||
loadData__14dLytMiniGame_cFPCcl = .text:0x80296580; // type:function size:0x130
|
||||
isLoading__14dLytMiniGame_cCFPCc = .text:0x802966B0; // type:function size:0x30
|
||||
attachLoadedData__14dLytMiniGame_cFPCcRQ23d2d10ResAccIf_c = .text:0x802966E0; // type:function size:0x40
|
||||
unloadData__14dLytMiniGame_cFPCc = .text:0x80296720; // type:function size:0x4C
|
||||
__dt__14dLytMiniGame_cFv = .text:0x80296770; // type:function size:0x270
|
||||
LytMeterSuiryuScoreBase__stateNoneEnter = .text:0x802969E0; // type:function size:0x4
|
||||
LytMeterSuiryuScoreBase__stateNoneUpdate = .text:0x802969F0; // type:function size:0x4
|
||||
@@ -20855,7 +20855,7 @@ playMinigameStartSound__20dSndSmallEffectMgr_cFv = .text:0x8037EA80; // type:fun
|
||||
playMinigameFinishSound__20dSndSmallEffectMgr_cFv = .text:0x8037EA90; // type:function size:0x40
|
||||
playMinigameFinishWhistleSound__20dSndSmallEffectMgr_cFv = .text:0x8037EAD0; // type:function size:0x40
|
||||
playMinigameScoreUpSound__20dSndSmallEffectMgr_cFl = .text:0x8037EB10; // type:function size:0x11C
|
||||
playMinigameScoreDownSound__20dSndSmallEffectMgr_cFv = .text:0x8037EC30; // type:function size:0x8
|
||||
playMinigameScoreDownSound__20dSndSmallEffectMgr_cFl = .text:0x8037EC30; // type:function size:0x8
|
||||
playMinigameMusasabiSound__20dSndSmallEffectMgr_cFl = .text:0x8037EC40; // type:function size:0x3C
|
||||
playSkbSound__20dSndSmallEffectMgr_cFUl = .text:0x8037EC80; // type:function size:0xB0
|
||||
playDemoSound__20dSndSmallEffectMgr_cFUlPQ34nw4r3snd11SoundHandle = .text:0x8037ED30; // type:function size:0x68
|
||||
|
||||
+109
-30
@@ -145,18 +145,28 @@ private:
|
||||
|
||||
/** 2D UI - Mini Game - Time */
|
||||
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,
|
||||
};
|
||||
|
||||
public:
|
||||
dLytMiniGameTime_c()
|
||||
: field_0x7D4(0),
|
||||
mCurrentTimerValueMilliSeconds(0),
|
||||
mCurrentTimerValueSeconds(0),
|
||||
mLastTimerValueSeconds(0),
|
||||
mTimerVariant(0),
|
||||
mTimeFormat(0),
|
||||
mHighestDigitIndex(0),
|
||||
field_0x7EC(false),
|
||||
field_0x7ED(false),
|
||||
field_0x7EE(false),
|
||||
field_0x7F0(0),
|
||||
mVariant(0),
|
||||
field_0x7F4(0),
|
||||
mIsVisible(false) {}
|
||||
virtual ~dLytMiniGameTime_c() {}
|
||||
@@ -167,8 +177,16 @@ public:
|
||||
bool draw();
|
||||
void init();
|
||||
|
||||
void setVariant(s32 var) {
|
||||
mVariant = var;
|
||||
}
|
||||
|
||||
void setField_0x7EE(bool v) {
|
||||
field_0x7EE = v;
|
||||
}
|
||||
|
||||
private:
|
||||
enum TimerVariant_e {
|
||||
enum TimeFormat_e {
|
||||
TIMER_LONG,
|
||||
TIMER_SECONDS,
|
||||
};
|
||||
@@ -224,12 +242,12 @@ private:
|
||||
/* 0x7D8 */ s32 mCurrentTimerValueMilliSeconds;
|
||||
/* 0x7DC */ s32 mCurrentTimerValueSeconds;
|
||||
/* 0x7E0 */ s32 mLastTimerValueSeconds;
|
||||
/* 0x7E4 */ u8 mTimerVariant;
|
||||
/* 0x7E4 */ u8 mTimeFormat;
|
||||
/* 0x7E4 */ s32 mHighestDigitIndex;
|
||||
/* 0x7EC */ bool field_0x7EC;
|
||||
/* 0x7ED */ bool field_0x7ED;
|
||||
/* 0x7EE */ bool field_0x7EE;
|
||||
/* 0x7F0 */ UNKWORD field_0x7F0;
|
||||
/* 0x7F0 */ s32 mVariant;
|
||||
/* 0x7F4 */ u8 field_0x7F4;
|
||||
/* 0x7F5 */ bool mIsVisible;
|
||||
};
|
||||
@@ -278,6 +296,15 @@ private:
|
||||
|
||||
/** 2D UI - Mini Game - Score counter */
|
||||
class dLytMiniGameScore_c {
|
||||
public:
|
||||
enum Variant_e {
|
||||
SCORE_VARIANT_0,
|
||||
SCORE_VARIANT_1,
|
||||
SCORE_VARIANT_2,
|
||||
SCORE_VARIANT_3,
|
||||
SCORE_VARIANT_4,
|
||||
};
|
||||
|
||||
public:
|
||||
dLytMiniGameScore_c()
|
||||
: mScore(0),
|
||||
@@ -298,7 +325,7 @@ public:
|
||||
field_0x814(false),
|
||||
field_0x815(false),
|
||||
field_0x816(false),
|
||||
field_0x818(0),
|
||||
mVariant(SCORE_VARIANT_0),
|
||||
field_0x81C(0),
|
||||
field_0x820(false),
|
||||
field_0x824(0),
|
||||
@@ -315,6 +342,14 @@ public:
|
||||
bool draw();
|
||||
void init();
|
||||
|
||||
void setVariant(s32 var) {
|
||||
mVariant = var;
|
||||
}
|
||||
|
||||
void setField_0x816(bool v) {
|
||||
field_0x816 = v;
|
||||
}
|
||||
|
||||
private:
|
||||
void fn_80291410();
|
||||
void fn_802915B0();
|
||||
@@ -396,7 +431,7 @@ private:
|
||||
/* 0x814 */ bool field_0x814;
|
||||
/* 0x815 */ bool field_0x815;
|
||||
/* 0x816 */ bool field_0x816;
|
||||
/* 0x818 */ s32 field_0x818;
|
||||
/* 0x818 */ s32 mVariant;
|
||||
/* 0x81C */ s32 field_0x81C;
|
||||
/* 0x820 */ bool field_0x820;
|
||||
/* 0x824 */ s32 field_0x824;
|
||||
@@ -423,21 +458,21 @@ public:
|
||||
private:
|
||||
static dLytMiniGameScoreSd_c *sInstance;
|
||||
|
||||
void fn_80293A30();
|
||||
void fn_80293A90();
|
||||
void fn_80293AF0(s32);
|
||||
void fn_80293BB0();
|
||||
void fn_80293C60();
|
||||
void fn_80293D40();
|
||||
void fn_80293DC0();
|
||||
void fn_80293E40();
|
||||
void fn_80293ED0();
|
||||
void fn_80293F50();
|
||||
void fn_80293FB0();
|
||||
void fn_80294010();
|
||||
void fn_80294020();
|
||||
bool fn_80294030() const;
|
||||
bool fn_80294080() const;
|
||||
void setScoreUp(s32 score);
|
||||
void setScoreDown(s32 score);
|
||||
void setScoreInternal(s32 score);
|
||||
void setHighestDigitIndex(s32);
|
||||
void setDigit(s32 digitIndex, s32 number);
|
||||
void resetScoreUp();
|
||||
void resetScoreDown();
|
||||
void resetDigits();
|
||||
void resetPosition();
|
||||
void startScoreUp();
|
||||
void startScoreDown();
|
||||
void stopScoreUp();
|
||||
void stopScoreDown();
|
||||
bool isScoreUpEndReached() const;
|
||||
bool isScoreDownEndReached() const;
|
||||
|
||||
/* 0x004 */ d2d::LytBase_c mLyt;
|
||||
/* 0x094 */ d2d::AnmGroup_c mAnm[5];
|
||||
@@ -447,6 +482,37 @@ private:
|
||||
};
|
||||
|
||||
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_10,
|
||||
VARIANT_11,
|
||||
VARIANT_12,
|
||||
VARIANT_13,
|
||||
VARIANT_14,
|
||||
VARIANT_15,
|
||||
VARIANT_16,
|
||||
};
|
||||
|
||||
private:
|
||||
enum Slot_e {
|
||||
SLOT_MINI_GAME,
|
||||
SLOT_MINI_GAME_SCORE,
|
||||
SLOT_MINI_GAME_TIME,
|
||||
SLOT_MINI_GAME_BUGS,
|
||||
SLOT_MINI_GAME_PUMPKIN,
|
||||
SLOT_MINI_GAME_SCORE_SD,
|
||||
};
|
||||
|
||||
public:
|
||||
dLytMiniGame_c()
|
||||
: field_0x0068(0),
|
||||
@@ -455,7 +521,7 @@ public:
|
||||
field_0x006B(0),
|
||||
field_0x006C(0),
|
||||
field_0x006D(0),
|
||||
field_0x1510(1),
|
||||
mVariant(1),
|
||||
field_0x3864(0),
|
||||
field_0x3865(0),
|
||||
field_0x3866(false),
|
||||
@@ -463,6 +529,11 @@ public:
|
||||
field_0x3868(0) {}
|
||||
virtual ~dLytMiniGame_c() {}
|
||||
|
||||
virtual int create() override;
|
||||
virtual int doDelete() override;
|
||||
virtual int execute() override;
|
||||
virtual int draw() override;
|
||||
|
||||
static dLytMiniGame_c *GetInstance() {
|
||||
return sInstance;
|
||||
}
|
||||
@@ -498,6 +569,14 @@ public:
|
||||
private:
|
||||
static dLytMiniGame_c *sInstance;
|
||||
|
||||
bool isLoading(const char *name) const;
|
||||
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;
|
||||
@@ -505,14 +584,14 @@ private:
|
||||
/* 0x006C */ u8 field_0x006C;
|
||||
/* 0x006D */ u8 field_0x006D;
|
||||
|
||||
/* 0x0070 */ d2d::ResAccIf_c mResAcc1;
|
||||
/* 0x03E0 */ d2d::ResAccIf_c mResAcc2;
|
||||
/* 0x0750 */ d2d::ResAccIf_c mResAcc3;
|
||||
/* 0x0AC0 */ d2d::ResAccIf_c mResAcc4;
|
||||
/* 0x0E30 */ d2d::ResAccIf_c mResAcc5;
|
||||
/* 0x11A0 */ d2d::ResAccIf_c mResAcc6;
|
||||
/* 0x0070 */ d2d::ResAccIf_c mResAccStart;
|
||||
/* 0x03E0 */ d2d::ResAccIf_c mResAccScore;
|
||||
/* 0x0750 */ d2d::ResAccIf_c mResAccTime;
|
||||
/* 0x0AC0 */ d2d::ResAccIf_c mResAccBugs;
|
||||
/* 0x0E30 */ d2d::ResAccIf_c mResAccPumpkin;
|
||||
/* 0x11A0 */ d2d::ResAccIf_c mResAccScoreSd;
|
||||
|
||||
/* 0x1510 */ UNKWORD field_0x1510;
|
||||
/* 0x1510 */ s32 mVariant;
|
||||
|
||||
/* 0x1514 */ dLytMiniGameScore_c mScore;
|
||||
/* 0x1D64 */ dLytMiniGameScoreSd_c mScoreSd;
|
||||
|
||||
@@ -62,7 +62,7 @@ public:
|
||||
bool playMinigameFinishSound();
|
||||
bool playMinigameFinishWhistleSound();
|
||||
bool playMinigameScoreUpSound(s32 param);
|
||||
bool playMinigameScoreDownSound();
|
||||
bool playMinigameScoreDownSound(s32 score);
|
||||
bool playMinigameMusasabiSound(s32 count);
|
||||
|
||||
bool playSkbSound(u32 soundId);
|
||||
|
||||
+552
-66
@@ -8,6 +8,7 @@
|
||||
#include "d/lyt/d2d.h"
|
||||
#include "d/snd/d_snd_small_effect_mgr.h"
|
||||
#include "d/snd/d_snd_wzsound.h"
|
||||
#include "f/f_base.h"
|
||||
#include "m/m_vec.h"
|
||||
#include "nw4r/lyt/lyt_pane.h"
|
||||
#include "nw4r/lyt/lyt_types.h"
|
||||
@@ -819,7 +820,7 @@ bool dLytMiniGameTime_c::execute() {
|
||||
}
|
||||
|
||||
if (mIsVisible) {
|
||||
switch (mTimerVariant) {
|
||||
switch (mTimeFormat) {
|
||||
case TIMER_LONG: updateLongTimer(); break;
|
||||
case TIMER_SECONDS: updateSecondsTimer(); break;
|
||||
}
|
||||
@@ -865,14 +866,14 @@ bool dLytMiniGameTime_c::execute() {
|
||||
mLyt.calc();
|
||||
}
|
||||
|
||||
if (mTimerVariant == TIMER_SECONDS) {
|
||||
if (mTimeFormat == TIMER_SECONDS) {
|
||||
if (mCurrentTimerValueSeconds <= 10 && mLastTimerValueSeconds != mCurrentTimerValueSeconds) {
|
||||
dSndSmallEffectMgr_c::GetInstance()->playMinigameTimeUpSound(mCurrentTimerValueSeconds);
|
||||
}
|
||||
saveSecondsTimer();
|
||||
}
|
||||
|
||||
if (field_0x7F0 == 0) {
|
||||
if (mVariant == TIME_VARIANT_0) {
|
||||
if (mCurrentTimerValueSeconds >= 590 && mLastTimerValueSeconds != mCurrentTimerValueSeconds &&
|
||||
mCurrentTimerValueSeconds != 600) {
|
||||
dSndSmallEffectMgr_c::GetInstance()->playMinigameTimeUpSound(600 - mCurrentTimerValueSeconds);
|
||||
@@ -898,13 +899,13 @@ void dLytMiniGameTime_c::init() {
|
||||
return;
|
||||
}
|
||||
|
||||
switch (field_0x7F0) {
|
||||
case 0: mTimerVariant = TIMER_LONG; break;
|
||||
case 1: mTimerVariant = TIMER_SECONDS; break;
|
||||
case 2: mTimerVariant = TIMER_SECONDS; break;
|
||||
case 3: mTimerVariant = TIMER_LONG; break;
|
||||
case 4: mTimerVariant = TIMER_LONG; break;
|
||||
case 5: mTimerVariant = TIMER_LONG; break;
|
||||
switch (mVariant) {
|
||||
case TIME_VARIANT_0: mTimeFormat = TIMER_LONG; break;
|
||||
case TIME_VARIANT_1: mTimeFormat = TIMER_SECONDS; break;
|
||||
case TIME_VARIANT_2: mTimeFormat = TIMER_SECONDS; break;
|
||||
case TIME_VARIANT_3: mTimeFormat = TIMER_LONG; break;
|
||||
case TIME_VARIANT_4: mTimeFormat = TIMER_LONG; break;
|
||||
case TIME_VARIANT_5: mTimeFormat = TIMER_LONG; break;
|
||||
}
|
||||
|
||||
resetAlphaIn();
|
||||
@@ -1267,7 +1268,7 @@ void dLytMiniGameTime_c::resetDigits() {
|
||||
}
|
||||
|
||||
void dLytMiniGameTime_c::resetPosition() {
|
||||
switch (mTimerVariant) {
|
||||
switch (mTimeFormat) {
|
||||
case TIMER_LONG:
|
||||
setTimePosition(false);
|
||||
setBestHasSixDigits(false);
|
||||
@@ -1904,13 +1905,13 @@ bool dLytMiniGameScore_c::execute() {
|
||||
if (mIsVisible) {
|
||||
fn_80291BC0();
|
||||
if (!field_0x816) {
|
||||
switch (field_0x818) {
|
||||
case 0:
|
||||
switch (mVariant) {
|
||||
case SCORE_VARIANT_0:
|
||||
if (hasIncreasedScore()) {
|
||||
startGetScore();
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
case SCORE_VARIANT_2:
|
||||
if (field_0x829) {
|
||||
if (hasIncreasedScore()) {
|
||||
startGetScore();
|
||||
@@ -1923,15 +1924,15 @@ bool dLytMiniGameScore_c::execute() {
|
||||
field_0x829 = false;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
case SCORE_VARIANT_1:
|
||||
if (mScore != 1) {
|
||||
if (hasIncreasedScore()) {
|
||||
startGetScore();
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
case 4:
|
||||
case SCORE_VARIANT_3:
|
||||
case SCORE_VARIANT_4:
|
||||
if (hasIncreasedScore()) {
|
||||
startGetScore();
|
||||
}
|
||||
@@ -1985,7 +1986,7 @@ bool dLytMiniGameScore_c::execute() {
|
||||
mLyt.calc();
|
||||
}
|
||||
|
||||
if (!field_0x816 && field_0x818 == 0 && hasIncreasedScore()) {
|
||||
if (!field_0x816 && mVariant == SCORE_VARIANT_0 && hasIncreasedScore()) {
|
||||
dSndSmallEffectMgr_c::GetInstance()->playMinigameScoreUpSound(mScore);
|
||||
}
|
||||
|
||||
@@ -2050,8 +2051,8 @@ void dLytMiniGameScore_c::init() {
|
||||
mLyt.calc();
|
||||
mAnm[SCORE_ANIM_IN].setAnimEnable(false);
|
||||
|
||||
switch (field_0x818) {
|
||||
case 0:
|
||||
switch (mVariant) {
|
||||
case SCORE_VARIANT_0:
|
||||
field_0x82C = 0;
|
||||
field_0x81C = 21;
|
||||
field_0x7E4 = 4;
|
||||
@@ -2087,7 +2088,7 @@ void dLytMiniGameScore_c::init() {
|
||||
|
||||
fn_80293450(field_0x81C);
|
||||
break;
|
||||
case 1:
|
||||
case SCORE_VARIANT_1:
|
||||
field_0x830 = 0;
|
||||
field_0x82C = 0;
|
||||
field_0x81C = 11;
|
||||
@@ -2148,7 +2149,7 @@ void dLytMiniGameScore_c::init() {
|
||||
}
|
||||
fn_80293450(field_0x81C);
|
||||
break;
|
||||
case 2:
|
||||
case SCORE_VARIANT_2:
|
||||
field_0x830 = 0;
|
||||
field_0x82C = 0;
|
||||
field_0x81C = 6;
|
||||
@@ -2167,7 +2168,7 @@ void dLytMiniGameScore_c::init() {
|
||||
|
||||
fn_80293450(field_0x81C);
|
||||
break;
|
||||
case 3:
|
||||
case SCORE_VARIANT_3:
|
||||
field_0x82C = 0;
|
||||
field_0x81C = 21;
|
||||
field_0x7E4 = 4;
|
||||
@@ -2203,7 +2204,7 @@ void dLytMiniGameScore_c::init() {
|
||||
|
||||
fn_80293450(field_0x81C);
|
||||
break;
|
||||
case 4:
|
||||
case SCORE_VARIANT_4:
|
||||
field_0x830 = 0;
|
||||
field_0x82C = 0;
|
||||
field_0x81C = 19;
|
||||
@@ -2265,7 +2266,7 @@ void dLytMiniGameScore_c::fn_80291410() {
|
||||
field_0x820 = true;
|
||||
mIsVisible = true;
|
||||
|
||||
if (field_0x818 == 1) {
|
||||
if (mVariant == SCORE_VARIANT_1) {
|
||||
setScore(1);
|
||||
calcNumDigits();
|
||||
mAnm[SCORE_ANIM_SET_POSITION].setFrame(field_0x81C);
|
||||
@@ -2455,11 +2456,11 @@ void dLytMiniGameScore_c::fn_80291BC0() {
|
||||
calcNumDigits();
|
||||
realizePosition();
|
||||
|
||||
if (field_0x818 == 1) {
|
||||
if (mVariant == SCORE_VARIANT_1) {
|
||||
if (field_0x828) {
|
||||
fn_80291EF0();
|
||||
}
|
||||
} else if (field_0x818 == 2) {
|
||||
} else if (mVariant == SCORE_VARIANT_2) {
|
||||
fn_80292040();
|
||||
}
|
||||
|
||||
@@ -2835,8 +2836,8 @@ void dLytMiniGameScore_c::fn_80292C30() {
|
||||
|
||||
PaneCalc calc;
|
||||
|
||||
switch (field_0x818) {
|
||||
case 0: {
|
||||
switch (mVariant) {
|
||||
case SCORE_VARIANT_0: {
|
||||
dMessage_c::getGlobalTagProcessor()->setNumericArg0(mScore);
|
||||
loadTextVariant(1);
|
||||
field_0x7E8 = mpTextBoxes[0]->GetLineWidth(nullptr);
|
||||
@@ -2850,7 +2851,7 @@ void dLytMiniGameScore_c::fn_80292C30() {
|
||||
|
||||
break;
|
||||
}
|
||||
case 3: {
|
||||
case SCORE_VARIANT_3: {
|
||||
dMessage_c::getGlobalTagProcessor()->setNumericArg0(mScore);
|
||||
loadTextVariant(0);
|
||||
field_0x7E8 = mpTextBoxes[0]->GetLineWidth(nullptr);
|
||||
@@ -2948,14 +2949,15 @@ static const d2d::LytBrlanMapping brlanMapScoreSd[] = {
|
||||
{ "miniGameScoreSd_00_scoreDown.brlan", "G_animAll_00"},
|
||||
};
|
||||
|
||||
#define SCORE_SD_ANIM_0_TO_9_0 0
|
||||
#define SCORE_SD_ANIM_0_TO_9_1 1
|
||||
#define SCORE_SD_ANIM_0_TO_9_OFFSET 0
|
||||
#define SCORE_SD_ANIM_SET_POSITION 2
|
||||
#define SCORE_SD_ANIM_SCORE_UP 3
|
||||
#define SCORE_SD_ANIM_SCORE_DOWN 4
|
||||
|
||||
#define SCORE_SD_NUM_ANIMS 5
|
||||
|
||||
#define SCORE_SD_NUM_DIGITS 2
|
||||
|
||||
bool dLytMiniGameScoreSd_c::build(d2d::ResAccIf_c *resAcc) {
|
||||
mLyt.setResAcc(resAcc);
|
||||
mLyt.build("miniGameScoreSd_00.brlyt", nullptr);
|
||||
@@ -2990,13 +2992,13 @@ bool dLytMiniGameScoreSd_c::execute() {
|
||||
}
|
||||
|
||||
if (mIsVisible) {
|
||||
if (fn_80294030()) {
|
||||
fn_80294010();
|
||||
if (isScoreUpEndReached()) {
|
||||
stopScoreUp();
|
||||
mIsVisible = false;
|
||||
}
|
||||
|
||||
if (fn_80294080()) {
|
||||
fn_80294020();
|
||||
if (isScoreDownEndReached()) {
|
||||
stopScoreDown();
|
||||
mIsVisible = false;
|
||||
}
|
||||
|
||||
@@ -3027,11 +3029,11 @@ void dLytMiniGameScoreSd_c::init() {
|
||||
return;
|
||||
}
|
||||
|
||||
fn_80293D40();
|
||||
fn_80293DC0();
|
||||
fn_80293E40();
|
||||
fn_80293ED0();
|
||||
fn_80293AF0(0);
|
||||
resetScoreUp();
|
||||
resetScoreDown();
|
||||
resetDigits();
|
||||
resetPosition();
|
||||
setScoreInternal(0);
|
||||
|
||||
mAnm[SCORE_SD_ANIM_SCORE_UP].setToEnd2();
|
||||
mAnm[SCORE_SD_ANIM_SCORE_UP].setAnimEnable(true);
|
||||
@@ -3039,65 +3041,549 @@ void dLytMiniGameScoreSd_c::init() {
|
||||
mAnm[SCORE_SD_ANIM_SCORE_UP].setAnimEnable(false);
|
||||
}
|
||||
|
||||
void dLytMiniGameScoreSd_c::fn_80293A30() {
|
||||
|
||||
void dLytMiniGameScoreSd_c::setScoreUp(s32 score) {
|
||||
if (sInstance == nullptr) {
|
||||
return;
|
||||
}
|
||||
setScoreInternal(score);
|
||||
startScoreUp();
|
||||
dSndSmallEffectMgr_c::GetInstance()->playMinigameScoreUpSound(score);
|
||||
mIsVisible = true;
|
||||
}
|
||||
|
||||
void dLytMiniGameScoreSd_c::fn_80293A90() {
|
||||
|
||||
void dLytMiniGameScoreSd_c::setScoreDown(s32 score) {
|
||||
if (sInstance == nullptr) {
|
||||
return;
|
||||
}
|
||||
setScoreInternal(score);
|
||||
startScoreUp();
|
||||
dSndSmallEffectMgr_c::GetInstance()->playMinigameScoreDownSound(score);
|
||||
mIsVisible = true;
|
||||
}
|
||||
|
||||
void dLytMiniGameScoreSd_c::fn_80293AF0(s32) {
|
||||
void dLytMiniGameScoreSd_c::setScoreInternal(s32 score) {
|
||||
s32 digits[2];
|
||||
|
||||
digits[1] = score / 10;
|
||||
digits[0] = score % 10;
|
||||
|
||||
s32 num = 0;
|
||||
if (digits[1] != 0) {
|
||||
num = 1;
|
||||
} else if (digits[0] != 0) {
|
||||
num = 0;
|
||||
}
|
||||
setHighestDigitIndex(num);
|
||||
for (int i = 0; i <= num; i++) {
|
||||
setDigit(i, digits[i]);
|
||||
}
|
||||
field_0x1D4 = score;
|
||||
}
|
||||
|
||||
void dLytMiniGameScoreSd_c::fn_80293BB0() {
|
||||
void dLytMiniGameScoreSd_c::setHighestDigitIndex(s32 num) {
|
||||
f32 frame = num + 6.0f;
|
||||
|
||||
mAnm[SCORE_SD_ANIM_SET_POSITION].setRate(0.0f);
|
||||
mAnm[SCORE_SD_ANIM_SET_POSITION].setFrame(frame);
|
||||
mAnm[SCORE_SD_ANIM_SET_POSITION].setAnimEnable(true);
|
||||
|
||||
mLyt.calc();
|
||||
|
||||
mAnm[SCORE_SD_ANIM_SET_POSITION].setAnimEnable(false);
|
||||
}
|
||||
|
||||
void dLytMiniGameScoreSd_c::fn_80293C60() {
|
||||
void dLytMiniGameScoreSd_c::setDigit(s32 digitIndex, s32 number) {
|
||||
u8 idx = digitIndex + SCORE_SD_ANIM_0_TO_9_OFFSET;
|
||||
f32 frame = 0.0f;
|
||||
switch (number) {
|
||||
case 0: frame = 0.0f; break;
|
||||
case 1: frame = 1.0f; break;
|
||||
case 2: frame = 2.0f; break;
|
||||
case 4: frame = 3.0f; break;
|
||||
case 6: frame = 4.0f; break;
|
||||
case 8: frame = 5.0f; break;
|
||||
}
|
||||
|
||||
mAnm[idx].setFrame(frame);
|
||||
mAnm[idx].setAnimEnable(true);
|
||||
|
||||
mLyt.calc();
|
||||
|
||||
mAnm[idx].setAnimEnable(false);
|
||||
}
|
||||
|
||||
void dLytMiniGameScoreSd_c::fn_80293D40() {
|
||||
void dLytMiniGameScoreSd_c::resetScoreUp() {
|
||||
mAnm[SCORE_SD_ANIM_SCORE_UP].setForwardOnce();
|
||||
mAnm[SCORE_SD_ANIM_SCORE_UP].setToEnd2();
|
||||
mAnm[SCORE_SD_ANIM_SCORE_UP].setAnimEnable(true);
|
||||
|
||||
mLyt.calc();
|
||||
|
||||
mAnm[SCORE_SD_ANIM_SCORE_UP].setAnimEnable(false);
|
||||
}
|
||||
|
||||
void dLytMiniGameScoreSd_c::fn_80293DC0() {
|
||||
void dLytMiniGameScoreSd_c::resetScoreDown() {
|
||||
mAnm[SCORE_SD_ANIM_SCORE_DOWN].setForwardOnce();
|
||||
mAnm[SCORE_SD_ANIM_SCORE_DOWN].setToEnd2();
|
||||
mAnm[SCORE_SD_ANIM_SCORE_DOWN].setAnimEnable(true);
|
||||
|
||||
mLyt.calc();
|
||||
|
||||
mAnm[SCORE_SD_ANIM_SCORE_DOWN].setAnimEnable(false);
|
||||
}
|
||||
|
||||
void dLytMiniGameScoreSd_c::fn_80293E40() {
|
||||
|
||||
void dLytMiniGameScoreSd_c::resetDigits() {
|
||||
// NOTE: includes SCORE_SD_ANIM_SET_POSITION
|
||||
for (int i = 0; i <= SCORE_SD_NUM_DIGITS; i++) {
|
||||
mAnm[i + SCORE_SD_ANIM_0_TO_9_OFFSET].setForwardOnce();
|
||||
mAnm[i + SCORE_SD_ANIM_0_TO_9_OFFSET].setFrame(0.0f);
|
||||
mAnm[i + SCORE_SD_ANIM_0_TO_9_OFFSET].setAnimEnable(false);
|
||||
}
|
||||
}
|
||||
|
||||
void dLytMiniGameScoreSd_c::fn_80293ED0() {
|
||||
void dLytMiniGameScoreSd_c::resetPosition() {
|
||||
mAnm[SCORE_SD_ANIM_SET_POSITION].setForwardOnce();
|
||||
mAnm[SCORE_SD_ANIM_SET_POSITION].setFrame(6.0f);
|
||||
mAnm[SCORE_SD_ANIM_SET_POSITION].setAnimEnable(true);
|
||||
|
||||
mLyt.calc();
|
||||
|
||||
mAnm[SCORE_SD_ANIM_SET_POSITION].setAnimEnable(false);
|
||||
}
|
||||
|
||||
void dLytMiniGameScoreSd_c::fn_80293F50() {
|
||||
|
||||
void dLytMiniGameScoreSd_c::startScoreUp() {
|
||||
mAnm[SCORE_SD_ANIM_SCORE_UP].setToStart();
|
||||
mAnm[SCORE_SD_ANIM_SCORE_UP].setAnimEnable(true);
|
||||
}
|
||||
|
||||
void dLytMiniGameScoreSd_c::fn_80293FB0() {
|
||||
|
||||
void dLytMiniGameScoreSd_c::startScoreDown() {
|
||||
mAnm[SCORE_SD_ANIM_SCORE_DOWN].setToStart();
|
||||
mAnm[SCORE_SD_ANIM_SCORE_DOWN].setAnimEnable(true);
|
||||
}
|
||||
|
||||
void dLytMiniGameScoreSd_c::fn_80294010() {
|
||||
|
||||
void dLytMiniGameScoreSd_c::stopScoreUp() {
|
||||
mAnm[SCORE_SD_ANIM_SCORE_UP].setAnimEnable(false);
|
||||
}
|
||||
|
||||
void dLytMiniGameScoreSd_c::fn_80294020() {
|
||||
|
||||
void dLytMiniGameScoreSd_c::stopScoreDown() {
|
||||
mAnm[SCORE_SD_ANIM_SCORE_DOWN].setAnimEnable(false);
|
||||
}
|
||||
|
||||
bool dLytMiniGameScoreSd_c::fn_80294030() const {
|
||||
|
||||
bool dLytMiniGameScoreSd_c::isScoreUpEndReached() const {
|
||||
s32 idx = SCORE_SD_ANIM_SCORE_UP;
|
||||
if (mAnm[idx].isEnabled() && mAnm[idx].isStop2()) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
bool dLytMiniGameScoreSd_c::fn_80294080() const {
|
||||
|
||||
bool dLytMiniGameScoreSd_c::isScoreDownEndReached() const {
|
||||
s32 idx = SCORE_SD_ANIM_SCORE_DOWN;
|
||||
if (mAnm[idx].isEnabled() && mAnm[idx].isStop2()) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
SPECIAL_BASE_PROFILE(LYT_MINI_GAME, dLytMiniGame_c, fProfile::LYT_MINI_GAME, 0x2B4, 0x6F9);
|
||||
|
||||
static const char *sMiniGame = "MiniGame";
|
||||
static const char *sMiniGameScore = "MiniGameScore";
|
||||
static const char *sMiniGameTime = "MiniGameTime";
|
||||
static const char *sMiniGameBugs = "MiniGameBugs";
|
||||
static const char *sMiniGamePumpkin = "MiniGamePumpkin";
|
||||
static const char *sMiniGameSd = "MiniGameSd";
|
||||
|
||||
int dLytMiniGame_c::create() {
|
||||
mVariant = mParams;
|
||||
switch (mVariant) {
|
||||
case VARIANT_1: {
|
||||
if (loadData(sMiniGame, SLOT_MINI_GAME) || loadData(sMiniGameScore, SLOT_MINI_GAME_SCORE)) {
|
||||
return NOT_READY;
|
||||
}
|
||||
if (isLoading(sMiniGame) || isLoading(sMiniGameScore)) {
|
||||
return NOT_READY;
|
||||
}
|
||||
|
||||
attachLoadedData(sMiniGame, mResAccStart);
|
||||
attachLoadedData(sMiniGameScore, mResAccScore);
|
||||
mScore.setVariant(dLytMiniGameScore_c::SCORE_VARIANT_0);
|
||||
mScore.build(&mResAccScore);
|
||||
mStart.build(&mResAccStart);
|
||||
break;
|
||||
}
|
||||
case VARIANT_2: {
|
||||
if (loadData(sMiniGame, SLOT_MINI_GAME) || loadData(sMiniGameSd, SLOT_MINI_GAME_SCORE_SD) ||
|
||||
loadData(sMiniGameScore, SLOT_MINI_GAME_SCORE)) {
|
||||
return NOT_READY;
|
||||
}
|
||||
if (isLoading(sMiniGame) || isLoading(sMiniGameSd) || isLoading(sMiniGameScore)) {
|
||||
return NOT_READY;
|
||||
}
|
||||
|
||||
attachLoadedData(sMiniGame, mResAccStart);
|
||||
attachLoadedData(sMiniGameSd, mResAccScoreSd);
|
||||
attachLoadedData(sMiniGameScore, mResAccScore);
|
||||
mScore.setVariant(dLytMiniGameScore_c::SCORE_VARIANT_1);
|
||||
mScore.build(&mResAccScore);
|
||||
mScoreSd.build(&mResAccScoreSd);
|
||||
mStart.build(&mResAccStart);
|
||||
break;
|
||||
}
|
||||
case VARIANT_3: {
|
||||
if (loadData(sMiniGame, SLOT_MINI_GAME) || loadData(sMiniGameScore, SLOT_MINI_GAME_SCORE)) {
|
||||
return NOT_READY;
|
||||
}
|
||||
if (isLoading(sMiniGame) || isLoading(sMiniGameScore)) {
|
||||
return NOT_READY;
|
||||
}
|
||||
|
||||
attachLoadedData(sMiniGame, mResAccStart);
|
||||
attachLoadedData(sMiniGameScore, mResAccScore);
|
||||
mScore.setVariant(dLytMiniGameScore_c::SCORE_VARIANT_2);
|
||||
mScore.build(&mResAccScore);
|
||||
mStart.build(&mResAccStart);
|
||||
break;
|
||||
}
|
||||
case VARIANT_4: {
|
||||
if (loadData(sMiniGame, SLOT_MINI_GAME) || loadData(sMiniGameBugs, SLOT_MINI_GAME_BUGS) ||
|
||||
loadData(sMiniGameTime, SLOT_MINI_GAME_TIME)) {
|
||||
return NOT_READY;
|
||||
}
|
||||
if (isLoading(sMiniGame) || isLoading(sMiniGameBugs) || isLoading(sMiniGameTime)) {
|
||||
return NOT_READY;
|
||||
}
|
||||
|
||||
attachLoadedData(sMiniGame, mResAccStart);
|
||||
attachLoadedData(sMiniGameBugs, mResAccBugs);
|
||||
attachLoadedData(sMiniGameTime, mResAccTime);
|
||||
mTime.setVariant(dLytMiniGameTime_c::TIME_VARIANT_0);
|
||||
mTime.build(&mResAccTime);
|
||||
mBugs.build(&mResAccBugs);
|
||||
mStart.build(&mResAccStart);
|
||||
break;
|
||||
}
|
||||
case VARIANT_5: {
|
||||
if (loadData(sMiniGame, SLOT_MINI_GAME) || loadData(sMiniGameScore, SLOT_MINI_GAME_SCORE) ||
|
||||
loadData(sMiniGameTime, SLOT_MINI_GAME_TIME)) {
|
||||
return NOT_READY;
|
||||
}
|
||||
if (isLoading(sMiniGame) || isLoading(sMiniGameScore) || isLoading(sMiniGameTime)) {
|
||||
return NOT_READY;
|
||||
}
|
||||
|
||||
attachLoadedData(sMiniGame, mResAccStart);
|
||||
attachLoadedData(sMiniGameScore, mResAccScore);
|
||||
attachLoadedData(sMiniGameTime, mResAccTime);
|
||||
mTime.setVariant(dLytMiniGameTime_c::TIME_VARIANT_1);
|
||||
mTime.build(&mResAccTime);
|
||||
mScore.setVariant(dLytMiniGameScore_c::SCORE_VARIANT_4);
|
||||
mScore.build(&mResAccScore);
|
||||
mStart.build(&mResAccStart);
|
||||
break;
|
||||
}
|
||||
case VARIANT_6: {
|
||||
if (loadData(sMiniGame, SLOT_MINI_GAME) || loadData(sMiniGamePumpkin, SLOT_MINI_GAME_PUMPKIN) ||
|
||||
loadData(sMiniGameScore, SLOT_MINI_GAME_SCORE) || loadData(sMiniGameTime, SLOT_MINI_GAME_TIME)) {
|
||||
return NOT_READY;
|
||||
}
|
||||
if (isLoading(sMiniGame) || isLoading(sMiniGamePumpkin) || isLoading(sMiniGameScore) ||
|
||||
isLoading(sMiniGameTime)) {
|
||||
return NOT_READY;
|
||||
}
|
||||
|
||||
attachLoadedData(sMiniGame, mResAccStart);
|
||||
attachLoadedData(sMiniGamePumpkin, mResAccPumpkin);
|
||||
attachLoadedData(sMiniGameScore, mResAccScore);
|
||||
attachLoadedData(sMiniGameTime, mResAccTime);
|
||||
mTime.setVariant(dLytMiniGameTime_c::TIME_VARIANT_2);
|
||||
mTime.build(&mResAccTime);
|
||||
mScore.setVariant(dLytMiniGameScore_c::SCORE_VARIANT_3);
|
||||
mScore.build(&mResAccScore);
|
||||
mStart.build(&mResAccStart);
|
||||
mPumpkin.build(&mResAccPumpkin);
|
||||
break;
|
||||
}
|
||||
case VARIANT_7: {
|
||||
if (loadData(sMiniGame, SLOT_MINI_GAME) || loadData(sMiniGameTime, SLOT_MINI_GAME_TIME)) {
|
||||
return NOT_READY;
|
||||
}
|
||||
if (isLoading(sMiniGame) || isLoading(sMiniGameTime)) {
|
||||
return NOT_READY;
|
||||
}
|
||||
|
||||
attachLoadedData(sMiniGame, mResAccStart);
|
||||
attachLoadedData(sMiniGameTime, mResAccTime);
|
||||
mTime.setVariant(dLytMiniGameTime_c::TIME_VARIANT_3);
|
||||
mTime.build(&mResAccTime);
|
||||
mStart.build(&mResAccStart);
|
||||
break;
|
||||
}
|
||||
case VARIANT_8: {
|
||||
if (loadData(sMiniGame, SLOT_MINI_GAME) || loadData(sMiniGameTime, SLOT_MINI_GAME_TIME)) {
|
||||
return NOT_READY;
|
||||
}
|
||||
if (isLoading(sMiniGame) || isLoading(sMiniGameTime)) {
|
||||
return NOT_READY;
|
||||
}
|
||||
|
||||
attachLoadedData(sMiniGame, mResAccStart);
|
||||
attachLoadedData(sMiniGameTime, mResAccTime);
|
||||
mTime.setVariant(dLytMiniGameTime_c::TIME_VARIANT_4);
|
||||
mTime.build(&mResAccTime);
|
||||
mStart.build(&mResAccStart);
|
||||
break;
|
||||
}
|
||||
case VARIANT_9: {
|
||||
if (loadData(sMiniGame, SLOT_MINI_GAME) || loadData(sMiniGameTime, SLOT_MINI_GAME_TIME)) {
|
||||
return NOT_READY;
|
||||
}
|
||||
if (isLoading(sMiniGame) || isLoading(sMiniGameTime)) {
|
||||
return NOT_READY;
|
||||
}
|
||||
|
||||
attachLoadedData(sMiniGame, mResAccStart);
|
||||
attachLoadedData(sMiniGameTime, mResAccTime);
|
||||
mTime.setVariant(dLytMiniGameTime_c::TIME_VARIANT_5);
|
||||
mTime.build(&mResAccTime);
|
||||
mStart.build(&mResAccStart);
|
||||
break;
|
||||
}
|
||||
case VARIANT_10: {
|
||||
if (loadData(sMiniGameScore, SLOT_MINI_GAME_SCORE)) {
|
||||
return NOT_READY;
|
||||
}
|
||||
if (isLoading(sMiniGameScore)) {
|
||||
return NOT_READY;
|
||||
}
|
||||
attachLoadedData(sMiniGameScore, mResAccScore);
|
||||
mScore.setVariant(dLytMiniGameScore_c::SCORE_VARIANT_0);
|
||||
mScore.setField_0x816(true);
|
||||
mScore.build(&mResAccScore);
|
||||
break;
|
||||
}
|
||||
case VARIANT_11: {
|
||||
if (loadData(sMiniGameScore, SLOT_MINI_GAME_SCORE)) {
|
||||
return NOT_READY;
|
||||
}
|
||||
if (isLoading(sMiniGameScore)) {
|
||||
return NOT_READY;
|
||||
}
|
||||
attachLoadedData(sMiniGameScore, mResAccScore);
|
||||
mScore.setVariant(dLytMiniGameScore_c::SCORE_VARIANT_2);
|
||||
mScore.setField_0x816(true);
|
||||
mScore.build(&mResAccScore);
|
||||
break;
|
||||
}
|
||||
case VARIANT_12: {
|
||||
if (loadData(sMiniGameTime, SLOT_MINI_GAME_TIME)) {
|
||||
return NOT_READY;
|
||||
}
|
||||
if (isLoading(sMiniGameTime)) {
|
||||
return NOT_READY;
|
||||
}
|
||||
attachLoadedData(sMiniGameTime, mResAccTime);
|
||||
mTime.setVariant(dLytMiniGameTime_c::TIME_VARIANT_0);
|
||||
mTime.setField_0x7EE(true);
|
||||
mTime.build(&mResAccTime);
|
||||
break;
|
||||
}
|
||||
case VARIANT_13: {
|
||||
if (loadData(sMiniGameScore, SLOT_MINI_GAME_SCORE)) {
|
||||
return NOT_READY;
|
||||
}
|
||||
if (isLoading(sMiniGameScore)) {
|
||||
return NOT_READY;
|
||||
}
|
||||
attachLoadedData(sMiniGameScore, mResAccScore);
|
||||
mScore.setVariant(dLytMiniGameScore_c::SCORE_VARIANT_3);
|
||||
mScore.setField_0x816(true);
|
||||
mScore.build(&mResAccScore);
|
||||
break;
|
||||
}
|
||||
case VARIANT_14: {
|
||||
if (loadData(sMiniGameTime, SLOT_MINI_GAME_TIME)) {
|
||||
return NOT_READY;
|
||||
}
|
||||
if (isLoading(sMiniGameTime)) {
|
||||
return NOT_READY;
|
||||
}
|
||||
attachLoadedData(sMiniGameTime, mResAccTime);
|
||||
mTime.setVariant(dLytMiniGameTime_c::TIME_VARIANT_3);
|
||||
mTime.setField_0x7EE(true);
|
||||
mTime.build(&mResAccTime);
|
||||
break;
|
||||
}
|
||||
case VARIANT_15: {
|
||||
if (loadData(sMiniGameTime, SLOT_MINI_GAME_TIME)) {
|
||||
return NOT_READY;
|
||||
}
|
||||
if (isLoading(sMiniGameTime)) {
|
||||
return NOT_READY;
|
||||
}
|
||||
attachLoadedData(sMiniGameTime, mResAccTime);
|
||||
mTime.setVariant(dLytMiniGameTime_c::TIME_VARIANT_4);
|
||||
mTime.setField_0x7EE(true);
|
||||
mTime.build(&mResAccTime);
|
||||
break;
|
||||
}
|
||||
case VARIANT_16: {
|
||||
if (loadData(sMiniGameTime, SLOT_MINI_GAME_TIME)) {
|
||||
return NOT_READY;
|
||||
}
|
||||
if (isLoading(sMiniGameTime)) {
|
||||
return NOT_READY;
|
||||
}
|
||||
attachLoadedData(sMiniGameTime, mResAccTime);
|
||||
mTime.setVariant(dLytMiniGameTime_c::TIME_VARIANT_5);
|
||||
mTime.setField_0x7EE(true);
|
||||
mTime.build(&mResAccTime);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
init();
|
||||
|
||||
sInstance = this;
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
int dLytMiniGame_c::doDelete() {
|
||||
mScore.remove();
|
||||
mScoreSd.remove();
|
||||
mStart.remove();
|
||||
mTime.remove();
|
||||
mBugs.remove();
|
||||
mPumpkin.remove();
|
||||
|
||||
switch (mVariant) {
|
||||
case VARIANT_1: {
|
||||
mResAccStart.detach();
|
||||
mResAccScore.detach();
|
||||
unloadData(sMiniGame);
|
||||
unloadData(sMiniGameScore);
|
||||
break;
|
||||
}
|
||||
case VARIANT_2: {
|
||||
mResAccStart.detach();
|
||||
mResAccScoreSd.detach();
|
||||
mResAccScore.detach();
|
||||
unloadData(sMiniGame);
|
||||
unloadData(sMiniGameSd);
|
||||
unloadData(sMiniGameScore);
|
||||
break;
|
||||
}
|
||||
case VARIANT_3: {
|
||||
mResAccStart.detach();
|
||||
mResAccScore.detach();
|
||||
unloadData(sMiniGame);
|
||||
unloadData(sMiniGameScore);
|
||||
break;
|
||||
}
|
||||
case VARIANT_4: {
|
||||
mResAccStart.detach();
|
||||
mResAccBugs.detach();
|
||||
mResAccTime.detach();
|
||||
unloadData(sMiniGame);
|
||||
unloadData(sMiniGameBugs);
|
||||
unloadData(sMiniGameTime);
|
||||
break;
|
||||
}
|
||||
case VARIANT_5: {
|
||||
mResAccStart.detach();
|
||||
mResAccScore.detach();
|
||||
mResAccTime.detach();
|
||||
unloadData(sMiniGame);
|
||||
unloadData(sMiniGameScore);
|
||||
unloadData(sMiniGameTime);
|
||||
break;
|
||||
}
|
||||
case VARIANT_6: {
|
||||
mResAccStart.detach();
|
||||
mResAccPumpkin.detach();
|
||||
mResAccScore.detach();
|
||||
mResAccTime.detach();
|
||||
unloadData(sMiniGame);
|
||||
unloadData(sMiniGamePumpkin);
|
||||
unloadData(sMiniGameScore);
|
||||
unloadData(sMiniGameTime);
|
||||
break;
|
||||
}
|
||||
case VARIANT_7: {
|
||||
mResAccStart.detach();
|
||||
mResAccTime.detach();
|
||||
unloadData(sMiniGame);
|
||||
unloadData(sMiniGameTime);
|
||||
break;
|
||||
}
|
||||
case VARIANT_8: {
|
||||
mResAccStart.detach();
|
||||
mResAccTime.detach();
|
||||
unloadData(sMiniGame);
|
||||
unloadData(sMiniGameTime);
|
||||
break;
|
||||
}
|
||||
case VARIANT_9: {
|
||||
mResAccStart.detach();
|
||||
mResAccTime.detach();
|
||||
unloadData(sMiniGame);
|
||||
unloadData(sMiniGameTime);
|
||||
break;
|
||||
}
|
||||
case VARIANT_10: {
|
||||
mResAccScore.detach();
|
||||
unloadData(sMiniGameScore);
|
||||
break;
|
||||
}
|
||||
case VARIANT_11: {
|
||||
mResAccScore.detach();
|
||||
unloadData(sMiniGameScore);
|
||||
break;
|
||||
}
|
||||
case VARIANT_12: {
|
||||
mResAccTime.detach();
|
||||
unloadData(sMiniGameTime);
|
||||
break;
|
||||
}
|
||||
case VARIANT_13: {
|
||||
mResAccScore.detach();
|
||||
unloadData(sMiniGameScore);
|
||||
break;
|
||||
}
|
||||
case VARIANT_14: {
|
||||
mResAccTime.detach();
|
||||
unloadData(sMiniGameTime);
|
||||
break;
|
||||
}
|
||||
case VARIANT_15: {
|
||||
mResAccTime.detach();
|
||||
unloadData(sMiniGameTime);
|
||||
break;
|
||||
}
|
||||
case VARIANT_16: {
|
||||
mResAccTime.detach();
|
||||
unloadData(sMiniGameTime);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
sInstance = nullptr;
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
int dLytMiniGame_c::execute() {
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
int dLytMiniGame_c::draw() {
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
void dLytMiniGame_c::init() {
|
||||
mScore.init();
|
||||
mScoreSd.init();
|
||||
mStart.init();
|
||||
mTime.init();
|
||||
mBugs.init();
|
||||
mPumpkin.init();
|
||||
}
|
||||
|
||||
@@ -544,7 +544,7 @@ bool dSndSmallEffectMgr_c::playMinigameScoreUpSound(s32 param) {
|
||||
return playSoundInternal(soundId);
|
||||
}
|
||||
|
||||
bool dSndSmallEffectMgr_c::playMinigameScoreDownSound() {
|
||||
bool dSndSmallEffectMgr_c::playMinigameScoreDownSound(s32 score) {
|
||||
return playSoundInternal(SE_S_MG_SCORE_DOWN);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user