Skip to content

Commit 21bdb36

Browse files
Require isLnRelease and isMine parameter to be explicitly given in CalculateScore();
1 parent d65ee56 commit 21bdb36

File tree

4 files changed

+25
-22
lines changed

4 files changed

+25
-22
lines changed

Quaver.API/Maps/Processors/Scoring/ScoreProcessor.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,7 @@ public ScoreProcessor(Replay replay, JudgementWindows windows = null)
223223
/// <summary>
224224
/// Adds a judgement to the score and recalculates the score.
225225
/// </summary>
226-
public abstract void CalculateScore(Judgement judgement, bool isLongNoteRelease = false, bool isMine = false);
226+
public abstract void CalculateScore(Judgement judgement, bool isLongNoteRelease, bool isMine);
227227

228228
/// <summary>
229229
/// Calculates the accuracy of the current play session.

Quaver.API/Maps/Processors/Scoring/ScoreProcessorKeys.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,7 @@ public Judgement CalculateScore(int hitDifference, KeyPressType keyPressType, bo
216216
return judgement;
217217

218218
if (calculateAllStats)
219-
CalculateScore(judgement, keyPressType == KeyPressType.Release);
219+
CalculateScore(judgement, keyPressType == KeyPressType.Release, isMine);
220220

221221
return judgement;
222222
}
@@ -234,7 +234,7 @@ public void CalculateScore(HitStat hitStat)
234234
/// <param name="judgement"></param>
235235
/// <param name="isLongNoteRelease"></param>
236236
/// <param name="isMine"></param>
237-
public override void CalculateScore(Judgement judgement, bool isLongNoteRelease = false, bool isMine = false)
237+
public override void CalculateScore(Judgement judgement, bool isLongNoteRelease, bool isMine)
238238
{
239239
// Update Judgement count
240240
CurrentJudgements[judgement]++;

Quaver.API/Replays/Virtual/VirtualReplayPlayer.cs

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -174,10 +174,12 @@ public void PlayNextFrame()
174174
{
175175
var obj = Map.GetHitObjectAtJudgementIndex(i);
176176

177-
ScoreProcessor.CalculateScore(Judgement.Miss);
177+
var hitStat = new HitStat(HitStatType.Miss, KeyPressType.None, obj, obj.StartTime,
178+
Judgement.Miss, int.MinValue, ScoreProcessor.Accuracy, ScoreProcessor.Health);
178179

179-
ScoreProcessor.Stats.Add(new HitStat(HitStatType.Miss, KeyPressType.None, obj, obj.StartTime,
180-
Judgement.Miss, int.MinValue, ScoreProcessor.Accuracy, ScoreProcessor.Health));
180+
ScoreProcessor.CalculateScore(hitStat);
181+
182+
ScoreProcessor.Stats.Add(hitStat);
181183

182184
if (!ScoreProcessor.Failed)
183185
continue;
@@ -310,7 +312,7 @@ private void HandleKeyPressesInFrame()
310312
// Add another miss for an LN (head and tail)
311313
if (hitObject.IsLongNote)
312314
{
313-
ScoreProcessor.CalculateScore(Judgement.Miss, true);
315+
ScoreProcessor.CalculateScore(Judgement.Miss, true, false);
314316

315317
ScoreProcessor.Stats.Add(new HitStat(HitStatType.Miss, KeyPressType.Press, hitObject, Time, Judgement.Miss, int.MinValue,
316318
ScoreProcessor.Accuracy, ScoreProcessor.Health));
@@ -361,7 +363,7 @@ private void HandleKeyPressesInFrame()
361363
// The LN was released too early (miss)
362364
else
363365
{
364-
ScoreProcessor.CalculateScore(Judgement.Miss, true);
366+
ScoreProcessor.CalculateScore(Judgement.Miss, true, false);
365367

366368
// Add a new stat to ScoreProcessor.
367369
var stat = new HitStat(HitStatType.Hit, KeyPressType.Release, hitObject, Time, Judgement.Miss, hitDifference,
@@ -399,7 +401,7 @@ private void HandleMissedLongNoteReleases()
399401
// Judgement when a user doesn't release an LN.
400402
var missedReleaseJudgement = Judgement.Good;
401403

402-
ScoreProcessor.CalculateScore(missedReleaseJudgement, true);
404+
ScoreProcessor.CalculateScore(missedReleaseJudgement, true, false);
403405

404406
// Add new miss stat.
405407
var stat = new HitStat(HitStatType.Miss, KeyPressType.None, hitObject, hitObject.EndTime, missedReleaseJudgement, int.MinValue,
@@ -424,19 +426,20 @@ private void HandleMissedHitObjects()
424426
{
425427
if (Time > hitObject.StartTime + ScoreProcessor.JudgementWindow[Judgement.Okay])
426428
{
427-
// Add a miss to the score.
428-
ScoreProcessor.CalculateScore(Judgement.Miss);
429-
430429
// Create a new HitStat to add to the ScoreProcessor.
431430
var stat = new HitStat(HitStatType.Miss, KeyPressType.None, hitObject, hitObject.StartTime, Judgement.Miss, int.MinValue,
432431
ScoreProcessor.Accuracy, ScoreProcessor.Health);
433432

433+
// Add a miss to the score.
434+
ScoreProcessor.CalculateScore(stat);
435+
436+
434437
ScoreProcessor.Stats.Add(stat);
435438

436439
// Long notes count as two misses, so add another one if the object is one.
437440
if (hitObject.IsLongNote)
438441
{
439-
ScoreProcessor.CalculateScore(Judgement.Miss, true);
442+
ScoreProcessor.CalculateScore(Judgement.Miss, true, false);
440443
ScoreProcessor.Stats.Add(stat);
441444
}
442445

@@ -453,13 +456,13 @@ private void HandleMissedHitObjects()
453456
var endTime = hitObject.IsLongNote ? hitObject.EndTime : hitObject.StartTime;
454457
if (Time > endTime + ScoreProcessor.JudgementWindow[Judgement.Marv])
455458
{
456-
// Add a miss to the score.
457-
ScoreProcessor.CalculateScore(Judgement.Marv);
458-
459459
// Create a new HitStat to add to the ScoreProcessor.
460460
var stat = new HitStat(HitStatType.Hit, KeyPressType.None, hitObject, hitObject.StartTime, Judgement.Marv, 0,
461461
ScoreProcessor.Accuracy, ScoreProcessor.Health);
462462

463+
// Add a miss to the score.
464+
ScoreProcessor.CalculateScore(stat);
465+
463466
ScoreProcessor.Stats.Add(stat);
464467
ActiveMinesToRemove.Add(hitObject);
465468
}

Quaver.Tools/Commands/RecalculateCommand.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -63,22 +63,22 @@ private void Recalculate(JToken scores)
6363
var processor = new ScoreProcessorKeys(qua, 0);
6464

6565
for (var i = 0; i < (int)score["count_marv"]; i++)
66-
processor.CalculateScore(Judgement.Marv);
66+
processor.CalculateScore(Judgement.Marv, false, false);
6767

6868
for (var i = 0; i < (int)score["count_perf"]; i++)
69-
processor.CalculateScore(Judgement.Perf);
69+
processor.CalculateScore(Judgement.Perf, false, false);
7070

7171
for (var i = 0; i < (int)score["count_great"]; i++)
72-
processor.CalculateScore(Judgement.Great);
72+
processor.CalculateScore(Judgement.Great, false, false);
7373

7474
for (var i = 0; i < (int)score["count_good"]; i++)
75-
processor.CalculateScore(Judgement.Good);
75+
processor.CalculateScore(Judgement.Good, false, false);
7676

7777
for (var i = 0; i < (int)score["count_okay"]; i++)
78-
processor.CalculateScore(Judgement.Okay);
78+
processor.CalculateScore(Judgement.Okay, false, false);
7979

8080
for (var i = 0; i < (int)score["count_miss"]; i++)
81-
processor.CalculateScore(Judgement.Miss);
81+
processor.CalculateScore(Judgement.Miss, false, false);
8282

8383
var difficultyRating = (double)score["performance_rating"] / Math.Pow((double)score["accuracy"] / 98, 6);
8484

0 commit comments

Comments
 (0)