From d0b97923e9a4c2a0d1c4f8d935eeb716baa3a0ed Mon Sep 17 00:00:00 2001 From: kichithewolf Date: Thu, 16 Apr 2026 20:05:52 -0400 Subject: [PATCH 1/2] fixes to ho-oh movement --- .../Programs/ShinyHunting/PokemonFRLG_LegendaryRunAway.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/SerialPrograms/Source/PokemonFRLG/Programs/ShinyHunting/PokemonFRLG_LegendaryRunAway.cpp b/SerialPrograms/Source/PokemonFRLG/Programs/ShinyHunting/PokemonFRLG_LegendaryRunAway.cpp index 81ad09596..38f86aae3 100644 --- a/SerialPrograms/Source/PokemonFRLG/Programs/ShinyHunting/PokemonFRLG_LegendaryRunAway.cpp +++ b/SerialPrograms/Source/PokemonFRLG/Programs/ShinyHunting/PokemonFRLG_LegendaryRunAway.cpp @@ -145,7 +145,9 @@ void LegendaryRunAway::reset_hooh(SingleSwitchProgramEnvironment& env, ProContro int ret2 = run_until( env.console, context, [&](ProControllerContext& context){ - pbf_press_dpad(context, DPAD_LEFT, HOOH_LEFT_RIGHT, 160ms); + ssf_press_button(context, BUTTON_B, 0ms, 500ms); + pbf_press_dpad(context, DPAD_LEFT, 500ms, 0ms); + context.wait_for_all_requests(); ssf_press_button(context, BUTTON_B, 0ms, 500ms); pbf_press_dpad(context, DPAD_RIGHT, 500ms, 160ms); From adb17078add8fa3c1e35d272f6ee902ae170f3de Mon Sep 17 00:00:00 2001 From: kichithewolf Date: Thu, 16 Apr 2026 21:27:42 -0400 Subject: [PATCH 2/2] frlg legend run status notifs --- .../PokemonFRLG_LegendaryRunAway.cpp | 32 ++++++++++++++++--- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/SerialPrograms/Source/PokemonFRLG/Programs/ShinyHunting/PokemonFRLG_LegendaryRunAway.cpp b/SerialPrograms/Source/PokemonFRLG/Programs/ShinyHunting/PokemonFRLG_LegendaryRunAway.cpp index 38f86aae3..090d5c9fd 100644 --- a/SerialPrograms/Source/PokemonFRLG/Programs/ShinyHunting/PokemonFRLG_LegendaryRunAway.cpp +++ b/SerialPrograms/Source/PokemonFRLG/Programs/ShinyHunting/PokemonFRLG_LegendaryRunAway.cpp @@ -133,11 +133,15 @@ void LegendaryRunAway::reset_hooh(SingleSwitchProgramEnvironment& env, ProContro env.log("Failed to exit area.", COLOR_RED); OperationFailedException::fire( ErrorReport::SEND_ERROR_REPORT, - "Failed to exit area.", + "reset_hooh(): Failed to exit area.", env.console ); }else{ env.log("Left area."); + send_program_status_notification( + env, NOTIFICATION_STATUS_UPDATE, + "reset_hooh(): Left area." + ); } BlackScreenOverWatcher enter_area(COLOR_RED); @@ -160,11 +164,15 @@ void LegendaryRunAway::reset_hooh(SingleSwitchProgramEnvironment& env, ProContro env.log("Failed to enter area.", COLOR_RED); OperationFailedException::fire( ErrorReport::SEND_ERROR_REPORT, - "Failed to enter area.", + "reset_hooh(): Failed to enter area.", env.console ); }else{ env.log("Entered area."); + send_program_status_notification( + env, NOTIFICATION_STATUS_UPDATE, + "reset_hooh(): Entered area." + ); } //reverse above steps, but only take 9 steps up @@ -198,11 +206,15 @@ void LegendaryRunAway::reset_lugia(SingleSwitchProgramEnvironment& env, ProContr env.log("Failed to exit area.", COLOR_RED); OperationFailedException::fire( ErrorReport::SEND_ERROR_REPORT, - "Failed to exit area.", + "reset_lugia(): Failed to exit area.", env.console ); }else{ env.log("Left area."); + send_program_status_notification( + env, NOTIFICATION_STATUS_UPDATE, + "reset_lugia(): Left area." + ); } BlackScreenOverWatcher enter_area(COLOR_RED); @@ -224,11 +236,15 @@ void LegendaryRunAway::reset_lugia(SingleSwitchProgramEnvironment& env, ProContr env.log("Failed to enter area.", COLOR_RED); OperationFailedException::fire( ErrorReport::SEND_ERROR_REPORT, - "Failed to enter area.", + "reset_lugia(): Failed to enter area.", env.console ); }else{ env.log("Entered area."); + send_program_status_notification( + env, NOTIFICATION_STATUS_UPDATE, + "reset_lugia(): Entered area." + ); } //reverse above steps @@ -262,6 +278,10 @@ void LegendaryRunAway::program(SingleSwitchProgramEnvironment& env, ProControlle //Press A to start the encounter. pbf_press_button(context, BUTTON_A, 320ms, 320ms); } + send_program_status_notification( + env, NOTIFICATION_STATUS_UPDATE, + "Starting encounter." + ); bool legendary_shiny = handle_encounter(env.console, context, true); if (legendary_shiny){ @@ -281,6 +301,10 @@ void LegendaryRunAway::program(SingleSwitchProgramEnvironment& env, ProControlle break; } env.log("No shiny found."); + send_program_status_notification( + env, NOTIFICATION_STATUS_UPDATE, + "No shiny found." + ); flee_battle(env.console, context); //Close out dialog box