private static bool ElementMatch(CommandElement element, InputBuffer input, int input_index) { var state = input.GetState(input_index, element); if (element.HeldDown) { var result = state == ButtonState.Down || state == ButtonState.Pressed; return(result); } if (element.TriggerOnRelease != null) { if (input_index >= input.Size) { return(false); } if (input_index == 0 || input.GetState(input_index - 1, element) != ButtonState.Released) { return(false); } var holdcount = 1; for (var i = input_index + 1; i < input.Size; ++i, ++holdcount) { if (input.GetState(i, element) != ButtonState.Down) { break; } } if (holdcount < element.TriggerOnRelease.Value) { return(false); } } else { if (state != ButtonState.Pressed) { return(false); } } return(true); }
static Boolean ElementMatch(CommandElement element, InputBuffer input, Int32 input_index) { ButtonState state = input.GetState(input_index, element); if (element.HeldDown == true) { Boolean result = (state == ButtonState.Down || state == ButtonState.Pressed); return(result); } else if (element.TriggerOnRelease != null) { if (input_index >= input.Size) { return(false); } if (input_index == 0 || input.GetState(input_index - 1, element) != ButtonState.Released) { return(false); } Int32 holdcount = 1; for (Int32 i = input_index + 1; i < input.Size; ++i, ++holdcount) { if (input.GetState(i, element) != ButtonState.Down) { break; } } if (holdcount < element.TriggerOnRelease.Value) { return(false); } } else { if (state != ButtonState.Pressed) { return(false); } } return(true); }
static Boolean ElementMatch(CommandElement element, InputBuffer input, Int32 input_index) { ButtonState state = input.GetState(input_index, element); if (element.HeldDown == true) { Boolean result = (state == ButtonState.Down || state == ButtonState.Pressed); return result; } else if (element.TriggerOnRelease != null) { if (input_index >= input.Size) { return false; } if (input_index == 0 || input.GetState(input_index - 1, element) != ButtonState.Released) { return false; } Int32 holdcount = 1; for (Int32 i = input_index + 1; i < input.Size; ++i, ++holdcount) if (input.GetState(i, element) != ButtonState.Down) break; if (holdcount < element.TriggerOnRelease.Value) { return false; } } else { if (state != ButtonState.Pressed) { return false; } } return true; }