Skip to content

Commit b5a234a

Browse files
committed
Fix SwSh EggFetcher and EggHatcher for SBB.
1 parent b13dcc9 commit b5a234a

File tree

4 files changed

+58
-56
lines changed

4 files changed

+58
-56
lines changed

SerialPrograms/Source/PokemonSwSh/Commands/PokemonSwSh_Commands_EggRoutines.cpp

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -33,22 +33,22 @@ void move_while_mashing_B(ProControllerContext& context, Milliseconds duration){
3333
ssf_mash1_button(context, BUTTON_B, duration);
3434
}
3535
void spin_and_mash_A(ProControllerContext& context, Milliseconds duration){
36-
for (Milliseconds c = 0ms; c < duration; c += 1024ms){
37-
ssf_press_left_joystick(context, STICK_CENTER, STICK_MAX, 0, 32);
38-
ssf_press_button(context, BUTTON_A, 16);
39-
ssf_press_button(context, BUTTON_A, 16);
36+
for (Milliseconds c = 0ms; c < duration; c += 1280ms){
37+
ssf_press_left_joystick(context, STICK_CENTER, STICK_MAX, 0ms, 320ms);
38+
ssf_press_button(context, BUTTON_A, 160ms);
39+
ssf_press_button(context, BUTTON_A, 160ms);
4040

41-
ssf_press_left_joystick(context, STICK_MAX, STICK_CENTER, 0, 32);
42-
ssf_press_button(context, BUTTON_A, 16);
43-
ssf_press_button(context, BUTTON_A, 16);
41+
ssf_press_left_joystick(context, STICK_MAX, STICK_CENTER, 0ms, 320ms);
42+
ssf_press_button(context, BUTTON_A, 160ms);
43+
ssf_press_button(context, BUTTON_A, 160ms);
4444

45-
ssf_press_left_joystick(context, STICK_CENTER, STICK_MIN, 0, 32);
46-
ssf_press_button(context, BUTTON_A, 16);
47-
ssf_press_button(context, BUTTON_A, 16);
45+
ssf_press_left_joystick(context, STICK_CENTER, STICK_MIN, 0ms, 320ms);
46+
ssf_press_button(context, BUTTON_A, 160ms);
47+
ssf_press_button(context, BUTTON_A, 160ms);
4848

49-
ssf_press_left_joystick(context, STICK_MIN, STICK_CENTER, 0, 32);
50-
ssf_press_button(context, BUTTON_A, 16);
51-
ssf_press_button(context, BUTTON_A, 16);
49+
ssf_press_left_joystick(context, STICK_MIN, STICK_CENTER, 0ms, 320ms);
50+
ssf_press_button(context, BUTTON_A, 160ms);
51+
ssf_press_button(context, BUTTON_A, 160ms);
5252
}
5353
}
5454
void travel_to_spin_location(ProControllerContext& context){

SerialPrograms/Source/PokemonSwSh/Programs/EggPrograms/PokemonSwSh_EggFetcher2.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ EggFetcher2_Descriptor::EggFetcher2_Descriptor()
2727
"Fetch eggs without hatching them.",
2828
FeedbackType::NONE,
2929
AllowCommandsWhenRunning::DISABLE_COMMANDS,
30-
{SerialPABotBase::OLD_NINTENDO_SWITCH_DEFAULT_REQUIREMENTS}
30+
{ControllerFeature::NintendoSwitch_ProController},
31+
FasterIfTickPrecise::NOT_FASTER
3132
)
3233
{}
3334

SerialPrograms/Source/PokemonSwSh/Programs/EggPrograms/PokemonSwSh_EggHatcher.cpp

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ EggHatcher_Descriptor::EggHatcher_Descriptor()
2727
"Hatch eggs from boxes.",
2828
FeedbackType::NONE,
2929
AllowCommandsWhenRunning::DISABLE_COMMANDS,
30-
{SerialPABotBase::OLD_NINTENDO_SWITCH_DEFAULT_REQUIREMENTS}
30+
{ControllerFeature::NintendoSwitch_ProController},
31+
FasterIfTickPrecise::NOT_FASTER
3132
)
3233
{}
3334

