Move nested class JudgeEvent out of Judge.

This commit is contained in:
2023-05-20 16:17:36 +08:00
parent 6ccc86c28d
commit d1b9b9607b
2 changed files with 10 additions and 11 deletions

View File

@@ -11,7 +11,15 @@ using System.Text.Formatting;
using UnsafeIL; using UnsafeIL;
namespace Cryville.Crtr { namespace Cryville.Crtr {
public class Judge { public struct JudgeEvent {
public double StartTime { get; set; }
public double EndTime { get; set; }
public double StartClip { get; set; }
public double EndClip { get; set; }
public Chart.Judge BaseEvent { get; set; }
public JudgeDefinition Definition { get; set; }
public NoteHandler Handler { get; set; }
}
#region Data #region Data
readonly ChartPlayer _sys; readonly ChartPlayer _sys;
internal readonly PdtEvaluator _etor; internal readonly PdtEvaluator _etor;
@@ -23,15 +31,6 @@ namespace Cryville.Crtr {
= new Dictionary<Identifier, List<JudgeEvent>>(); = new Dictionary<Identifier, List<JudgeEvent>>();
static readonly int _var_pause = IdentifierManager.Shared.Request("pause"); static readonly int _var_pause = IdentifierManager.Shared.Request("pause");
readonly JudgeDefinition _judgePause; readonly JudgeDefinition _judgePause;
public struct JudgeEvent {
public double StartTime { get; set; }
public double EndTime { get; set; }
public double StartClip { get; set; }
public double EndClip { get; set; }
public Chart.Judge BaseEvent { get; set; }
public JudgeDefinition Definition { get; set; }
public NoteHandler Handler { get; set; }
}
static readonly IComparer<JudgeEvent> _stcmp = new JudgeEventStartTimeComparer(); static readonly IComparer<JudgeEvent> _stcmp = new JudgeEventStartTimeComparer();
class JudgeEventStartTimeComparer : IComparer<JudgeEvent> { class JudgeEventStartTimeComparer : IComparer<JudgeEvent> {
public int Compare(JudgeEvent x, JudgeEvent y) { public int Compare(JudgeEvent x, JudgeEvent y) {

View File

@@ -150,7 +150,7 @@ namespace Cryville.Crtr {
return gh.GetCurrentFrame(func, track); return gh.GetCurrentFrame(func, track);
} }
public void ReportJudge(Judge.JudgeEvent ev, float time, Identifier result) { public void ReportJudge(JudgeEvent ev, float time, Identifier result) {
JudgeState state; JudgeState state;
if (!judges.TryGetValue(ev.BaseEvent, out state)) return; if (!judges.TryGetValue(ev.BaseEvent, out state)) return;
state.MarkJudged(time, (float)(ev.StartTime - time), result.Key); state.MarkJudged(time, (float)(ev.StartTime - time), result.Key);