From fb6de31aa44197285449767efcc9e2f64c07b494 Mon Sep 17 00:00:00 2001 From: asimon-1 <40246417+asimon-1@users.noreply.github.com> Date: Sat, 23 Apr 2022 10:21:14 -0400 Subject: [PATCH] bugfix for input delay (#339) --- training_mod_consts/src/lib.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/training_mod_consts/src/lib.rs b/training_mod_consts/src/lib.rs index 1f0798b7..c593145d 100644 --- a/training_mod_consts/src/lib.rs +++ b/training_mod_consts/src/lib.rs @@ -1001,6 +1001,12 @@ macro_rules! set_by_str { } } +const fn num_bits() -> usize { std::mem::size_of::() * 8 } + +fn log_2(x: u32) -> u32 { + num_bits::() as u32 - x.leading_zeros() - 1 +} + impl TrainingModpackMenu { pub fn set(&mut self, s: &str, val: u32) { set_by_str!( @@ -1017,7 +1023,7 @@ impl TrainingModpackMenu { follow_up = Action::from_bits(val), full_hop = BoolFlag::from_bits(val), hitbox_vis = OnOff::from_val(val), - input_delay = Some(val as i32), + input_delay = Some(log_2(val) as i32), ledge_delay = LongDelay::from_bits(val), ledge_state = LedgeOption::from_bits(val), mash_in_neutral = OnOff::from_val(val),