private void ProcessAnimationEvents() { for (int index1 = 0; index1 < this.mAnimationStates.Count; ++index1) { AnimationPlayer.AnimationStateSource mAnimationState = this.mAnimationStates[index1]; AnimDef clip = mAnimationState.Clip; float length = clip.Length; if ((double)mAnimationState.Weight > 0.0 && clip.events != null) { for (int index2 = 0; index2 < clip.events.Length; ++index2) { AnimEvent e = clip.events[index2]; if (!Object.op_Equality((Object)e, (Object)null) && this.IsEventAllowed(e)) { float num1 = Mathf.Min(e.Start, length); float num2 = Mathf.Min(e.End, length); float num3 = mAnimationState.WrapMode != 2 || (double)mAnimationState.Time >= (double)mAnimationState.TimeOld ? mAnimationState.TimeOld : mAnimationState.TimeOld - length; if ((double)num1 < (double)length) { if ((double)num3 <= (double)num1 && (double)num1 < (double)mAnimationState.Time) { this.OnEventStart(e, mAnimationState.Weight); e.OnStart(((Component)this).get_gameObject()); } } else if ((double)num3 < (double)num1 && (double)num1 <= (double)mAnimationState.Time) { this.OnEventStart(e, mAnimationState.Weight); e.OnStart(((Component)this).get_gameObject()); } if ((double)num1 <= (double)mAnimationState.Time && (double)mAnimationState.Time < (double)num2) { float num4 = e.End - e.Start; this.OnEvent(e, mAnimationState.Time, mAnimationState.Weight); e.OnTick(((Component)this).get_gameObject(), (double)num4 <= 0.0 ? 0.0f : (mAnimationState.Time - e.Start) / num4); } if ((double)num2 < (double)length) { if ((double)num3 <= (double)num2 && (double)num2 < (double)mAnimationState.Time) { this.OnEventEnd(e, mAnimationState.Weight); e.OnEnd(((Component)this).get_gameObject()); } } else if ((double)num3 < (double)num2 && (double)num2 <= (double)mAnimationState.Time) { this.OnEventEnd(e, mAnimationState.Weight); e.OnEnd(((Component)this).get_gameObject()); } } } } } }