From 318a6705be3197d1fbba18127bd5dd4f6522fd2b Mon Sep 17 00:00:00 2001 From: PopSlime Date: Mon, 14 Nov 2022 11:28:10 +0800 Subject: [PATCH] Fix collapse operators and boolean property operator. --- Assets/Cryville/Crtr/PdtEvaluator.cs | 4 ++-- Assets/Cryville/Crtr/PropOp.cs | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Assets/Cryville/Crtr/PdtEvaluator.cs b/Assets/Cryville/Crtr/PdtEvaluator.cs index 875c3a2..5557974 100644 --- a/Assets/Cryville/Crtr/PdtEvaluator.cs +++ b/Assets/Cryville/Crtr/PdtEvaluator.cs @@ -92,8 +92,8 @@ namespace Cryville.Crtr { static readonly int _colop_and = IdentifierManager.SharedInstance.Request("&"); static readonly int _colop_or = IdentifierManager.SharedInstance.Request("|"); protected override bool Collapse(int name, PdtVariableMemory param) { - if (name == _colop_and) return param.AsNumber() <= 0; - else if (name == _colop_or) return param.AsNumber() > 0; + if (name == _colop_and) return param.Type == PdtInternalType.Number && param.AsNumber() <= 0; + else if (name == _colop_or) return param.Type != PdtInternalType.Number || param.AsNumber() > 0; else throw new KeyNotFoundException(string.Format("Undefined collapse operator {0}", name)); } diff --git a/Assets/Cryville/Crtr/PropOp.cs b/Assets/Cryville/Crtr/PropOp.cs index 1a38f8b..475f8b7 100644 --- a/Assets/Cryville/Crtr/PropOp.cs +++ b/Assets/Cryville/Crtr/PropOp.cs @@ -21,7 +21,7 @@ namespace Cryville.Crtr { readonly Action _cb; public Boolean(Action cb) { _cb = cb; } protected override void Execute() { - _cb(GetOperand(0).AsNumber() != 0); + _cb(GetOperand(0).AsNumber() > 0); } } public class Integer : PropOp {