1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-07-04 06:54:33 +00:00

Document Hud Mode (#1323)

* begin interface alpha docs

* more progress/docs

* First draft of docs done

* cleanup

* Consistency

* Display -> Mode

* Remaining display -> mode

* Better docs

* Small touchups

* Small Update

* Apply discord discussion

* small fix

* More discussions

* PR Suggestions

* Roman PR Suggestions

* better comments

* PR Suggestions

* another suggestion

* discord discussions

* cleanup comments

* more discord/pr suggestions
This commit is contained in:
engineer124 2022-11-21 22:01:44 -05:00 committed by GitHub
parent 9bdf6ded2f
commit 9c35716fe2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
28 changed files with 387 additions and 324 deletions

View file

@ -2136,14 +2136,14 @@ s32 DbCamera_UpdateDemoControl(DbCamera* dbCamera, Camera* cam) {
sDbCamAnim.unk_04 = 0;
} else if (CHECK_BTN_ALL(sPlay->state.input[DBCAM_CONTROLLER_PORT].press.button, BTN_CLEFT)) {
sDbCamAnim.unk_0A = 0;
Interface_ChangeAlpha(2);
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_NOTHING_ALT);
Letterbox_SetSizeTarget(0);
D_8016110C = 0;
return 2;
}
if (func_800B91B0(cam, dbCamera) == 0) {
Interface_ChangeAlpha(2);
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_NOTHING_ALT);
Letterbox_SetSizeTarget(0);
Audio_PlaySfxGeneral(NA_SE_SY_GET_RUPY, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
@ -2302,7 +2302,7 @@ s32 DbCamera_UpdateDemoControl(DbCamera* dbCamera, Camera* cam) {
sDbCamAnim.unk_04 = 0.0f;
sDbCamAnim.unk_0A = 1;
sDbCamAnim.unk_0C = 0;
Interface_ChangeAlpha(50);
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_ALL);
Letterbox_SetSizeTarget(32);
D_8016110C = 0;
Audio_PlaySfxGeneral(NA_SE_SY_HP_RECOVER, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,

View file

@ -791,11 +791,11 @@ void Camera_UpdateInterface(s16 flags) {
if ((flags & IFACE_ALPHA_MASK) != IFACE_ALPHA_MASK) {
interfaceAlpha = (flags & IFACE_ALPHA_MASK) >> 8;
if (interfaceAlpha == 0) {
interfaceAlpha = 0x32;
interfaceAlpha = HUD_VISIBILITY_ALL;
}
if (interfaceAlpha != sCameraInterfaceAlpha) {
sCameraInterfaceAlpha = interfaceAlpha;
Interface_ChangeAlpha(sCameraInterfaceAlpha);
Interface_ChangeHudVisibilityMode(sCameraInterfaceAlpha);
}
}
}

View file

@ -19,5 +19,5 @@ void SaveContext_Init(void) {
gSaveContext.skyboxTime = 0;
gSaveContext.dogIsLost = true;
gSaveContext.nextTransitionType = TRANS_NEXT_TYPE_DEFAULT;
gSaveContext.unk_13EE = 50;
gSaveContext.prevHudVisibilityMode = HUD_VISIBILITY_ALL;
}

View file

@ -11,7 +11,7 @@ void Interface_Init(PlayState* play) {
u8 timerId;
gSaveContext.sunsSongState = SUNSSONG_INACTIVE;
gSaveContext.unk_13E8 = gSaveContext.unk_13EA = 0;
gSaveContext.nextHudVisibilityMode = gSaveContext.hudVisibilityMode = HUD_VISIBILITY_NO_CHANGE;
View_Init(&interfaceCtx->view, play->state.gfxCtx);

View file

@ -188,7 +188,7 @@ u32 func_8006472C(PlayState* play, CutsceneContext* csCtx, f32 target) {
}
void func_80064760(PlayState* play, CutsceneContext* csCtx) {
Interface_ChangeAlpha(1);
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_NOTHING);
Letterbox_SetSizeTarget(32);
if (func_8006472C(play, csCtx, 1.0f)) {
@ -199,7 +199,7 @@ void func_80064760(PlayState* play, CutsceneContext* csCtx) {
void func_800647C0(PlayState* play, CutsceneContext* csCtx) {
func_80068C3C(play, csCtx);
Interface_ChangeAlpha(1);
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_NOTHING);
Letterbox_SetSizeTarget(32);
if (func_8006472C(play, csCtx, 1.0f)) {
@ -510,7 +510,7 @@ void Cutscene_Command_Terminator(PlayState* play, CutsceneContext* csCtx, CsCmdB
osSyncPrintf("\n分岐先指定!!=[%d]番", cmd->base); // "Future fork designation=No. [%d]"
if ((gSaveContext.gameMode != GAMEMODE_NORMAL) && (csCtx->frames != cmd->startFrame)) {
gSaveContext.unk_13E7 = 1;
gSaveContext.forceRisingButtonAlphas = true;
}
gSaveContext.cutsceneIndex = 0;
@ -1554,7 +1554,7 @@ void Cutscene_Command_Textbox(PlayState* play, CutsceneContext* csCtx, CsCmdText
}
if (csCtx->frames == originalCsFrames) {
Interface_ChangeAlpha(1);
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_NOTHING);
D_8011E1C0 = 0;
D_8011E1C4 = 0;
}
@ -2018,7 +2018,7 @@ void func_80068ECC(PlayState* play, CutsceneContext* csCtx) {
}
if (gSaveContext.cutsceneTrigger == 0) {
Interface_ChangeAlpha(1);
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_NOTHING);
Letterbox_SetSizeTarget(32);
Letterbox_SetSize(32);
csCtx->state++;

View file

@ -70,7 +70,8 @@ void GameOver_Update(PlayState* play) {
gSaveContext.eventInf[3] = 0;
gSaveContext.buttonStatus[0] = gSaveContext.buttonStatus[1] = gSaveContext.buttonStatus[2] =
gSaveContext.buttonStatus[3] = gSaveContext.buttonStatus[4] = BTN_ENABLED;
gSaveContext.unk_13E7 = gSaveContext.unk_13E8 = gSaveContext.unk_13EA = gSaveContext.unk_13EC = 0;
gSaveContext.forceRisingButtonAlphas = gSaveContext.nextHudVisibilityMode = gSaveContext.hudVisibilityMode =
gSaveContext.hudVisibilityModeTimer = 0; // false, HUD_VISIBILITY_NO_CHANGE
Environment_InitGameOverLights(play);
gGameOverTimer = 20;

View file

@ -24,7 +24,7 @@ void KaleidoSetup_Update(PlayState* play) {
pauseCtx->debugState = 3;
}
} else if (CHECK_BTN_ALL(input->press.button, BTN_START)) {
gSaveContext.unk_13EE = gSaveContext.unk_13EA;
gSaveContext.prevHudVisibilityMode = gSaveContext.hudVisibilityMode;
WREG(16) = -175;
WREG(17) = 155;

View file

@ -1589,10 +1589,10 @@ void Message_OpenText(PlayState* play, u16 textId) {
s16 textBoxType;
if (msgCtx->msgMode == MSGMODE_NONE) {
gSaveContext.unk_13EE = gSaveContext.unk_13EA;
gSaveContext.prevHudVisibilityMode = gSaveContext.hudVisibilityMode;
}
if (R_SCENE_CAM_TYPE == SCENE_CAM_TYPE_FIXED_SHOP_VIEWPOINT) {
Interface_ChangeAlpha(5);
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_A_HEARTS_MAGIC_FORCE);
}
sMessageHasSetSfx = D_8014B2F4 = sTextboxSkipped = sTextIsCredits = 0;
@ -1623,7 +1623,7 @@ void Message_OpenText(PlayState* play, u16 textId) {
textId == 0x2061 || // Learning Epona's Song
textId == 0x5035 || // Guru-Guru in Windmill
textId == 0x40AC) { // Ocarina Frog Minigame
Interface_ChangeAlpha(1);
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_NOTHING);
}
msgCtx->textId = textId;
@ -1840,9 +1840,9 @@ void Message_StartOcarina(PlayState* play, u16 ocarinaActionId) {
msgCtx->textboxColorAlphaCurrent = msgCtx->textboxColorAlphaTarget;
if (noStop == false) {
Interface_LoadActionLabelB(play, DO_ACTION_STOP);
noStop = gSaveContext.unk_13EA;
Interface_ChangeAlpha(0xA);
gSaveContext.unk_13EA = noStop;
noStop = gSaveContext.hudVisibilityMode;
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_B_ALT);
gSaveContext.hudVisibilityMode = noStop;
}
// "Music Performance Start"
osSyncPrintf("演奏開始\n");
@ -1853,7 +1853,7 @@ void Message_StartOcarina(PlayState* play, u16 ocarinaActionId) {
msgCtx->msgMode = MSGMODE_FROGS_START;
msgCtx->textBoxType = TEXTBOX_TYPE_BLUE;
} else if (ocarinaActionId == OCARINA_ACTION_MEMORY_GAME) {
Interface_ChangeAlpha(1);
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_NOTHING);
Message_Decode(play);
msgCtx->msgMode = MSGMODE_MEMORY_GAME_START;
} else if (ocarinaActionId == OCARINA_ACTION_SCARECROW_LONG_PLAYBACK) {
@ -1868,8 +1868,8 @@ void Message_StartOcarina(PlayState* play, u16 ocarinaActionId) {
msgCtx->stateTimer = 3;
msgCtx->msgMode = MSGMODE_SCARECROW_LONG_PLAYBACK;
AudioOcarina_SetPlaybackSong(OCARINA_SONG_SCARECROW_LONG + 1, 1);
gSaveContext.unk_13EA = 0;
Interface_ChangeAlpha(1);
gSaveContext.hudVisibilityMode = HUD_VISIBILITY_NO_CHANGE;
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_NOTHING);
}
for (k = 0, j = 0; j < 48; j++, k += 0x80) {
func_8006EE50(&play->msgCtx.font, 0x8140, k);
@ -2139,7 +2139,7 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
Audio_PlaySfxGeneral(NA_SE_SY_TRE_BOX_APPEAR, &gSfxDefaultPos, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultReverb);
Interface_ChangeAlpha(1);
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_NOTHING);
}
} else if (msgCtx->ocarinaAction == OCARINA_ACTION_CHECK_SCARECROW_SPAWN) {
if (msgCtx->ocarinaStaff->state < OCARINA_SONG_SCARECROW_SPAWN) {
@ -2159,7 +2159,7 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
Audio_PlaySfxGeneral(NA_SE_SY_TRE_BOX_APPEAR, &gSfxDefaultPos, 4,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultReverb);
Interface_ChangeAlpha(1);
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_NOTHING);
}
} else if (msgCtx->ocarinaAction == OCARINA_ACTION_FREE_PLAY) {
// "Ocarina_Free Correct Example Performance"
@ -2176,7 +2176,7 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
&gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultReverb);
}
Interface_ChangeAlpha(1);
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_NOTHING);
} else {
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF);
Audio_PlaySfxGeneral(NA_SE_SY_OCARINA_ERROR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
@ -3189,7 +3189,7 @@ void Message_Update(PlayState* play) {
case MSGMODE_TEXT_NEXT_MSG:
Message_Decode(play);
if (sTextFade) {
Interface_ChangeAlpha(1);
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_NOTHING);
}
if (D_80153D74 != 0) {
msgCtx->textDrawPos = msgCtx->decodedTextLen;
@ -3271,7 +3271,7 @@ void Message_Update(PlayState* play) {
if (msgCtx->textId == 0x301F || msgCtx->textId == 0xA || msgCtx->textId == 0xC || msgCtx->textId == 0xCF ||
msgCtx->textId == 0x21C || msgCtx->textId == 9 || msgCtx->textId == 0x4078 ||
msgCtx->textId == 0x2015 || msgCtx->textId == 0x3040) {
gSaveContext.unk_13EE = 0x32;
gSaveContext.prevHudVisibilityMode = HUD_VISIBILITY_ALL;
}
if (play->csCtx.state == 0) {
osSyncPrintf(VT_FGCOL(GREEN));
@ -3282,11 +3282,13 @@ void Message_Update(PlayState* play) {
(msgCtx->textId != 0x3055 && gSaveContext.cutsceneIndex < 0xFFF0)) {
osSyncPrintf("=== day_time=%x ", ((void)0, gSaveContext.cutsceneIndex));
if (play->activeCamId == CAM_ID_MAIN) {
if (gSaveContext.unk_13EE == 0 || gSaveContext.unk_13EE == 1 || gSaveContext.unk_13EE == 2) {
gSaveContext.unk_13EE = 0x32;
if (gSaveContext.prevHudVisibilityMode == HUD_VISIBILITY_NO_CHANGE ||
gSaveContext.prevHudVisibilityMode == HUD_VISIBILITY_NOTHING ||
gSaveContext.prevHudVisibilityMode == HUD_VISIBILITY_NOTHING_ALT) {
gSaveContext.prevHudVisibilityMode = HUD_VISIBILITY_ALL;
}
gSaveContext.unk_13EA = 0;
Interface_ChangeAlpha(gSaveContext.unk_13EE);
gSaveContext.hudVisibilityMode = HUD_VISIBILITY_NO_CHANGE;
Interface_ChangeHudVisibilityMode(gSaveContext.prevHudVisibilityMode);
}
}
}

View file

@ -1176,7 +1176,7 @@ s16 OnePointCutscene_Init(PlayState* play, s16 csId, s16 timer, Actor* actor, s1
OnePointCutscene_SetAsChild(play, vChildCamId, subCamId);
vSubCamStatus = CAM_STAT_WAIT;
} else {
Interface_ChangeAlpha(2);
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_NOTHING_ALT);
}
OnePointCutscene_SetAsChild(play, subCamId, parentCamId);

View file

@ -164,15 +164,20 @@ static Gfx sSetupDL_80125A60[] = {
};
// original name: "alpha_change"
void Interface_ChangeAlpha(u16 alphaType) {
if (alphaType != gSaveContext.unk_13EA) {
osSyncPrintf("ALPHAーTYPE=%d LAST_TIME_TYPE=%d\n", alphaType, gSaveContext.unk_13EE);
gSaveContext.unk_13EA = gSaveContext.unk_13E8 = alphaType;
gSaveContext.unk_13EC = 1;
void Interface_ChangeHudVisibilityMode(u16 hudVisibilityMode) {
if (hudVisibilityMode != gSaveContext.hudVisibilityMode) {
osSyncPrintf("ALPHAーTYPE=%d LAST_TIME_TYPE=%d\n", hudVisibilityMode,
gSaveContext.prevHudVisibilityMode);
gSaveContext.hudVisibilityMode = gSaveContext.nextHudVisibilityMode = hudVisibilityMode;
gSaveContext.hudVisibilityModeTimer = 1;
}
}
void func_80082644(PlayState* play, s16 alpha) {
/**
* Raise button alphas on the HUD to the requested value
* Apply a set value of 70 to disabled buttons
*/
void Interface_RaiseButtonAlphas(PlayState* play, s16 risingAlpha) {
InterfaceContext* interfaceCtx = &play->interfaceCtx;
if (gSaveContext.buttonStatus[0] == BTN_DISABLED) {
@ -181,7 +186,7 @@ void func_80082644(PlayState* play, s16 alpha) {
}
} else {
if (interfaceCtx->bAlpha != 255) {
interfaceCtx->bAlpha = alpha;
interfaceCtx->bAlpha = risingAlpha;
}
}
@ -191,7 +196,7 @@ void func_80082644(PlayState* play, s16 alpha) {
}
} else {
if (interfaceCtx->cLeftAlpha != 255) {
interfaceCtx->cLeftAlpha = alpha;
interfaceCtx->cLeftAlpha = risingAlpha;
}
}
@ -201,7 +206,7 @@ void func_80082644(PlayState* play, s16 alpha) {
}
} else {
if (interfaceCtx->cDownAlpha != 255) {
interfaceCtx->cDownAlpha = alpha;
interfaceCtx->cDownAlpha = risingAlpha;
}
}
@ -211,7 +216,7 @@ void func_80082644(PlayState* play, s16 alpha) {
}
} else {
if (interfaceCtx->cRightAlpha != 255) {
interfaceCtx->cRightAlpha = alpha;
interfaceCtx->cRightAlpha = risingAlpha;
}
}
@ -221,182 +226,194 @@ void func_80082644(PlayState* play, s16 alpha) {
}
} else {
if (interfaceCtx->aAlpha != 255) {
interfaceCtx->aAlpha = alpha;
interfaceCtx->aAlpha = risingAlpha;
}
}
}
void func_8008277C(PlayState* play, s16 maxAlpha, s16 alpha) {
/**
* Lower button alphas on the HUD to the requested value
* if forceRisingButtonAlphas is set, then instead raise button alphas
*/
void Interface_DimButtonAlphas(PlayState* play, s16 dimmingAlpha, s16 risingAlpha) {
InterfaceContext* interfaceCtx = &play->interfaceCtx;
if (gSaveContext.unk_13E7 != 0) {
func_80082644(play, alpha);
if (gSaveContext.forceRisingButtonAlphas) {
Interface_RaiseButtonAlphas(play, risingAlpha);
return;
}
if ((interfaceCtx->bAlpha != 0) && (interfaceCtx->bAlpha > maxAlpha)) {
interfaceCtx->bAlpha = maxAlpha;
if ((interfaceCtx->bAlpha != 0) && (interfaceCtx->bAlpha > dimmingAlpha)) {
interfaceCtx->bAlpha = dimmingAlpha;
}
if ((interfaceCtx->aAlpha != 0) && (interfaceCtx->aAlpha > maxAlpha)) {
interfaceCtx->aAlpha = maxAlpha;
if ((interfaceCtx->aAlpha != 0) && (interfaceCtx->aAlpha > dimmingAlpha)) {
interfaceCtx->aAlpha = dimmingAlpha;
}
if ((interfaceCtx->cLeftAlpha != 0) && (interfaceCtx->cLeftAlpha > maxAlpha)) {
interfaceCtx->cLeftAlpha = maxAlpha;
if ((interfaceCtx->cLeftAlpha != 0) && (interfaceCtx->cLeftAlpha > dimmingAlpha)) {
interfaceCtx->cLeftAlpha = dimmingAlpha;
}
if ((interfaceCtx->cDownAlpha != 0) && (interfaceCtx->cDownAlpha > maxAlpha)) {
interfaceCtx->cDownAlpha = maxAlpha;
if ((interfaceCtx->cDownAlpha != 0) && (interfaceCtx->cDownAlpha > dimmingAlpha)) {
interfaceCtx->cDownAlpha = dimmingAlpha;
}
if ((interfaceCtx->cRightAlpha != 0) && (interfaceCtx->cRightAlpha > maxAlpha)) {
interfaceCtx->cRightAlpha = maxAlpha;
if ((interfaceCtx->cRightAlpha != 0) && (interfaceCtx->cRightAlpha > dimmingAlpha)) {
interfaceCtx->cRightAlpha = dimmingAlpha;
}
}
void func_80082850(PlayState* play, s16 maxAlpha) {
void Interface_UpdateHudAlphas(PlayState* play, s16 dimmingAlpha) {
InterfaceContext* interfaceCtx = &play->interfaceCtx;
s16 alpha = 255 - maxAlpha;
s16 risingAlpha = 255 - dimmingAlpha;
switch (gSaveContext.unk_13E8) {
case 1:
case 2:
case 8:
switch (gSaveContext.nextHudVisibilityMode) {
case HUD_VISIBILITY_NOTHING:
case HUD_VISIBILITY_NOTHING_ALT:
case HUD_VISIBILITY_B:
osSyncPrintf("a_alpha=%d, c_alpha=%d → ", interfaceCtx->aAlpha, interfaceCtx->cLeftAlpha);
if (gSaveContext.unk_13E8 == 8) {
if (gSaveContext.nextHudVisibilityMode == HUD_VISIBILITY_B) {
if (interfaceCtx->bAlpha != 255) {
interfaceCtx->bAlpha = alpha;
interfaceCtx->bAlpha = risingAlpha;
}
} else {
if ((interfaceCtx->bAlpha != 0) && (interfaceCtx->bAlpha > maxAlpha)) {
interfaceCtx->bAlpha = maxAlpha;
if ((interfaceCtx->bAlpha != 0) && (interfaceCtx->bAlpha > dimmingAlpha)) {
interfaceCtx->bAlpha = dimmingAlpha;
}
}
if ((interfaceCtx->aAlpha != 0) && (interfaceCtx->aAlpha > maxAlpha)) {
interfaceCtx->aAlpha = maxAlpha;
if ((interfaceCtx->aAlpha != 0) && (interfaceCtx->aAlpha > dimmingAlpha)) {
interfaceCtx->aAlpha = dimmingAlpha;
}
if ((interfaceCtx->cLeftAlpha != 0) && (interfaceCtx->cLeftAlpha > maxAlpha)) {
interfaceCtx->cLeftAlpha = maxAlpha;
if ((interfaceCtx->cLeftAlpha != 0) && (interfaceCtx->cLeftAlpha > dimmingAlpha)) {
interfaceCtx->cLeftAlpha = dimmingAlpha;
}
if ((interfaceCtx->cDownAlpha != 0) && (interfaceCtx->cDownAlpha > maxAlpha)) {
interfaceCtx->cDownAlpha = maxAlpha;
if ((interfaceCtx->cDownAlpha != 0) && (interfaceCtx->cDownAlpha > dimmingAlpha)) {
interfaceCtx->cDownAlpha = dimmingAlpha;
}
if ((interfaceCtx->cRightAlpha != 0) && (interfaceCtx->cRightAlpha > maxAlpha)) {
interfaceCtx->cRightAlpha = maxAlpha;
if ((interfaceCtx->cRightAlpha != 0) && (interfaceCtx->cRightAlpha > dimmingAlpha)) {
interfaceCtx->cRightAlpha = dimmingAlpha;
}
if ((interfaceCtx->healthAlpha != 0) && (interfaceCtx->healthAlpha > maxAlpha)) {
interfaceCtx->healthAlpha = maxAlpha;
if ((interfaceCtx->healthAlpha != 0) && (interfaceCtx->healthAlpha > dimmingAlpha)) {
interfaceCtx->healthAlpha = dimmingAlpha;
}
if ((interfaceCtx->magicAlpha != 0) && (interfaceCtx->magicAlpha > maxAlpha)) {
interfaceCtx->magicAlpha = maxAlpha;
if ((interfaceCtx->magicAlpha != 0) && (interfaceCtx->magicAlpha > dimmingAlpha)) {
interfaceCtx->magicAlpha = dimmingAlpha;
}
if ((interfaceCtx->minimapAlpha != 0) && (interfaceCtx->minimapAlpha > maxAlpha)) {
interfaceCtx->minimapAlpha = maxAlpha;
if ((interfaceCtx->minimapAlpha != 0) && (interfaceCtx->minimapAlpha > dimmingAlpha)) {
interfaceCtx->minimapAlpha = dimmingAlpha;
}
osSyncPrintf("a_alpha=%d, c_alpha=%d\n", interfaceCtx->aAlpha, interfaceCtx->cLeftAlpha);
break;
case 3:
if ((interfaceCtx->aAlpha != 0) && (interfaceCtx->aAlpha > maxAlpha)) {
interfaceCtx->aAlpha = maxAlpha;
case HUD_VISIBILITY_HEARTS_FORCE:
// aAlpha is immediately overwritten in Interface_DimButtonAlphas
if ((interfaceCtx->aAlpha != 0) && (interfaceCtx->aAlpha > dimmingAlpha)) {
interfaceCtx->aAlpha = dimmingAlpha;
}
func_8008277C(play, maxAlpha, alpha);
Interface_DimButtonAlphas(play, dimmingAlpha, risingAlpha);
if ((interfaceCtx->magicAlpha != 0) && (interfaceCtx->magicAlpha > maxAlpha)) {
interfaceCtx->magicAlpha = maxAlpha;
if ((interfaceCtx->magicAlpha != 0) && (interfaceCtx->magicAlpha > dimmingAlpha)) {
interfaceCtx->magicAlpha = dimmingAlpha;
}
if ((interfaceCtx->minimapAlpha != 0) && (interfaceCtx->minimapAlpha > maxAlpha)) {
interfaceCtx->minimapAlpha = maxAlpha;
if ((interfaceCtx->minimapAlpha != 0) && (interfaceCtx->minimapAlpha > dimmingAlpha)) {
interfaceCtx->minimapAlpha = dimmingAlpha;
}
if (interfaceCtx->healthAlpha != 255) {
interfaceCtx->healthAlpha = alpha;
interfaceCtx->healthAlpha = risingAlpha;
}
break;
case 4:
if ((interfaceCtx->bAlpha != 0) && (interfaceCtx->bAlpha > maxAlpha)) {
interfaceCtx->bAlpha = maxAlpha;
case HUD_VISIBILITY_A:
if ((interfaceCtx->bAlpha != 0) && (interfaceCtx->bAlpha > dimmingAlpha)) {
interfaceCtx->bAlpha = dimmingAlpha;
}
if ((interfaceCtx->aAlpha != 0) && (interfaceCtx->aAlpha > maxAlpha)) {
interfaceCtx->aAlpha = maxAlpha;
// aAlpha is immediately overwritten below
if ((interfaceCtx->aAlpha != 0) && (interfaceCtx->aAlpha > dimmingAlpha)) {
interfaceCtx->aAlpha = dimmingAlpha;
}
if ((interfaceCtx->cLeftAlpha != 0) && (interfaceCtx->cLeftAlpha > maxAlpha)) {
interfaceCtx->cLeftAlpha = maxAlpha;
if ((interfaceCtx->cLeftAlpha != 0) && (interfaceCtx->cLeftAlpha > dimmingAlpha)) {
interfaceCtx->cLeftAlpha = dimmingAlpha;
}
if ((interfaceCtx->cDownAlpha != 0) && (interfaceCtx->cDownAlpha > maxAlpha)) {
interfaceCtx->cDownAlpha = maxAlpha;
if ((interfaceCtx->cDownAlpha != 0) && (interfaceCtx->cDownAlpha > dimmingAlpha)) {
interfaceCtx->cDownAlpha = dimmingAlpha;
}
if ((interfaceCtx->cRightAlpha != 0) && (interfaceCtx->cRightAlpha > maxAlpha)) {
interfaceCtx->cRightAlpha = maxAlpha;
if ((interfaceCtx->cRightAlpha != 0) && (interfaceCtx->cRightAlpha > dimmingAlpha)) {
interfaceCtx->cRightAlpha = dimmingAlpha;
}
if ((interfaceCtx->healthAlpha != 0) && (interfaceCtx->healthAlpha > maxAlpha)) {
interfaceCtx->healthAlpha = maxAlpha;
if ((interfaceCtx->healthAlpha != 0) && (interfaceCtx->healthAlpha > dimmingAlpha)) {
interfaceCtx->healthAlpha = dimmingAlpha;
}
if ((interfaceCtx->magicAlpha != 0) && (interfaceCtx->magicAlpha > maxAlpha)) {
interfaceCtx->magicAlpha = maxAlpha;
if ((interfaceCtx->magicAlpha != 0) && (interfaceCtx->magicAlpha > dimmingAlpha)) {
interfaceCtx->magicAlpha = dimmingAlpha;
}
if ((interfaceCtx->minimapAlpha != 0) && (interfaceCtx->minimapAlpha > maxAlpha)) {
interfaceCtx->minimapAlpha = maxAlpha;
if ((interfaceCtx->minimapAlpha != 0) && (interfaceCtx->minimapAlpha > dimmingAlpha)) {
interfaceCtx->minimapAlpha = dimmingAlpha;
}
if (interfaceCtx->aAlpha != 255) {
interfaceCtx->aAlpha = alpha;
interfaceCtx->aAlpha = risingAlpha;
}
break;
case 5:
func_8008277C(play, maxAlpha, alpha);
if ((interfaceCtx->minimapAlpha != 0) && (interfaceCtx->minimapAlpha > maxAlpha)) {
interfaceCtx->minimapAlpha = maxAlpha;
case HUD_VISIBILITY_A_HEARTS_MAGIC_FORCE:
Interface_DimButtonAlphas(play, dimmingAlpha, risingAlpha);
if ((interfaceCtx->minimapAlpha != 0) && (interfaceCtx->minimapAlpha > dimmingAlpha)) {
interfaceCtx->minimapAlpha = dimmingAlpha;
}
// aAlpha overwrites the value set in Interface_DimButtonAlphas
if (interfaceCtx->aAlpha != 255) {
interfaceCtx->aAlpha = alpha;
interfaceCtx->aAlpha = risingAlpha;
}
if (interfaceCtx->healthAlpha != 255) {
interfaceCtx->healthAlpha = alpha;
interfaceCtx->healthAlpha = risingAlpha;
}
if (interfaceCtx->magicAlpha != 255) {
interfaceCtx->magicAlpha = alpha;
interfaceCtx->magicAlpha = risingAlpha;
}
break;
case 6:
func_8008277C(play, maxAlpha, alpha);
case HUD_VISIBILITY_A_HEARTS_MAGIC_MINIMAP_FORCE:
Interface_DimButtonAlphas(play, dimmingAlpha, risingAlpha);
// aAlpha overwrites the value set in Interface_DimButtonAlphas
if (interfaceCtx->aAlpha != 255) {
interfaceCtx->aAlpha = alpha;
interfaceCtx->aAlpha = risingAlpha;
}
if (interfaceCtx->healthAlpha != 255) {
interfaceCtx->healthAlpha = alpha;
interfaceCtx->healthAlpha = risingAlpha;
}
if (interfaceCtx->magicAlpha != 255) {
interfaceCtx->magicAlpha = alpha;
interfaceCtx->magicAlpha = risingAlpha;
}
switch (play->sceneId) {
@ -421,187 +438,195 @@ void func_80082850(PlayState* play, s16 maxAlpha) {
case SCENE_SPOT20:
case SCENE_GANON_TOU:
if (interfaceCtx->minimapAlpha < 170) {
interfaceCtx->minimapAlpha = alpha;
interfaceCtx->minimapAlpha = risingAlpha;
} else {
interfaceCtx->minimapAlpha = 170;
}
break;
default:
if (interfaceCtx->minimapAlpha != 255) {
interfaceCtx->minimapAlpha = alpha;
interfaceCtx->minimapAlpha = risingAlpha;
}
break;
}
break;
case 7:
if ((interfaceCtx->minimapAlpha != 0) && (interfaceCtx->minimapAlpha > maxAlpha)) {
interfaceCtx->minimapAlpha = maxAlpha;
case HUD_VISIBILITY_ALL_NO_MINIMAP_BY_BTN_STATUS:
if ((interfaceCtx->minimapAlpha != 0) && (interfaceCtx->minimapAlpha > dimmingAlpha)) {
interfaceCtx->minimapAlpha = dimmingAlpha;
}
func_80082644(play, alpha);
Interface_RaiseButtonAlphas(play, risingAlpha);
if (interfaceCtx->healthAlpha != 255) {
interfaceCtx->healthAlpha = alpha;
interfaceCtx->healthAlpha = risingAlpha;
}
if (interfaceCtx->magicAlpha != 255) {
interfaceCtx->magicAlpha = alpha;
interfaceCtx->magicAlpha = risingAlpha;
}
break;
case 9:
if ((interfaceCtx->bAlpha != 0) && (interfaceCtx->bAlpha > maxAlpha)) {
interfaceCtx->bAlpha = maxAlpha;
case HUD_VISIBILITY_HEARTS_MAGIC:
if ((interfaceCtx->bAlpha != 0) && (interfaceCtx->bAlpha > dimmingAlpha)) {
interfaceCtx->bAlpha = dimmingAlpha;
}
if ((interfaceCtx->aAlpha != 0) && (interfaceCtx->aAlpha > maxAlpha)) {
interfaceCtx->aAlpha = maxAlpha;
if ((interfaceCtx->aAlpha != 0) && (interfaceCtx->aAlpha > dimmingAlpha)) {
interfaceCtx->aAlpha = dimmingAlpha;
}
if ((interfaceCtx->cLeftAlpha != 0) && (interfaceCtx->cLeftAlpha > maxAlpha)) {
interfaceCtx->cLeftAlpha = maxAlpha;
if ((interfaceCtx->cLeftAlpha != 0) && (interfaceCtx->cLeftAlpha > dimmingAlpha)) {
interfaceCtx->cLeftAlpha = dimmingAlpha;
}
if ((interfaceCtx->cDownAlpha != 0) && (interfaceCtx->cDownAlpha > maxAlpha)) {
interfaceCtx->cDownAlpha = maxAlpha;
if ((interfaceCtx->cDownAlpha != 0) && (interfaceCtx->cDownAlpha > dimmingAlpha)) {
interfaceCtx->cDownAlpha = dimmingAlpha;
}
if ((interfaceCtx->cRightAlpha != 0) && (interfaceCtx->cRightAlpha > maxAlpha)) {
interfaceCtx->cRightAlpha = maxAlpha;
if ((interfaceCtx->cRightAlpha != 0) && (interfaceCtx->cRightAlpha > dimmingAlpha)) {
interfaceCtx->cRightAlpha = dimmingAlpha;
}
if ((interfaceCtx->minimapAlpha != 0) && (interfaceCtx->minimapAlpha > maxAlpha)) {
interfaceCtx->minimapAlpha = maxAlpha;
if ((interfaceCtx->minimapAlpha != 0) && (interfaceCtx->minimapAlpha > dimmingAlpha)) {
interfaceCtx->minimapAlpha = dimmingAlpha;
}
if (interfaceCtx->healthAlpha != 255) {
interfaceCtx->healthAlpha = alpha;
interfaceCtx->healthAlpha = risingAlpha;
}
if (interfaceCtx->magicAlpha != 255) {
interfaceCtx->magicAlpha = alpha;
interfaceCtx->magicAlpha = risingAlpha;
}
break;
case 10:
if ((interfaceCtx->aAlpha != 0) && (interfaceCtx->aAlpha > maxAlpha)) {
interfaceCtx->aAlpha = maxAlpha;
case HUD_VISIBILITY_B_ALT:
if ((interfaceCtx->aAlpha != 0) && (interfaceCtx->aAlpha > dimmingAlpha)) {
interfaceCtx->aAlpha = dimmingAlpha;
}
if ((interfaceCtx->cLeftAlpha != 0) && (interfaceCtx->cLeftAlpha > maxAlpha)) {
interfaceCtx->cLeftAlpha = maxAlpha;
if ((interfaceCtx->cLeftAlpha != 0) && (interfaceCtx->cLeftAlpha > dimmingAlpha)) {
interfaceCtx->cLeftAlpha = dimmingAlpha;
}
if ((interfaceCtx->cDownAlpha != 0) && (interfaceCtx->cDownAlpha > maxAlpha)) {
interfaceCtx->cDownAlpha = maxAlpha;
if ((interfaceCtx->cDownAlpha != 0) && (interfaceCtx->cDownAlpha > dimmingAlpha)) {
interfaceCtx->cDownAlpha = dimmingAlpha;
}
if ((interfaceCtx->cRightAlpha != 0) && (interfaceCtx->cRightAlpha > maxAlpha)) {
interfaceCtx->cRightAlpha = maxAlpha;
if ((interfaceCtx->cRightAlpha != 0) && (interfaceCtx->cRightAlpha > dimmingAlpha)) {
interfaceCtx->cRightAlpha = dimmingAlpha;
}
if ((interfaceCtx->healthAlpha != 0) && (interfaceCtx->healthAlpha > maxAlpha)) {
interfaceCtx->healthAlpha = maxAlpha;
if ((interfaceCtx->healthAlpha != 0) && (interfaceCtx->healthAlpha > dimmingAlpha)) {
interfaceCtx->healthAlpha = dimmingAlpha;
}
if ((interfaceCtx->magicAlpha != 0) && (interfaceCtx->magicAlpha > maxAlpha)) {
interfaceCtx->magicAlpha = maxAlpha;
if ((interfaceCtx->magicAlpha != 0) && (interfaceCtx->magicAlpha > dimmingAlpha)) {
interfaceCtx->magicAlpha = dimmingAlpha;
}
if ((interfaceCtx->minimapAlpha != 0) && (interfaceCtx->minimapAlpha > maxAlpha)) {
interfaceCtx->minimapAlpha = maxAlpha;
if ((interfaceCtx->minimapAlpha != 0) && (interfaceCtx->minimapAlpha > dimmingAlpha)) {
interfaceCtx->minimapAlpha = dimmingAlpha;
}
if (interfaceCtx->bAlpha != 255) {
interfaceCtx->bAlpha = alpha;
interfaceCtx->bAlpha = risingAlpha;
}
break;
case 11:
if ((interfaceCtx->bAlpha != 0) && (interfaceCtx->bAlpha > maxAlpha)) {
interfaceCtx->bAlpha = maxAlpha;
case HUD_VISIBILITY_HEARTS:
if ((interfaceCtx->bAlpha != 0) && (interfaceCtx->bAlpha > dimmingAlpha)) {
interfaceCtx->bAlpha = dimmingAlpha;
}
if ((interfaceCtx->aAlpha != 0) && (interfaceCtx->aAlpha > maxAlpha)) {
interfaceCtx->aAlpha = maxAlpha;
if ((interfaceCtx->aAlpha != 0) && (interfaceCtx->aAlpha > dimmingAlpha)) {
interfaceCtx->aAlpha = dimmingAlpha;
}
if ((interfaceCtx->cLeftAlpha != 0) && (interfaceCtx->cLeftAlpha > maxAlpha)) {
interfaceCtx->cLeftAlpha = maxAlpha;
if ((interfaceCtx->cLeftAlpha != 0) && (interfaceCtx->cLeftAlpha > dimmingAlpha)) {
interfaceCtx->cLeftAlpha = dimmingAlpha;
}
if ((interfaceCtx->cDownAlpha != 0) && (interfaceCtx->cDownAlpha > maxAlpha)) {
interfaceCtx->cDownAlpha = maxAlpha;
if ((interfaceCtx->cDownAlpha != 0) && (interfaceCtx->cDownAlpha > dimmingAlpha)) {
interfaceCtx->cDownAlpha = dimmingAlpha;
}
if ((interfaceCtx->cRightAlpha != 0) && (interfaceCtx->cRightAlpha > maxAlpha)) {
interfaceCtx->cRightAlpha = maxAlpha;
if ((interfaceCtx->cRightAlpha != 0) && (interfaceCtx->cRightAlpha > dimmingAlpha)) {
interfaceCtx->cRightAlpha = dimmingAlpha;
}
if ((interfaceCtx->minimapAlpha != 0) && (interfaceCtx->minimapAlpha > maxAlpha)) {
interfaceCtx->minimapAlpha = maxAlpha;
if ((interfaceCtx->minimapAlpha != 0) && (interfaceCtx->minimapAlpha > dimmingAlpha)) {
interfaceCtx->minimapAlpha = dimmingAlpha;
}
if ((interfaceCtx->magicAlpha != 0) && (interfaceCtx->magicAlpha > maxAlpha)) {
interfaceCtx->magicAlpha = maxAlpha;
if ((interfaceCtx->magicAlpha != 0) && (interfaceCtx->magicAlpha > dimmingAlpha)) {
interfaceCtx->magicAlpha = dimmingAlpha;
}
if (interfaceCtx->healthAlpha != 255) {
interfaceCtx->healthAlpha = alpha;
interfaceCtx->healthAlpha = risingAlpha;
}
break;
case 12:
case HUD_VISIBILITY_A_B_MINIMAP:
if (interfaceCtx->aAlpha != 255) {
interfaceCtx->aAlpha = alpha;
interfaceCtx->aAlpha = risingAlpha;
}
if (interfaceCtx->bAlpha != 255) {
interfaceCtx->bAlpha = alpha;
interfaceCtx->bAlpha = risingAlpha;
}
if (interfaceCtx->minimapAlpha != 255) {
interfaceCtx->minimapAlpha = alpha;
interfaceCtx->minimapAlpha = risingAlpha;
}
if ((interfaceCtx->cLeftAlpha != 0) && (interfaceCtx->cLeftAlpha > maxAlpha)) {
interfaceCtx->cLeftAlpha = maxAlpha;
if ((interfaceCtx->cLeftAlpha != 0) && (interfaceCtx->cLeftAlpha > dimmingAlpha)) {
interfaceCtx->cLeftAlpha = dimmingAlpha;
}
if ((interfaceCtx->cDownAlpha != 0) && (interfaceCtx->cDownAlpha > maxAlpha)) {
interfaceCtx->cDownAlpha = maxAlpha;
if ((interfaceCtx->cDownAlpha != 0) && (interfaceCtx->cDownAlpha > dimmingAlpha)) {
interfaceCtx->cDownAlpha = dimmingAlpha;
}
if ((interfaceCtx->cRightAlpha != 0) && (interfaceCtx->cRightAlpha > maxAlpha)) {
interfaceCtx->cRightAlpha = maxAlpha;
if ((interfaceCtx->cRightAlpha != 0) && (interfaceCtx->cRightAlpha > dimmingAlpha)) {
interfaceCtx->cRightAlpha = dimmingAlpha;
}
if ((interfaceCtx->magicAlpha != 0) && (interfaceCtx->magicAlpha > maxAlpha)) {
interfaceCtx->magicAlpha = maxAlpha;
if ((interfaceCtx->magicAlpha != 0) && (interfaceCtx->magicAlpha > dimmingAlpha)) {
interfaceCtx->magicAlpha = dimmingAlpha;
}
if ((interfaceCtx->healthAlpha != 0) && (interfaceCtx->healthAlpha > maxAlpha)) {
interfaceCtx->healthAlpha = maxAlpha;
if ((interfaceCtx->healthAlpha != 0) && (interfaceCtx->healthAlpha > dimmingAlpha)) {
interfaceCtx->healthAlpha = dimmingAlpha;
}
break;
case 13:
func_8008277C(play, maxAlpha, alpha);
if ((interfaceCtx->minimapAlpha != 0) && (interfaceCtx->minimapAlpha > maxAlpha)) {
interfaceCtx->minimapAlpha = maxAlpha;
case HUD_VISIBILITY_HEARTS_MAGIC_FORCE:
Interface_DimButtonAlphas(play, dimmingAlpha, risingAlpha);
if ((interfaceCtx->minimapAlpha != 0) && (interfaceCtx->minimapAlpha > dimmingAlpha)) {
interfaceCtx->minimapAlpha = dimmingAlpha;
}
if ((interfaceCtx->aAlpha != 0) && (interfaceCtx->aAlpha > maxAlpha)) {
interfaceCtx->aAlpha = maxAlpha;
// aAlpha overwrites the value set in Interface_DimButtonAlphas
if ((interfaceCtx->aAlpha != 0) && (interfaceCtx->aAlpha > dimmingAlpha)) {
interfaceCtx->aAlpha = dimmingAlpha;
}
if (interfaceCtx->healthAlpha != 255) {
interfaceCtx->healthAlpha = alpha;
interfaceCtx->healthAlpha = risingAlpha;
}
if (interfaceCtx->magicAlpha != 255) {
interfaceCtx->magicAlpha = alpha;
interfaceCtx->magicAlpha = risingAlpha;
}
break;
@ -621,12 +646,12 @@ void func_80083108(PlayState* play) {
if ((gSaveContext.cutsceneIndex < 0xFFF0) ||
((play->sceneId == SCENE_SPOT20) && (gSaveContext.cutsceneIndex == 0xFFF0))) {
gSaveContext.unk_13E7 = 0;
gSaveContext.forceRisingButtonAlphas = false;
if ((player->stateFlags1 & PLAYER_STATE1_23) || (play->shootingGalleryStatus > 1) ||
((play->sceneId == SCENE_BOWLING) && Flags_GetSwitch(play, 0x38))) {
if (gSaveContext.equips.buttonItems[0] != ITEM_NONE) {
gSaveContext.unk_13E7 = 1;
gSaveContext.forceRisingButtonAlphas = true;
if (gSaveContext.buttonStatus[0] == BTN_DISABLED) {
gSaveContext.buttonStatus[0] = gSaveContext.buttonStatus[1] = gSaveContext.buttonStatus[2] =
@ -661,44 +686,45 @@ void func_80083108(PlayState* play) {
gSaveContext.buttonStatus[1] = gSaveContext.buttonStatus[2] = gSaveContext.buttonStatus[3] =
BTN_DISABLED;
Interface_ChangeAlpha(6);
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_A_HEARTS_MAGIC_MINIMAP_FORCE);
}
if (play->transitionMode != TRANS_MODE_OFF) {
Interface_ChangeAlpha(1);
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_NOTHING);
} else if (gSaveContext.minigameState == 1) {
Interface_ChangeAlpha(8);
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_B);
} else if (play->shootingGalleryStatus > 1) {
Interface_ChangeAlpha(8);
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_B);
} else if ((play->sceneId == SCENE_BOWLING) && Flags_GetSwitch(play, 0x38)) {
Interface_ChangeAlpha(8);
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_B);
} else if (player->stateFlags1 & PLAYER_STATE1_23) {
Interface_ChangeAlpha(12);
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_A_B_MINIMAP);
}
} else {
if (player->stateFlags1 & PLAYER_STATE1_23) {
Interface_ChangeAlpha(12);
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_A_B_MINIMAP);
}
}
} else if (play->sceneId == SCENE_KENJYANOMA) {
Interface_ChangeAlpha(1);
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_NOTHING);
} else if (play->sceneId == SCENE_TURIBORI) {
gSaveContext.unk_13E7 = 2;
// should likely be set to true
gSaveContext.forceRisingButtonAlphas = 2;
if (play->interfaceCtx.unk_260 != 0) {
if (gSaveContext.equips.buttonItems[0] != ITEM_FISHING_POLE) {
gSaveContext.buttonStatus[0] = gSaveContext.equips.buttonItems[0];
gSaveContext.equips.buttonItems[0] = ITEM_FISHING_POLE;
gSaveContext.unk_13EA = 0;
gSaveContext.hudVisibilityMode = HUD_VISIBILITY_NO_CHANGE;
Interface_LoadItemIcon1(play, 0);
Interface_ChangeAlpha(12);
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_A_B_MINIMAP);
}
if (gSaveContext.unk_13EA != 12) {
Interface_ChangeAlpha(12);
if (gSaveContext.hudVisibilityMode != HUD_VISIBILITY_A_B_MINIMAP) {
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_A_B_MINIMAP);
}
} else if (gSaveContext.equips.buttonItems[0] == ITEM_FISHING_POLE) {
gSaveContext.equips.buttonItems[0] = gSaveContext.buttonStatus[0];
gSaveContext.unk_13EA = 0;
gSaveContext.hudVisibilityMode = HUD_VISIBILITY_NO_CHANGE;
if (gSaveContext.equips.buttonItems[0] != ITEM_NONE) {
Interface_LoadItemIcon1(play, 0);
@ -706,15 +732,15 @@ void func_80083108(PlayState* play) {
gSaveContext.buttonStatus[0] = gSaveContext.buttonStatus[1] = gSaveContext.buttonStatus[2] =
gSaveContext.buttonStatus[3] = BTN_DISABLED;
Interface_ChangeAlpha(50);
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_ALL);
} else {
if (gSaveContext.buttonStatus[0] == BTN_ENABLED) {
gSaveContext.unk_13EA = 0;
gSaveContext.hudVisibilityMode = HUD_VISIBILITY_NO_CHANGE;
}
gSaveContext.buttonStatus[0] = gSaveContext.buttonStatus[1] = gSaveContext.buttonStatus[2] =
gSaveContext.buttonStatus[3] = BTN_DISABLED;
Interface_ChangeAlpha(50);
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_ALL);
}
} else if (msgCtx->msgMode == MSGMODE_NONE) {
if ((Player_GetEnvironmentalHazard(play) >= PLAYER_ENV_HAZARD_UNDERWATER_FLOOR) &&
@ -751,18 +777,18 @@ void func_80083108(PlayState* play) {
}
if (sp28) {
gSaveContext.unk_13EA = 0;
gSaveContext.hudVisibilityMode = HUD_VISIBILITY_NO_CHANGE;
}
Interface_ChangeAlpha(50);
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_ALL);
} else if ((player->stateFlags1 & PLAYER_STATE1_21) || (player->stateFlags2 & PLAYER_STATE2_CRAWLING)) {
if (gSaveContext.buttonStatus[0] != BTN_DISABLED) {
gSaveContext.buttonStatus[0] = BTN_DISABLED;
gSaveContext.buttonStatus[1] = BTN_DISABLED;
gSaveContext.buttonStatus[2] = BTN_DISABLED;
gSaveContext.buttonStatus[3] = BTN_DISABLED;
gSaveContext.unk_13EA = 0;
Interface_ChangeAlpha(50);
gSaveContext.hudVisibilityMode = HUD_VISIBILITY_NO_CHANGE;
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_ALL);
}
} else if (GET_EVENTINF_HORSES_STATE() == EVENTINF_HORSES_STATE_1) {
if (player->stateFlags1 & PLAYER_STATE1_23) {
@ -814,10 +840,10 @@ void func_80083108(PlayState* play) {
}
if (sp28) {
gSaveContext.unk_13EA = 0;
gSaveContext.hudVisibilityMode = HUD_VISIBILITY_NO_CHANGE;
}
Interface_ChangeAlpha(50);
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_ALL);
} else {
if (interfaceCtx->restrictions.bButton == 0) {
if ((gSaveContext.equips.buttonItems[0] == ITEM_SLINGSHOT) ||
@ -1059,9 +1085,9 @@ void func_80083108(PlayState* play) {
}
if (sp28) {
gSaveContext.unk_13EA = 0;
gSaveContext.hudVisibilityMode = HUD_VISIBILITY_NO_CHANGE;
if ((play->transitionTrigger == TRANS_TRIGGER_OFF) && (play->transitionMode == TRANS_MODE_OFF)) {
Interface_ChangeAlpha(50);
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_ALL);
osSyncPrintf("???????? alpha_change( 50 ); ?????\n");
} else {
osSyncPrintf("game_play->fade_direction || game_play->fbdemo_wipe_modem");
@ -1312,7 +1338,7 @@ void func_80084BF4(PlayState* play, u16 flag) {
gSaveContext.buttonStatus[0] = gSaveContext.buttonStatus[1] = gSaveContext.buttonStatus[2] =
gSaveContext.buttonStatus[3] = BTN_ENABLED;
Interface_ChangeAlpha(7);
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_ALL_NO_MINIMAP_BY_BTN_STATUS);
} else {
gSaveContext.buttonStatus[0] = gSaveContext.buttonStatus[1] = gSaveContext.buttonStatus[2] =
gSaveContext.buttonStatus[3] = BTN_ENABLED;
@ -2806,7 +2832,9 @@ void Interface_DrawItemButtons(PlayState* play) {
// C-Up Button Texture, Color & Label (Navi Text)
gDPPipeSync(OVERLAY_DISP++);
if ((gSaveContext.unk_13EA == 1) || (gSaveContext.unk_13EA == 2) || (gSaveContext.unk_13EA == 5)) {
if ((gSaveContext.hudVisibilityMode == HUD_VISIBILITY_NOTHING) ||
(gSaveContext.hudVisibilityMode == HUD_VISIBILITY_NOTHING_ALT) ||
(gSaveContext.hudVisibilityMode == HUD_VISIBILITY_A_HEARTS_MAGIC_FORCE)) {
temp = 0;
} else if ((player->stateFlags1 & PLAYER_STATE1_21) ||
(Player_GetEnvironmentalHazard(play) == PLAYER_ENV_HAZARD_UNDERWATER_FREE) ||
@ -3915,8 +3943,8 @@ void Interface_Update(PlayState* play) {
MessageContext* msgCtx = &play->msgCtx;
InterfaceContext* interfaceCtx = &play->interfaceCtx;
Player* player = GET_PLAYER(play);
s16 alpha;
s16 alpha1;
s16 dimmingAlpha;
s16 risingAlpha;
u16 action;
Input* debugInput = &play->state.input[2];
@ -3943,52 +3971,55 @@ void Interface_Update(PlayState* play) {
}
}
switch (gSaveContext.unk_13E8) {
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
case 9:
case 10:
case 11:
case 12:
case 13:
alpha = 255 - (gSaveContext.unk_13EC << 5);
if (alpha < 0) {
alpha = 0;
// Update hud visibility mode
switch (gSaveContext.nextHudVisibilityMode) {
case HUD_VISIBILITY_NOTHING:
case HUD_VISIBILITY_NOTHING_ALT:
case HUD_VISIBILITY_HEARTS_FORCE:
case HUD_VISIBILITY_A:
case HUD_VISIBILITY_A_HEARTS_MAGIC_FORCE:
case HUD_VISIBILITY_A_HEARTS_MAGIC_MINIMAP_FORCE:
case HUD_VISIBILITY_ALL_NO_MINIMAP_BY_BTN_STATUS:
case HUD_VISIBILITY_B:
case HUD_VISIBILITY_HEARTS_MAGIC:
case HUD_VISIBILITY_B_ALT:
case HUD_VISIBILITY_HEARTS:
case HUD_VISIBILITY_A_B_MINIMAP:
case HUD_VISIBILITY_HEARTS_MAGIC_FORCE:
dimmingAlpha = 255 - (32 * gSaveContext.hudVisibilityModeTimer);
if (dimmingAlpha < 0) {
dimmingAlpha = 0;
}
func_80082850(play, alpha);
gSaveContext.unk_13EC++;
Interface_UpdateHudAlphas(play, dimmingAlpha);
gSaveContext.hudVisibilityModeTimer++;
if (alpha == 0) {
gSaveContext.unk_13E8 = 0;
if (dimmingAlpha == 0) {
gSaveContext.nextHudVisibilityMode = HUD_VISIBILITY_NO_CHANGE;
}
break;
case 50:
alpha = 255 - (gSaveContext.unk_13EC << 5);
if (alpha < 0) {
alpha = 0;
case HUD_VISIBILITY_ALL:
dimmingAlpha = 255 - (32 * gSaveContext.hudVisibilityModeTimer);
if (dimmingAlpha < 0) {
dimmingAlpha = 0;
}
alpha1 = 255 - alpha;
if (alpha1 >= 255) {
alpha1 = 255;
risingAlpha = 255 - dimmingAlpha;
if (risingAlpha >= 255) {
risingAlpha = 255;
}
osSyncPrintf("case 50 : alpha=%d alpha1=%d\n", alpha, alpha1);
func_80082644(play, alpha1);
osSyncPrintf("case 50 : alpha=%d alpha1=%d\n", dimmingAlpha, risingAlpha);
Interface_RaiseButtonAlphas(play, risingAlpha);
if (interfaceCtx->healthAlpha != 255) {
interfaceCtx->healthAlpha = alpha1;
interfaceCtx->healthAlpha = risingAlpha;
}
if (interfaceCtx->magicAlpha != 255) {
interfaceCtx->magicAlpha = alpha1;
interfaceCtx->magicAlpha = risingAlpha;
}
switch (play->sceneId) {
@ -4013,28 +4044,32 @@ void Interface_Update(PlayState* play) {
case SCENE_SPOT20:
case SCENE_GANON_TOU:
if (interfaceCtx->minimapAlpha < 170) {
interfaceCtx->minimapAlpha = alpha1;
interfaceCtx->minimapAlpha = risingAlpha;
} else {
interfaceCtx->minimapAlpha = 170;
}
break;
default:
if (interfaceCtx->minimapAlpha != 255) {
interfaceCtx->minimapAlpha = alpha1;
interfaceCtx->minimapAlpha = risingAlpha;
}
break;
}
gSaveContext.unk_13EC++;
if (alpha1 == 255) {
gSaveContext.unk_13E8 = 0;
gSaveContext.hudVisibilityModeTimer++;
if (risingAlpha == 255) {
gSaveContext.nextHudVisibilityMode = HUD_VISIBILITY_NO_CHANGE;
}
break;
case 52:
gSaveContext.unk_13E8 = 1;
func_80082850(play, 0);
gSaveContext.unk_13E8 = 0;
case HUD_VISIBILITY_NOTHING_INSTANT:
// Hide the HUD immediately
gSaveContext.nextHudVisibilityMode = HUD_VISIBILITY_NOTHING;
Interface_UpdateHudAlphas(play, 0);
gSaveContext.nextHudVisibilityMode = HUD_VISIBILITY_NO_CHANGE;
FALLTHROUGH;
default:
break;
}

View file

@ -509,7 +509,7 @@ void Play_Update(PlayState* this) {
if (this->transitionTrigger != TRANS_TRIGGER_END) {
s16 sceneLayer = SCENE_LAYER_CHILD_DAY;
Interface_ChangeAlpha(1);
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_NOTHING);
if (gSaveContext.cutsceneIndex >= 0xFFF0) {
sceneLayer = SCENE_LAYER_CUTSCENE_FIRST + (gSaveContext.cutsceneIndex & 0xF);