Restore PDT evaluator exception.
This commit is contained in:
@@ -91,7 +91,8 @@ namespace Cryville.Crtr {
|
||||
}
|
||||
public override IEnumerable<ChartEvent> Match(ChartEvent ev) {
|
||||
ChartPlayer.etor.ContextEvent = ev;
|
||||
ChartPlayer.etor.Evaluate(_op, _exp);
|
||||
if (!ChartPlayer.etor.Evaluate(_op, _exp))
|
||||
throw new EvaluationFailureException();
|
||||
ChartPlayer.etor.ContextEvent = null;
|
||||
if (_flag) return new ChartEvent[] { ev };
|
||||
else return null;
|
||||
|
@@ -88,6 +88,7 @@ namespace Cryville.Crtr {
|
||||
if (p.Key.annotations.Contains("once")) {
|
||||
stack.Properties.RemoveAt(i--);
|
||||
}
|
||||
if (p.Key.IsValueRequired && !p.Value.IsConstant && dl < 1) nstack.Properties.Add(p);
|
||||
}
|
||||
for (int i = 0; i < stack.Elements.Count; i++) {
|
||||
DynamicElement e = stack.Elements[i];
|
||||
|
@@ -91,7 +91,8 @@ namespace Cryville.Crtr {
|
||||
void Execute(RuntimeSkinContext ctx, PdtOperator op, PdtExpression exp) {
|
||||
var psrcs = ctx.ReadContext.PropSrcs;
|
||||
if (psrcs != null) ChartPlayer.etor.ContextCascadeInsert(psrcs);
|
||||
ChartPlayer.etor.Evaluate(op, exp);
|
||||
if (!ChartPlayer.etor.Evaluate(op, exp))
|
||||
throw new EvaluationFailureException();
|
||||
if (psrcs != null) ChartPlayer.etor.ContextCascadeDiscard();
|
||||
}
|
||||
SkinProperty GetPropOp(Transform obj) {
|
||||
@@ -145,7 +146,8 @@ namespace Cryville.Crtr {
|
||||
if (dl != 1) return;
|
||||
var psrcs = ctx.ReadContext.PropSrcs;
|
||||
if (psrcs != null) ChartPlayer.etor.ContextCascadeInsert(psrcs);
|
||||
ChartPlayer.etor.Evaluate(_timeOp, exp);
|
||||
if (!ChartPlayer.etor.Evaluate(_timeOp, exp))
|
||||
throw new EvaluationFailureException();
|
||||
if (psrcs != null) ChartPlayer.etor.ContextCascadeDiscard();
|
||||
group.PushAnchorEvent(_time, Name);
|
||||
}
|
||||
@@ -168,7 +170,8 @@ namespace Cryville.Crtr {
|
||||
float _index;
|
||||
readonly PropOp _op;
|
||||
public override void ExecuteDynamic(ISkinnableGroup group, RuntimeSkinContext ctx, PdtExpression exp, IntKeyedDictionary<SkinVariable> vars, int dl) {
|
||||
ChartPlayer.etor.Evaluate(_op, exp);
|
||||
if (!ChartPlayer.etor.Evaluate(_op, exp))
|
||||
throw new EvaluationFailureException();
|
||||
if (IsSelf) ChartPlayer.effectManager.EmitSelf(Name, _index, ctx.WriteTransform);
|
||||
else ChartPlayer.effectManager.Emit(Name, _index);
|
||||
}
|
||||
|
Reference in New Issue
Block a user