mirror of
https://github.com/jugeeya/UltimateTrainingModpack.git
synced 2024-11-20 08:54:15 +00:00
Move ledge_state from grouped consts to an enum
This commit is contained in:
parent
cb3d829e03
commit
4d28004367
3 changed files with 37 additions and 15 deletions
|
@ -72,11 +72,33 @@ impl Attack {
|
|||
// pub const std::vector<std::string> attack_items{"Neutral Air", "Forward Air", "Back Air", "Up Air", "Down Air", "Neutral B", "Side B", "Up B", "Down B", "Up Smash", "Grab"};
|
||||
|
||||
// Ledge Option
|
||||
pub const RANDOM_LEDGE: i32 = 1;
|
||||
pub const NEUTRAL_LEDGE: i32 = 2;
|
||||
pub const ROLL_LEDGE: i32 = 3;
|
||||
pub const JUMP_LEDGE: i32 = 4;
|
||||
pub const ATTACK_LEDGE: i32 = 5;
|
||||
#[repr(i32)]
|
||||
#[derive(Debug, Copy, Clone, PartialEq)]
|
||||
pub enum LedgeOption {
|
||||
None = 0,
|
||||
Random = 1,
|
||||
Neutral = 2,
|
||||
Roll = 3,
|
||||
Jump = 4,
|
||||
Attack = 5,
|
||||
}
|
||||
|
||||
impl From<i32> for LedgeOption {
|
||||
fn from(x: i32) -> Self {
|
||||
use LedgeOption::*;
|
||||
|
||||
match x {
|
||||
0 => None,
|
||||
1 => Random,
|
||||
2 => Neutral,
|
||||
3 => Roll,
|
||||
4 => Jump,
|
||||
5 => Attack,
|
||||
_ => panic!("Invalid ledge option {}", x)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// pub const std::vector<std::string> ledge_items{"None", "Random", "Ntrl. Getup", "Roll", "Jump", "Attack"};
|
||||
|
||||
// Tech Option
|
||||
|
@ -161,7 +183,7 @@ pub struct TrainingModpackMenu {
|
|||
pub hitbox_vis: bool,
|
||||
pub di_state: i32,
|
||||
pub mash_attack_state: Attack,
|
||||
pub ledge_state: i32,
|
||||
pub ledge_state: LedgeOption,
|
||||
pub tech_state: i32,
|
||||
pub mash_state: Mash,
|
||||
pub shield_state: Shield,
|
||||
|
|
|
@ -9,7 +9,7 @@ pub static mut MENU_STRUCT: consts::TrainingModpackMenu = consts::TrainingModpac
|
|||
hitbox_vis: true,
|
||||
di_state: NONE,
|
||||
mash_attack_state: Attack::Nair,
|
||||
ledge_state: RANDOM_LEDGE,
|
||||
ledge_state: LedgeOption::Random,
|
||||
tech_state: RANDOM_TECH,
|
||||
mash_state: Mash::None,
|
||||
shield_state: Shield::None,
|
||||
|
|
|
@ -18,19 +18,19 @@ pub unsafe fn force_option(module_accessor: &mut app::BattleObjectModuleAccessor
|
|||
let frame = MotionModule::frame(module_accessor) as f32;
|
||||
if frame == random_frame || frame > 30.0 {
|
||||
let mut status = 0;
|
||||
let ledge_case: i32;
|
||||
let ledge_case: LedgeOption;
|
||||
|
||||
if MENU.ledge_state == RANDOM_LEDGE {
|
||||
ledge_case = app::sv_math::rand(hash40("fighter"), 4) + 2;
|
||||
if MENU.ledge_state == LedgeOption::Random {
|
||||
ledge_case = (app::sv_math::rand(hash40("fighter"), 4) + 2).into();
|
||||
} else {
|
||||
ledge_case = MENU.ledge_state;
|
||||
}
|
||||
|
||||
match ledge_case {
|
||||
NEUTRAL_LEDGE => status = *FIGHTER_STATUS_KIND_CLIFF_CLIMB,
|
||||
ROLL_LEDGE => status = *FIGHTER_STATUS_KIND_CLIFF_ESCAPE,
|
||||
JUMP_LEDGE => status = *FIGHTER_STATUS_KIND_CLIFF_JUMP1,
|
||||
ATTACK_LEDGE => status = *FIGHTER_STATUS_KIND_CLIFF_ATTACK,
|
||||
LedgeOption::Neutral => status = *FIGHTER_STATUS_KIND_CLIFF_CLIMB,
|
||||
LedgeOption::Roll => status = *FIGHTER_STATUS_KIND_CLIFF_ESCAPE,
|
||||
LedgeOption::Jump => status = *FIGHTER_STATUS_KIND_CLIFF_JUMP1,
|
||||
LedgeOption::Attack => status = *FIGHTER_STATUS_KIND_CLIFF_ATTACK,
|
||||
_ => (),
|
||||
}
|
||||
|
||||
|
@ -104,7 +104,7 @@ pub unsafe fn get_command_flag_cat(
|
|||
category: i32,
|
||||
flag: &mut i32,
|
||||
) {
|
||||
if MENU.ledge_state != NONE && is_training_mode() && is_operation_cpu(module_accessor) {
|
||||
if MENU.ledge_state != LedgeOption::None && is_training_mode() && is_operation_cpu(module_accessor) {
|
||||
force_option(module_accessor);
|
||||
defensive_option(module_accessor, category, flag);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue