public bool Execute(Pointer pointer, IRunicContext context) { object a = pointer.Pop(); if (a is ValueType) { MathHelper.NumericRelationship r = MathHelper.Compare((ValueType)a, 0); if (r != MathHelper.NumericRelationship.EqualTo) { int b = (int)MathHelper.GetValue((ValueType)a); pointer.SetSkip(System.Math.Max(1, b)); } } else { if (a == null) { pointer.SetSkip(1); } else { pointer.Push(a); } } return(true); }
public bool Execute(Pointer pointer, IRunicContext context) { object a = pointer.Pop(); object b = pointer.Pop(); if (a is ValueType && b is ValueType) { MathHelper.NumericRelationship q = MathHelper.Compare((ValueType)b, (ValueType)a); bool r = q == MathHelper.NumericRelationship.LessThan; char modifier = context.GetModifier(pointer.position.x, pointer.position.y); if (modifier == '̸' || modifier == '͍') { r = !r; } pointer.Push(r ? 1 : 0); } return(true); }