diff --git a/OpenRA.Game/Support/ConditionExpression.cs b/OpenRA.Game/Support/ConditionExpression.cs index 9ffd48ab29..03af2d6f47 100644 --- a/OpenRA.Game/Support/ConditionExpression.cs +++ b/OpenRA.Game/Support/ConditionExpression.cs @@ -641,12 +641,7 @@ namespace OpenRA.Support static Expression AsBool(Expression expression) { - return Expressions.Expression.GreaterThan(expression, Zero); - } - - static Expression AsNegBool(Expression expression) - { - return Expressions.Expression.LessThanOrEqual(expression, Zero); + return Expressions.Expression.NotEqual(expression, Zero); } static Expression IfThenElse(Expression test, Expression ifTrue, Expression ifFalse) @@ -757,10 +752,7 @@ namespace OpenRA.Support case TokenType.Not: { - if (ast.PeekType() == ExpressionType.Bool) - ast.Push(Expressions.Expression.Not(ast.Pop(ExpressionType.Bool))); - else - ast.Push(AsNegBool(ast.Pop(ExpressionType.Int))); + ast.Push(Expressions.Expression.Not(ast.Pop(ExpressionType.Bool))); continue; } diff --git a/OpenRA.Test/OpenRA.Game/ConditionExpressionTest.cs b/OpenRA.Test/OpenRA.Game/ConditionExpressionTest.cs index 66cc5faea7..14cb0475ee 100644 --- a/OpenRA.Test/OpenRA.Game/ConditionExpressionTest.cs +++ b/OpenRA.Test/OpenRA.Game/ConditionExpressionTest.cs @@ -163,7 +163,7 @@ namespace OpenRA.Test AssertValue("!1", 0); AssertValue("!5", 0); AssertValue("!!5", 1); - AssertValue("!-5", 1); + AssertValue("!-5", 0); } [TestCase(TestName = "Relation operations")]