diff options
| author | Philip Dubé <159546+serprex@users.noreply.github.com> | 2026-07-12 22:35:19 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-07-12 22:35:19 +0000 |
| commit | 66bb7888b0650548f2bd00ef5faf360f0c37bf6e (patch) | |
| tree | 1245d1d0dff799104a4b1d5e8401d312fb333c2b /soh/src/code | |
| parent | ba08197d3b54d33edd02cf682eaaaf85522f7c86 (diff) | |
Add save state wiring for Barinade, Bongo Bongo, & Morpha (#6914)
Rename various variables across codebase to match decomp,
many had been renamed when exposed for previous save state mechanism
Diffstat (limited to 'soh/src/code')
| -rw-r--r-- | soh/src/code/code_800EC960.c | 549 | ||||
| -rw-r--r-- | soh/src/code/z_demo.c | 4 | ||||
| -rw-r--r-- | soh/src/code/z_kankyo.c | 22 | ||||
| -rw-r--r-- | soh/src/code/z_message_PAL.c | 221 | ||||
| -rw-r--r-- | soh/src/code/z_parameter.c | 10 | ||||
| -rw-r--r-- | soh/src/code/z_scene.c | 2 |
6 files changed, 410 insertions, 398 deletions
diff --git a/soh/src/code/code_800EC960.c b/soh/src/code/code_800EC960.c index 406f3348e..20cd7127d 100644 --- a/soh/src/code/code_800EC960.c +++ b/soh/src/code/code_800EC960.c @@ -849,24 +849,24 @@ s32 sOcarinaB4BtnMap = BTN_CLEFT; s32 sOcarinaA4BtnMap = BTN_CRIGHT; s32 sOcarinaF4BtnMap = BTN_CDOWN; s32 sOcarinaD4BtnMap = BTN_A; -static u8 sOcarinaInpEnabled = 0; -static s8 D_80130F10 = 0; // "OCA", ocarina active? -static u8 sCurOcarinaBtnVal = 0xFF; -static u8 sPrevOcarinaNoteVal = 0; -static u8 sCurOcarinaBtnIdx = 0; // note index? -static u8 sLearnSongLastBtn = 0; -static f32 D_80130F24 = 1.0f; -f32 D_80130F28 = 87.0f / 127.0f; -static s8 D_80130F2C = 0; // pitch? -static s8 D_80130F30 = 0x57; -static s8 D_80130F34 = 0; +static u8 sIsOcarinaInputEnabled = 0; +static s8 sOcarinaInstrumentId = 0; // "OCA", ocarina active? +static u8 sCurOcarinaPitch = 0xFF; +static u8 sPrevOcarinaPitch = 0; +static u8 sCurOcarinaButtonIndex = 0; // note index? +static u8 sMusicStaffPrevPitch = 0; +static f32 sCurOcarinaBendFreq = 1.0f; +f32 sRelativeOcarinaVolume = 87.0f / 127.0f; +static s8 sCurOcarinaBendIndex = 0; // pitch? +static s8 sCurOcarinaVolume = 0x57; +static s8 sCurOcarinaVibrato = 0; static u8 sPlaybackState = 0; // 80130F38 -static u32 D_80130F3C = 0; // "SEQ" -static u32 sNotePlaybackTimer = 0; +static u32 sOcarinaFlags = 0; // "SEQ" +static u32 sPlaybackNoteTimer = 0; static u16 sPlaybackNotePos = 0; -static u16 sStaffPlaybackPos = 0; +static u16 sPlaybackStaffPos = 0; u16 D_80130F4C = 0; -static u8 sDisplayedNoteValue = 0xFF; // Note to display on screen? +static u8 sPlaybackPitch = 0xFF; // Note to display on screen? u8 sNotePlaybackVolume = 0; u8 sNotePlaybackVibrato = 0; s8 sNotePlaybackTone = 0; @@ -1232,63 +1232,63 @@ typedef struct { s8 y; } OcarinaStick; OcarinaStick sCurOcaStick; -static u32 sCurOcarinaBtnPress; -static u32 D_8016BA10; -static u32 sPrevOcarinaBtnPress; -static s32 D_8016BA18; +static u32 sOcarinaInputButtonCur; +static u32 sOcarinaInputButtonStart; +static u32 sOcarinaInputButtonPrev; +static s32 sOcarinaInputButtonPress; static s32 D_8016BA1C; -static u8 sCurOcarinaSong[8]; -static u8 sOcarinaSongAppendPos; +static u8 sCurOcarinaSongWithoutMusicStaff[8]; +static u8 sOcarinaWithoutMusicStaffPos; static u8 sOcarinaHasStartedSong; -static u8 sOcarinaSongNoteStartIdx; -static u8 sOcarinaSongCnt; -static u16 sOcarinaAvailSongs; -static u8 sStaffPlayingPos; -static u16 sLearnSongPos[0x10]; -static u16 D_8016BA50[0x10]; -static u16 D_8016BA70[0x10]; -static u8 sLearnSongExpectedNote[0x10]; -static OcarinaNote D_8016BAA0; -static u8 sAudioHasMalonBgm; -static f32 sAudioMalonBgmDist; +static u8 sFirstOcarinaSongIndex; +static u8 sLastOcarinaSongIndex; +static u16 sAvailOcarinaSongFlags; +static u8 sStaffOcarinaPlayingPos; +static u16 sMusicStaffPos[0x10]; +static u16 sMusicStaffCurHeldLength[0x10]; +static u16 sMusicStaffExpectedLength[0x10]; +static u8 sMusicStaffExpectedPitch[0x10]; +static OcarinaNote sScarecrowsLongSongSecondNote; +static u8 sIsMalonSinging; +static f32 sMalonSingingDist; #define AUDIO_OCA_SHIP_SAVESTATE_FIELDS(F) \ - F(sOcarinaInpEnabled) \ - F(D_80130F10) \ - F(sCurOcarinaBtnVal) \ - F(sPrevOcarinaNoteVal) \ - F(sCurOcarinaBtnIdx) \ - F(sLearnSongLastBtn) \ - F(D_80130F24) \ - F(D_80130F28) \ - F(D_80130F2C) \ - F(D_80130F30) \ - F(D_80130F34) \ + F(sIsOcarinaInputEnabled) \ + F(sOcarinaInstrumentId) \ + F(sCurOcarinaPitch) \ + F(sPrevOcarinaPitch) \ + F(sCurOcarinaButtonIndex) \ + F(sMusicStaffPrevPitch) \ + F(sCurOcarinaBendFreq) \ + F(sRelativeOcarinaVolume) \ + F(sCurOcarinaBendIndex) \ + F(sCurOcarinaVolume) \ + F(sCurOcarinaVibrato) \ F(sPlaybackState) \ - F(D_80130F3C) \ - F(sNotePlaybackTimer) \ + F(sOcarinaFlags) \ + F(sPlaybackNoteTimer) \ F(sPlaybackNotePos) \ - F(sStaffPlaybackPos) \ - F(sCurOcarinaBtnPress) \ - F(D_8016BA10) \ - F(sPrevOcarinaBtnPress) \ - F(D_8016BA18) \ + F(sPlaybackStaffPos) \ + F(sOcarinaInputButtonCur) \ + F(sOcarinaInputButtonStart) \ + F(sOcarinaInputButtonPrev) \ + F(sOcarinaInputButtonPress) \ F(D_8016BA1C) \ - F(sCurOcarinaSong) \ - F(sOcarinaSongAppendPos) \ + F(sCurOcarinaSongWithoutMusicStaff) \ + F(sOcarinaWithoutMusicStaffPos) \ F(sOcarinaHasStartedSong) \ - F(sOcarinaSongNoteStartIdx) \ - F(sOcarinaSongCnt) \ - F(sOcarinaAvailSongs) \ - F(sStaffPlayingPos) \ - F(sLearnSongPos) \ - F(D_8016BA50) \ - F(D_8016BA70) \ - F(sLearnSongExpectedNote) \ - F(D_8016BAA0) \ - F(sAudioHasMalonBgm) \ - F(sAudioMalonBgmDist) \ - F(sDisplayedNoteValue) + F(sFirstOcarinaSongIndex) \ + F(sLastOcarinaSongIndex) \ + F(sAvailOcarinaSongFlags) \ + F(sStaffOcarinaPlayingPos) \ + F(sMusicStaffPos) \ + F(sMusicStaffCurHeldLength) \ + F(sMusicStaffExpectedLength) \ + F(sMusicStaffExpectedPitch) \ + F(sScarecrowsLongSongSecondNote) \ + F(sIsMalonSinging) \ + F(sMalonSingingDist) \ + F(sPlaybackPitch) SHIP_SAVESTATE_DEFINE(AudioOca, AUDIO_OCA_SHIP_SAVESTATE_FIELDS) // Start debug bss @@ -1343,26 +1343,26 @@ void Audio_GetOcaInput(void) { Input* input = &inputs[0]; u32 sp18; - sp18 = sCurOcarinaBtnPress; + sp18 = sOcarinaInputButtonCur; PadMgr_RequestPadData(&gPadMgr, inputs, 0); - sCurOcarinaBtnPress = input->cur.button; - sPrevOcarinaBtnPress = sp18; + sOcarinaInputButtonCur = input->cur.button; + sOcarinaInputButtonPrev = sp18; sCurOcaStick.x = input->rel.stick_x; sCurOcaStick.y = input->rel.stick_y; s8 rstick_x = input->cur.right_stick_x; s8 rstick_y = input->cur.right_stick_y; const s8 sensitivity = 64; if (rstick_x > sensitivity) { - sCurOcarinaBtnPress |= BTN_CUSTOM_RSTICK_RIGHT; + sOcarinaInputButtonCur |= BTN_CUSTOM_RSTICK_RIGHT; } if (rstick_x < -sensitivity) { - sCurOcarinaBtnPress |= BTN_CUSTOM_RSTICK_LEFT; + sOcarinaInputButtonCur |= BTN_CUSTOM_RSTICK_LEFT; } if (rstick_y > sensitivity) { - sCurOcarinaBtnPress |= BTN_CUSTOM_RSTICK_UP; + sOcarinaInputButtonCur |= BTN_CUSTOM_RSTICK_UP; } if (rstick_y < -sensitivity) { - sCurOcarinaBtnPress |= BTN_CUSTOM_RSTICK_DOWN; + sOcarinaInputButtonCur |= BTN_CUSTOM_RSTICK_DOWN; } } @@ -1389,7 +1389,7 @@ u8 Audio_OcaGetPlayingState(void) { if (D_80131878 != 0) { ret = D_80131878 - 1; D_80131878 = 0; - } else if (D_80130F3C != 0) { + } else if (sOcarinaFlags != 0) { ret = 0xFE; } else { ret = 0xFF; @@ -1443,25 +1443,25 @@ void func_800ECC04(u16 flg) { } if (flg != 0xFFFF) { - D_80130F3C = 0x80000000 + (u32)flg; - sOcarinaSongNoteStartIdx = 0; - sOcarinaSongCnt = 0xE; + sOcarinaFlags = 0x80000000 + (u32)flg; + sFirstOcarinaSongIndex = 0; + sLastOcarinaSongIndex = 0xE; if (flg != 0xA000) { - sOcarinaSongCnt--; + sLastOcarinaSongIndex--; } - sOcarinaAvailSongs = flg & 0x3FFF; + sAvailOcarinaSongFlags = flg & 0x3FFF; D_8013187C = 8; sOcarinaHasStartedSong = 0; D_80131878 = 0; - sStaffPlayingPos = 0; + sStaffOcarinaPlayingPos = 0; sPlayingStaff.state = Audio_OcaGetPlayingState(); - sOcarinaInpEnabled = 1; + sIsOcarinaInputEnabled = 1; D_80130F4C = 0; for (i = 0; i < 0xE; i++) { - sLearnSongPos[i] = 0; - D_8016BA50[i] = 0; - D_8016BA70[i] = 0; - sLearnSongExpectedNote[i] = 0; + sMusicStaffPos[i] = 0; + sMusicStaffCurHeldLength[i] = 0; + sMusicStaffExpectedLength[i] = 0; + sMusicStaffExpectedPitch[i] = 0; } if (flg & 0x8000) { @@ -1469,22 +1469,22 @@ void func_800ECC04(u16 flg) { } if (flg & 0x4000) { - sOcarinaSongAppendPos = 0; + sOcarinaWithoutMusicStaffPos = 0; } if (flg & 0xD000) { func_800ECB7C(OCARINA_SONG_SCARECROW); } } else { - D_80130F3C = 0; - sOcarinaInpEnabled = 0; + sOcarinaFlags = 0; + sIsOcarinaInputEnabled = 0; } } void func_800ECDBC(void) { - if (sCurOcarinaBtnVal != 0xFF && sOcarinaHasStartedSong == 0) { + if (sCurOcarinaPitch != 0xFF && sOcarinaHasStartedSong == 0) { sOcarinaHasStartedSong = 1; - sLearnSongLastBtn = 0xFF; + sMusicStaffPrevPitch = 0xFF; } } @@ -1501,76 +1501,77 @@ void func_800ECDF8(void) { func_800ECDBC(); if (sOcarinaHasStartedSong) { - if ((D_80130F2C < 0 ? -D_80130F2C : D_80130F2C) >= 0x15) { - D_80130F3C = 0; + if ((sCurOcarinaBendIndex < 0 ? -sCurOcarinaBendIndex : sCurOcarinaBendIndex) >= 0x15) { + sOcarinaFlags = 0; return; } // clang-format off - if (sPrevOcarinaNoteVal == sCurOcarinaBtnVal || sCurOcarinaBtnVal == 0xFF) { inputChanged = 1; } + if (sPrevOcarinaPitch == sCurOcarinaPitch || sCurOcarinaPitch == 0xFF) { inputChanged = 1; } // clang-format on - for (i = sOcarinaSongNoteStartIdx; i < sOcarinaSongCnt; i++) { + for (i = sFirstOcarinaSongIndex; i < sLastOcarinaSongIndex; i++) { sh = 1 << i; - if (sOcarinaAvailSongs & sh) { - D_8016BA50[i] = D_8016BA70[i] + 0x12; + if (sAvailOcarinaSongFlags & sh) { + sMusicStaffCurHeldLength[i] = sMusicStaffExpectedLength[i] + 0x12; if (inputChanged) { // (pointless if check, this is always true) - if ((D_8016BA50[i] >= D_8016BA70[i] - 0x12) && (D_8016BA50[i] >= D_8016BA70[i] + 0x12) && - (sOcarinaSongs[i][sLearnSongPos[i]].unk_02 == 0) && - (sLearnSongLastBtn == sLearnSongExpectedNote[i])) { + if ((sMusicStaffCurHeldLength[i] >= sMusicStaffExpectedLength[i] - 0x12) && + (sMusicStaffCurHeldLength[i] >= sMusicStaffExpectedLength[i] + 0x12) && + (sOcarinaSongs[i][sMusicStaffPos[i]].unk_02 == 0) && + (sMusicStaffPrevPitch == sMusicStaffExpectedPitch[i])) { D_80131878 = i + 1; - sOcarinaInpEnabled = 0; - D_80130F3C = 0; + sIsOcarinaInputEnabled = 0; + sOcarinaFlags = 0; } - } else if (D_8016BA50[i] >= (D_8016BA70[i] - 0x12)) { - if (sLearnSongLastBtn != 0xFF) { - if (sLearnSongLastBtn == sLearnSongExpectedNote[i]) { + } else if (sMusicStaffCurHeldLength[i] >= (sMusicStaffExpectedLength[i] - 0x12)) { + if (sMusicStaffPrevPitch != 0xFF) { + if (sMusicStaffPrevPitch == sMusicStaffExpectedPitch[i]) { if (i == 12) { - D_8016BA50[i] = 0; + sMusicStaffCurHeldLength[i] = 0; } } else { - sOcarinaAvailSongs ^= sh; + sAvailOcarinaSongFlags ^= sh; } } - prevNote = &sOcarinaSongs[i][sLearnSongPos[i]]; - note = &sOcarinaSongs[i][++sLearnSongPos[i]]; - D_8016BA70[i] = prevNote->unk_02; - sLearnSongExpectedNote[i] = prevNote->noteIdx; + prevNote = &sOcarinaSongs[i][sMusicStaffPos[i]]; + note = &sOcarinaSongs[i][++sMusicStaffPos[i]]; + sMusicStaffExpectedLength[i] = prevNote->unk_02; + sMusicStaffExpectedPitch[i] = prevNote->noteIdx; - if (sCurOcarinaBtnVal != sLearnSongExpectedNote[i]) { - sOcarinaAvailSongs ^= sh; + if (sCurOcarinaPitch != sMusicStaffExpectedPitch[i]) { + sAvailOcarinaSongFlags ^= sh; } while (prevNote->noteIdx == note->noteIdx || (note->noteIdx == OCARINA_NOTE_INVALID && note->unk_02 != 0)) { - D_8016BA70[i] += note->unk_02; - prevNote = &sOcarinaSongs[i][sLearnSongPos[i]]; - note = &sOcarinaSongs[i][sLearnSongPos[i] + 1]; - sLearnSongPos[i]++; + sMusicStaffExpectedLength[i] += note->unk_02; + prevNote = &sOcarinaSongs[i][sMusicStaffPos[i]]; + note = &sOcarinaSongs[i][sMusicStaffPos[i] + 1]; + sMusicStaffPos[i]++; } - } else if (D_8016BA50[i] < 0xA) { + } else if (sMusicStaffCurHeldLength[i] < 0xA) { sp57 = -1; - D_8016BA50[i] = 0; - sLearnSongLastBtn = sCurOcarinaBtnVal; + sMusicStaffCurHeldLength[i] = 0; + sMusicStaffPrevPitch = sCurOcarinaPitch; } else { - sOcarinaAvailSongs ^= sh; + sAvailOcarinaSongFlags ^= sh; } } - if (sOcarinaAvailSongs == 0 && sStaffPlayingPos >= D_8013187C) { - sOcarinaInpEnabled = 0; - if (CHECK_BTN_ANY(D_80130F3C, BTN_B) && sCurOcarinaBtnVal == sOcarinaSongs[i][0].noteIdx) { - D_80130F4C = D_80130F3C; + if (sAvailOcarinaSongFlags == 0 && sStaffOcarinaPlayingPos >= D_8013187C) { + sIsOcarinaInputEnabled = 0; + if (CHECK_BTN_ANY(sOcarinaFlags, BTN_B) && sCurOcarinaPitch == sOcarinaSongs[i][0].noteIdx) { + D_80130F4C = sOcarinaFlags; } - D_80130F3C = 0; + sOcarinaFlags = 0; return; } } if (!inputChanged) { - sLearnSongLastBtn = sCurOcarinaBtnVal; - sStaffPlayingPos += sp57 + 1; + sMusicStaffPrevPitch = sCurOcarinaPitch; + sStaffOcarinaPlayingPos += sp57 + 1; } } } @@ -1588,40 +1589,42 @@ void func_800ED200(void) { disableSongBtnMap = BTN_L; } - if (CHECK_BTN_ANY(sCurOcarinaBtnPress, disableSongBtnMap) && - CHECK_BTN_ANY(sCurOcarinaBtnPress, sOcarinaAllowedBtnMask)) { - func_800ECC04((u16)D_80130F3C); + if (CHECK_BTN_ANY(sOcarinaInputButtonCur, disableSongBtnMap) && + CHECK_BTN_ANY(sOcarinaInputButtonCur, sOcarinaAllowedBtnMask)) { + func_800ECC04((u16)sOcarinaFlags); return; } func_800ECDBC(); if (sOcarinaHasStartedSong) { - if ((sPrevOcarinaNoteVal != sCurOcarinaBtnVal) && (sCurOcarinaBtnVal != 0xFF)) { - sStaffPlayingPos++; - if (sStaffPlayingPos >= 9) { - sStaffPlayingPos = 1; + if ((sPrevOcarinaPitch != sCurOcarinaPitch) && (sCurOcarinaPitch != 0xFF)) { + sStaffOcarinaPlayingPos++; + if (sStaffOcarinaPlayingPos >= 9) { + sStaffOcarinaPlayingPos = 1; } - if (sOcarinaSongAppendPos == 8) { + if (sOcarinaWithoutMusicStaffPos == 8) { for (i = 0; i < 7; i++) { - sCurOcarinaSong[i] = sCurOcarinaSong[i + 1]; + sCurOcarinaSongWithoutMusicStaff[i] = sCurOcarinaSongWithoutMusicStaff[i + 1]; } } else { - sOcarinaSongAppendPos++; + sOcarinaWithoutMusicStaffPos++; } - if ((D_80130F2C < 0 ? -D_80130F2C : D_80130F2C) >= 0x15) { - sCurOcarinaSong[sOcarinaSongAppendPos - 1] = 0xFF; + if ((sCurOcarinaBendIndex < 0 ? -sCurOcarinaBendIndex : sCurOcarinaBendIndex) >= 0x15) { + sCurOcarinaSongWithoutMusicStaff[sOcarinaWithoutMusicStaffPos - 1] = 0xFF; } else { - sCurOcarinaSong[sOcarinaSongAppendPos - 1] = sCurOcarinaBtnVal; + sCurOcarinaSongWithoutMusicStaff[sOcarinaWithoutMusicStaffPos - 1] = sCurOcarinaPitch; } - for (i = sOcarinaSongNoteStartIdx; i < sOcarinaSongCnt; i++) { - if (sOcarinaAvailSongs & (u16)(1 << i)) { - for (j = 0, k = 0; - j < gOcarinaSongNotes[i].len && k == 0 && sOcarinaSongAppendPos >= gOcarinaSongNotes[i].len;) { - temp_v0 = sCurOcarinaSong[(sOcarinaSongAppendPos - gOcarinaSongNotes[i].len) + j]; + for (i = sFirstOcarinaSongIndex; i < sLastOcarinaSongIndex; i++) { + if (sAvailOcarinaSongFlags & (u16)(1 << i)) { + for (j = 0, k = 0; j < gOcarinaSongNotes[i].len && k == 0 && + sOcarinaWithoutMusicStaffPos >= gOcarinaSongNotes[i].len;) { + temp_v0 = + sCurOcarinaSongWithoutMusicStaff[(sOcarinaWithoutMusicStaffPos - gOcarinaSongNotes[i].len) + + j]; if (temp_v0 == sOcarinaNoteValues[gOcarinaSongNotes[i].notesIdx[j]]) { j++; } else { @@ -1631,8 +1634,8 @@ void func_800ED200(void) { if (j == gOcarinaSongNotes[i].len) { D_80131878 = i + 1; - sOcarinaInpEnabled = 0; - D_80130F3C = 0; + sIsOcarinaInputEnabled = 0; + sOcarinaFlags = 0; } } } @@ -1644,46 +1647,51 @@ void func_800ED458(s32 arg0) { u32 phi_v1_2; bool customControls = CVarGetInteger(CVAR_SETTING("CustomOcarina.Enabled"), 0); - if (D_80130F3C != 0 && sOcarinaDropInputTimer != 0) { + if (sOcarinaFlags != 0 && sOcarinaDropInputTimer != 0) { sOcarinaDropInputTimer--; if (!CVarGetInteger(CVAR_ENHANCEMENT("DpadNoDropOcarinaInput"), 0)) { return; } } - if ((D_8016BA10 == 0) || - ((D_8016BA10 & sOcarinaAllowedBtnMask) != (sCurOcarinaBtnPress & sOcarinaAllowedBtnMask))) { - D_8016BA10 = 0; - sCurOcarinaBtnVal = 0xFF; - sCurOcarinaBtnIdx = 0xFF; - phi_v1_2 = (sCurOcarinaBtnPress & sOcarinaAllowedBtnMask) & (sPrevOcarinaBtnPress & sOcarinaAllowedBtnMask); - if (!(D_8016BA18 & phi_v1_2) && (sCurOcarinaBtnPress != 0)) { - D_8016BA18 = sCurOcarinaBtnPress; + if ((sOcarinaInputButtonStart == 0) || + ((sOcarinaInputButtonStart & sOcarinaAllowedBtnMask) != (sOcarinaInputButtonCur & sOcarinaAllowedBtnMask))) { + sOcarinaInputButtonStart = 0; + sCurOcarinaPitch = 0xFF; + sCurOcarinaButtonIndex = 0xFF; + phi_v1_2 = + (sOcarinaInputButtonCur & sOcarinaAllowedBtnMask) & (sOcarinaInputButtonPrev & sOcarinaAllowedBtnMask); + if (!(sOcarinaInputButtonPress & phi_v1_2) && (sOcarinaInputButtonCur != 0)) { + sOcarinaInputButtonPress = sOcarinaInputButtonCur; } else { - D_8016BA18 &= phi_v1_2; + sOcarinaInputButtonPress &= phi_v1_2; } Audio_OcaUpdateBtnMap(customControls); - if (D_8016BA18 & sOcarinaD4BtnMap && GameInteractor_Should(VB_HAVE_OCARINA_NOTE_D4, true)) { + if (sOcarinaInputButtonPress & sOcarinaD4BtnMap && GameInteractor_Should(VB_HAVE_OCARINA_NOTE_D4, true)) { osSyncPrintf("Presss NA_KEY_D4 %08x\n", sOcarinaD4BtnMap); - sCurOcarinaBtnVal = 2; - sCurOcarinaBtnIdx = 0; - } else if (D_8016BA18 & sOcarinaF4BtnMap && GameInteractor_Should(VB_HAVE_OCARINA_NOTE_F4, true)) { + sCurOcarinaPitch = 2; + sCurOcarinaButtonIndex = 0; + } else if (sOcarinaInputButtonPress & sOcarinaF4BtnMap && + GameInteractor_Should(VB_HAVE_OCARINA_NOTE_F4, true)) { osSyncPrintf("Presss NA_KEY_F4 %08x\n", sOcarinaF4BtnMap); - sCurOcarinaBtnVal = 5; - sCurOcarinaBtnIdx = 1; - } else if (D_8016BA18 & sOcarinaA4BtnMap && GameInteractor_Should(VB_HAVE_OCARINA_NOTE_A4, true)) { + sCurOcarinaPitch = 5; + sCurOcarinaButtonIndex = 1; + } else if (sOcarinaInputButtonPress & sOcarinaA4BtnMap && + GameInteractor_Should(VB_HAVE_OCARINA_NOTE_A4, true)) { osSyncPrintf("Presss NA_KEY_A4 %08x\n", sOcarinaA4BtnMap); - sCurOcarinaBtnVal = 9; - sCurOcarinaBtnIdx = 2; - } else if (D_8016BA18 & sOcarinaB4BtnMap && GameInteractor_Should(VB_HAVE_OCARINA_NOTE_B4, true)) { + sCurOcarinaPitch = 9; + sCurOcarinaButtonIndex = 2; + } else if (sOcarinaInputButtonPress & sOcarinaB4BtnMap && + GameInteractor_Should(VB_HAVE_OCARINA_NOTE_B4, true)) { osSyncPrintf("Presss NA_KEY_B4 %08x\n", sOcarinaA4BtnMap); - sCurOcarinaBtnVal = 0xB; - sCurOcarinaBtnIdx = 3; - } else if (D_8016BA18 & sOcarinaD5BtnMap && GameInteractor_Should(VB_HAVE_OCARINA_NOTE_D5, true)) { + sCurOcarinaPitch = 0xB; + sCurOcarinaButtonIndex = 3; + } else if (sOcarinaInputButtonPress & sOcarinaD5BtnMap && + GameInteractor_Should(VB_HAVE_OCARINA_NOTE_D5, true)) { osSyncPrintf("Presss NA_KEY_D5 %08x\n", sOcarinaD5BtnMap); - sCurOcarinaBtnVal = 0xE; - sCurOcarinaBtnIdx = 4; + sCurOcarinaPitch = 0xE; + sCurOcarinaButtonIndex = 4; } u32 noteSharpBtnMap; @@ -1692,9 +1700,9 @@ void func_800ED458(s32 arg0) { } else { noteSharpBtnMap = BTN_R; } - if ((sCurOcarinaBtnVal != 0xFF) && (sCurOcarinaBtnPress & noteSharpBtnMap) && (sRecordingState != 2)) { - sCurOcarinaBtnIdx += 0x80; - sCurOcarinaBtnVal++; + if ((sCurOcarinaPitch != 0xFF) && (sOcarinaInputButtonCur & noteSharpBtnMap) && (sRecordingState != 2)) { + sCurOcarinaButtonIndex += 0x80; + sCurOcarinaPitch++; } u32 noteFlatBtnMap; @@ -1703,39 +1711,40 @@ void func_800ED458(s32 arg0) { } else { noteFlatBtnMap = BTN_Z; } - if ((sCurOcarinaBtnVal != 0xFF) && (sCurOcarinaBtnPress & noteFlatBtnMap) && (sRecordingState != 2)) { - sCurOcarinaBtnIdx += 0x40; - sCurOcarinaBtnVal--; + if ((sCurOcarinaPitch != 0xFF) && (sOcarinaInputButtonCur & noteFlatBtnMap) && (sRecordingState != 2)) { + sCurOcarinaButtonIndex += 0x40; + sCurOcarinaPitch--; } if (sRecordingState != 2) { - D_80130F2C = sCurOcaStick.y; - D_80130F24 = Audio_OcaAdjStick(D_80130F2C); + sCurOcarinaBendIndex = sCurOcaStick.y; + sCurOcarinaBendFreq = Audio_OcaAdjStick(sCurOcarinaBendIndex); - D_80130F34 = (sCurOcaStick.x < 0 ? -sCurOcaStick.x : sCurOcaStick.x) >> 2; - Audio_QueueCmdS8(0x6 << 24 | SEQ_PLAYER_SFX << 16 | 0xD06, D_80130F34); + sCurOcarinaVibrato = (sCurOcaStick.x < 0 ? -sCurOcaStick.x : sCurOcaStick.x) >> 2; + Audio_QueueCmdS8(0x6 << 24 | SEQ_PLAYER_SFX << 16 | 0xD06, sCurOcarinaVibrato); } else { - D_80130F2C = 0; - D_80130F24 = 1.0f; + sCurOcarinaBendIndex = 0; + sCurOcarinaBendFreq = 1.0f; } - if ((sCurOcarinaBtnVal != 0xFF) && (sPrevOcarinaNoteVal != sCurOcarinaBtnVal)) { - Audio_QueueCmdS8(0x6 << 24 | SEQ_PLAYER_SFX << 16 | 0xD07, D_80130F10 - 1); - Audio_QueueCmdS8(0x6 << 24 | SEQ_PLAYER_SFX << 16 | 0xD05, sCurOcarinaBtnVal); - Audio_PlaySoundGeneral(NA_SE_OC_OCARINA, &gSfxDefaultPos, 4, &D_80130F24, &D_80130F28, &gSfxDefaultReverb); - } else if ((sPrevOcarinaNoteVal != 0xFF) && (sCurOcarinaBtnVal == 0xFF)) { + if ((sCurOcarinaPitch != 0xFF) && (sPrevOcarinaPitch != sCurOcarinaPitch)) { + Audio_QueueCmdS8(0x6 << 24 | SEQ_PLAYER_SFX << 16 | 0xD07, sOcarinaInstrumentId - 1); + Audio_QueueCmdS8(0x6 << 24 | SEQ_PLAYER_SFX << 16 | 0xD05, sCurOcarinaPitch); + Audio_PlaySoundGeneral(NA_SE_OC_OCARINA, &gSfxDefaultPos, 4, &sCurOcarinaBendFreq, &sRelativeOcarinaVolume, + &gSfxDefaultReverb); + } else if ((sPrevOcarinaPitch != 0xFF) && (sCurOcarinaPitch == 0xFF)) { Audio_StopSfxById(NA_SE_OC_OCARINA); } - GameInteractor_ExecuteOnOcarinaNote(sCurOcarinaBtnVal, D_80130F24, D_80130F10); + GameInteractor_ExecuteOnOcarinaNote(sCurOcarinaPitch, sCurOcarinaBendFreq, sOcarinaInstrumentId); } } void func_800ED848(u8 inputEnabled) { - sOcarinaInpEnabled = inputEnabled; + sIsOcarinaInputEnabled = inputEnabled; } void AudioOcarina_SetInstrument(u8 arg0) { - if (D_80130F10 == arg0) { + if (sOcarinaInstrumentId == arg0) { return; } @@ -1747,24 +1756,24 @@ void AudioOcarina_SetInstrument(u8 arg0) { } Audio_SeqCmd8(SEQ_PLAYER_SFX, 1, SFX_PLAYER_CHANNEL_OCARINA, arg0); - D_80130F10 = arg0; + sOcarinaInstrumentId = arg0; if (arg0 == 0) { - sCurOcarinaBtnPress = 0; - sPrevOcarinaBtnPress = 0; - D_8016BA18 = 0; - D_8016BA10 = 0xFFFF; + sOcarinaInputButtonCur = 0; + sOcarinaInputButtonPrev = 0; + sOcarinaInputButtonPress = 0; + sOcarinaInputButtonStart = 0xFFFF; func_800ED458(0); Audio_StopSfxById(NA_SE_OC_OCARINA); Audio_SetSoundBanksMute(0); sPlaybackState = 0; - sStaffPlaybackPos = 0; - sOcarinaInpEnabled = 0; - D_80130F3C = 0; + sPlaybackStaffPos = 0; + sIsOcarinaInputEnabled = 0; + sOcarinaFlags = 0; Audio_ClearBGMMute(SFX_PLAYER_CHANNEL_OCARINA); } else { - sCurOcarinaBtnPress = 0; + sOcarinaInputButtonCur = 0; Audio_GetOcaInput(); - D_8016BA10 = sCurOcarinaBtnPress; + sOcarinaInputButtonStart = sOcarinaInputButtonCur; Audio_QueueSeqCmdMute(SFX_PLAYER_CHANNEL_OCARINA); } } @@ -1783,10 +1792,10 @@ void Audio_OcaSetSongPlayback(s8 songIdxPlusOne, s8 playbackState) { } sPlaybackState = playbackState; - sNotePlaybackTimer = 0; - sDisplayedNoteValue = 0xFF; + sPlaybackNoteTimer = 0; + sPlaybackPitch = 0xFF; sPlaybackNotePos = 0; - sStaffPlaybackPos = 0; + sPlaybackStaffPos = 0; while (sPlaybackSong[sPlaybackNotePos].noteIdx == OCARINA_NOTE_INVALID) { sPlaybackNotePos++; } @@ -1797,39 +1806,39 @@ void Audio_OcaPlayback(void) { u32 nextNoteTimerStep = 0; if (sPlaybackState != 0) { - if (sStaffPlaybackPos == 0) { + if (sPlaybackStaffPos == 0) { noteTimerStep = 3; } else { noteTimerStep = D_8016BA04 - D_80130F68; } - if (noteTimerStep < sNotePlaybackTimer) { - sNotePlaybackTimer -= noteTimerStep; + if (noteTimerStep < sPlaybackNoteTimer) { + sPlaybackNoteTimer -= noteTimerStep; } else { - nextNoteTimerStep = noteTimerStep - sNotePlaybackTimer; - sNotePlaybackTimer = 0; + nextNoteTimerStep = noteTimerStep - sPlaybackNoteTimer; + sPlaybackNoteTimer = 0; } - if (sNotePlaybackTimer == 0) { + if (sPlaybackNoteTimer == 0) { - sNotePlaybackTimer = sPlaybackSong[sPlaybackNotePos].unk_02; + sPlaybackNoteTimer = sPlaybackSong[sPlaybackNotePos].unk_02; if (sPlaybackNotePos == 1) { - sNotePlaybackTimer++; + sPlaybackNoteTimer++; } - if (sNotePlaybackTimer == 0) { + if (sPlaybackNoteTimer == 0) { sPlaybackState--; if (sPlaybackState != 0) { sPlaybackNotePos = 0; - sStaffPlaybackPos = 0; - sDisplayedNoteValue = 0xFF; + sPlaybackStaffPos = 0; + sPlaybackPitch = 0xFF; } else { Audio_StopSfxById(NA_SE_OC_OCARINA); } return; } else { - sNotePlaybackTimer -= nextNoteTimerStep; + sPlaybackNoteTimer -= nextNoteTimerStep; } if (sNotePlaybackVolume != sPlaybackSong[sPlaybackNotePos].volume) { @@ -1850,22 +1859,22 @@ void Audio_OcaPlayback(void) { if ((sPlaybackSong[sPlaybackNotePos].volume == sPlaybackSong[sPlaybackNotePos - 1].volume && (sPlaybackSong[sPlaybackNotePos].vibrato == sPlaybackSong[sPlaybackNotePos - 1].vibrato) && (sPlaybackSong[sPlaybackNotePos].tone == sPlaybackSong[sPlaybackNotePos - 1].tone))) { - sDisplayedNoteValue = 0xFE; + sPlaybackPitch = 0xFE; } - if (sDisplayedNoteValue != sPlaybackSong[sPlaybackNotePos].noteIdx) { + if (sPlaybackPitch != sPlaybackSong[sPlaybackNotePos].noteIdx) { u8 tmp = sPlaybackSong[sPlaybackNotePos].noteIdx; if (tmp == 0xA) { - sDisplayedNoteValue = tmp + sPlaybackSong[sPlaybackNotePos].semitone; + sPlaybackPitch = tmp + sPlaybackSong[sPlaybackNotePos].semitone; } else { - sDisplayedNoteValue = tmp; + sPlaybackPitch = tmp; } - if (sDisplayedNoteValue != 0xFF) { - sStaffPlaybackPos++; - Audio_QueueCmdS8(0x6 << 24 | SEQ_PLAYER_SFX << 16 | 0xD07, D_80130F10 - 1); - Audio_QueueCmdS8(0x6 << 24 | SEQ_PLAYER_SFX << 16 | 0xD05, sDisplayedNoteValue & 0x3F); + if (sPlaybackPitch != 0xFF) { + sPlaybackStaffPos++; + Audio_QueueCmdS8(0x6 << 24 | SEQ_PLAYER_SFX << 16 | 0xD07, sOcarinaInstrumentId - 1); + Audio_QueueCmdS8(0x6 << 24 | SEQ_PLAYER_SFX << 16 | 0xD05, sPlaybackPitch & 0x3F); Audio_PlaySoundGeneral(NA_SE_OC_OCARINA, &gSfxDefaultPos, 4, &sNormalizedNotePlaybackTone, &sNormalizedNotePlaybackVolume, &gSfxDefaultReverb); } else { @@ -1899,11 +1908,11 @@ void func_800EDD68(u8 arg0) { song[sRecordSongPos].vibrato = D_8013186C; song[sRecordSongPos].tone = D_80131870; song[sRecordSongPos].semitone = D_80131874 & 0xC0; - D_80131864 = sCurOcarinaBtnVal; - D_80131868 = D_80130F30; - D_8013186C = D_80130F34; - D_80131870 = D_80130F2C; - D_80131874 = sCurOcarinaBtnIdx; + D_80131864 = sCurOcarinaPitch; + D_80131868 = sCurOcarinaVolume; + D_8013186C = sCurOcarinaVibrato; + D_80131870 = sCurOcarinaBendIndex; + D_80131874 = sCurOcarinaButtonIndex; sRecordSongPos++; if ((sRecordSongPos != 107) && (arg0 == 0)) { @@ -1925,7 +1934,7 @@ void func_800EDD68(u8 arg0) { song[sRecordSongPos].unk_02 = 0; if (sRecordingState == 2) { - if (sStaffPlayingPos >= 8) { + if (sStaffOcarinaPlayingPos >= 8) { for (i = 0; i < sRecordSongPos; i++) { song[i] = song[i + 1]; } @@ -1969,7 +1978,7 @@ void func_800EDD68(u8 arg0) { sOcarinaSongs[OCARINA_SONG_SCARECROW][i] = sOcarinaSongs[OCARINA_SONG_MEMORY_GAME][i]; } - sOcarinaInpEnabled = 0; + sIsOcarinaInputEnabled = 0; } else { sOcarinaSongs[OCARINA_SONG_SCARECROW][1].volume = 0xFF; } @@ -1996,22 +2005,22 @@ void Audio_OcaSetRecordingState(u8 recordingState) { D_80131870 = 0; D_80131874 = 0; sRecordSongPos = 0; - sOcarinaInpEnabled = 1; - sStaffPlayingPos = 0; - D_8016BAA0 = sPierresSong[1]; + sIsOcarinaInputEnabled = 1; + sStaffOcarinaPlayingPos = 0; + sScarecrowsLongSongSecondNote = sPierresSong[1]; } else { if (sRecordSongPos == 0) { - sPierresSong[1] = D_8016BAA0; + sPierresSong[1] = sScarecrowsLongSongSecondNote; } else { if (sRecordingState == 2) { - sStaffPlayingPos = 1; + sStaffOcarinaPlayingPos = 1; } func_800EDD68(1); } - sOcarinaInpEnabled = 0; - sStaffPlayingPos = 0; + sIsOcarinaInputEnabled = 0; + sStaffOcarinaPlayingPos = 0; } sRecordingState = recordingState; @@ -2019,31 +2028,31 @@ void Audio_OcaSetRecordingState(u8 recordingState) { void Audio_OcaUpdateRecordingStaff(void) { sRecordingStaff.state = sRecordingState; - sRecordingStaff.pos = sStaffPlayingPos; + sRecordingStaff.pos = sStaffOcarinaPlayingPos; if (sRecordingState == 0xFF) { sRecordingState = 0; } } void Audio_OcaUpdatePlayingStaff(void) { - sPlayingStaff.noteIdx = sCurOcarinaBtnIdx & 0x3F; + sPlayingStaff.noteIdx = sCurOcarinaButtonIndex & 0x3F; sPlayingStaff.state = Audio_OcaGetPlayingState(); - sPlayingStaff.pos = sStaffPlayingPos; + sPlayingStaff.pos = sStaffOcarinaPlayingPos; } void Audio_OcaUpdateDisplayedStaff(void) { - if ((sDisplayedNoteValue & 0x3F) < 0x10) { - sDisplayedStaff.noteIdx = Audio_OcaMapNoteValue(sDisplayedNoteValue); + if ((sPlaybackPitch & 0x3F) < 0x10) { + sDisplayedStaff.noteIdx = Audio_OcaMapNoteValue(sPlaybackPitch); } sDisplayedStaff.state = sPlaybackState; if (sPlaybackSong != sPierresSong) { - sDisplayedStaff.pos = sStaffPlaybackPos; - } else if (sStaffPlaybackPos == 0) { + sDisplayedStaff.pos = sPlaybackStaffPos; + } else if (sPlaybackStaffPos == 0) { sDisplayedStaff.pos = 0; } else { - sDisplayedStaff.pos = ((sStaffPlaybackPos - 1) % 8) + 1; + sDisplayedStaff.pos = ((sPlaybackStaffPos - 1) % 8) + 1; } } @@ -2053,7 +2062,7 @@ OcarinaStaff* Audio_OcaGetRecordingStaff(void) { OcarinaStaff* Audio_OcaGetPlayingStaff(void) { if (sPlayingStaff.state < 0xFE) { - D_80130F3C = 0; + sOcarinaFlags = 0; } return &sPlayingStaff; } @@ -2067,30 +2076,30 @@ void func_800EE404(void) { if ((sRecordingState != 0) && ((D_8016BA04 - D_80131860) >= 3)) { noteChanged = false; - if (D_80131864 != sCurOcarinaBtnVal) { - if (sCurOcarinaBtnVal != 0xFF) { - sRecordingStaff.noteIdx = sCurOcarinaBtnIdx & 0x3F; - sStaffPlayingPos++; - } else if ((sRecordingState == 2) && (sStaffPlayingPos == 8)) { + if (D_80131864 != sCurOcarinaPitch) { + if (sCurOcarinaPitch != 0xFF) { + sRecordingStaff.noteIdx = sCurOcarinaButtonIndex & 0x3F; + sStaffOcarinaPlayingPos++; + } else if ((sRecordingState == 2) && (sStaffOcarinaPlayingPos == 8)) { func_800EDD68(1); return; } - if (sStaffPlayingPos > 8) { + if (sStaffOcarinaPlayingPos > 8) { if (sRecordingState == 2) { // notes played are over 8 and in recording mode. func_800EDD68(1); return; } - sStaffPlayingPos = true; + sStaffOcarinaPlayingPos = true; } noteChanged = true; - } else if (D_80131868 != D_80130F30) { + } else if (D_80131868 != sCurOcarinaVolume) { noteChanged = true; - } else if (D_8013186C != D_80130F34) { + } else if (D_8013186C != sCurOcarinaVibrato) { noteChanged = true; - } else if (D_80131870 != D_80130F2C) { + } else if (D_80131870 != sCurOcarinaBendIndex) { noteChanged = true; } @@ -2185,15 +2194,15 @@ s32 Audio_OcaMemoryGameGenNote(void) { // input update? void func_800EE6F4(void) { D_8016BA04 = gAudioContext.totalTaskCnt; - if (D_80130F10 != 0) { - if (sOcarinaInpEnabled == 1) { + if (sOcarinaInstrumentId != 0) { + if (sIsOcarinaInputEnabled == 1) { Audio_GetOcaInput(); } - if ((sPlaybackState == 0) && (sOcarinaInpEnabled == 1)) { + if ((sPlaybackState == 0) && (sIsOcarinaInputEnabled == 1)) { func_800ED458(0); } - if (D_80130F3C != 0) { - if (D_80130F3C & 0x4000) { + if (sOcarinaFlags != 0) { + if (sOcarinaFlags & 0x4000) { func_800ED200(); } else { func_800ECDF8(); @@ -2207,11 +2216,11 @@ void func_800EE6F4(void) { func_800EE404(); } - if ((D_80130F3C != 0) && (sPrevOcarinaNoteVal != sCurOcarinaBtnVal)) { + if ((sOcarinaFlags != 0) && (sPrevOcarinaPitch != sCurOcarinaPitch)) { sOcarinaDropInputTimer = 1; } - sPrevOcarinaNoteVal = sCurOcarinaBtnVal; + sPrevOcarinaPitch = sCurOcarinaPitch; } Audio_OcaUpdatePlayingStaff(); @@ -2943,8 +2952,8 @@ void AudioDebug_Draw(GfxPrint* printer) { } GfxPrint_SetPos(printer, 3, 24); - GfxPrint_Printf(printer, "OCA:%02x SEQ:%04x PLAY:%02x REC:%02x", D_80130F10, D_80130F3C, sPlaybackState, - sRecordingState); + GfxPrint_Printf(printer, "OCA:%02x SEQ:%04x PLAY:%02x REC:%02x", sOcarinaInstrumentId, sOcarinaFlags, + sPlaybackState, sRecordingState); break; case PAGE_SFX_PARAMETER_CHANGE: @@ -3014,9 +3023,9 @@ void AudioDebug_Draw(GfxPrint* printer) { GfxPrint_Printf(printer, "DEMO FLAG %d", sAudioCutsceneFlag); GfxPrint_SetPos(printer, 3, 12); - if (sAudioHasMalonBgm == true) { - GfxPrint_Printf(printer, "MARON BGM DIST %f", sAudioMalonBgmDist); - sAudioHasMalonBgm = false; + if (sIsMalonSinging == true) { + GfxPrint_Printf(printer, "MARON BGM DIST %f", sMalonSingingDist); + sIsMalonSinging = false; } GfxPrint_SetPos(printer, 3, 23); @@ -4908,8 +4917,8 @@ void Audio_UpdateMalonSinging(f32 dist, u16 arg1) { s8 phi_v1; s16 temp_a0; - sAudioHasMalonBgm = true; - sAudioMalonBgmDist = dist; + sIsMalonSinging = true; + sMalonSingingDist = dist; if (D_8016B9F2 == 0) { temp_a0 = (s8)(func_800FA0B4(SEQ_PLAYER_BGM_MAIN) & 0xFF); if (temp_a0 == (arg1 & 0xFF)) { diff --git a/soh/src/code/z_demo.c b/soh/src/code/z_demo.c index ead99c636..60144add0 100644 --- a/soh/src/code/z_demo.c +++ b/soh/src/code/z_demo.c @@ -421,9 +421,9 @@ void func_80064824(PlayState* play, CutsceneContext* csCtx, CsCmdBase* cmd) { break; case 34: if (IS_DAY) { - gSaveContext.dayTime -= gTimeIncrement; + gSaveContext.dayTime -= gTimeSpeed; } else { - gSaveContext.dayTime -= gTimeIncrement * 2; + gSaveContext.dayTime -= gTimeSpeed * 2; } break; case 35: diff --git a/soh/src/code/z_kankyo.c b/soh/src/code/z_kankyo.c index 8a413f15c..da6b29ce2 100644 --- a/soh/src/code/z_kankyo.c +++ b/soh/src/code/z_kankyo.c @@ -58,9 +58,9 @@ u8 D_8011FB38 = 0; u8 gSkyboxBlendingEnabled = false; -u16 gTimeIncrement = 0; +u16 gTimeSpeed = 0; -#define ENVIRONMENT_SHIP_SAVESTATE_FIELDS(F) F(gTimeIncrement) +#define ENVIRONMENT_SHIP_SAVESTATE_FIELDS(F) F(gTimeSpeed) SHIP_SAVESTATE_DEFINE(Environment, ENVIRONMENT_SHIP_SAVESTATE_FIELDS) u16 D_8011FB44 = 0xFFFC; @@ -325,7 +325,7 @@ void Environment_Init(PlayState* play2, EnvironmentContext* envCtx, s32 unused) envCtx->blendIndoorLights = false; envCtx->unk_BF = 0xFF; envCtx->unk_D6 = 0xFFFF; - R_ENV_TIME_INCREMENT = gTimeIncrement = envCtx->timeIncrement = 0; + R_ENV_TIME_INCREMENT = gTimeSpeed = envCtx->timeIncrement = 0; R_ENV_DISABLE_DBG = true; if (CREG(3) != 0) { @@ -842,7 +842,7 @@ void Environment_PrintDebugInfo(PlayState* play, Gfx** gfx) { GfxPrint_SetColor(&printer, 255, 255, 255, 64); GfxPrint_Printf(&printer, "%02d", (u8)(24 * 60 / (f32)0x10000 * ((void)0, gSaveContext.dayTime) / 60.0f)); - if ((gSaveContext.dayTime & 0x1F) >= 0x10 || gTimeIncrement >= 6) { + if ((gSaveContext.dayTime & 0x1F) >= 0x10 || gTimeSpeed >= 6) { GfxPrint_Printf(&printer, "%s", ":"); } else { GfxPrint_Printf(&printer, "%s", " "); @@ -857,7 +857,7 @@ void Environment_PrintDebugInfo(PlayState* play, Gfx** gfx) { GfxPrint_SetColor(&printer, 255, 255, 255, 64); GfxPrint_Printf(&printer, "%02d", (u8)(24 * 60 / (f32)0x10000 * ((void)0, gSaveContext.skyboxTime) / 60.0f)); - if ((((void)0, gSaveContext.skyboxTime) & 0x1F) >= 0x10 || gTimeIncrement >= 6) { + if ((((void)0, gSaveContext.skyboxTime) & 0x1F) >= 0x10 || gTimeSpeed >= 6) { GfxPrint_Printf(&printer, "%s", ":"); } else { GfxPrint_Printf(&printer, "%s", " "); @@ -930,19 +930,19 @@ void Environment_Update(PlayState* play, EnvironmentContext* envCtx, LightContex if ((envCtx->unk_1A == 0) && !FrameAdvance_IsEnabled(play) && (play->transitionMode == TRANS_MODE_OFF || ((void)0, gSaveContext.gameMode) != GAMEMODE_NORMAL)) { - if (IS_DAY || gTimeIncrement >= 0x190) { - gSaveContext.dayTime += gTimeIncrement; + if (IS_DAY || gTimeSpeed >= 0x190) { + gSaveContext.dayTime += gTimeSpeed; } else { - gSaveContext.dayTime += gTimeIncrement * 2; // time moves twice as fast at night + gSaveContext.dayTime += gTimeSpeed * 2; // time moves twice as fast at night } } } } - //! @bug `gTimeIncrement` is unsigned, it can't be negative - if (((((void)0, gSaveContext.sceneLayer) >= 5 || gTimeIncrement != 0) && + //! @bug `gTimeSpeed` is unsigned, it can't be negative + if (((((void)0, gSaveContext.sceneLayer) >= 5 || gTimeSpeed != 0) && ((void)0, gSaveContext.dayTime) > gSaveContext.skyboxTime) || - (((void)0, gSaveContext.dayTime) < 0xAAB || gTimeIncrement < 0)) { + (((void)0, gSaveContext.dayTime) < 0xAAB || gTimeSpeed < 0)) { gSaveContext.skyboxTime = ((void)0, gSaveContext.dayTime); } diff --git a/soh/src/code/z_message_PAL.c b/soh/src/code/z_message_PAL.c index 809a5d1af..724cb2ab8 100644 --- a/soh/src/code/z_message_PAL.c +++ b/soh/src/code/z_message_PAL.c @@ -24,11 +24,11 @@ static u16 sTextBoxNum = 0; s16 sTextFade = false; // original name: key_off_flag ? -static u8 D_8014B2F4 = 0; +static u8 sMessageStartFrameCount = 0; -static s16 sOcarinaNoteBufPos = 0; +static s16 sOcarinaButtonIndexBufPos = 0; -static s16 sOcarinaNoteBufLen = 0; +static s16 sOcarinaButtonIndexBufLen = 0; static u8 sTextboxSkipped = false; @@ -72,7 +72,7 @@ s16 sTextboxBackgroundYOffsets[] = { }; // original name: onpu_buff -static u8 sOcarinaNoteBuf[12] = { 0 }; +static u8 sOcarinaButtonIndexBuf[12] = { 0 }; s16 sOcarinaNotesAlphaValues[9] = { 0 }; @@ -102,7 +102,7 @@ void Message_ResetOcarinaNoteState(void) { R_OCARINA_NOTES_YPOS(2) = 179; R_OCARINA_NOTES_YPOS(3) = 174; R_OCARINA_NOTES_YPOS(4) = 169; - sOcarinaNoteBuf[0] = 0xFF; + sOcarinaButtonIndexBuf[0] = 0xFF; sOcarinaNotesAlphaValues[0] = sOcarinaNotesAlphaValues[1] = sOcarinaNotesAlphaValues[2] = sOcarinaNotesAlphaValues[3] = sOcarinaNotesAlphaValues[4] = sOcarinaNotesAlphaValues[5] = sOcarinaNotesAlphaValues[6] = sOcarinaNotesAlphaValues[7] = sOcarinaNotesAlphaValues[8] = 0; @@ -145,13 +145,13 @@ void Message_UpdateOcarinaGame(PlayState* play) { if (play->msgCtx.msgMode == MSGMODE_MEMORY_GAME_PLAYER_PLAYING) { AudioOcarina_SetInstrument(1); msgCtx->ocarinaStaff = Audio_OcaGetPlayingStaff(); - msgCtx->ocarinaStaff->pos = sOcarinaNoteBufPos = 0; + msgCtx->ocarinaStaff->pos = sOcarinaButtonIndexBufPos = 0; func_800ECC04((1 << OCARINA_SONG_MEMORY_GAME) + 0x8000); msgCtx->textDrawPos = msgCtx->decodedTextLen; } else if (msgCtx->msgMode == MSGMODE_MEMORY_GAME_RIGHT_SKULLKID_PLAYING) { AudioOcarina_SetInstrument(6); msgCtx->ocarinaStaff = Audio_OcaGetDisplayingStaff(); - msgCtx->ocarinaStaff->pos = sOcarinaNoteBufPos = 0; + msgCtx->ocarinaStaff->pos = sOcarinaButtonIndexBufPos = 0; Audio_OcaSetSongPlayback(OCARINA_SONG_MEMORY_GAME + 1, 1); msgCtx->stateTimer = 2; } @@ -895,8 +895,8 @@ void Message_HandleOcarina(PlayState* play) { AudioOcarina_SetInstrument(1); AudioOcarina_SetInstrument(1); msgCtx->ocarinaStaff = Audio_OcaGetDisplayingStaff(); - sOcarinaNoteBufPos = sOcarinaNoteBufLen = 0; - msgCtx->ocarinaStaff->pos = sOcarinaNoteBufPos; + sOcarinaButtonIndexBufPos = sOcarinaButtonIndexBufLen = 0; + msgCtx->ocarinaStaff->pos = sOcarinaButtonIndexBufPos; Message_ResetOcarinaNoteState(); msgCtx->stateTimer = 3; msgCtx->msgMode = MSGMODE_SCARECROW_LONG_PLAYBACK; @@ -911,8 +911,8 @@ void Message_HandleOcarina(PlayState* play) { AudioOcarina_SetInstrument(1); AudioOcarina_SetInstrument(1); msgCtx->ocarinaStaff = Audio_OcaGetDisplayingStaff(); - sOcarinaNoteBufPos = sOcarinaNoteBufLen = 0; - msgCtx->ocarinaStaff->pos = sOcarinaNoteBufPos; + sOcarinaButtonIndexBufPos = sOcarinaButtonIndexBufLen = 0; + msgCtx->ocarinaStaff->pos = sOcarinaButtonIndexBufPos; Message_ResetOcarinaNoteState(); msgCtx->stateTimer = 3; msgCtx->msgMode = MSGMODE_SCARECROW_PLAYBACK; @@ -2701,7 +2701,7 @@ void Message_OpenText(PlayState* play, u16 textId) { Interface_ChangeHudVisibilityMode(5); } - sMessageHasSetSfx = D_8014B2F4 = sTextboxSkipped = sTextIsCredits = 0; + sMessageHasSetSfx = sMessageStartFrameCount = sTextboxSkipped = sTextIsCredits = 0; if ((msgCtx->msgMode >= MSGMODE_OCARINA_STARTING && msgCtx->msgMode <= MSGMODE_OCARINA_AWAIT_INPUT) || msgCtx->textBoxType == TEXTBOX_TYPE_OCARINA) { // TODO: Figure out what specific textures to invalidate to prevent the ocarina textboxes from flashing @@ -2924,8 +2924,8 @@ void Message_StartOcarina(PlayState* play, u16 ocarinaActionId) { sHasSunsSong = CHECK_QUEST_ITEM(QUEST_SONG_SUN); msgCtx->ocarinaStaff = Audio_OcaGetRecordingStaff(); - msgCtx->ocarinaStaff->pos = sOcarinaNoteBufPos = 0; - sOcarinaNoteBufLen = 0; + msgCtx->ocarinaStaff->pos = sOcarinaButtonIndexBufPos = 0; + sOcarinaButtonIndexBufLen = 0; Message_ResetOcarinaNoteState(); sLastPlayedSong = msgCtx->unk_E3F2 = msgCtx->lastOcaNoteIdx = 0xFF; @@ -3009,8 +3009,8 @@ void Message_StartOcarina(PlayState* play, u16 ocarinaActionId) { AudioOcarina_SetInstrument(1); AudioOcarina_SetInstrument(1); msgCtx->ocarinaStaff = Audio_OcaGetDisplayingStaff(); - sOcarinaNoteBufPos = sOcarinaNoteBufLen = 0; - msgCtx->ocarinaStaff->pos = sOcarinaNoteBufPos; + sOcarinaButtonIndexBufPos = sOcarinaButtonIndexBufLen = 0; + msgCtx->ocarinaStaff->pos = sOcarinaButtonIndexBufPos; Message_ResetOcarinaNoteState(); msgCtx->stateTimer = 3; msgCtx->msgMode = MSGMODE_SCARECROW_LONG_PLAYBACK; @@ -3367,7 +3367,7 @@ void Message_DrawMain(PlayState* play, Gfx** p) { case MSGMODE_SONG_PLAYBACK_STARTING: AudioOcarina_SetInstrument(1); msgCtx->ocarinaStaff = Audio_OcaGetPlayingStaff(); - msgCtx->ocarinaStaff->pos = sOcarinaNoteBufPos = 0; + msgCtx->ocarinaStaff->pos = sOcarinaButtonIndexBufPos = 0; play->msgCtx.ocarinaMode = OCARINA_MODE_01; Message_ResetOcarinaNoteState(); sOcarinaNoteFlashTimer = 3; @@ -3412,15 +3412,15 @@ void Message_DrawMain(PlayState* play, Gfx** p) { case MSGMODE_OCARINA_PLAYING: msgCtx->ocarinaStaff = Audio_OcaGetPlayingStaff(); if (msgCtx->ocarinaStaff->pos) { - osSyncPrintf("locate=%d onpu_pt=%d\n", msgCtx->ocarinaStaff->pos, sOcarinaNoteBufPos); - if (msgCtx->ocarinaStaff->pos == 1 && sOcarinaNoteBufPos == 8) { - sOcarinaNoteBufPos = 0; + osSyncPrintf("locate=%d onpu_pt=%d\n", msgCtx->ocarinaStaff->pos, sOcarinaButtonIndexBufPos); + if (msgCtx->ocarinaStaff->pos == 1 && sOcarinaButtonIndexBufPos == 8) { + sOcarinaButtonIndexBufPos = 0; } - if (sOcarinaNoteBufPos == msgCtx->ocarinaStaff->pos - 1) { - msgCtx->lastOcaNoteIdx = sOcarinaNoteBuf[msgCtx->ocarinaStaff->pos - 1] = + if (sOcarinaButtonIndexBufPos == msgCtx->ocarinaStaff->pos - 1) { + msgCtx->lastOcaNoteIdx = sOcarinaButtonIndexBuf[msgCtx->ocarinaStaff->pos - 1] = msgCtx->ocarinaStaff->noteIdx; - sOcarinaNoteBuf[msgCtx->ocarinaStaff->pos] = OCARINA_NOTE_INVALID; - sOcarinaNoteBufPos++; + sOcarinaButtonIndexBuf[msgCtx->ocarinaStaff->pos] = OCARINA_NOTE_INVALID; + sOcarinaButtonIndexBufPos++; } } msgCtx->lastPlayedSong = msgCtx->ocarinaStaff->state; @@ -3604,7 +3604,7 @@ void Message_DrawMain(PlayState* play, Gfx** p) { } R_OCARINA_NOTES_YPOS_OFFSET += R_OCARINA_NOTES_YPOS_OFFSET; if (R_OCARINA_NOTES_YPOS_OFFSET >= 550) { - sOcarinaNoteBuf[0] = OCARINA_NOTE_INVALID; + sOcarinaButtonIndexBuf[0] = OCARINA_NOTE_INVALID; sOcarinaNotesAlphaValues[0] = sOcarinaNotesAlphaValues[1] = sOcarinaNotesAlphaValues[2] = sOcarinaNotesAlphaValues[3] = sOcarinaNotesAlphaValues[4] = sOcarinaNotesAlphaValues[5] = sOcarinaNotesAlphaValues[6] = sOcarinaNotesAlphaValues[7] = sOcarinaNotesAlphaValues[8] = 0; @@ -3627,7 +3627,7 @@ void Message_DrawMain(PlayState* play, Gfx** p) { Message_Decode(play); msgCtx->msgMode = MSGMODE_SETUP_DISPLAY_SONG_PLAYED; msgCtx->ocarinaStaff = Audio_OcaGetPlayingStaff(); - msgCtx->ocarinaStaff->pos = sOcarinaNoteBufPos = 0; + msgCtx->ocarinaStaff->pos = sOcarinaButtonIndexBufPos = 0; Message_ResetOcarinaNoteState(); if (msgCtx->lastPlayedSong >= OCARINA_SONG_SARIAS && msgCtx->lastPlayedSong < OCARINA_SONG_MEMORY_GAME) { @@ -3666,7 +3666,7 @@ void Message_DrawMain(PlayState* play, Gfx** p) { if (msgCtx->ocarinaAction == OCARINA_ACTION_CHECK_NOWARP) { msgCtx->ocarinaAction = OCARINA_ACTION_CHECK_NOWARP_DONE; } - sOcarinaNoteBufPos = 0; + sOcarinaButtonIndexBufPos = 0; msgCtx->msgMode = MSGMODE_DISPLAY_SONG_PLAYED; break; case MSGMODE_SONG_DEMONSTRATION_SELECT_INSTRUMENT: @@ -3688,7 +3688,7 @@ void Message_DrawMain(PlayState* play, Gfx** p) { // "Example Performance" osSyncPrintf("模範演奏=%x\n", msgCtx->ocarinaAction - OCARINA_ACTION_TEACH_MINUET); Audio_OcaSetSongPlayback(msgCtx->ocarinaAction - OCARINA_ACTION_TEACH_MINUET + 1, 2); - sOcarinaNoteBufPos = 0; + sOcarinaButtonIndexBufPos = 0; msgCtx->msgMode = MSGMODE_SONG_DEMONSTRATION; } if (gSaveContext.language == LANGUAGE_JPN && !sDisplayNextMessageAsEnglish) { @@ -3803,16 +3803,16 @@ void Message_DrawMain(PlayState* play, Gfx** p) { msgCtx->msgMode = MSGMODE_SONG_DEMONSTRATION_DONE; } osSyncPrintf("onpu_buff[%d]=%x\n", msgCtx->ocarinaStaff->pos, - sOcarinaNoteBuf[msgCtx->ocarinaStaff->pos]); + sOcarinaButtonIndexBuf[msgCtx->ocarinaStaff->pos]); } else { - if (sOcarinaNoteBufPos != 0 && msgCtx->ocarinaStaff->pos == 1) { - sOcarinaNoteBufPos = 0; + if (sOcarinaButtonIndexBufPos != 0 && msgCtx->ocarinaStaff->pos == 1) { + sOcarinaButtonIndexBufPos = 0; } - if (msgCtx->ocarinaStaff->pos && sOcarinaNoteBufPos == msgCtx->ocarinaStaff->pos - 1) { - msgCtx->lastOcaNoteIdx = sOcarinaNoteBuf[msgCtx->ocarinaStaff->pos - 1] = + if (msgCtx->ocarinaStaff->pos && sOcarinaButtonIndexBufPos == msgCtx->ocarinaStaff->pos - 1) { + msgCtx->lastOcaNoteIdx = sOcarinaButtonIndexBuf[msgCtx->ocarinaStaff->pos - 1] = msgCtx->ocarinaStaff->noteIdx; - sOcarinaNoteBuf[msgCtx->ocarinaStaff->pos] = OCARINA_NOTE_INVALID; - sOcarinaNoteBufPos++; + sOcarinaButtonIndexBuf[msgCtx->ocarinaStaff->pos] = OCARINA_NOTE_INVALID; + sOcarinaButtonIndexBufPos++; } } case MSGMODE_SONG_DEMONSTRATION_DONE: @@ -3824,10 +3824,10 @@ void Message_DrawMain(PlayState* play, Gfx** p) { break; case MSGMODE_SONG_PLAYBACK: msgCtx->ocarinaStaff = Audio_OcaGetPlayingStaff(); - if (msgCtx->ocarinaStaff->pos && sOcarinaNoteBufPos == msgCtx->ocarinaStaff->pos - 1) { - sOcarinaNoteBuf[msgCtx->ocarinaStaff->pos - 1] = msgCtx->ocarinaStaff->noteIdx; - sOcarinaNoteBuf[msgCtx->ocarinaStaff->pos] = OCARINA_NOTE_INVALID; - sOcarinaNoteBufPos++; + if (msgCtx->ocarinaStaff->pos && sOcarinaButtonIndexBufPos == msgCtx->ocarinaStaff->pos - 1) { + sOcarinaButtonIndexBuf[msgCtx->ocarinaStaff->pos - 1] = msgCtx->ocarinaStaff->noteIdx; + sOcarinaButtonIndexBuf[msgCtx->ocarinaStaff->pos] = OCARINA_NOTE_INVALID; + sOcarinaButtonIndexBufPos++; } if (msgCtx->ocarinaStaff->state < OCARINA_SONG_MEMORY_GAME) { osSyncPrintf("M_OCARINA20 : ocarina_no=%x status=%x\n", msgCtx->ocarinaAction, @@ -3876,8 +3876,8 @@ void Message_DrawMain(PlayState* play, Gfx** p) { Audio_OcaSetRecordingState(1); AudioOcarina_SetInstrument(1); msgCtx->ocarinaStaff = Audio_OcaGetRecordingStaff(); - msgCtx->ocarinaStaff->pos = sOcarinaNoteBufPos = 0; - sOcarinaNoteBufLen = 0; + msgCtx->ocarinaStaff->pos = sOcarinaButtonIndexBufPos = 0; + sOcarinaButtonIndexBufLen = 0; Message_ResetOcarinaNoteState(); msgCtx->msgMode = MSGMODE_SCARECROW_LONG_RECORDING_ONGOING; if (gSaveContext.language == LANGUAGE_JPN && !sDisplayNextMessageAsEnglish) { @@ -3888,26 +3888,27 @@ void Message_DrawMain(PlayState* play, Gfx** p) { break; case MSGMODE_SCARECROW_LONG_RECORDING_ONGOING: msgCtx->ocarinaStaff = Audio_OcaGetRecordingStaff(); - osSyncPrintf("\nonpu_pt=%d, locate=%d", sOcarinaNoteBufPos, msgCtx->ocarinaStaff->pos); - if (msgCtx->ocarinaStaff->pos && sOcarinaNoteBufPos == msgCtx->ocarinaStaff->pos - 1) { - if (sOcarinaNoteBufLen >= 8) { - for (noteBufPos = sOcarinaNoteBufLen - 8, i = 0; i < 8; i++, noteBufPos++) { - sOcarinaNoteBuf[noteBufPos] = sOcarinaNoteBuf[noteBufPos + 1]; + osSyncPrintf("\nonpu_pt=%d, locate=%d", sOcarinaButtonIndexBufPos, msgCtx->ocarinaStaff->pos); + if (msgCtx->ocarinaStaff->pos && sOcarinaButtonIndexBufPos == msgCtx->ocarinaStaff->pos - 1) { + if (sOcarinaButtonIndexBufLen >= 8) { + for (noteBufPos = sOcarinaButtonIndexBufLen - 8, i = 0; i < 8; i++, noteBufPos++) { + sOcarinaButtonIndexBuf[noteBufPos] = sOcarinaButtonIndexBuf[noteBufPos + 1]; } - sOcarinaNoteBufLen--; + sOcarinaButtonIndexBufLen--; } // "Button Entered" - osSyncPrintf(" 入力ボタン【%d】=%d", sOcarinaNoteBufLen, msgCtx->ocarinaStaff->noteIdx); - msgCtx->lastOcaNoteIdx = sOcarinaNoteBuf[sOcarinaNoteBufLen] = msgCtx->ocarinaStaff->noteIdx; - sOcarinaNoteBufLen++; - sOcarinaNoteBuf[sOcarinaNoteBufLen] = OCARINA_NOTE_INVALID; - sOcarinaNoteBufPos++; + osSyncPrintf(" 入力ボタン【%d】=%d", sOcarinaButtonIndexBufLen, msgCtx->ocarinaStaff->noteIdx); + msgCtx->lastOcaNoteIdx = sOcarinaButtonIndexBuf[sOcarinaButtonIndexBufLen] = + msgCtx->ocarinaStaff->noteIdx; + sOcarinaButtonIndexBufLen++; + sOcarinaButtonIndexBuf[sOcarinaButtonIndexBufLen] = OCARINA_NOTE_INVALID; + sOcarinaButtonIndexBufPos++; if (msgCtx->ocarinaStaff->pos == 8) { - sOcarinaNoteBufPos = 0; + sOcarinaButtonIndexBufPos = 0; } } if (msgCtx->ocarinaStaff->state == 0 || isB_Held) { - if (sOcarinaNoteBufLen != 0) { + if (sOcarinaButtonIndexBufLen != 0) { // "Recording complete!!!!!!!!!" osSyncPrintf("録音終了!!!!!!!!! message->info->status=%d \n", msgCtx->ocarinaStaff->state); @@ -3941,19 +3942,19 @@ void Message_DrawMain(PlayState* play, Gfx** p) { case MSGMODE_SCARECROW_LONG_PLAYBACK: case MSGMODE_SCARECROW_PLAYBACK: msgCtx->ocarinaStaff = Audio_OcaGetDisplayingStaff(); - if (msgCtx->ocarinaStaff->pos && sOcarinaNoteBufPos == msgCtx->ocarinaStaff->pos - 1) { - if (sOcarinaNoteBufLen >= 8) { - for (noteBufPos = sOcarinaNoteBufLen - 8, i = 0; i < 8; i++, noteBufPos++) { - sOcarinaNoteBuf[noteBufPos] = sOcarinaNoteBuf[noteBufPos + 1]; + if (msgCtx->ocarinaStaff->pos && sOcarinaButtonIndexBufPos == msgCtx->ocarinaStaff->pos - 1) { + if (sOcarinaButtonIndexBufLen >= 8) { + for (noteBufPos = sOcarinaButtonIndexBufLen - 8, i = 0; i < 8; i++, noteBufPos++) { + sOcarinaButtonIndexBuf[noteBufPos] = sOcarinaButtonIndexBuf[noteBufPos + 1]; } - sOcarinaNoteBufLen--; + sOcarinaButtonIndexBufLen--; } - sOcarinaNoteBuf[sOcarinaNoteBufLen] = msgCtx->ocarinaStaff->noteIdx; - sOcarinaNoteBufLen++; - sOcarinaNoteBuf[sOcarinaNoteBufLen] = OCARINA_NOTE_INVALID; - sOcarinaNoteBufPos++; + sOcarinaButtonIndexBuf[sOcarinaButtonIndexBufLen] = msgCtx->ocarinaStaff->noteIdx; + sOcarinaButtonIndexBufLen++; + sOcarinaButtonIndexBuf[sOcarinaButtonIndexBufLen] = OCARINA_NOTE_INVALID; + sOcarinaButtonIndexBufPos++; if (msgCtx->ocarinaStaff->pos == 8) { - sOcarinaNoteBufLen = sOcarinaNoteBufPos = 0; + sOcarinaButtonIndexBufLen = sOcarinaButtonIndexBufPos = 0; } } osSyncPrintf("status=%d (%d)\n", msgCtx->ocarinaStaff->state, 0); @@ -3980,10 +3981,11 @@ void Message_DrawMain(PlayState* play, Gfx** p) { break; case MSGMODE_SCARECROW_RECORDING_ONGOING: msgCtx->ocarinaStaff = Audio_OcaGetRecordingStaff(); - if (msgCtx->ocarinaStaff->pos && sOcarinaNoteBufPos == msgCtx->ocarinaStaff->pos - 1) { - msgCtx->lastOcaNoteIdx = sOcarinaNoteBuf[sOcarinaNoteBufPos] = msgCtx->ocarinaStaff->noteIdx; - sOcarinaNoteBufPos++; - sOcarinaNoteBuf[sOcarinaNoteBufPos] = OCARINA_NOTE_INVALID; + if (msgCtx->ocarinaStaff->pos && sOcarinaButtonIndexBufPos == msgCtx->ocarinaStaff->pos - 1) { + msgCtx->lastOcaNoteIdx = sOcarinaButtonIndexBuf[sOcarinaButtonIndexBufPos] = + msgCtx->ocarinaStaff->noteIdx; + sOcarinaButtonIndexBufPos++; + sOcarinaButtonIndexBuf[sOcarinaButtonIndexBufPos] = OCARINA_NOTE_INVALID; } if (msgCtx->ocarinaStaff->state == 0) { // "8 Note Recording OK!" @@ -4028,7 +4030,7 @@ void Message_DrawMain(PlayState* play, Gfx** p) { AudioOcarina_SetInstrument(6); Audio_OcaMemoryGameStart(gSaveContext.ocarinaGameRoundNum); msgCtx->ocarinaStaff = Audio_OcaGetDisplayingStaff(); - msgCtx->ocarinaStaff->pos = sOcarinaNoteBufPos = 0; + msgCtx->ocarinaStaff->pos = sOcarinaButtonIndexBufPos = 0; Message_ResetOcarinaNoteState(); Audio_OcaSetSongPlayback(OCARINA_SONG_MEMORY_GAME + 1, 1); msgCtx->msgMode = MSGMODE_MEMORY_GAME_LEFT_SKULLKID_PLAYING; @@ -4039,10 +4041,10 @@ void Message_DrawMain(PlayState* play, Gfx** p) { Audio_PlaySoundGeneral(NA_SE_SY_METRONOME_LV - SFX_FLAG, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); msgCtx->ocarinaStaff = Audio_OcaGetDisplayingStaff(); - if (msgCtx->ocarinaStaff->pos && sOcarinaNoteBufPos == msgCtx->ocarinaStaff->pos - 1) { - sOcarinaNoteBuf[msgCtx->ocarinaStaff->pos - 1] = msgCtx->ocarinaStaff->noteIdx; - sOcarinaNoteBuf[msgCtx->ocarinaStaff->pos] = OCARINA_NOTE_INVALID; - sOcarinaNoteBufPos++; + if (msgCtx->ocarinaStaff->pos && sOcarinaButtonIndexBufPos == msgCtx->ocarinaStaff->pos - 1) { + sOcarinaButtonIndexBuf[msgCtx->ocarinaStaff->pos - 1] = msgCtx->ocarinaStaff->noteIdx; + sOcarinaButtonIndexBuf[msgCtx->ocarinaStaff->pos] = OCARINA_NOTE_INVALID; + sOcarinaButtonIndexBufPos++; } if (msgCtx->stateTimer == 0) { if (msgCtx->ocarinaStaff->state == 0) { @@ -4063,20 +4065,20 @@ void Message_DrawMain(PlayState* play, Gfx** p) { case MSGMODE_MEMORY_GAME_LEFT_SKULLKID_WAIT: case MSGMODE_MEMORY_GAME_RIGHT_SKULLKID_WAIT: msgCtx->ocarinaStaff = Audio_OcaGetDisplayingStaff(); - if (msgCtx->ocarinaStaff->pos && sOcarinaNoteBufPos == msgCtx->ocarinaStaff->pos - 1) { - sOcarinaNoteBuf[msgCtx->ocarinaStaff->pos - 1] = msgCtx->ocarinaStaff->noteIdx; - sOcarinaNoteBuf[msgCtx->ocarinaStaff->pos] = OCARINA_NOTE_INVALID; - sOcarinaNoteBufPos++; + if (msgCtx->ocarinaStaff->pos && sOcarinaButtonIndexBufPos == msgCtx->ocarinaStaff->pos - 1) { + sOcarinaButtonIndexBuf[msgCtx->ocarinaStaff->pos - 1] = msgCtx->ocarinaStaff->noteIdx; + sOcarinaButtonIndexBuf[msgCtx->ocarinaStaff->pos] = OCARINA_NOTE_INVALID; + sOcarinaButtonIndexBufPos++; } break; case MSGMODE_MEMORY_GAME_PLAYER_PLAYING: Audio_PlaySoundGeneral(NA_SE_SY_METRONOME_LV - SFX_FLAG, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); msgCtx->ocarinaStaff = Audio_OcaGetPlayingStaff(); - if (msgCtx->ocarinaStaff->pos && sOcarinaNoteBufPos == msgCtx->ocarinaStaff->pos - 1) { - sOcarinaNoteBuf[msgCtx->ocarinaStaff->pos - 1] = msgCtx->ocarinaStaff->noteIdx; - sOcarinaNoteBuf[msgCtx->ocarinaStaff->pos] = OCARINA_NOTE_INVALID; - sOcarinaNoteBufPos++; + if (msgCtx->ocarinaStaff->pos && sOcarinaButtonIndexBufPos == msgCtx->ocarinaStaff->pos - 1) { + sOcarinaButtonIndexBuf[msgCtx->ocarinaStaff->pos - 1] = msgCtx->ocarinaStaff->noteIdx; + sOcarinaButtonIndexBuf[msgCtx->ocarinaStaff->pos] = OCARINA_NOTE_INVALID; + sOcarinaButtonIndexBufPos++; } if (msgCtx->ocarinaStaff->state == 0xFF) { // "Musical round failed!!!!!!!!!" @@ -4102,10 +4104,10 @@ void Message_DrawMain(PlayState* play, Gfx** p) { break; case MSGMODE_MEMORY_GAME_ROUND_SUCCESS: msgCtx->ocarinaStaff = Audio_OcaGetPlayingStaff(); - if (msgCtx->ocarinaStaff->pos && sOcarinaNoteBufPos == msgCtx->ocarinaStaff->pos - 1) { - sOcarinaNoteBuf[msgCtx->ocarinaStaff->pos - 1] = msgCtx->ocarinaStaff->noteIdx; - sOcarinaNoteBuf[msgCtx->ocarinaStaff->pos] = OCARINA_NOTE_INVALID; - sOcarinaNoteBufPos++; + if (msgCtx->ocarinaStaff->pos && sOcarinaButtonIndexBufPos == msgCtx->ocarinaStaff->pos - 1) { + sOcarinaButtonIndexBuf[msgCtx->ocarinaStaff->pos - 1] = msgCtx->ocarinaStaff->noteIdx; + sOcarinaButtonIndexBuf[msgCtx->ocarinaStaff->pos] = OCARINA_NOTE_INVALID; + sOcarinaButtonIndexBufPos++; } msgCtx->stateTimer--; if (msgCtx->stateTimer == 0) { @@ -4113,7 +4115,7 @@ void Message_DrawMain(PlayState* play, Gfx** p) { Audio_PlaySoundGeneral(NA_SE_SY_METRONOME, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); msgCtx->ocarinaStaff = Audio_OcaGetPlayingStaff(); - msgCtx->ocarinaStaff->pos = sOcarinaNoteBufPos = 0; + msgCtx->ocarinaStaff->pos = sOcarinaButtonIndexBufPos = 0; Message_ResetOcarinaNoteState(); msgCtx->msgMode = MSGMODE_MEMORY_GAME_START_NEXT_ROUND; } else { @@ -4129,7 +4131,7 @@ void Message_DrawMain(PlayState* play, Gfx** p) { case MSGMODE_MEMORY_GAME_START_NEXT_ROUND: if (!Audio_IsSfxPlaying(NA_SE_SY_METRONOME)) { msgCtx->ocarinaStaff = Audio_OcaGetDisplayingStaff(); - msgCtx->ocarinaStaff->pos = sOcarinaNoteBufPos = 0; + msgCtx->ocarinaStaff->pos = sOcarinaButtonIndexBufPos = 0; Message_ResetOcarinaNoteState(); Audio_OcaSetSongPlayback(OCARINA_SONG_MEMORY_GAME + 1, 1); } @@ -4137,7 +4139,7 @@ void Message_DrawMain(PlayState* play, Gfx** p) { case MSGMODE_FROGS_START: AudioOcarina_SetInstrument(1); msgCtx->ocarinaStaff = Audio_OcaGetPlayingStaff(); - msgCtx->ocarinaStaff->pos = sOcarinaNoteBufPos = 0; + msgCtx->ocarinaStaff->pos = sOcarinaButtonIndexBufPos = 0; play->msgCtx.ocarinaMode = OCARINA_MODE_01; Message_ResetOcarinaNoteState(); func_800ECC04(sOcarinaSongBitFlags + 0xC000); @@ -4145,9 +4147,9 @@ void Message_DrawMain(PlayState* play, Gfx** p) { break; case MSGMODE_FROGS_PLAYING: msgCtx->ocarinaStaff = Audio_OcaGetPlayingStaff(); - if (msgCtx->ocarinaStaff->pos && sOcarinaNoteBufPos == msgCtx->ocarinaStaff->pos - 1) { + if (msgCtx->ocarinaStaff->pos && sOcarinaButtonIndexBufPos == msgCtx->ocarinaStaff->pos - 1) { msgCtx->lastOcaNoteIdx = msgCtx->ocarinaStaff->noteIdx; - msgCtx->ocarinaStaff->pos = sOcarinaNoteBufPos = 0; + msgCtx->ocarinaStaff->pos = sOcarinaButtonIndexBufPos = 0; Message_ResetOcarinaNoteState(); msgCtx->msgMode = MSGMODE_FROGS_WAITING; } @@ -4227,7 +4229,7 @@ void Message_DrawMain(PlayState* play, Gfx** p) { if (msgCtx->msgMode != MSGMODE_SCARECROW_LONG_RECORDING_START && msgCtx->msgMode != MSGMODE_MEMORY_GAME_START) { for (notePosX = R_OCARINA_NOTES_XPOS, i = 0; i < 8; i++, notePosX += R_OCARINA_NOTES_XPOS_OFFSET) { - if (sOcarinaNoteBuf[i] == OCARINA_NOTE_INVALID) { + if (sOcarinaButtonIndexBuf[i] == OCARINA_NOTE_INVALID) { break; } @@ -4243,34 +4245,35 @@ void Message_DrawMain(PlayState* play, Gfx** p) { // Since I don't know what exactly these Env vars are used for, I elected keep their usage // consistent with the note played, rather than having AEnv be used for whatever note A happens to // play at the moment and CEnv for everything else, even with custom controls enabled. - if (sOcarinaNoteBuf[i] == OCARINA_NOTE_D4) { + if (sOcarinaButtonIndexBuf[i] == OCARINA_NOTE_D4) { gDPSetPrimColor(gfx++, 0, 0, sOcarinaNoteABtnPrim.r, sOcarinaNoteABtnPrim.g, sOcarinaNoteABtnPrim.b, sOcarinaNotesAlphaValues[i]); gDPSetEnvColor(gfx++, sOcarinaNoteABtnEnv.r, sOcarinaNoteABtnEnv.g, sOcarinaNoteABtnEnv.b, 0); } else { - if (sOcarinaNoteBuf[i] == OCARINA_NOTE_D5) { + if (sOcarinaButtonIndexBuf[i] == OCARINA_NOTE_D5) { gDPSetPrimColor(gfx++, 0, 0, sOcarinaNoteCUpBtnPrim.r, sOcarinaNoteCUpBtnPrim.g, sOcarinaNoteCUpBtnPrim.b, sOcarinaNotesAlphaValues[i]); - } else if (sOcarinaNoteBuf[i] == OCARINA_NOTE_B4) { + } else if (sOcarinaButtonIndexBuf[i] == OCARINA_NOTE_B4) { gDPSetPrimColor(gfx++, 0, 0, sOcarinaNoteCLeftBtnPrim.r, sOcarinaNoteCLeftBtnPrim.g, sOcarinaNoteCLeftBtnPrim.b, sOcarinaNotesAlphaValues[i]); - } else if (sOcarinaNoteBuf[i] == OCARINA_NOTE_A4) { + } else if (sOcarinaButtonIndexBuf[i] == OCARINA_NOTE_A4) { gDPSetPrimColor(gfx++, 0, 0, sOcarinaNoteCRightBtnPrim.r, sOcarinaNoteCRightBtnPrim.g, sOcarinaNoteCRightBtnPrim.b, sOcarinaNotesAlphaValues[i]); - } else if (sOcarinaNoteBuf[i] == OCARINA_NOTE_F4) { + } else if (sOcarinaButtonIndexBuf[i] == OCARINA_NOTE_F4) { gDPSetPrimColor(gfx++, 0, 0, sOcarinaNoteCDownBtnPrim.r, sOcarinaNoteCDownBtnPrim.g, sOcarinaNoteCDownBtnPrim.b, sOcarinaNotesAlphaValues[i]); } gDPSetEnvColor(gfx++, sOcarinaNoteCBtnEnv.r, sOcarinaNoteCBtnEnv.g, sOcarinaNoteCBtnEnv.b, 0); } - gDPLoadTextureBlock(gfx++, sOcarinaNoteTextures[sOcarinaNoteBuf[i]], G_IM_FMT_IA, G_IM_SIZ_8b, 16, - 16, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, - G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); + gDPLoadTextureBlock(gfx++, sOcarinaNoteTextures[sOcarinaButtonIndexBuf[i]], G_IM_FMT_IA, + G_IM_SIZ_8b, 16, 16, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); - gSPTextureRectangle(gfx++, notePosX << 2, R_OCARINA_NOTES_YPOS(sOcarinaNoteBuf[i]) << 2, - (notePosX + 16) << 2, (R_OCARINA_NOTES_YPOS(sOcarinaNoteBuf[i]) + 16) << 2, - G_TX_RENDERTILE, 0, 0, 1 << 10, 1 << 10); + gSPTextureRectangle(gfx++, notePosX << 2, R_OCARINA_NOTES_YPOS(sOcarinaButtonIndexBuf[i]) << 2, + (notePosX + 16) << 2, + (R_OCARINA_NOTES_YPOS(sOcarinaButtonIndexBuf[i]) + 16) << 2, G_TX_RENDERTILE, 0, + 0, 1 << 10, 1 << 10); } } } @@ -4433,16 +4436,16 @@ void Message_Update(PlayState* play) { switch (msgCtx->msgMode) { case MSGMODE_TEXT_START: - D_8014B2F4++; + sMessageStartFrameCount++; var = false; if (YREG(15) == 0x40) { - if (D_8014B2F4 >= 4) { + if (sMessageStartFrameCount >= 4) { var = true; } } else if (YREG(15) != 0 || play->sceneNum == SCENE_CASTLE_COURTYARD_GUARDS_DAY) { var = true; - } else if (D_8014B2F4 >= 4 || msgCtx->talkActor == NULL) { + } else if (sMessageStartFrameCount >= 4 || msgCtx->talkActor == NULL) { var = true; } @@ -4709,10 +4712,10 @@ UNK_TYPE D_80153D7C = 0x00000000; s16 gGameOverTimer = 0; #define MESSAGE_PAL_SHIP_SAVESTATE_FIELDS(F) \ - F(sOcarinaNoteBufPos) \ - F(sOcarinaNoteBufLen) \ - F(sOcarinaNoteBuf) \ - F(D_8014B2F4) \ + F(sOcarinaButtonIndexBufPos) \ + F(sOcarinaButtonIndexBufLen) \ + F(sOcarinaButtonIndexBuf) \ + F(sMessageStartFrameCount) \ F(sTextboxSkipped) \ F(sNextTextId) \ F(sLastPlayedSong) \ diff --git a/soh/src/code/z_parameter.c b/soh/src/code/z_parameter.c index 6f53e192b..59318ac5b 100644 --- a/soh/src/code/z_parameter.c +++ b/soh/src/code/z_parameter.c @@ -6476,7 +6476,7 @@ void Interface_DrawTotalGameplayTimer(PlayState* play) { void Interface_Update(PlayState* play) { static u8 D_80125B60 = 0; - static s16 sPrevTimeIncrement = 0; + static s16 sPrevTimeSpeed = 0; MessageContext* msgCtx = &play->msgCtx; InterfaceContext* interfaceCtx = &play->interfaceCtx; Player* player = GET_PLAYER(play); @@ -6848,17 +6848,17 @@ void Interface_Update(PlayState* play) { } gSaveContext.sunsSongState = SUNSSONG_SPEED_TIME; - sPrevTimeIncrement = gTimeIncrement; - gTimeIncrement = 400; + sPrevTimeSpeed = gTimeSpeed; + gTimeSpeed = 400; } else if (D_80125B60 == 0) { if ((gSaveContext.dayTime >= 0x4555) && (gSaveContext.dayTime <= 0xC001)) { gSaveContext.sunsSongState = SUNSSONG_INACTIVE; - gTimeIncrement = sPrevTimeIncrement; + gTimeSpeed = sPrevTimeSpeed; play->msgCtx.ocarinaMode = OCARINA_MODE_04; } } else if (gSaveContext.dayTime > 0xC001) { gSaveContext.sunsSongState = SUNSSONG_INACTIVE; - gTimeIncrement = sPrevTimeIncrement; + gTimeSpeed = sPrevTimeSpeed; play->msgCtx.ocarinaMode = OCARINA_MODE_04; } } else if ((play->roomCtx.curRoom.behaviorType1 != ROOM_BEHAVIOR_TYPE1_1) && diff --git a/soh/src/code/z_scene.c b/soh/src/code/z_scene.c index d9ee959c0..6dcc51d9c 100644 --- a/soh/src/code/z_scene.c +++ b/soh/src/code/z_scene.c @@ -364,7 +364,7 @@ void Scene_CommandTimeSettings(PlayState* play, SceneCmd* cmd) { } if (gSaveContext.sunsSongState == SUNSSONG_INACTIVE) { - gTimeIncrement = play->envCtx.timeIncrement; + gTimeSpeed = play->envCtx.timeIncrement; } play->envCtx.sunPos.x = -(Math_SinS(((void)0, gSaveContext.dayTime) - 0x8000) * 120.0f) * 25.0f; |
