Add option to allow the ocarina to be played faster (#903)

* Add the ability to play the ocarina really fast like in MM3D

* Clean up CVar condition

* Rename Unlimited Ocarina Speed to Prevent Dropped Ocarina Inputs
This commit is contained in:
lilDavid 2022-07-24 08:48:06 -05:00 committed by Kenix3
parent 6da8ffae11
commit d6ce37ce7e
2 changed files with 10 additions and 6 deletions

View File

@ -975,6 +975,8 @@ namespace SohImGui {
Tooltip("The default response to Kaepora Gaebora is\nalways that you understood what he said"); Tooltip("The default response to Kaepora Gaebora is\nalways that you understood what he said");
EnhancementCheckbox("Fast Ocarina Playback", "gFastOcarinaPlayback"); EnhancementCheckbox("Fast Ocarina Playback", "gFastOcarinaPlayback");
Tooltip("Skip the part where the Ocarina playback is called when you play\na song"); Tooltip("Skip the part where the Ocarina playback is called when you play\na song");
EnhancementCheckbox("Prevent Dropped Ocarina Inputs", "gDpadNoDropOcarinaInput");
Tooltip("Prevent dropping inputs when playing the ocarina quickly");
EnhancementCheckbox("Instant Putaway", "gInstantPutaway"); EnhancementCheckbox("Instant Putaway", "gInstantPutaway");
Tooltip("Allow Link to put items away without having to wait around"); Tooltip("Allow Link to put items away without having to wait around");
EnhancementCheckbox("Mask Select in Inventory", "gMaskSelect"); EnhancementCheckbox("Mask Select in Inventory", "gMaskSelect");

View File

@ -1028,7 +1028,7 @@ s8 D_80131870 = 0;
u8 D_80131874 = 0; u8 D_80131874 = 0;
u8 D_80131878 = 0; u8 D_80131878 = 0;
u8 D_8013187C = 0; u8 D_8013187C = 0;
u8 D_80131880 = 0; u8 sOcarinaDropInputTimer = 0;
OcarinaNote sPierresSong[108] = { OcarinaNote sPierresSong[108] = {
{ 0xFF, 0, 0, 0, 0, 0, 0 }, { 0xFF, 0, 0, 0, 0, 0, 0 },
@ -1550,10 +1550,12 @@ void func_800ED458(s32 arg0) {
u32 phi_v1_2; u32 phi_v1_2;
bool dpad = CVar_GetS32("gDpadOcarinaText", 0); bool dpad = CVar_GetS32("gDpadOcarinaText", 0);
if (D_80130F3C != 0 && D_80131880 != 0) { if (D_80130F3C != 0 && sOcarinaDropInputTimer != 0) {
D_80131880--; sOcarinaDropInputTimer--;
if (!CVar_GetS32("gDpadNoDropOcarinaInput", 0)) {
return; return;
} }
}
if ((D_8016BA10 == 0) || if ((D_8016BA10 == 0) ||
((D_8016BA10 & sOcarinaAllowedBtnMask) != (sCurOcarinaBtnPress & sOcarinaAllowedBtnMask))) { ((D_8016BA10 & sOcarinaAllowedBtnMask) != (sCurOcarinaBtnPress & sOcarinaAllowedBtnMask))) {
@ -2057,7 +2059,7 @@ void func_800EE6F4(void) {
} }
if ((D_80130F3C != 0) && (sPrevOcarinaNoteVal != sCurOcarinaBtnVal)) { if ((D_80130F3C != 0) && (sPrevOcarinaNoteVal != sCurOcarinaBtnVal)) {
D_80131880 = 1; sOcarinaDropInputTimer = 1;
} }
sPrevOcarinaNoteVal = sCurOcarinaBtnVal; sPrevOcarinaNoteVal = sCurOcarinaBtnVal;
@ -2110,7 +2112,7 @@ void func_800EE930(void) {
sRecordingStaff.noteIdx = OCARINA_NOTE_INVALID; sRecordingStaff.noteIdx = OCARINA_NOTE_INVALID;
sRecordingStaff.state = 0xFF; sRecordingStaff.state = 0xFF;
sRecordingStaff.pos = 0; sRecordingStaff.pos = 0;
D_80131880 = 0; sOcarinaDropInputTimer = 0;
} }
f32 D_80131C8C = 0.0f; f32 D_80131C8C = 0.0f;