void FlushInputOnlinePrediction() { InputFrameDelta previousInputDelta = localInputFrameDeltas[_currentLocalInputFrameDeltaNumber]; _currentLocalInputFrameDeltaNumber++; if (_nextPlayerFrameNumberToConfirm == 0) { _nextPlayerFrameNumberToConfirm = _currentLocalInputFrameDeltaNumber; } InputFrameDelta inputFrameDelta = localInputFrameDeltas[_currentLocalInputFrameDeltaNumber]; if (inputFrameDelta == null) { inputFrameDelta = new InputFrameDelta(_currentLocalInputFrameDeltaNumber); localInputFrameDeltas[_currentLocalInputFrameDeltaNumber] = inputFrameDelta; } inputFrameDelta.frameNumber = _currentLocalInputFrameDeltaNumber; inputFrameDelta.resend = FrameSyncConstant.LOCAL_INPUT_FRAME_RESEND_COUNT; inputFrameDelta.ResetBytes(); _input.ExportInput(inputFrameDelta.bytes); bool inputChanged = false; if (previousInputDelta == null) { inputChanged = true; } else { bool sameInput = previousInputDelta.IsSameInput(inputFrameDelta); inputChanged = !sameInput; } if (!inputChanged) { SWConsole.Crit($"Engine: FlushInputOnlinePrediction Input did NOT Change: localFN={_currentLocalInputFrameDeltaNumber}"); //_currentLocalInputFrameDeltaNumber--; //send an empty frame to keep the fixed delta time adjustment running inputFrameDelta.ResetBytes(); } else { SWConsole.Crit($"Engine: FlushInputOnlinePrediction Input changed: localFN={_currentLocalInputFrameDeltaNumber}"); } SendLocalInputs(); }
public void FlushInputOnline() { InputFrameDelta previousInputDelta = localInputFrameDeltas[_currentLocalInputFrameDeltaNumber]; _currentLocalInputFrameDeltaNumber++; InputFrameDelta inputFrameDelta = localInputFrameDeltas[_currentLocalInputFrameDeltaNumber]; if (inputFrameDelta == null) { inputFrameDelta = new InputFrameDelta(_currentLocalInputFrameDeltaNumber); localInputFrameDeltas[_currentLocalInputFrameDeltaNumber] = inputFrameDelta; } inputFrameDelta.frameNumber = _currentLocalInputFrameDeltaNumber; inputFrameDelta.resend = FrameSyncConstant.LOCAL_INPUT_FRAME_RESEND_COUNT; inputFrameDelta.ResetBytes(); _input.ExportInput(inputFrameDelta.bytes); bool inputChanged = false; if (previousInputDelta == null) { inputChanged = true; } else { bool sameInput = previousInputDelta.IsSameInput(inputFrameDelta); inputChanged = !sameInput; } if (!inputChanged) { SWConsole.Crit("Engine: Input did NOT Change"); _currentLocalInputFrameDeltaNumber--; } else { SWConsole.Crit("Engine: Input Changed"); } SendLocalInputs(); }