Merge pull request #417 from hackgrid/fix-menu-1

add slider sounds + fix audio language position
This commit is contained in:
lambertjamesd 2023-11-12 14:41:44 -07:00 committed by GitHub
commit 9214cec6e5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 8 deletions

View file

@ -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
);

View file

@ -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);
}
}