using Ryujinx.HLE.HOS.Tamper.Conditions; using System.Collections.Generic; namespace Ryujinx.HLE.HOS.Tamper.Operations { class ForBlock : IOperation { private ulong _count; private Register _register; private IEnumerable _operations; public ForBlock(ulong count, Register register, IEnumerable operations) { _count = count; _register = register; _operations = operations; } public ForBlock(ulong count, Register register, params IOperation[] operations) { _count = count; _register = register; _operations = operations; } public void Execute() { for (ulong i = 0; i < _count; i++) { // Set the register and execute the operations so that changing the // register during runtime does not break iteration. _register.Set(i); foreach (IOperation op in _operations) { op.Execute(); } } } } }