public KeyframeEntry SetFrameValue(KeyFrameMode mode, int index, float value) { KeyframeEntry entry = null, root; for (int x = (int)mode & 0xF, y = x + ((int)mode >> 4); x < y; x++) { root = _keyRoots[x]; if ((root._prev == root) || (root._prev._index < index)) entry = root; else for (entry = root._next; (entry != root) && (entry._index <= index); entry = entry._next) ; entry = entry._prev; if (entry._index != index) { _keyCounts[x]++; entry.InsertAfter(entry = new KeyframeEntry(index, value)); } else entry._value = value; } return entry; }
public KeyframeEntry SetFrameValue(int index, float value) { KeyframeEntry entry = null; if ((_keyRoot._prev == _keyRoot) || (_keyRoot._prev._index < index)) entry = _keyRoot; else for (entry = _keyRoot._next; (entry != _keyRoot) && (entry._index <= index); entry = entry._next) ; entry = entry._prev; if (entry._index != index) { _keyCount++; entry.InsertAfter(entry = new KeyframeEntry(index, value)); } else entry._value = value; return entry; }