Ryujinx/Ryujinx.HLE/HOS/Tamper/Operations/IfBlock.cs
Caian Benedicto ff8849671a
Update TamperMachine and disable write-to-code prevention (#2506)
* Enable write to memory and improve logging

* Update tamper machine opcodes and improve reporting

* Add Else support

* Add missing private statement
2021-08-04 22:05:17 +02:00

35 lines
951 B
C#

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> _operationsThen;
private IEnumerable<IOperation> _operationsElse;
public IfBlock(ICondition condition, IEnumerable<IOperation> operationsThen, IEnumerable<IOperation> operationsElse)
{
_condition = condition;
_operationsThen = operationsThen;
_operationsElse = operationsElse;
}
public void Execute()
{
IEnumerable<IOperation> operations = _condition.Evaluate() ? _operationsThen : _operationsElse;
if (operations == null)
{
return;
}
foreach (IOperation op in operations)
{
op.Execute();
}
}
}
}