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;
|
||||
_numbuf1 = (float)ev.StartTime; _numsrc1.Invalidate(); _etor.ContextCascadeUpdate(_var_fn, _numsrc1);
|
||||
_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;
|
||||
if (def.hit != null) {
|
||||
_etor.Evaluate(_hitop, def.hit);
|
||||
@@ -237,17 +241,25 @@ namespace Cryville.Crtr {
|
||||
}
|
||||
}
|
||||
else if (hitIndex == -1) hitIndex = index;
|
||||
_etor.ContextState = null;
|
||||
_etor.ContextEvent = null;
|
||||
index++;
|
||||
}
|
||||
if (hitIndex != -1) {
|
||||
var hitEvent = actlist[hitIndex];
|
||||
_numbuf1 = (float)hitEvent.StartTime; _numsrc1.Invalidate(); _etor.ContextCascadeUpdate(_var_fn, _numsrc1);
|
||||
_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;
|
||||
if (def == _judgePause) _sys.TogglePause();
|
||||
if (def.on_hit != null) Execute(hitEvent, (ft + tt) / 2, def.on_hit, false);
|
||||
if (def.persist != null) _etor.Evaluate(_flagop, def.persist);
|
||||
else _flag = false;
|
||||
_etor.ContextState = null;
|
||||
_etor.ContextEvent = null;
|
||||
if (!_flag) {
|
||||
actlist.RemoveAt(hitIndex);
|
||||
--index;
|
||||
|
Reference in New Issue
Block a user