From c735ad5c6e51679c904a1d5365b801169b43072e Mon Sep 17 00:00:00 2001 From: sidschingis Date: Thu, 9 Jul 2020 20:35:44 +0200 Subject: [PATCH] Add Bowser UpB Workaround (#109) * Add Bowser UpB Workaround Bowser uses a different status during upB for some reason * Use Constants --- src/training/mash.rs | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/training/mash.rs b/src/training/mash.rs index dc7547c..9e285a5 100644 --- a/src/training/mash.rs +++ b/src/training/mash.rs @@ -386,14 +386,32 @@ unsafe fn get_flag( status: i32, action_flag: i32, ) -> i32 { - if StatusModule::status_kind(module_accessor) == status { + let current_status = StatusModule::status_kind(module_accessor); + if current_status == status { // Reset Buffer reset(); } + // Workaround for Bowser upB + check_bowser_up_b(current_status); + return action_flag; } +fn check_bowser_up_b(current_status: i32) { + // Grounded up B + if current_status == *FIGHTER_KOOPA_STATUS_KIND_SPECIAL_HI_G { + reset(); + return; + } + + // Aerial up B + if current_status == *FIGHTER_KOOPA_STATUS_KIND_SPECIAL_HI_A { + reset(); + return; + } +} + pub unsafe fn perform_defensive_option() { reset();