public void LocalPlayerUpdateCrouchState(CCMotor ccmotor, ref bool crouchFlag, ref bool crouchBlockFlag, ref Crouchable.Smoothing smoothing) { Crouchable.CrouchState crouchState = new Crouchable.CrouchState(); crouchState.CrouchBlocked = ccmotor.isCrouchBlocked; CCTotem.PositionPlacement?lastPositionPlacement = ccmotor.LastPositionPlacement; CCTotem.PositionPlacement positionPlacement = (!lastPositionPlacement.HasValue ? new CCTotem.PositionPlacement(base.origin, base.origin, base.origin, ccmotor.ccTotemPole.MaximumHeight) : lastPositionPlacement.Value); crouchState.BottomY = positionPlacement.bottom.y; crouchState.TopY = positionPlacement.top.y; crouchState.InitialStandingHeight = positionPlacement.originalHeight; this.LocalPlayerUpdateCrouchState(ref crouchState, ref crouchFlag, ref crouchBlockFlag, ref smoothing); }
public void LocalPlayerUpdateCrouchState(ref Crouchable.CrouchState incoming, ref bool crouchFlag, ref bool crouchBlockFlag, ref Crouchable.Smoothing smoothing) { double num = (double)base.initialEyesOffsetY; double bottomY = (double)incoming.BottomY + num; double bottomY1 = (double)(incoming.BottomY + incoming.InitialStandingHeight); double topY = (double)incoming.TopY - (bottomY1 - bottomY); double num1 = topY - (double)incoming.BottomY; this.crouchUnits = smoothing.CatchUp(num1 - num); base.idMain.InvalidateEyesOffset(); if (!incoming.CrouchBlocked) { crouchBlockFlag = false; } else { crouchBlockFlag = true; crouchFlag = true; } }