@@ -38,14 +39,14 @@ void withdraw_column(ProControllerContext& context, uint8_t column){
3839
party_to_column(context, column);
3940
pickup_column(context, false);
4041
column_to_party(context, column);
41-
ssf_press_button(context, BUTTON_A, GameSettings::instance().BOX_PICKUP_DROP_DELAY0);
42+
ssf_press_button_ptv(context, BUTTON_A, GameSettings::instance().BOX_PICKUP_DROP_DELAY0);
4243
box_to_menu(context);
4344
}
4445
void deposit_column(ProControllerContext& context, uint8_t column){
4546
menu_to_box(context, true);
4647
pickup_column(context, true);
4748
party_to_column(context, column);
48-
ssf_press_button(context, BUTTON_A, GameSettings::instance().BOX_PICKUP_DROP_DELAY0);
49+
ssf_press_button_ptv(context, BUTTON_A, GameSettings::instance().BOX_PICKUP_DROP_DELAY0);
4950
box_to_menu(context);
5051
}
5152
uint8_t swap_party(ProControllerContext& context, uint8_t column){
@@ -57,24 +58,24 @@ uint8_t swap_party(ProControllerContext& context, uint8_t column){
5758

5859
// Move to column.
5960
party_to_column(context, column);
60-
ssf_press_button(context, BUTTON_A, BOX_PICKUP_DROP_DELAY);
61+
ssf_press_button_ptv(context, BUTTON_A, BOX_PICKUP_DROP_DELAY);
6162

6263
// Move to next column.
6364
column++;
6465
if (column < 6){
6566
ssf_press_dpad(context, DPAD_RIGHT, BOX_SCROLL_DELAY);
6667
}else{
6768
column = 0;
68-
ssf_press_button(context, BUTTON_R, GameSettings::instance().BOX_CHANGE_DELAY0);
69-
ssf_press_dpad(context, DPAD_RIGHT, BOX_SCROLL_DELAY);
70-
ssf_press_dpad(context, DPAD_RIGHT, BOX_SCROLL_DELAY);
69+
ssf_press_button_ptv(context, BUTTON_R, GameSettings::instance().BOX_CHANGE_DELAY0);
70+
ssf_press_dpad_ptv(context, DPAD_RIGHT, BOX_SCROLL_DELAY);
71+
ssf_press_dpad_ptv(context, DPAD_RIGHT, BOX_SCROLL_DELAY);
7172
}
7273

7374
pickup_column(context, false);
7475

7576
// Move to party.
7677
column_to_party(context, column);
77-
ssf_press_button(context, BUTTON_A, BOX_PICKUP_DROP_DELAY);
78+
ssf_press_button_ptv(context, BUTTON_A, BOX_PICKUP_DROP_DELAY);
7879

7980
// Return to menu.
8081
box_to_menu(context);
@@ -130,7 +131,7 @@ void EggHatcher::program(SingleSwitchProgramEnvironment& env, ProControllerConte
130131
for (uint8_t box = 0; box < BOXES_TO_HATCH; box++){
131132
for (uint8_t column = 0; column < 6; column++){
132133
// Get eggs from box.
133-
ssf_press_button(context, BUTTON_X, GameSettings::instance().OVERWORLD_TO_MENU_DELAY0);
134+
ssf_press_button_ptv(context, BUTTON_X, GameSettings::instance().OVERWORLD_TO_MENU_DELAY0);
134135
if (party_is_empty){
135136
withdraw_column(context, column);
136137
party_is_empty = false;
@@ -162,11 +163,11 @@ void EggHatcher::program(SingleSwitchProgramEnvironment& env, ProControllerConte
162163
Milliseconds OVERWORLD_TO_MENU_DELAY = GameSettings::instance().OVERWORLD_TO_MENU_DELAY0;
163164

164165
if (!party_is_empty){
165-
ssf_press_button(context, BUTTON_X, OVERWORLD_TO_MENU_DELAY);
166+
ssf_press_button_ptv(context, BUTTON_X, OVERWORLD_TO_MENU_DELAY);
166167
deposit_column(context, 5);
167-
ssf_press_button(context, BUTTON_X, OVERWORLD_TO_MENU_DELAY);
168+
ssf_press_button_ptv(context, BUTTON_X, OVERWORLD_TO_MENU_DELAY);
168169
}
169-
ssf_press_button(context, BUTTON_HOME, GameSettings::instance().GAME_TO_HOME_DELAY_SAFE0);
170+
ssf_press_button(context, BUTTON_HOME, GameSettings::instance().GAME_TO_HOME_DELAY_SAFE0, 160ms);
170171

171172
send_program_finished_notification(env, NOTIFICATION_PROGRAM_FINISH);
172173
}

SerialPrograms/Source/PokemonSwSh/Programs/EggPrograms/PokemonSwSh_EggHelpers.h

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,11 @@ namespace PokemonSwSh{
2222

2323
// Collect egg.
2424
static void collect_egg(ProControllerContext& context){
25-
ssf_press_button1(context, BUTTON_A, 120);
25+
ssf_press_button(context, BUTTON_A, 120);
2626
if (GameSettings::instance().EGG_FETCH_EXTRA_LINE){
27-
ssf_press_button1(context, BUTTON_A, 120);
27+
ssf_press_button(context, BUTTON_A, 120);
2828
}
29-
ssf_press_button1(context, BUTTON_A, 10);
29+
ssf_press_button(context, BUTTON_A, 10, 10);
3030
}
3131
static void collect_egg_mash_out(ProControllerContext& context, bool deposit_automatically){
3232
Milliseconds FETCH_EGG_MASH_DELAY = GameSettings::instance().FETCH_EGG_MASH_DELAY0;
@@ -46,8 +46,8 @@ static void fly_home(ProControllerContext& context, char from_overworld){
4646
if (from_overworld){
4747
ssf_press_button(context, BUTTON_X, GameSettings::instance().OVERWORLD_TO_MENU_DELAY0, 160ms);
4848
}
49-
ssf_press_button2(context, BUTTON_A, 400, 10);
50-
ssf_press_dpad2(context, DPAD_UP_RIGHT, 25, 5);
49+
ssf_press_button(context, BUTTON_A, 400, 20);
50+
ssf_press_right_joystick(context, 160, 96, 160ms, 160ms);
5151
pbf_mash_button(context, BUTTON_A, 480);
5252
}
5353

@@ -57,8 +57,8 @@ static void fly_home_goto_lady(ProControllerContext& context, char from_overworl
5757

5858
// Go to lady.
5959
// If you change this, you MUST update "GO_TO_LADY_DURATION".
60-
ssf_press_joystick2(context, true, STICK_MIN, STICK_CENTER, 16, 6);
61-
ssf_press_joystick2(context, true, STICK_CENTER, STICK_MIN, 90, 45);
60+
ssf_press_left_joystick(context, STICK_MIN, STICK_CENTER, 20, 10);
61+
ssf_press_left_joystick(context, STICK_CENTER, STICK_MIN, 90, 45);
6262
}
6363

6464
// Assume the selected app in the menu is Twon Map.
@@ -80,15 +80,15 @@ static const Milliseconds EGG_BUTTON_HOLD_DELAY = 80ms;
8080
static void menu_to_box(ProControllerContext& context, bool from_map){
8181
Milliseconds BOX_SCROLL_DELAY = GameSettings::instance().BOX_SCROLL_DELAY0;
8282
if (from_map){
83-
ssf_press_dpad(context, DPAD_UP, BOX_SCROLL_DELAY, EGG_BUTTON_HOLD_DELAY);
84-
ssf_press_dpad(context, DPAD_RIGHT, BOX_SCROLL_DELAY, EGG_BUTTON_HOLD_DELAY);
83+
ssf_press_dpad_ptv(context, DPAD_UP, BOX_SCROLL_DELAY, EGG_BUTTON_HOLD_DELAY);
84+
ssf_press_dpad_ptv(context, DPAD_RIGHT, BOX_SCROLL_DELAY, EGG_BUTTON_HOLD_DELAY);
8585
}
86-
ssf_press_button(context, BUTTON_A, GameSettings::instance().MENU_TO_POKEMON_DELAY0, EGG_BUTTON_HOLD_DELAY);
87-
ssf_press_button(context, BUTTON_R, GameSettings::instance().POKEMON_TO_BOX_DELAY0, EGG_BUTTON_HOLD_DELAY);
88-
ssf_press_dpad(context, DPAD_LEFT, BOX_SCROLL_DELAY, EGG_BUTTON_HOLD_DELAY);
89-
ssf_press_dpad(context, DPAD_DOWN, BOX_SCROLL_DELAY, EGG_BUTTON_HOLD_DELAY);
90-
ssf_press_button(context, BUTTON_Y, 240ms, EGG_BUTTON_HOLD_DELAY);
91-
ssf_press_button(context, BUTTON_Y, 240ms, EGG_BUTTON_HOLD_DELAY);
86+
ssf_press_button_ptv(context, BUTTON_A, GameSettings::instance().MENU_TO_POKEMON_DELAY0, EGG_BUTTON_HOLD_DELAY);
87+
ssf_press_button_ptv(context, BUTTON_R, GameSettings::instance().POKEMON_TO_BOX_DELAY0, EGG_BUTTON_HOLD_DELAY);
88+
ssf_press_dpad_ptv(context, DPAD_LEFT, BOX_SCROLL_DELAY, EGG_BUTTON_HOLD_DELAY);
89+
ssf_press_dpad_ptv(context, DPAD_DOWN, BOX_SCROLL_DELAY, EGG_BUTTON_HOLD_DELAY);
90+
ssf_press_button_ptv(context, BUTTON_Y, 240ms, EGG_BUTTON_HOLD_DELAY);
91+
ssf_press_button_ptv(context, BUTTON_Y, 240ms, EGG_BUTTON_HOLD_DELAY);
9292
}
9393
static void box_to_menu(ProControllerContext& context){
9494
// There are two states here which need to be merged:
@@ -105,28 +105,28 @@ static void box_to_menu(ProControllerContext& context){
105105

106106
Milliseconds BOX_SCROLL_DELAY = GameSettings::instance().BOX_SCROLL_DELAY0;
107107

108-
ssf_press_button(context, BUTTON_B, 160ms, EGG_BUTTON_HOLD_DELAY);
109-
ssf_press_button(context, BUTTON_B, GameSettings::instance().BOX_TO_POKEMON_DELAY0, EGG_BUTTON_HOLD_DELAY);
108+
ssf_press_button_ptv(context, BUTTON_B, 160ms, EGG_BUTTON_HOLD_DELAY);
109+
ssf_press_button_ptv(context, BUTTON_B, GameSettings::instance().BOX_TO_POKEMON_DELAY0, EGG_BUTTON_HOLD_DELAY);
110110

111111
// Back out to menu.
112-
ssf_press_button(context, BUTTON_B, GameSettings::instance().POKEMON_TO_MENU_DELAY0, EGG_BUTTON_HOLD_DELAY);
112+
ssf_press_button_ptv(context, BUTTON_B, GameSettings::instance().POKEMON_TO_MENU_DELAY0, EGG_BUTTON_HOLD_DELAY);
113113

114-
ssf_press_dpad(context, DPAD_LEFT, BOX_SCROLL_DELAY, EGG_BUTTON_HOLD_DELAY);
115-
ssf_press_dpad(context, DPAD_DOWN, BOX_SCROLL_DELAY, EGG_BUTTON_HOLD_DELAY);
114+
ssf_press_dpad_ptv(context, DPAD_LEFT, BOX_SCROLL_DELAY, EGG_BUTTON_HOLD_DELAY);
115+
ssf_press_dpad_ptv(context, DPAD_DOWN, BOX_SCROLL_DELAY, EGG_BUTTON_HOLD_DELAY);
116116
}
117117

118118
static void party_to_column(ProControllerContext& context, uint8_t column){
119119
Milliseconds BOX_SCROLL_DELAY = GameSettings::instance().BOX_SCROLL_DELAY0;
120120

121-
ssf_press_dpad(context, DPAD_UP, BOX_SCROLL_DELAY, EGG_BUTTON_HOLD_DELAY);
121+
ssf_press_dpad_ptv(context, DPAD_UP, BOX_SCROLL_DELAY, EGG_BUTTON_HOLD_DELAY);
122122
column++;
123123
if (column <= 3){
124124
for (uint8_t c = 0; c != column; c++){
125-
ssf_press_dpad(context, DPAD_RIGHT, BOX_SCROLL_DELAY, EGG_BUTTON_HOLD_DELAY);
125+
ssf_press_dpad_ptv(context, DPAD_RIGHT, BOX_SCROLL_DELAY, EGG_BUTTON_HOLD_DELAY);
126126
}
127127
}else{
128128
for (uint8_t c = 7; c != column; c--){
129-
ssf_press_dpad(context, DPAD_LEFT, BOX_SCROLL_DELAY, EGG_BUTTON_HOLD_DELAY);
129+
ssf_press_dpad_ptv(context, DPAD_LEFT, BOX_SCROLL_DELAY, EGG_BUTTON_HOLD_DELAY);
130130
}
131131
}
132132
}
@@ -136,25 +136,25 @@ static void column_to_party(ProControllerContext& context, uint8_t column){
136136
column++;
137137
if (column <= 3){
138138
for (uint8_t c = column; c != 0; c--){
139-
ssf_press_dpad(context, DPAD_LEFT, BOX_SCROLL_DELAY, EGG_BUTTON_HOLD_DELAY);
139+
ssf_press_dpad_ptv(context, DPAD_LEFT, BOX_SCROLL_DELAY, EGG_BUTTON_HOLD_DELAY);
140140
}
141141
}else{
142142
for (uint8_t c = column; c != 7; c++){
143-
ssf_press_dpad(context, DPAD_RIGHT, BOX_SCROLL_DELAY, EGG_BUTTON_HOLD_DELAY);
143+
ssf_press_dpad_ptv(context, DPAD_RIGHT, BOX_SCROLL_DELAY, EGG_BUTTON_HOLD_DELAY);
144144
}
145145
}
146-
ssf_press_dpad(context, DPAD_DOWN, BOX_SCROLL_DELAY, EGG_BUTTON_HOLD_DELAY);
146+
ssf_press_dpad_ptv(context, DPAD_DOWN, BOX_SCROLL_DELAY, EGG_BUTTON_HOLD_DELAY);
147147
}
148148

149149
static void pickup_column(ProControllerContext& context, char party){
150150
Milliseconds BOX_SCROLL_DELAY = GameSettings::instance().BOX_SCROLL_DELAY0;
151151

152-
ssf_press_button(context, BUTTON_A, 160ms, EGG_BUTTON_HOLD_DELAY);
152+
ssf_press_button_ptv(context, BUTTON_A, 160ms, EGG_BUTTON_HOLD_DELAY);
153153
if (party){
154-
ssf_press_dpad(context, DPAD_UP, BOX_SCROLL_DELAY, EGG_BUTTON_HOLD_DELAY);
154+
ssf_press_dpad_ptv(context, DPAD_UP, BOX_SCROLL_DELAY, EGG_BUTTON_HOLD_DELAY);
155155
}
156-
ssf_press_dpad(context, DPAD_UP, BOX_SCROLL_DELAY, EGG_BUTTON_HOLD_DELAY);
157-
ssf_press_button(context, BUTTON_A, GameSettings::instance().BOX_PICKUP_DROP_DELAY0, EGG_BUTTON_HOLD_DELAY);
156+
ssf_press_dpad_ptv(context, DPAD_UP, BOX_SCROLL_DELAY, EGG_BUTTON_HOLD_DELAY);
157+
ssf_press_button_ptv(context, BUTTON_A, GameSettings::instance().BOX_PICKUP_DROP_DELAY0, EGG_BUTTON_HOLD_DELAY);
158158
}
159159

160160

0 commit comments

Comments
 (0)