So, I've found a couple issues whenever I've tried to change from certain statuses into other status kinds, or assign statuses in a fighter reset. Whenever assigning Donkey Kong's Forward Throw to his Up Throw and vice versa, it doesn't properly transition into the statuses, which for forward throw, it does the throw animation, but doesn't actually perform the throw.
//The below code is for handling the changes into their other status kinds
if fighter_kind == *FIGHTER_KIND_DONKEY {
fighter.global_table[THROW_F_STATUS_KIND].assign(&FIGHTER_STATUS_KIND_THROW.into());
fighter.global_table[THROW_HI_STATUS_KIND].assign(&FIGHTER_DONKEY_STATUS_KIND_SHOULDER_START.into());
}
...
//Later on in the file
pub fn install(agent: &mut smashline::Agent) {
agent.on_start(fighter_reset);
...
}
Whenever trying to change from catch_pull to another status, like Throw or Cargo, it causes the game to freeze right as the grab connects:
All of these were working as intended in Smashline 1, but don't seem to work in Smashline 2 for some reason (I'm not sure if it's due to being installed incorrectly, or if it's something else).
So, I've found a couple issues whenever I've tried to change from certain statuses into other status kinds, or assign statuses in a fighter reset. Whenever assigning Donkey Kong's Forward Throw to his Up Throw and vice versa, it doesn't properly transition into the statuses, which for forward throw, it does the throw animation, but doesn't actually perform the throw.
//The below code is for handling the changes into their other status kinds if fighter_kind == *FIGHTER_KIND_DONKEY { fighter.global_table[THROW_F_STATUS_KIND].assign(&FIGHTER_STATUS_KIND_THROW.into()); fighter.global_table[THROW_HI_STATUS_KIND].assign(&FIGHTER_DONKEY_STATUS_KIND_SHOULDER_START.into()); } ... //Later on in the file pub fn install(agent: &mut smashline::Agent) { agent.on_start(fighter_reset); ... }
Whenever trying to change from catch_pull to another status, like Throw or Cargo, it causes the game to freeze right as the grab connects:
[skyline::hook(replace = L2CFighterCommon_status_pre_CatchPull_common)]
unsafe fn status_pre_catchpull_common(fighter: &mut L2CFighterCommon, param_1: i32) { let fighter_kind = fighter.global_table[FIGHTER_KIND].get_i32(); let entry_id = WorkModule::get_int(fighter.module_accessor, FIGHTER_INSTANCE_WORK_ID_INT_ENTRY_ID) as usize; if fighter_kind == FIGHTER_KIND_DONKEY && HAS_CATCH[entry_id] { StatusModule::change_status_request_from_script(fighter.module_accessor, FIGHTER_DONKEY_STATUS_KIND_SHOULDER_START, false); HAS_CATCH[entry_id] = false; } else { StatusModule::init_settings(fighter.module_accessor, smash::app::SituationKind(SITUATION_KIND_GROUND), FIGHTER_KINETIC_TYPE_MOTION, GROUND_CORRECT_KIND_GROUND_CLIFF_STOP as u32, smash::app::GroundCliffCheckKind(GROUND_CLIFF_CHECK_KIND_NONE), true, FIGHTER_STATUS_WORK_KEEP_FLAG_NONE_FLAG, FIGHTER_STATUS_WORK_KEEP_FLAG_NONE_INT, FIGHTER_STATUS_WORK_KEEP_FLAG_NONE_FLOAT, 0); FighterStatusModuleImpl::set_fighter_status_data(fighter.module_accessor, false, FIGHTER_TREADED_KIND_ENABLE, false, true, false, 0, (FIGHTER_STATUS_ATTR_DISABLE_JUMP_BOARD_EFFECT | *FIGHTER_STATUS_ATTR_DISABLE_TURN_DAMAGE | param_1) as u32, 0, 0); } }
All of these were working as intended in Smashline 1, but don't seem to work in Smashline 2 for some reason (I'm not sure if it's due to being installed incorrectly, or if it's something else).