1
0
Fork 0
mirror of https://github.com/jugeeya/UltimateTrainingModpack.git synced 2024-10-03 01:34:27 +00:00

Fix Tech Followup (#123)

* Add Dash Attack

* Extract Method

try_change_status

* Code Formatting

* Fix Tech Followups

Fixed resetting after teching

* Update Mash

Restore mash after footstool
This commit is contained in:
sidschingis 2020-07-31 17:35:05 +02:00 committed by GitHub
parent 8c03361b8e
commit 658c0fe63c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 64 additions and 6 deletions

View file

@ -70,15 +70,28 @@ pub unsafe fn is_airborne(module_accessor: &mut app::BattleObjectModuleAccessor)
situation_kind == SITUATION_KIND_AIR
}
pub unsafe fn is_idle(module_accessor: &mut app::BattleObjectModuleAccessor) -> bool {
let status_kind = StatusModule::status_kind(module_accessor);
pub fn is_idle(module_accessor: &mut app::BattleObjectModuleAccessor) -> bool {
let status_kind;
unsafe {
status_kind = StatusModule::status_kind(module_accessor);
}
status_kind == FIGHTER_STATUS_KIND_WAIT
}
pub unsafe fn is_in_hitstun(module_accessor: &mut app::BattleObjectModuleAccessor) -> bool {
let status_kind = StatusModule::status_kind(module_accessor);
pub fn is_in_hitstun(module_accessor: &mut app::BattleObjectModuleAccessor) -> bool {
let status_kind;
unsafe {
status_kind = StatusModule::status_kind(module_accessor);
}
(*FIGHTER_STATUS_KIND_DAMAGE..=*FIGHTER_STATUS_KIND_DAMAGE_FALL).contains(&status_kind)
}
pub fn is_in_footstool(module_accessor: &mut app::BattleObjectModuleAccessor) -> bool {
let status_kind;
unsafe {
status_kind = StatusModule::status_kind(module_accessor);
}
(*FIGHTER_STATUS_KIND_TREAD_DAMAGE..=*FIGHTER_STATUS_KIND_TREAD_FALL).contains(&status_kind)
}
pub fn is_shielding(module_accessor: *mut app::BattleObjectModuleAccessor) -> bool {
unsafe {

View file

@ -116,20 +116,65 @@ unsafe fn check_buffer(module_accessor: &mut app::BattleObjectModuleAccessor) {
Reset when CPU is idle to prevent deadlocks
and to reset when using the training mode reset
*/
if is_idle(module_accessor) {
if should_reset(module_accessor) {
reset();
}
return;
}
if !is_in_hitstun(module_accessor) && MENU.mash_in_neutral != OnOff::On {
if !should_buffer(module_accessor) {
return;
}
buffer_menu_mash(module_accessor);
}
fn should_reset(module_accessor: &mut app::BattleObjectModuleAccessor) -> bool {
if !is_idle(module_accessor) {
return false;
}
let prev_status;
unsafe {
prev_status = StatusModule::prev_status_kind(module_accessor, 0);
}
// Don't reset after teching
if prev_status == *FIGHTER_STATUS_KIND_DOWN {
return false;
}
if prev_status == *FIGHTER_STATUS_KIND_PASSIVE {
return false;
}
if prev_status == *FIGHTER_STATUS_KIND_PASSIVE_FB {
return false;
}
return true;
}
fn should_buffer(module_accessor: &mut app::BattleObjectModuleAccessor) -> bool {
unsafe{
if MENU.mash_in_neutral == OnOff::On {
return true;
}
}
if is_in_hitstun(module_accessor) {
return true;
}
if is_in_footstool(module_accessor) {
return true;
}
return false;
}
// Temp Translation
pub fn buffer_menu_mash(module_accessor: &mut app::BattleObjectModuleAccessor) -> Action {
unsafe {