diff options
| author | Caian Benedicto <caianbene@gmail.com> | 2021-08-04 17:05:17 -0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-08-04 22:05:17 +0200 |
| commit | ff8849671af5ac14fc9cc9d37da30f53d3f13d89 (patch) | |
| tree | 636e4e249084b20b871c158fdb8ff4f2b03f36e0 /Ryujinx.HLE/HOS/Tamper/Operations/IfBlock.cs | |
| parent | a27986c31167d8ce60efcee7e901da241f63ed08 (diff) | |
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
Diffstat (limited to 'Ryujinx.HLE/HOS/Tamper/Operations/IfBlock.cs')
| -rw-r--r-- | Ryujinx.HLE/HOS/Tamper/Operations/IfBlock.cs | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/Ryujinx.HLE/HOS/Tamper/Operations/IfBlock.cs b/Ryujinx.HLE/HOS/Tamper/Operations/IfBlock.cs index 0ba0f8c3..b7c5684e 100644 --- a/Ryujinx.HLE/HOS/Tamper/Operations/IfBlock.cs +++ b/Ryujinx.HLE/HOS/Tamper/Operations/IfBlock.cs @@ -6,27 +6,26 @@ namespace Ryujinx.HLE.HOS.Tamper.Operations class IfBlock : IOperation { private ICondition _condition; - private IEnumerable<IOperation> _operations; + private IEnumerable<IOperation> _operationsThen; + private IEnumerable<IOperation> _operationsElse; - public IfBlock(ICondition condition, IEnumerable<IOperation> operations) + public IfBlock(ICondition condition, IEnumerable<IOperation> operationsThen, IEnumerable<IOperation> operationsElse) { _condition = condition; - _operations = operations; - } - - public IfBlock(ICondition condition, params IOperation[] operations) - { - _operations = operations; + _operationsThen = operationsThen; + _operationsElse = operationsElse; } public void Execute() { - if (!_condition.Evaluate()) + IEnumerable<IOperation> operations = _condition.Evaluate() ? _operationsThen : _operationsElse; + + if (operations == null) { return; } - foreach (IOperation op in _operations) + foreach (IOperation op in operations) { op.Execute(); } |
