Added DPad support to ocarina playing and text choice selection.

This commit is contained in:
Josh Bodner 2022-04-02 15:03:56 -07:00
parent 5d967f8e8c
commit b85b8f490b
2 changed files with 24 additions and 16 deletions

View File

@ -824,10 +824,13 @@ NatureAmbienceDataIO sNatureAmbienceDataIO[20] = {
}, },
}; };
u32 sOcarinaAllowedBtnMask = 0x800F; u32 sOcarinaAllowedBtnMask =
s32 sOcarinaABtnMap = 0x8000; (BTN_A | BTN_CUP | BTN_CDOWN | BTN_CLEFT | BTN_CRIGHT | BTN_DUP | BTN_DDOWN | BTN_DLEFT | BTN_DRIGHT);
s32 sOcarinaCUPBtnMap = 8; s32 sOcarinaABtnMap = BTN_A;
s32 sOcarinaCDownBtnMap = 4; s32 sOcarinaCUPBtnMap = BTN_CUP | BTN_DUP;
s32 sOcarinaCDownBtnMap = BTN_CDOWN | BTN_DDOWN;
s32 sOcarinaCLeftBtnMap = BTN_CLEFT | BTN_DLEFT;
s32 sOcarinaCRightBtnMap = BTN_CRIGHT | BTN_DRIGHT;
u8 sOcarinaInpEnabled = 0; u8 sOcarinaInpEnabled = 0;
s8 D_80130F10 = 0; // "OCA", ocarina active? s8 D_80130F10 = 0; // "OCA", ocarina active?
u8 sCurOcarinaBtnVal = 0xFF; u8 sCurOcarinaBtnVal = 0xFF;
@ -1248,16 +1251,21 @@ s32 Audio_SetGanonDistVol(u8 targetVol);
void func_800EC960(u8 custom) { void func_800EC960(u8 custom) {
if (!custom) { if (!custom) {
osSyncPrintf("AUDIO : Ocarina Control Assign Normal\n"); osSyncPrintf("AUDIO : Ocarina Control Assign Normal\n");
sOcarinaAllowedBtnMask = (BTN_A | BTN_CUP | BTN_CDOWN | BTN_CLEFT | BTN_CRIGHT); sOcarinaAllowedBtnMask =
(BTN_A | BTN_CUP | BTN_CDOWN | BTN_CLEFT | BTN_CRIGHT | BTN_DUP | BTN_DDOWN | BTN_DLEFT | BTN_DRIGHT);
sOcarinaABtnMap = BTN_A; sOcarinaABtnMap = BTN_A;
sOcarinaCUPBtnMap = BTN_CUP; sOcarinaCUPBtnMap = BTN_CUP | BTN_DUP;
sOcarinaCDownBtnMap = BTN_CDOWN; sOcarinaCDownBtnMap = BTN_CDOWN | BTN_DDOWN;
sOcarinaCLeftBtnMap = BTN_CLEFT | BTN_DLEFT;
sOcarinaCRightBtnMap = BTN_CRIGHT | BTN_DRIGHT;
} else { } else {
osSyncPrintf("AUDIO : Ocarina Control Assign Custom\n"); osSyncPrintf("AUDIO : Ocarina Control Assign Custom\n");
sOcarinaAllowedBtnMask = (BTN_A | BTN_B | BTN_CDOWN | BTN_CLEFT | BTN_CRIGHT); sOcarinaAllowedBtnMask = (BTN_A | BTN_B | BTN_CDOWN | BTN_CLEFT | BTN_CRIGHT);
sOcarinaABtnMap = BTN_B; sOcarinaABtnMap = BTN_B;
sOcarinaCUPBtnMap = BTN_CDOWN; sOcarinaCUPBtnMap = BTN_CDOWN;
sOcarinaCDownBtnMap = BTN_A; sOcarinaCDownBtnMap = BTN_A;
sOcarinaCLeftBtnMap = BTN_CLEFT;
sOcarinaCRightBtnMap = BTN_CRIGHT;
} }
} }
@ -1569,12 +1577,12 @@ void func_800ED458(s32 arg0) {
osSyncPrintf("Presss NA_KEY_F4 %08x\n", sOcarinaCDownBtnMap); osSyncPrintf("Presss NA_KEY_F4 %08x\n", sOcarinaCDownBtnMap);
sCurOcarinaBtnVal = 5; sCurOcarinaBtnVal = 5;
sCurOcarinaBtnIdx = 1; sCurOcarinaBtnIdx = 1;
} else if (D_8016BA18 & 1) { } else if (D_8016BA18 & sOcarinaCRightBtnMap) {
osSyncPrintf("Presss NA_KEY_A4 %08x\n", 1); osSyncPrintf("Presss NA_KEY_A4 %08x\n", sOcarinaCRightBtnMap);
sCurOcarinaBtnVal = 9; sCurOcarinaBtnVal = 9;
sCurOcarinaBtnIdx = 2; sCurOcarinaBtnIdx = 2;
} else if (D_8016BA18 & 2) { } else if (D_8016BA18 & sOcarinaCLeftBtnMap) {
osSyncPrintf("Presss NA_KEY_B4 %08x\n", 2); osSyncPrintf("Presss NA_KEY_B4 %08x\n", sOcarinaCRightBtnMap);
sCurOcarinaBtnVal = 0xB; sCurOcarinaBtnVal = 0xB;
sCurOcarinaBtnIdx = 3; sCurOcarinaBtnIdx = 3;
} else if (D_8016BA18 & sOcarinaCUPBtnMap) { } else if (D_8016BA18 & sOcarinaCUPBtnMap) {
@ -1671,7 +1679,7 @@ void Audio_OcaSetSongPlayback(s8 songIdxPlusOne, s8 playbackState) {
void Audio_OcaPlayback(void) { void Audio_OcaPlayback(void) {
u32 noteTimerStep; u32 noteTimerStep;
u32 nextNoteTimerStep; u32 nextNoteTimerStep = 0;
if (sPlaybackState != 0) { if (sPlaybackState != 0) {
if (sStaffPlaybackPos == 0) { if (sStaffPlaybackPos == 0) {
@ -4772,7 +4780,7 @@ void Audio_SetCodeReverb(s8 reverb) {
} }
void func_800F6700(s8 arg0) { void func_800F6700(s8 arg0) {
s8 sp1F; s8 sp1F = 0;
switch (arg0) { switch (arg0) {
case 0: case 0:

View File

@ -204,7 +204,7 @@ void Message_HandleChoiceSelection(GlobalContext* globalCtx, u8 numChoices) {
MessageContext* msgCtx = &globalCtx->msgCtx; MessageContext* msgCtx = &globalCtx->msgCtx;
Input* input = &globalCtx->state.input[0]; Input* input = &globalCtx->state.input[0];
if (input->rel.stick_y >= 30 && !sAnalogStickHeld) { if ((input->rel.stick_y >= 30 && !sAnalogStickHeld) || CHECK_BTN_ALL(input->press.button, BTN_DUP)) {
sAnalogStickHeld = true; sAnalogStickHeld = true;
msgCtx->choiceIndex--; msgCtx->choiceIndex--;
if (msgCtx->choiceIndex > 128) { if (msgCtx->choiceIndex > 128) {
@ -212,7 +212,7 @@ void Message_HandleChoiceSelection(GlobalContext* globalCtx, u8 numChoices) {
} else { } else {
Audio_PlaySoundGeneral(NA_SE_SY_CURSOR, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E8); Audio_PlaySoundGeneral(NA_SE_SY_CURSOR, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E8);
} }
} else if (input->rel.stick_y <= -30 && !sAnalogStickHeld) { } else if ((input->rel.stick_y <= -30 && !sAnalogStickHeld) || CHECK_BTN_ALL(input->press.button, BTN_DDOWN)) {
sAnalogStickHeld = true; sAnalogStickHeld = true;
msgCtx->choiceIndex++; msgCtx->choiceIndex++;
if (msgCtx->choiceIndex > numChoices) { if (msgCtx->choiceIndex > numChoices) {
@ -3032,7 +3032,7 @@ void Message_Update(GlobalContext* globalCtx) {
Input* input = &globalCtx->state.input[0]; Input* input = &globalCtx->state.input[0];
s16 var; s16 var;
s16 focusScreenPosX; s16 focusScreenPosX;
s16 averageY; s16 averageY = 0;
s16 playerFocusScreenPosY; s16 playerFocusScreenPosY;
s16 actorFocusScreenPosY; s16 actorFocusScreenPosY;