Add context state and context event access for judge.
This commit is contained in:
@@ -228,6 +228,10 @@ namespace Cryville.Crtr {
|
|||||||
if (ev.Definition.stack != cstack) break;
|
if (ev.Definition.stack != cstack) break;
|
||||||
_numbuf1 = (float)ev.StartTime; _numsrc1.Invalidate(); _etor.ContextCascadeUpdate(_var_fn, _numsrc1);
|
_numbuf1 = (float)ev.StartTime; _numsrc1.Invalidate(); _etor.ContextCascadeUpdate(_var_fn, _numsrc1);
|
||||||
_numbuf2 = (float)ev.EndTime; _numsrc2.Invalidate(); _etor.ContextCascadeUpdate(_var_tn, _numsrc2);
|
_numbuf2 = (float)ev.EndTime; _numsrc2.Invalidate(); _etor.ContextCascadeUpdate(_var_tn, _numsrc2);
|
||||||
|
if (ev.BaseEvent != null) {
|
||||||
|
_etor.ContextEvent = ev.BaseEvent;
|
||||||
|
_etor.ContextState = ev.Handler.cs;
|
||||||
|
}
|
||||||
var def = ev.Definition;
|
var def = ev.Definition;
|
||||||
if (def.hit != null) {
|
if (def.hit != null) {
|
||||||
_etor.Evaluate(_hitop, def.hit);
|
_etor.Evaluate(_hitop, def.hit);
|
||||||
@@ -237,17 +241,25 @@ namespace Cryville.Crtr {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (hitIndex == -1) hitIndex = index;
|
else if (hitIndex == -1) hitIndex = index;
|
||||||
|
_etor.ContextState = null;
|
||||||
|
_etor.ContextEvent = null;
|
||||||
index++;
|
index++;
|
||||||
}
|
}
|
||||||
if (hitIndex != -1) {
|
if (hitIndex != -1) {
|
||||||
var hitEvent = actlist[hitIndex];
|
var hitEvent = actlist[hitIndex];
|
||||||
_numbuf1 = (float)hitEvent.StartTime; _numsrc1.Invalidate(); _etor.ContextCascadeUpdate(_var_fn, _numsrc1);
|
_numbuf1 = (float)hitEvent.StartTime; _numsrc1.Invalidate(); _etor.ContextCascadeUpdate(_var_fn, _numsrc1);
|
||||||
_numbuf2 = (float)hitEvent.EndTime; _numsrc2.Invalidate(); _etor.ContextCascadeUpdate(_var_tn, _numsrc2);
|
_numbuf2 = (float)hitEvent.EndTime; _numsrc2.Invalidate(); _etor.ContextCascadeUpdate(_var_tn, _numsrc2);
|
||||||
|
if (hitEvent.BaseEvent != null) {
|
||||||
|
_etor.ContextEvent = hitEvent.BaseEvent;
|
||||||
|
_etor.ContextState = hitEvent.Handler.cs;
|
||||||
|
}
|
||||||
var def = hitEvent.Definition;
|
var def = hitEvent.Definition;
|
||||||
if (def == _judgePause) _sys.TogglePause();
|
if (def == _judgePause) _sys.TogglePause();
|
||||||
if (def.on_hit != null) Execute(hitEvent, (ft + tt) / 2, def.on_hit, false);
|
if (def.on_hit != null) Execute(hitEvent, (ft + tt) / 2, def.on_hit, false);
|
||||||
if (def.persist != null) _etor.Evaluate(_flagop, def.persist);
|
if (def.persist != null) _etor.Evaluate(_flagop, def.persist);
|
||||||
else _flag = false;
|
else _flag = false;
|
||||||
|
_etor.ContextState = null;
|
||||||
|
_etor.ContextEvent = null;
|
||||||
if (!_flag) {
|
if (!_flag) {
|
||||||
actlist.RemoveAt(hitIndex);
|
actlist.RemoveAt(hitIndex);
|
||||||
--index;
|
--index;
|
||||||
|
|||||||
Reference in New Issue
Block a user