// 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); }
// 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); }
// 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); }