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