11use super :: {
2- draw:: { PkxType , draw_citra_info, draw_daycare, draw_header, draw_pkx, draw_rng, draw_sos} ,
2+ draw:: { draw_citra_info, draw_daycare, draw_header, draw_pkx, draw_rng, draw_sos, PkxType } ,
33 reader:: Gen7Reader ,
44} ;
55use crate :: {
66 pnp,
77 rng:: { RngWrapper , Sfmt } ,
88 utils:: {
9- ShowView ,
109 help_menu:: HelpMenu ,
1110 menu:: { Menu , MenuOption , MenuOptionValue } ,
1211 sub_menu:: SubMenu ,
13- sub_menu_capture :: SubMenuCapture ,
12+ ShowView ,
1413 } ,
1514} ;
1615use once_cell:: unsync:: Lazy ;
@@ -54,7 +53,7 @@ struct PersistedState {
5453 help_menu : HelpMenu ,
5554 wild_menu : SubMenu < 1 , 4 > ,
5655 party_menu : SubMenu < 1 , 6 > ,
57- sos_menu : SubMenuCapture < 1 , 4 > ,
56+ sos_menu : SubMenu < 1 , 2 > ,
5857 pelago_menu : SubMenu < 1 , 3 > ,
5958}
6059
@@ -66,21 +65,8 @@ unsafe fn get_state() -> &'static mut PersistedState {
6665 party_menu : SubMenu :: default ( ) ,
6766 pelago_menu : SubMenu :: default ( ) ,
6867 wild_menu : SubMenu :: default ( ) ,
69- sos_menu : SubMenuCapture :: default ( ) ,
70- help_menu : HelpMenu :: new ( || {
71- pnp:: println!( "SOS Controls:" ) ;
72- pnp:: println!( "[X] + [Right]:" ) ;
73- pnp:: println!( " Set Caller slot to" ) ;
74- pnp:: println!( " the current ally." ) ;
75- pnp:: println!( " Use this when you" ) ;
76- pnp:: println!( " faint the caller." ) ;
77- pnp:: println!( "" ) ;
78- pnp:: println!( "[X] + [Up]/[Down]:" ) ;
79- pnp:: println!( " Manually change" ) ;
80- pnp:: println!( " the caller slot." ) ;
81- pnp:: println!( " (Not recommended)" ) ;
82- pnp:: println!( "" ) ;
83- } ) ,
68+ sos_menu : SubMenu :: default ( ) ,
69+ help_menu : HelpMenu :: default ( ) ,
8470 main_menu : Menu :: new ( [
8571 MenuOption :: new ( Gen7View :: Rng ) ,
8672 MenuOption :: new ( Gen7View :: Daycare ) ,
@@ -125,15 +111,8 @@ fn run_frame(reader: Gen7Reader) {
125111 draw_pkx ( & reader. wild_pkm ( ( slot - 1 ) as u32 ) , PkxType :: Wild ) ;
126112 }
127113 Gen7View :: Sos => {
128- let prev_caller_slot = state. sos_menu . counter_value ( ) ;
129- let prev_correction_value = state. sos_menu . captured_value ( ) ;
130- let caller_slot = state. sos_menu . update_headless (
131- is_locked,
132- reader. sos_chain ( ) as u32 ,
133- reader. ally_slot ( prev_caller_slot as u32 , prev_correction_value) as usize + 1 ,
134- ) ;
135- let correction_value = state. sos_menu . captured_value ( ) ;
136- draw_sos ( & reader, caller_slot as u32 , correction_value) ;
114+ let slot = state. sos_menu . update_and_draw ( is_locked) ;
115+ draw_sos ( & reader, ( slot - 1 ) as u32 ) ;
137116 }
138117 Gen7View :: Box => draw_pkx ( & reader. box_pkm ( ) , PkxType :: Tame ) ,
139118 Gen7View :: Citra => draw_citra_info ( & reader) ,
0 commit comments