private void FlushKeyLength(List <RotorKeyReaderStructure> rotorArrangement) { var cache = coreRotor.Current; for (int i = 0; i < rotorArrangement.Count; i++) { rotorArrangement[i] = new RotorKeyReaderStructure() { Position = rotorArrangement[i].Position, Length = cache[i] }; } }
private void FlushKeyPosition(List <RotorKeyReaderStructure> rotorArrangement) { //add 1 rotorArrangement[0] = new RotorKeyReaderStructure() { Position = rotorArrangement[0].Position + 1, Length = rotorArrangement[0].Length }; for (int i = 0; i < rotorArrangement.Count; i++) { //check overflow if (rotorArrangement[i].Position == core.KeyLength) { //set this item's position is 0 rotorArrangement[i] = new RotorKeyReaderStructure() { Position = 0, Length = rotorArrangement[i].Length }; if (i == (rotorArrangement.Count - 1)) { //last. give up push number } else { //push to next number rotorArrangement[i + 1] = new RotorKeyReaderStructure() { Position = rotorArrangement[i + 1].Position + 1, Length = rotorArrangement[i + 1].Length }; } } else { return; } } }