1
0
Fork 0
mirror of https://github.com/jugeeya/UltimateTrainingModpack.git synced 2025-03-16 11:26:11 +00:00

Properly migrate menu button inputs

This commit is contained in:
jugeeya 2023-08-08 11:27:44 -07:00 committed by GitHub
parent d54dee53ca
commit ce250bc09e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 40 additions and 44 deletions

View file

@ -5,7 +5,11 @@ use crate::input::{ControllerStyle::*, *};
use strum::IntoEnumIterator;
use strum_macros::EnumIter;
fn button_mapping(button_config: ButtonConfig, style: ControllerStyle, b: ButtonBitfield) -> bool {
pub fn button_mapping(
button_config: ButtonConfig,
style: ControllerStyle,
b: ButtonBitfield,
) -> bool {
match button_config {
ButtonConfig::A => b.a(),
ButtonConfig::B => b.b(),

View file

@ -7,6 +7,7 @@ use training_mod_consts::MenuJsonStruct;
use training_mod_tui::AppPage;
use crate::common::button_config::button_mapping;
use crate::common::*;
use crate::consts::MENU_OPTIONS_PATH;
use crate::events::{Event, EVENT_QUEUE};
@ -127,15 +128,15 @@ pub unsafe fn quick_menu_loop() {
}
let p1_controller_state = *P1_CONTROLLER_STATE.data_ptr();
let is_gcc = p1_controller_state.style == ControllerStyle::GCController;
let style = p1_controller_state.style;
let button_presses = p1_controller_state.just_down;
let app = &mut *QUICK_MENU_APP.data_ptr();
button_presses.a().then(|| {
button_mapping(ButtonConfig::A, style, button_presses).then(|| {
app.on_a();
received_input = true;
});
button_presses.b().then(|| {
button_mapping(ButtonConfig::B, style, button_presses).then(|| {
received_input = true;
if app.page != AppPage::SUBMENU {
app.on_b()
@ -148,59 +149,50 @@ pub unsafe fn quick_menu_loop() {
EVENT_QUEUE.push(Event::menu_open(menu_json));
}
});
button_presses.x().then(|| {
button_mapping(ButtonConfig::X, style, button_presses).then(|| {
app.save_defaults();
received_input = true;
});
button_presses.y().then(|| {
button_mapping(ButtonConfig::Y, style, button_presses).then(|| {
app.reset_all_submenus();
received_input = true;
});
(button_presses.l() || button_presses.real_digital_l()).then(|| {
if is_gcc {
app.previous_tab();
}
button_mapping(ButtonConfig::ZL, style, button_presses).then(|| {
app.previous_tab();
received_input = true;
});
(button_presses.r() || button_presses.real_digital_r()).then(|| {
if is_gcc {
app.next_tab();
} else {
app.reset_current_submenu();
}
button_mapping(ButtonConfig::ZR, style, button_presses).then(|| {
app.next_tab();
received_input = true;
});
button_presses.zl().then(|| {
if !is_gcc {
app.previous_tab();
}
received_input = true;
});
button_presses.zr().then(|| {
if !is_gcc {
app.next_tab();
} else {
app.reset_current_submenu();
}
received_input = true;
});
button_presses.l_left().then(|| {
app.on_left();
received_input = true;
});
button_presses.l_right().then(|| {
app.on_right();
received_input = true;
});
button_presses.l_up().then(|| {
app.on_up();
received_input = true;
});
button_presses.l_down().then(|| {
app.on_down();
button_mapping(ButtonConfig::R, style, button_presses).then(|| {
app.reset_current_submenu();
received_input = true;
});
(button_presses.dpad_left() || button_presses.l_left() || button_presses.r_left())
.then(|| {
app.on_left();
received_input = true;
});
(button_presses.dpad_right() || button_presses.l_right() || button_presses.r_right())
.then(|| {
app.on_right();
received_input = true;
});
(button_presses.dpad_up() || button_presses.l_up() || button_presses.r_up()).then(
|| {
app.on_up();
received_input = true;
},
);
(button_presses.dpad_down() || button_presses.l_down() || button_presses.r_down())
.then(|| {
app.on_down();
received_input = true;
});
if received_input {
received_input = false;
set_menu_from_json(&app.get_menu_selections());