diff --git a/src/menu/audio_options.c b/src/menu/audio_options.c index 545b760..7b9f38f 100644 --- a/src/menu/audio_options.c +++ b/src/menu/audio_options.c @@ -109,7 +109,7 @@ struct MenuElementParams gAudioMenuParams[] = { #define AUDIO_LANGUAGE_VALUE_INDEX 4 #define AUDIO_LANGUAGE_TEXT_INDEX 6 -void audioOptionsActoin(void* data, int selection, struct MenuAction* action) { +void audioOptionsAction(void* data, int selection, struct MenuAction* action) { struct AudioOptions* audioOptions = (struct AudioOptions*)data; switch (selection) { @@ -123,7 +123,7 @@ void audioOptionsActoin(void* data, int selection, struct MenuAction* action) { break; case AudioOptionAudioLanguage: gSaveData.audio.audioLanguage = action->state.iSlider.value; - audioOptions->menuBuilder.elements[AUDIO_LANGUAGE_TEXT_INDEX].data = menuBuildPrerenderedText(&gDejaVuSansFont, AudioLanguages[gSaveData.audio.audioLanguage], GAMEPLAY_X + 125, GAMEPLAY_Y + 124, SCREEN_WD); + audioOptions->menuBuilder.elements[AUDIO_LANGUAGE_TEXT_INDEX].data = menuBuildPrerenderedText(&gDejaVuSansFont, AudioLanguages[gSaveData.audio.audioLanguage], GAMEPLAY_X + 125, GAMEPLAY_Y + 80, SCREEN_WD); break; } } @@ -140,7 +140,7 @@ void audioOptionsInit(struct AudioOptions* audioOptions) { gAudioMenuParams, sizeof(gAudioMenuParams) / sizeof(*gAudioMenuParams), AudioOptionCount, - audioOptionsActoin, + audioOptionsAction, audioOptions ); diff --git a/src/menu/menu_builder.c b/src/menu/menu_builder.c index e038ebd..8752a87 100644 --- a/src/menu/menu_builder.c +++ b/src/menu/menu_builder.c @@ -60,7 +60,7 @@ enum MenuDirection checkboxMenuItemUpdate(struct MenuBuilderElement* element, Me action.type = MenuElementTypeCheckbox; action.state.checkbox.isChecked = checkbox->checked; actionCallback(data, element->selectionIndex, &action); - soundPlayerPlay(SOUNDS_BUTTONCLICKRELEASE, 1.0f, 0.5f, NULL, NULL, SoundTypeAll); + soundPlayerPlay(SOUNDS_BUTTONCLICKRELEASE, 1.0f, 0.5f, NULL, NULL, SoundTypeAll); } return MenuDirectionStay; @@ -113,10 +113,9 @@ void sliderMenuItemInit(struct MenuBuilderElement* element) { enum MenuDirection sliderMenuItemUpdate(struct MenuBuilderElement* element, MenuActionCalback actionCallback, void* data) { struct MenuSlider* slider = (struct MenuSlider*)element->data; - + int controllerDir = controllerGetDirectionDown(0); + if (element->params->params.slider.discrete) { - int controllerDir = controllerGetDirectionDown(0); - int numTicks = element->params->params.slider.numberOfTicks; int currentValue = (int)floorf(slider->value * (numTicks - 1)); int newValue = currentValue; @@ -196,6 +195,9 @@ enum MenuDirection sliderMenuItemUpdate(struct MenuBuilderElement* element, Menu slider->value = newValue; } } + + if (controllerGetButtonDown(0, L_JPAD | R_JPAD | A_BUTTON) || (element->params->params.slider.discrete && ((controllerDir & ControllerDirectionLeft) || (controllerDir & ControllerDirectionRight)))) + soundPlayerPlay(SOUNDS_BUTTONCLICKRELEASE, 1.0f, 0.5f, NULL, NULL, SoundTypeAll); return MenuDirectionStay; } @@ -334,4 +336,4 @@ void menuBuilderSetISlider(struct MenuBuilderElement* element, int value) { struct MenuSlider* slider = (struct MenuSlider*)element->data; slider->value = (float)value / (float)(element->params->params.slider.numberOfTicks - 1); -} \ No newline at end of file +}