// Token: 0x06000269 RID: 617 RVA: 0x0000D8D4 File Offset: 0x0000BAD4 internal static void Despawn(Tween t, bool modifyActiveLists = true) { if (t.onKill != null) { Tween.OnTweenCallback(t.onKill); } if (modifyActiveLists) { TweenManager.RemoveActiveTween(t); } if (t.isRecyclable) { TweenType tweenType = t.tweenType; if (tweenType != TweenType.Tweener) { if (tweenType == TweenType.Sequence) { TweenManager._PooledSequences.Push(t); TweenManager.totPooledSequences++; Sequence sequence = (Sequence)t; int count = sequence.sequencedTweens.Count; for (int i = 0; i < count; i++) { TweenManager.Despawn(sequence.sequencedTweens[i], false); } } } else { if (TweenManager._maxPooledTweenerId == -1) { TweenManager._maxPooledTweenerId = TweenManager.maxTweeners - 1; TweenManager._minPooledTweenerId = TweenManager.maxTweeners - 1; } if (TweenManager._maxPooledTweenerId < TweenManager.maxTweeners - 1) { TweenManager._pooledTweeners[TweenManager._maxPooledTweenerId + 1] = t; TweenManager._maxPooledTweenerId++; if (TweenManager._minPooledTweenerId > TweenManager._maxPooledTweenerId) { TweenManager._minPooledTweenerId = TweenManager._maxPooledTweenerId; } } else { int j = TweenManager._maxPooledTweenerId; while (j > -1) { if (TweenManager._pooledTweeners[j] == null) { TweenManager._pooledTweeners[j] = t; if (j < TweenManager._minPooledTweenerId) { TweenManager._minPooledTweenerId = j; } if (TweenManager._maxPooledTweenerId < TweenManager._minPooledTweenerId) { TweenManager._maxPooledTweenerId = TweenManager._minPooledTweenerId; break; } break; } else { j--; } } } TweenManager.totPooledTweeners++; } } else { TweenType tweenType = t.tweenType; if (tweenType != TweenType.Tweener) { if (tweenType == TweenType.Sequence) { TweenManager.totSequences--; Sequence sequence2 = (Sequence)t; int count2 = sequence2.sequencedTweens.Count; for (int k = 0; k < count2; k++) { TweenManager.Despawn(sequence2.sequencedTweens[k], false); } } } else { TweenManager.totTweeners--; } } t.active = false; t.Reset(); }
// Token: 0x06000270 RID: 624 RVA: 0x0000DEB0 File Offset: 0x0000C0B0 internal static int FilteredOperation(OperationType operationType, FilterType filterType, object id, bool optionalBool, float optionalFloat, object optionalObj = null, object[] optionalArray = null) { int num = 0; bool flag = false; int num2 = (optionalArray == null) ? 0 : optionalArray.Length; for (int i = TweenManager._maxActiveLookupId; i > -1; i--) { Tween tween = TweenManager._activeTweens[i]; if (tween != null && tween.active) { bool flag2 = false; switch (filterType) { case FilterType.All: flag2 = true; break; case FilterType.TargetOrId: flag2 = (id.Equals(tween.id) || id.Equals(tween.target)); break; case FilterType.TargetAndId: flag2 = (id.Equals(tween.id) && optionalObj != null && optionalObj.Equals(tween.target)); break; case FilterType.AllExceptTargetsOrIds: flag2 = true; for (int j = 0; j < num2; j++) { object obj = optionalArray[j]; if (obj.Equals(tween.id) || obj.Equals(tween.target)) { flag2 = false; break; } } break; } if (flag2) { switch (operationType) { case OperationType.Complete: { bool autoKill = tween.autoKill; if (TweenManager.Complete(tween, false, (optionalFloat > 0f) ? UpdateMode.Update : UpdateMode.Goto)) { num += ((!optionalBool) ? 1 : (autoKill ? 1 : 0)); if (autoKill) { if (TweenManager.isUpdateLoop) { tween.active = false; } else { flag = true; TweenManager._KillList.Add(tween); } } } break; } case OperationType.Despawn: num++; if (TweenManager.isUpdateLoop) { tween.active = false; } else { TweenManager.Despawn(tween, false); flag = true; TweenManager._KillList.Add(tween); } break; case OperationType.Flip: if (TweenManager.Flip(tween)) { num++; } break; case OperationType.Goto: TweenManager.Goto(tween, optionalFloat, optionalBool, UpdateMode.Goto); num++; break; case OperationType.Pause: if (TweenManager.Pause(tween)) { num++; } break; case OperationType.Play: if (TweenManager.Play(tween)) { num++; } break; case OperationType.PlayForward: if (TweenManager.PlayForward(tween)) { num++; } break; case OperationType.PlayBackwards: if (TweenManager.PlayBackwards(tween)) { num++; } break; case OperationType.Rewind: if (TweenManager.Rewind(tween, optionalBool)) { num++; } break; case OperationType.SmoothRewind: if (TweenManager.SmoothRewind(tween)) { num++; } break; case OperationType.Restart: if (TweenManager.Restart(tween, optionalBool)) { num++; } break; case OperationType.TogglePause: if (TweenManager.TogglePause(tween)) { num++; } break; case OperationType.IsTweening: if (!tween.isComplete || !tween.autoKill) { num++; } break; } } } } if (flag) { for (int k = TweenManager._KillList.Count - 1; k > -1; k--) { TweenManager.RemoveActiveTween(TweenManager._KillList[k]); } TweenManager._KillList.Clear(); } return(num); }
internal static void Despawn(Tween t, bool modifyActiveLists = true) { if (t.onKill != null) { Tween.OnTweenCallback(t.onKill); } if (modifyActiveLists) { TweenManager.RemoveActiveTween(t); } if (t.isRecyclable) { switch (t.tweenType) { case TweenType.Sequence: { TweenManager._PooledSequences.Push(t); TweenManager.totPooledSequences++; Sequence sequence = (Sequence)t; int count = sequence.sequencedTweens.Count; for (int i = 0; i < count; i++) { TweenManager.Despawn(sequence.sequencedTweens[i], false); } break; } case TweenType.Tweener: if (TweenManager._maxPooledTweenerId == -1) { TweenManager._maxPooledTweenerId = TweenManager.maxTweeners - 1; TweenManager._minPooledTweenerId = TweenManager.maxTweeners - 1; } if (TweenManager._maxPooledTweenerId < TweenManager.maxTweeners - 1) { TweenManager._pooledTweeners[TweenManager._maxPooledTweenerId + 1] = t; TweenManager._maxPooledTweenerId++; if (TweenManager._minPooledTweenerId > TweenManager._maxPooledTweenerId) { TweenManager._minPooledTweenerId = TweenManager._maxPooledTweenerId; } } else { int num = TweenManager._maxPooledTweenerId; while (num > -1) { if (TweenManager._pooledTweeners[num] != null) { num--; continue; } TweenManager._pooledTweeners[num] = t; if (num < TweenManager._minPooledTweenerId) { TweenManager._minPooledTweenerId = num; } if (TweenManager._maxPooledTweenerId >= TweenManager._minPooledTweenerId) { break; } TweenManager._maxPooledTweenerId = TweenManager._minPooledTweenerId; break; } } TweenManager.totPooledTweeners++; break; } } else { switch (t.tweenType) { case TweenType.Sequence: { TweenManager.totSequences--; Sequence sequence2 = (Sequence)t; int count2 = sequence2.sequencedTweens.Count; for (int j = 0; j < count2; j++) { TweenManager.Despawn(sequence2.sequencedTweens[j], false); } break; } case TweenType.Tweener: TweenManager.totTweeners--; break; } } t.active = false; t.Reset(); }