Merge pull request #301 from robojumper/d_lyt_meter_suiryu_score

d_lyt_suiryu_score mostly OK
This commit is contained in:
robojumper
2026-04-09 08:14:05 +02:00
committed by GitHub
17 changed files with 2058 additions and 234 deletions
+2 -2
View File
@@ -228,8 +228,8 @@ bool dFlow_c::handleEventInternal(const MsbFlowInfo *element) {
switch (element->param3) {
case EVENT_SET_STORYFLAG:
StoryflagManager::sInstance->setFlag(params1n2);
if (params1n2 == 0x52) {
dLytMeter_c::GetInstance()->setMeterField_0x13775(true);
if (params1n2 == STORYFLAG_HAS_TADTONE_SCROLL) {
dLytMeter_c::GetInstance()->setIsCollectingTadtoneScroll(true);
}
if (dLytMsgWindow_c::fn_800D7B40() != 50013 && dLytMsgWindow_c::fn_800D7B40() != 20061) {
if (params1n2 == 100 || params1n2 == 64 || params1n2 == 271 || params1n2 == 81 || params1n2 == 668 ||
+1 -1
View File
@@ -101,7 +101,7 @@ void dLytForceLineParts_c::initializeState_Move() {
void dLytForceLineParts_c::executeState_Move() {
bool isDone = false;
if (dLytMeter_c::getfn_800C9F70()) {
if (dLytMeter_c::shouldHideLytClef()) {
mStateMgr.changeState(StateID_Wait);
mMoveRequest = false;
mIsDone = true;
+18 -18
View File
@@ -28,11 +28,11 @@ static const d2d::LytBrlanMapping brlanMap[] = {
#define NOTE_ANIM_INVALID 6
void dLytNote_c::initializeState_Wait() {
field_0x273 = 0;
mIsMove = false;
}
void dLytNote_c::executeState_Wait() {
if (field_0x270 != 0) {
if (mShouldMove) {
mStateMgr.changeState(StateID_In);
}
}
@@ -40,14 +40,14 @@ void dLytNote_c::executeState_Wait() {
void dLytNote_c::finalizeState_Wait() {}
void dLytNote_c::initializeState_In() {
field_0x274 = 0;
mForceOut = false;
mpPane->SetVisible(true);
mAnmGroups[NOTE_ANIM_GET].setAnimEnable(true);
mAnmGroups[NOTE_ANIM_GET].setFrame(0.0f);
}
void dLytNote_c::executeState_In() {
if (field_0x270 == 0) {
if (!mShouldMove) {
mAnmGroups[NOTE_ANIM_GET].setToEnd();
mAnmGroups[NOTE_ANIM_GET].setAnimEnable(false);
mStateMgr.changeState(StateID_Out);
@@ -68,14 +68,14 @@ void dLytNote_c::executeState_In() {
void dLytNote_c::finalizeState_In() {}
void dLytNote_c::initializeState_Move() {
field_0x273 = 1;
mIsMove = true;
}
void dLytNote_c::executeState_Move() {
if (field_0x270 == 0) {
if (!mShouldMove) {
mAnmGroups[mInAnim].setAnimEnable(false);
mStateMgr.changeState(StateID_Out);
} else if (field_0x272 != 0 && mInAnim == NOTE_ANIM_GET_LOOP) {
} else if (mIsAboutToLose && mInAnim == NOTE_ANIM_GET_LOOP) {
mAnmGroups[mInAnim].setAnimEnable(false);
field_0x260 = 0.0f;
mInAnim = NOTE_ANIM_LOST_LOOP;
@@ -88,7 +88,7 @@ void dLytNote_c::executeState_Move() {
mAnmGroups[mInAnim].setFrame(field_0x260);
mAnmGroups[mInAnim].setAnimEnable(true);
} else {
if (field_0x272 == 0 && mInAnim == NOTE_ANIM_LOST_LOOP) {
if (!mIsAboutToLose && mInAnim == NOTE_ANIM_LOST_LOOP) {
mAnmGroups[mInAnim].setAnimEnable(false);
field_0x260 = 0.0f;
mInAnim = NOTE_ANIM_GET_LOOP;
@@ -108,8 +108,8 @@ void dLytNote_c::finalizeState_Move() {}
void dLytNote_c::initializeState_Out() {
mInAnim = NOTE_ANIM_INVALID;
field_0x273 = 0;
if (field_0x271) {
mIsMove = false;
if (mIsCollected) {
mOutAnim = NOTE_ANIM_FIX;
} else {
mOutAnim = NOTE_ANIM_LOST;
@@ -119,7 +119,7 @@ void dLytNote_c::initializeState_Out() {
}
void dLytNote_c::executeState_Out() {
if (field_0x274 != 0) {
if (mForceOut) {
mAnmGroups[mOutAnim].setToEnd();
}
@@ -155,12 +155,12 @@ bool dLytNote_c::build(d2d::ResAccIf_c *resAcc) {
mInAnim = NOTE_ANIM_INVALID;
mOutAnim = NOTE_ANIM_FIX;
field_0x260 = 0.0f;
field_0x270 = 0;
field_0x271 = 0;
field_0x272 = 0;
field_0x273 = 0;
field_0x274 = 0;
field_0x26C = 0;
mShouldMove = false;
mIsCollected = false;
mIsAboutToLose = false;
mIsMove = false;
mForceOut = false;
mColor = 0;
mStateMgr.changeState(StateID_Wait);
return true;
}
@@ -177,7 +177,7 @@ void dLytNote_c::execute(u8 alpha) {
mStateMgr.executeState();
if (*mStateMgr.getStateID() != StateID_Wait) {
mpPane->SetTranslate(mTranslate);
mAnmGroups[NOTE_ANIM_COLOR].setFrame(field_0x26C);
mAnmGroups[NOTE_ANIM_COLOR].setFrame(mColor);
mpPane->SetAlpha(alpha);
mLyt.calc();
}
File diff suppressed because it is too large Load Diff
+31 -31
View File
@@ -567,15 +567,15 @@ bool dLytMeterMain_c::isNotSilentRealmOrLoftwing() {
return true;
}
bool dLytMeterMain_c::fn_800C9F70() {
if ((fn_800D56B0() && !field_0x13775) || isInModeMap() || isInModePause()) {
bool dLytMeterMain_c::shouldHideLytClef() {
if ((shouldBeHiddenGeneral() && !mIsCollectingTadtoneScroll) || isInModeMap() || isInModePause()) {
return true;
}
return false;
}
bool dLytMeterMain_c::fn_800C9FE0() {
if (fn_800D56B0() || mMode == MODE_MAP_INIT || isInModePause()) {
if (shouldBeHiddenGeneral() || mMode == MODE_MAP_INIT || isInModePause()) {
return true;
}
return false;
@@ -857,7 +857,7 @@ bool dLytMeterMain_c::build(d2d::ResAccIf_c *resAcc) {
mMode = MODE_NONE;
field_0x13770 = 3;
mHelpOpen = false;
field_0x13775 = 0;
mIsCollectingTadtoneScroll = false;
field_0x13773 = 0;
mTimerVisible = false;
mBirdGaugeVisible = false;
@@ -1078,7 +1078,7 @@ bool dLytMeterMain_c::isInModePause() {
return false;
}
bool dLytMeterMain_c::fn_800D56B0() {
bool dLytMeterMain_c::shouldBeHiddenGeneral() {
if (dLytSaveMgr_c::GetInstance() != nullptr && dLytSaveMgr_c::GetInstance()->isBusy()) {
return true;
}
@@ -1179,18 +1179,18 @@ void dLytMeterMain_c::checkPaneVisibility() {
|| (MinigameManager::isInMinigameState(MinigameManager::TRIAL_TIME_ATTACK) &&
LytDoButtonRelated::get(LytDoButtonRelated::DO_BUTTON_B) == LytDoButtonRelated::ACT_IE_NONE) ||
(dLytMeter_c::getField_0x13B66() || (fn_800D56B0() && !mItemSelect.fn_800F02F0() && !isDoingSkyKeepPuzzle()) ||
(dLytMeter_c::getField_0x13B66() || (shouldBeHiddenGeneral() && !mItemSelect.fn_800F02F0() && !isDoingSkyKeepPuzzle()) ||
isInModeMap() || isInModePause())) {
mPanesVisible[METER_ANIM_ITEM_SELECT] = false;
}
if ((fn_800D56B0() && !isDoingSkyKeepPuzzle() && !mMinusBtn.fn_800F75E0())
if ((shouldBeHiddenGeneral() && !isDoingSkyKeepPuzzle() && !mMinusBtn.fn_800F75E0())
|| (dLytMeter_c::getField_0x13B66() || fn_800D5420() || mMode == MODE_MAP_INIT || isInModePause())) {
mPanesVisible[METER_ANIM_MINUS_BTN] = false;
}
if ((fn_800D56B0() && !isDoingSkyKeepPuzzle())
if ((shouldBeHiddenGeneral() && !isDoingSkyKeepPuzzle())
|| (dLytMeter_c::getField_0x13B66() || fn_800D5420() || mMode == MODE_MAP_INIT || isInModePause())
@@ -1198,7 +1198,7 @@ void dLytMeterMain_c::checkPaneVisibility() {
mPanesVisible[METER_ANIM_PLUS_BTN] = false;
}
if ((fn_800D56B0() && !isDoingSkyKeepPuzzle())
if ((shouldBeHiddenGeneral() && !isDoingSkyKeepPuzzle())
|| (dLytMeter_c::getField_0x13B66() || fn_800D5420() || mMode == MODE_MAP_INIT || isInModePause())
@@ -1206,7 +1206,7 @@ void dLytMeterMain_c::checkPaneVisibility() {
mPanesVisible[METER_ANIM_CROSS_BTN] = false;
}
if ((fn_800D56B0() && !isDoingSkyKeepPuzzle())
if ((shouldBeHiddenGeneral() && !isDoingSkyKeepPuzzle())
|| (dLytMeter_c::getField_0x13B66() || fn_800D5420() || mMode == MODE_MAP_INIT || isInModePause())
@@ -1214,7 +1214,7 @@ void dLytMeterMain_c::checkPaneVisibility() {
mPanesVisible[METER_ANIM_1_BTN] = false;
}
if ((fn_800D56B0() && !isDoingSkyKeepPuzzle())
if ((shouldBeHiddenGeneral() && !isDoingSkyKeepPuzzle())
|| (dLytMeter_c::getField_0x13B66() || fn_800D5420() || mMode == MODE_MAP_INIT || isInModePause())
@@ -1222,7 +1222,7 @@ void dLytMeterMain_c::checkPaneVisibility() {
mPanesVisible[METER_ANIM_2_BTN] = false;
}
if ((fn_800D56B0() && !isDoingSkyKeepPuzzle())
if ((shouldBeHiddenGeneral() && !isDoingSkyKeepPuzzle())
|| (dLytMeter_c::getField_0x13B66() || fn_800D5420() || mMode == MODE_MAP_INIT || isInModePause())
@@ -1230,7 +1230,7 @@ void dLytMeterMain_c::checkPaneVisibility() {
mPanesVisible[METER_ANIM_A_BTN] = false;
}
if ((fn_800D56B0() && !isDoingSkyKeepPuzzle())
if ((shouldBeHiddenGeneral() && !isDoingSkyKeepPuzzle())
|| (dLytMeter_c::getField_0x13B66() || fn_800D5420() || mMode == MODE_MAP_INIT || isInModePause())
@@ -1238,7 +1238,7 @@ void dLytMeterMain_c::checkPaneVisibility() {
mPanesVisible[METER_ANIM_REMOCON_BG] = false;
}
if ((fn_800D56B0() && !isDoingSkyKeepPuzzle() && !mDowsing.fn_800FE490())
if ((shouldBeHiddenGeneral() && !isDoingSkyKeepPuzzle() && !mDowsing.fn_800FE490())
|| (dLytMeter_c::getField_0x13B66() || fn_800D5420() || mMode == MODE_MAP_INIT || isInModePause())
@@ -1246,7 +1246,7 @@ void dLytMeterMain_c::checkPaneVisibility() {
mPanesVisible[METER_ANIM_DOWSING] = false;
}
if ((fn_800D56B0() && !isDoingSkyKeepPuzzle())
if ((shouldBeHiddenGeneral() && !isDoingSkyKeepPuzzle())
|| (dLytMeter_c::getField_0x13B66() || fn_800D5420() || mMode == MODE_MAP_INIT || isInModePause())
@@ -1254,7 +1254,7 @@ void dLytMeterMain_c::checkPaneVisibility() {
mPanesVisible[METER_ANIM_Z_BTN] = false;
}
if ((fn_800D56B0() && !isDoingSkyKeepPuzzle())
if ((shouldBeHiddenGeneral() && !isDoingSkyKeepPuzzle())
|| (dLytMeter_c::getField_0x13B66() || fn_800D5420() || mMode == MODE_MAP_INIT || isInModePause())
@@ -1262,7 +1262,7 @@ void dLytMeterMain_c::checkPaneVisibility() {
mPanesVisible[METER_ANIM_NUN_STK] = false;
}
if ((fn_800D56B0() && !isDoingSkyKeepPuzzle())
if ((shouldBeHiddenGeneral() && !isDoingSkyKeepPuzzle())
|| (dLytMeter_c::getField_0x13B66() || fn_800D5420() || mMode == MODE_MAP_INIT || isInModePause())
@@ -1278,7 +1278,7 @@ void dLytMeterMain_c::checkPaneVisibility() {
MinigameManager::isInMinigameState(MinigameManager::TRIAL_TIME_ATTACK) ||
MinigameManager::isInMinigameState(MinigameManager::PUMPKIN_ARCHERY) ||
MinigameManager::isInMinigameState(MinigameManager::SPIRAL_CHARGE_TUTORIAL) ||
MinigameManager::isInMinigameState(MinigameManager::ROLLERCOASTER) || fn_800D56B0() || mIsInSwordDrawEvent)
MinigameManager::isInMinigameState(MinigameManager::ROLLERCOASTER) || shouldBeHiddenGeneral() || mIsInSwordDrawEvent)
|| (dLytMeter_c::getField_0x13B66() || fn_800D5420() ||
(dLytSimpleWindow_c::getInstance() != nullptr && dLytSimpleWindow_c::getInstance()->isOutputText()) ||
@@ -1301,7 +1301,7 @@ void dLytMeterMain_c::checkPaneVisibility() {
||
(dMessage_c::getInstance()->getField_0x2FC() && mHeart.getField_0x78C() && !dAcPy_c::LINK->isSittingOrUnk0xAE())
|| (fn_800D56B0() &&
|| (shouldBeHiddenGeneral() &&
(dMessage_c::getInstance()->getField_0x2FC() == 0 || dMessage_c::getInstance()->getField_0x2FC() == -2)) ||
mIsInSwordDrawEvent
@@ -1326,7 +1326,7 @@ void dLytMeterMain_c::checkPaneVisibility() {
MinigameManager::isInMinigameState(MinigameManager::SPIRAL_CHARGE_TUTORIAL) ||
MinigameManager::isInMinigameState(MinigameManager::ROLLERCOASTER))
|| (fn_800D56B0() && mHeart.getField_0x78C() == 0)
|| (shouldBeHiddenGeneral() && mHeart.getField_0x78C() == 0)
|| (dScGame_c::currentSpawnInfo.stageName == "F406" && dScGame_c::currentSpawnInfo.layer == 13)
@@ -1338,7 +1338,7 @@ void dLytMeterMain_c::checkPaneVisibility() {
mPanesVisible[METER_ANIM_HEART] = false;
}
if (!isSilentRealm() || (fn_800D56B0() && !fn_800D5590())
if (!isSilentRealm() || (shouldBeHiddenGeneral() && !fn_800D5590())
|| (dLytMeter_c::getField_0x13B66() || fn_800D5420() || mMode == MODE_MAP_INIT || isInModePause())) {
mTimerVisible = false;
@@ -1353,7 +1353,7 @@ void dLytMeterMain_c::checkPaneVisibility() {
}
if ((dAcPy_c::GetLink()->hasvt_0x1C0() || dAcPy_c::GetLink()->checkActionFlagsCont(0x10) ||
(fn_800D56B0() && !mHelpOpen) || mGanbariGauge.fn_80104760() ||
(shouldBeHiddenGeneral() && !mHelpOpen) || mGanbariGauge.fn_80104760() ||
MinigameManager::isInMinigameState(MinigameManager::FUN_FUN_ISLAND) ||
MinigameManager::isInMinigameState(MinigameManager::THRILL_DIGGER) ||
@@ -1365,7 +1365,7 @@ void dLytMeterMain_c::checkPaneVisibility() {
mPanesVisible[METER_ANIM_GANBARI_GAUGE] = false;
}
if ((dAcPy_c::GetLink()->getRidingActorType() != dAcPy_c::RIDING_LOFTWING || fn_800D56B0()) ||
if ((dAcPy_c::GetLink()->getRidingActorType() != dAcPy_c::RIDING_LOFTWING || shouldBeHiddenGeneral()) ||
(dLytMeter_c::getField_0x13B66() || fn_800D5420() || isInModeMap() || isInModePause())) {
mSkyGaugeVisible = false;
} else if (bird != nullptr && mpSkyGauge != nullptr) {
@@ -1382,7 +1382,7 @@ void dLytMeterMain_c::checkPaneVisibility() {
if (dAcPy_c::GetLink()->getRidingActorType() != dAcPy_c::RIDING_LOFTWING || !field_0x13780 ||
(dLytDobutton_c::getAction() != dLytDobutton_c::ACT_DO_INVALID || fn_800D56B0() ||
(dLytDobutton_c::getAction() != dLytDobutton_c::ACT_DO_INVALID || shouldBeHiddenGeneral() ||
dLytMeter_c::getField_0x13B66() || fn_800D5420() || isInModeMap() || isInModePause())) {
mBirdGaugeVisible = false;
}
@@ -1408,7 +1408,7 @@ void dLytMeterMain_c::checkPaneVisibility() {
}
}
if (!field_0x13781 || fn_800D56B0() ||
if (!field_0x13781 || shouldBeHiddenGeneral() ||
(dLytMeter_c::getField_0x13B66() || fn_800D5420() || isInModeMap() || isInModePause())) {
mBossGaugeVisible = false;
@@ -1436,7 +1436,7 @@ void dLytMeterMain_c::checkPaneVisibility() {
if (dAcItem_c::getKeyPieceCount() == 0 || dLytAreaCaption_c::getVisible() || fn_800D5380(false) ||
SceneflagManager::sInstance->checkSceneflagGlobal(4, 0x21) || MinigameManager::isInAnyMinigame()
|| (dLytMeter_c::getField_0x13B66() || fn_800D56B0() || mIsInSwordDrawEvent || fn_800D5420() ||
|| (dLytMeter_c::getField_0x13B66() || shouldBeHiddenGeneral() || mIsInSwordDrawEvent || fn_800D5420() ||
isInModeMap() || isInModePause())) {
mKakeraKeyVisible = false;
}
@@ -1454,7 +1454,7 @@ void dLytMeterMain_c::checkPaneVisibility() {
|| DungeonflagManager::sInstance->getCounterOrFlag(16, 8) != 0 ||
dAcPy_c::GetLink()->getCurrentAction() == 0x8C || dLytAreaCaption_c::getVisible() || fn_800D5380(false) ||
MinigameManager::isInAnyMinigame() || fn_800D56B0() || mIsInSwordDrawEvent
MinigameManager::isInAnyMinigame() || shouldBeHiddenGeneral() || mIsInSwordDrawEvent
|| (dLytMeter_c::getField_0x13B66() || fn_800D5420() || isInModeMap() || isInModePause())) {
mBossKeyVisible = false;
@@ -1471,7 +1471,7 @@ void dLytMeterMain_c::checkPaneVisibility() {
if (mpSmallKey != nullptr) {
if (dAcItem_c::getSmallKeyCount() == 0 || dLytAreaCaption_c::getVisible() || fn_800D5380(false) ||
MinigameManager::isInAnyMinigame() || fn_800D56B0() || mIsInSwordDrawEvent
MinigameManager::isInAnyMinigame() || shouldBeHiddenGeneral() || mIsInSwordDrawEvent
|| (dLytMeter_c::getField_0x13B66() || fn_800D5420() || isInModeMap() || isInModePause())) {
mSmallKeyVisible = false;
@@ -1490,7 +1490,7 @@ void dLytMeterMain_c::checkPaneVisibility() {
if (!field_0x137B2 || dLytAreaCaption_c::getVisible() || fn_800D5380(false) ||
MinigameManager::isInAnyMinigame() || mIsInSwordDrawEvent
|| fn_800D56B0() || dLytMeter_c::getField_0x13B66() || fn_800D5420() || isInModeMap() || isInModePause()) {
|| shouldBeHiddenGeneral() || dLytMeter_c::getField_0x13B66() || fn_800D5420() || isInModeMap() || isInModePause()) {
mDrinkVisible = false;
}
@@ -1509,8 +1509,8 @@ void dLytMeterMain_c::checkPaneVisibility() {
bool dLytMeterMain_c::execute() {
dLytMeter_c *meter = dLytMeter_c::GetInstance();
if (field_0x13775 && !EventManager::isInEvent()) {
field_0x13775 = 0;
if (mIsCollectingTadtoneScroll && !EventManager::isInEvent()) {
mIsCollectingTadtoneScroll = false;
}
if (isSilentRealm()) {
@@ -332,7 +332,7 @@ bool dLytMeterGanbariGauge_c::build(d2d::ResAccIf_c *resAcc) {
field_0x548 = dLytMeter_HIO_c::sInstance->field_0x1C8;
field_0x558 = 0;
field_0x559 = 0;
mClefRelated = false;
field_0x55B = 0;
mpOwnerPane = nullptr;
field_0x55A = 0;
@@ -483,7 +483,7 @@ bool dLytMeterGanbariGauge_c::execute() {
angle = 3;
v2.set(-95.0f, -50.0f);
scale = 0.9f;
} else if (field_0x559 && swimmingRelated()) {
} else if (mClefRelated && swimmingRelated()) {
angle = 1;
v2.set(-65.0f, 0.0f);
scale = 1.0f;