Pull down some judge preparation logic.
This commit is contained in:
@@ -21,7 +21,7 @@ namespace Cryville.Crtr {
|
||||
public double EndTime { get; set; }
|
||||
public double StartClip { get; set; }
|
||||
public double EndClip { get; set; }
|
||||
public Identifier JudgeId { get; set; }
|
||||
public Chart.Judge BaseEvent { get; set; }
|
||||
public JudgeDefinition Definition { get; set; }
|
||||
public NoteHandler Handler { get; set; }
|
||||
}
|
||||
@@ -37,20 +37,24 @@ namespace Cryville.Crtr {
|
||||
InitJudges();
|
||||
InitScores();
|
||||
}
|
||||
public void Prepare(double st, double et, Identifier input, Identifier judge, NoteHandler handler) {
|
||||
public void Prepare(StampedEvent sev, NoteHandler handler) {
|
||||
var tev = (Chart.Judge)sev.Unstamped;
|
||||
Identifier input = default(Identifier);
|
||||
ChartPlayer.etor.Evaluate(new PropOp.Identifier(v => input = new Identifier(v)), _rs.judges[tev.Id].input);
|
||||
double st = sev.Time, et = st + sev.Duration;
|
||||
List<JudgeEvent> list;
|
||||
if (!evs.TryGetValue(input, out list)) {
|
||||
ct.Add(input, 0);
|
||||
evs.Add(input, list = new List<JudgeEvent>());
|
||||
activeEvs.Add(input, new List<JudgeEvent>());
|
||||
}
|
||||
var def = _rs.judges[judge];
|
||||
var def = _rs.judges[tev.Id];
|
||||
var ev = new JudgeEvent {
|
||||
StartTime = st,
|
||||
EndTime = et,
|
||||
StartClip = st + def.clip[0],
|
||||
EndClip = et + def.clip[1],
|
||||
JudgeId = judge,
|
||||
BaseEvent = tev,
|
||||
Definition = def,
|
||||
Handler = handler,
|
||||
};
|
||||
|
@@ -100,12 +100,9 @@ namespace Cryville.Crtr {
|
||||
if (ev == null) { }
|
||||
else if (ev.Unstamped == null) { }
|
||||
else if (ev.Unstamped is Chart.Judge) {
|
||||
var tev = (Chart.Judge)ev.Unstamped;
|
||||
Identifier name = default(Identifier);
|
||||
ChartPlayer.etor.ContextEvent = tev;
|
||||
ChartPlayer.etor.ContextEvent = ev.Unstamped;
|
||||
ChartPlayer.etor.ContextState = s;
|
||||
ChartPlayer.etor.Evaluate(new PropOp.Identifier(v => name = new Identifier(v)), ruleset.judges[tev.Id].input);
|
||||
judge.Prepare(ev.Time, ev.Time + ev.Duration, name, tev.Id, this);
|
||||
judge.Prepare(ev, this);
|
||||
ChartPlayer.etor.ContextState = null;
|
||||
ChartPlayer.etor.ContextEvent = null;
|
||||
}
|
||||
|
Reference in New Issue
Block a user