Add in_area function.
This commit is contained in:
@@ -115,6 +115,7 @@ namespace Cryville.Crtr {
|
|||||||
_ctxops.Add(IdentifierManager.SharedInstance.Request("min"), new func_min(() => ContextSelfValue));
|
_ctxops.Add(IdentifierManager.SharedInstance.Request("min"), new func_min(() => ContextSelfValue));
|
||||||
_ctxops.Add(IdentifierManager.SharedInstance.Request("max"), new func_max(() => ContextSelfValue));
|
_ctxops.Add(IdentifierManager.SharedInstance.Request("max"), new func_max(() => ContextSelfValue));
|
||||||
_ctxops.Add(IdentifierManager.SharedInstance.Request("abs"), new func_abs(() => ContextSelfValue));
|
_ctxops.Add(IdentifierManager.SharedInstance.Request("abs"), new func_abs(() => ContextSelfValue));
|
||||||
|
_ctxops.Add(IdentifierManager.SharedInstance.Request("in_area"), new func_in_area());
|
||||||
}
|
}
|
||||||
static PdtEvaluator() {
|
static PdtEvaluator() {
|
||||||
_shortops.Add(new PdtOperatorSignature("@", 2), new op_at_2());
|
_shortops.Add(new PdtOperatorSignature("@", 2), new op_at_2());
|
||||||
@@ -383,6 +384,18 @@ namespace Cryville.Crtr {
|
|||||||
ret.SetNumber(Mathf.Abs(arg));
|
ret.SetNumber(Mathf.Abs(arg));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
class func_in_area : PdtOperator {
|
||||||
|
public func_in_area() : base(1) { }
|
||||||
|
protected override unsafe void Execute() {
|
||||||
|
var arg = GetOperand(0);
|
||||||
|
if (arg.Type == PdtInternalType.Number && arg.AsNumber() >= 0) {
|
||||||
|
GetReturnFrame(PdtInternalType.Null, 0);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var ret = GetReturnFrame(arg.Type, arg.Length);
|
||||||
|
arg.CopyTo(ret);
|
||||||
|
}
|
||||||
|
}
|
||||||
unsafe static class oputil {
|
unsafe static class oputil {
|
||||||
public static float AsNumber(PropSrc src) {
|
public static float AsNumber(PropSrc src) {
|
||||||
if (src == null)
|
if (src == null)
|
||||||
|
Reference in New Issue
Block a user