Detect if an input sequence is in the buffer and valid
This commit is contained in:
parent
a85a9a7005
commit
9f16901de6
@ -14,11 +14,30 @@ void UFFInputBufferComponent::AddInput(const FFFInputState& InputState)
|
||||
|
||||
bool UFFInputBufferComponent::CheckInputSequence(const FFFInputCondition& InputCondition)
|
||||
{
|
||||
int CondIdx = InputCondition.Sequence.Num() - 1;
|
||||
int FramesSinceValidInput = 0;
|
||||
for(int InpIdx = 0; InpIdx < InputBuffer.Num(); InpIdx++)
|
||||
{
|
||||
// read input sequence
|
||||
FFFInputState CurrInput = InputBuffer[InpIdx];
|
||||
int32 CurrCondition = InputCondition.Sequence[CondIdx].Buttons;
|
||||
int32 ThisInput = InputBuffer[InpIdx].Buttons;
|
||||
if(ThisInput & CurrCondition)
|
||||
{
|
||||
CondIdx--;
|
||||
FramesSinceValidInput = 0;
|
||||
}
|
||||
|
||||
// All conditions were met
|
||||
if(CondIdx == -1)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
FramesSinceValidInput++;
|
||||
if(FramesSinceValidInput > InputCondition.Lenience)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
@ -29,7 +29,6 @@ void AFFPlayerController::FixedTick(float OneFrame)
|
||||
{
|
||||
//UnacknowledgedInputs.Push(RawInput);
|
||||
InputBuffer->AddInput(ModifiedInput);
|
||||
|
||||
//SendInputsToRemote();
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user