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("max"), new func_max(() => ContextSelfValue));
|
||||
_ctxops.Add(IdentifierManager.SharedInstance.Request("abs"), new func_abs(() => ContextSelfValue));
|
||||
_ctxops.Add(IdentifierManager.SharedInstance.Request("in_area"), new func_in_area());
|
||||
}
|
||||
static PdtEvaluator() {
|
||||
_shortops.Add(new PdtOperatorSignature("@", 2), new op_at_2());
|
||||
@@ -383,6 +384,18 @@ namespace Cryville.Crtr {
|
||||
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 {
|
||||
public static float AsNumber(PropSrc src) {
|
||||
if (src == null)
|
||||
|
Reference in New Issue
Block a user