aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.HLE/HOS/Tamper/Operations/IfBlock.cs
blob: 0ba0f8c3d81c22f3c76873813f1c2e50db7ada5f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
using Ryujinx.HLE.HOS.Tamper.Conditions;
using System.Collections.Generic;

namespace Ryujinx.HLE.HOS.Tamper.Operations
{
    class IfBlock : IOperation
    {
        private ICondition _condition;
        private IEnumerable<IOperation> _operations;

        public IfBlock(ICondition condition, IEnumerable<IOperation> operations)
        {
            _condition = condition;
            _operations = operations;
        }

        public IfBlock(ICondition condition, params IOperation[] operations)
        {
            _operations = operations;
        }

        public void Execute()
        {
            if (!_condition.Evaluate())
            {
                return;
            }

            foreach (IOperation op in _operations)
            {
                op.Execute();
            }
        }
    }
}