コード例 #1
0
 // Token: 0x06001A39 RID: 6713 RVA: 0x00065E38 File Offset: 0x00064038
 public bool Dequeue(MonoBehaviour script, ulong playhead, out global::InterpTimedEvent node, ref global::InterpTimedEvent.LList.Iterator iter_)
 {
     if (this.count <= 0)
     {
         node = null;
         return(false);
     }
     global::InterpTimedEvent.Dir dir = (!iter_.started) ? this.first : iter_.d;
     while (dir.has)
     {
         if (playhead < dir.node.info.timestamp)
         {
             break;
         }
         if (dir.node.component == script)
         {
             node          = dir.node;
             iter_.d       = node.next;
             iter_.started = true;
             this.Remove(node);
             return(true);
         }
         dir = dir.node.next;
     }
     iter_.d       = default(global::InterpTimedEvent.Dir);
     iter_.started = true;
     node          = null;
     return(false);
 }
コード例 #2
0
 // Token: 0x06001A37 RID: 6711 RVA: 0x00065D68 File Offset: 0x00063F68
 public bool Dequeue(ulong playhead, out global::InterpTimedEvent node, ref global::InterpTimedEvent.LList.Iterator iter_)
 {
     if (this.count <= 0)
     {
         node = null;
         return(false);
     }
     global::InterpTimedEvent.Dir dir = (!iter_.started) ? this.first : iter_.d;
     if (dir.has)
     {
         if (playhead >= dir.node.info.timestamp)
         {
             node          = dir.node;
             iter_.d       = node.next;
             iter_.started = true;
             this.Remove(node);
             return(true);
         }
     }
     iter_.d       = default(global::InterpTimedEvent.Dir);
     iter_.started = true;
     node          = null;
     return(false);
 }
コード例 #3
0
 // Token: 0x06001A3C RID: 6716 RVA: 0x000660F4 File Offset: 0x000642F4
 private bool Insert(ref global::InterpTimedEvent.Dir ent)
 {
     if (ent.node == null)
     {
         return(false);
     }
     if (ent.node.inlist)
     {
         return(false);
     }
     if (this.count == 0)
     {
         this.first = (this.last = ent);
     }
     else if (this.last.node.info.timestampInMillis <= ent.node.info.timestampInMillis)
     {
         if (this.count == 1)
         {
             this.first           = this.last;
             this.last            = ent;
             ent.node.prev        = this.first;
             this.first.node.next = this.last;
         }
         else
         {
             ent.node.prev       = this.last;
             this.last.node.next = ent;
             this.last           = ent;
         }
     }
     else if (this.count == 1)
     {
         this.first           = ent;
         this.first.node.next = this.last;
         this.last.node.prev  = this.first;
     }
     else if (this.first.node.info.timestampInMillis > ent.node.info.timestampInMillis)
     {
         ent.node.next        = this.first;
         this.first.node.prev = ent;
         this.first           = ent;
     }
     else
     {
         global::InterpTimedEvent.Dir prev;
         if (this.first.node.info.timestampInMillis == ent.node.info.timestampInMillis)
         {
             prev = this.first;
             while (prev.node.next.has)
             {
                 if (prev.node.next.node.info.timestampInMillis > ent.node.info.timestampInMillis)
                 {
                     break;
                 }
                 prev = prev.node.next;
             }
         }
         else
         {
             prev = this.last;
             while (prev.node.prev.has)
             {
                 prev = prev.node.prev;
                 if (prev.node.info.timestampInMillis <= ent.node.info.timestampInMillis)
                 {
                     break;
                 }
             }
         }
         ent.node.next = prev.node.next;
         ent.node.prev = prev;
     }
     this.count++;
     ent.node.inlist = true;
     if (this.FAIL_SAFE_SET == null)
     {
         this.FAIL_SAFE_SET = new HashSet <global::InterpTimedEvent>();
     }
     this.FAIL_SAFE_SET.Add(ent.node);
     return(true);
 }